aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKenneth Lundin <[email protected]>2010-02-19 14:01:57 +0000
committerErlang/OTP <[email protected]>2010-02-19 14:01:57 +0000
commit18bd1239bee04427340a44f57f993ea92c264e41 (patch)
treedbb3031dcd2e446eb457ff7ac5229949517d7557 /lib
parent729565dc3f8bcf8829508136498aef6a542840f4 (diff)
downloadotp-18bd1239bee04427340a44f57f993ea92c264e41.tar.gz
otp-18bd1239bee04427340a44f57f993ea92c264e41.tar.bz2
otp-18bd1239bee04427340a44f57f993ea92c264e41.zip
OTP-8463 Support for EXTENSIBILITY IMPLIED and SET/SEQ OF NamedType is
added.
Diffstat (limited to 'lib')
-rw-r--r--lib/asn1/src/Restrictions.txt12
-rw-r--r--lib/asn1/src/asn1ct_check.erl37
-rw-r--r--lib/asn1/src/asn1ct_parser2.erl232
-rw-r--r--lib/asn1/src/asn1ct_tok.erl16
-rw-r--r--lib/asn1/test/External.hrl42
-rw-r--r--lib/asn1/test/Makefile212
-rw-r--r--lib/asn1/test/asn1.spec3
-rw-r--r--lib/asn1/test/asn1_SUITE.erl.src2358
-rw-r--r--lib/asn1/test/asn1_SUITE_data/AA1.asn13
-rw-r--r--lib/asn1/test/asn1_SUITE_data/AA2.asn1dbbin0 -> 5224 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BadEnumValue1.asn8
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BadTypeEnding.asn6
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BadValueAssignment1.asn18
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BadValueAssignment2.asn18
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BadValueSet.asn19
-rw-r--r--lib/asn1/test/asn1_SUITE_data/BitStr.py56
-rw-r--r--lib/asn1/test/asn1_SUITE_data/CCSNARG3.asn345
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Certificate.asn0
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Cho.py27
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoExtension.asn144
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoExternal.asn140
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoOptional.asn135
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoOptionalImplicitTag.asn135
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoPrim.asn120
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoRecursive.asn130
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoTypeRefCho.asn144
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoTypeRefPrim.asn134
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoTypeRefSeq.asn137
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoTypeRefSet.asn137
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoiceBadExtension.asn127
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoiceInSeq.asn22
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ChoiceIndef.asn24
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Comment.asn21
-rw-r--r--lib/asn1/test/asn1_SUITE_data/CommonDataTypes.py4360
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Constraints.py84
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Constructed.asn23
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ContextSwitchingTypes.asn153
-rw-r--r--lib/asn1/test/asn1_SUITE_data/DERSpec.asn38
-rw-r--r--lib/asn1/test/asn1_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py150
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Def.asn131
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Def.py31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Default.asn158
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_SUITE_data/DoubleEllipses.asn99
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ELDAPv3.asn291
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EUTRA-InterNodeDefinitions.asn123
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EUTRA-RRC-Definitions.asn2640
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EUTRA-UE-Variables.asn49
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EUTRA-extract-55.asn47
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EUTRA-extract-7407.asn1109
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Enum.py46
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EnumExt.asn128
-rw-r--r--lib/asn1/test/asn1_SUITE_data/EnumerationBadExtension.asn120
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ErrorClass.asn15
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Example.asn120
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Export1.asn7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/External.asn1132
-rw-r--r--lib/asn1/test/asn1_SUITE_data/From.py15
-rw-r--r--lib/asn1/test/asn1_SUITE_data/H235-SECURITY-MESSAGES.asn170
-rw-r--r--lib/asn1/test/asn1_SUITE_data/H323-MESSAGES.asn1341
-rw-r--r--lib/asn1/test/asn1_SUITE_data/IMP.asn17
-rw-r--r--lib/asn1/test/asn1_SUITE_data/IN-CS-1-Datatypes.asn1630
-rw-r--r--lib/asn1/test/asn1_SUITE_data/INAPv2extract.asn112
-rw-r--r--lib/asn1/test/asn1_SUITE_data/INSTANCEOF.asn134
-rw-r--r--lib/asn1/test/asn1_SUITE_data/IllegalExport.asn17
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Import.py14
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ImportsFrom.asn117
-rw-r--r--lib/asn1/test/asn1_SUITE_data/InfClass.asn56
-rw-r--r--lib/asn1/test/asn1_SUITE_data/InfObj.asn153
-rw-r--r--lib/asn1/test/asn1_SUITE_data/InfObj2.asn156
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Int.py12
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/LDAP.asn1283
-rw-r--r--lib/asn1/test/asn1_SUITE_data/M1.asn24
-rw-r--r--lib/asn1/test/asn1_SUITE_data/M2.asn29
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MAP-ExtensionDataTypes.asn37
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MAP-commonDataTypes.py31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MAP-insertSubscriberData-def.py102
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn975
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MS.set.asn2
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn3084
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MissingEnd.asn15
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod.set.asn5
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod1.asn18
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod2.asn43
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod3.asn33
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod4.asn33
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mod5.asn37
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-11-4.asn675
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-11-6.asn1776
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-14-4.asn66
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-14-6.asn352
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-15-4.asn42
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-15-6.asn202
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-17-4.asn100
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-18-4.asn215
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-18-6.asn515
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-19-4.asn53
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-19-6.asn109
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-20-4.asn54
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-20-6.asn147
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-21-4.asn66
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-Constants-1.asn85
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn-DataTypes-1.asn454
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn.set.asn7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn4.set.asn10
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Mvrasn6.set.asn7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/MyMerge.set.asn2
-rw-r--r--lib/asn1/test/asn1_SUITE_data/NoImport.asn14
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/Nortel.asn592
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Null.py22
-rw-r--r--lib/asn1/test/asn1_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn950
-rw-r--r--lib/asn1/test/asn1_SUITE_data/OTP-PKIX.asn1config2
-rw-r--r--lib/asn1/test/asn1_SUITE_data/OTP-PKIX.set.asn5
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ObjIdValues.asn166
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Objects.asn61
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Octetstr.py15
-rw-r--r--lib/asn1/test/asn1_SUITE_data/One.py52
-rw-r--r--lib/asn1/test/asn1_SUITE_data/OpenType.asn112
-rw-r--r--lib/asn1/test/asn1_SUITE_data/OpenTypeImplicitTag.asn19
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Opt.asn131
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Opt.py31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-Record.asn1config1
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-Record.asn1dbbin0 -> 3128 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-Record.erl244
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-Record.hrl17
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-Record.py59
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-RecordA1.asn29
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-RecordA2.asn33
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P-RecordA3.asn40
-rw-r--r--lib/asn1/test/asn1_SUITE_data/P.py19
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PDUs.py325
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIX1Algorithms88.asn1274
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIX1Explicit88.asn1619
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIX1Explicit93.asn1779
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIX1Implicit88.asn1349
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIX1Implicit93.asn1357
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PKIXAttributeCertificate.asn1189
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Param.asn193
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ParamBasic.asn123
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn19
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn1config3
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn34
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn1config22
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn29
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn1config4
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn45
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn1config2
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Pattern.asn8
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Person.py10
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Prim.asn132
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PrimExternal.asn139
-rw-r--r--lib/asn1/test/asn1_SUITE_data/PrimStrings.asn197
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-CommonDataTypes.asn145
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-Constants.asn1355
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-Containers.asn1206
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-IEs.asn12081
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Contents.asn13383
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Descriptions.asn1619
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAP.asn13237
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAPSET.set.asn16
-rw-r--r--lib/asn1/test/asn1_SUITE_data/RANAPextract1.asn142
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ROSE.asn1449
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Real.py31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1203
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Remote-Operations-Information-Objects.asn1130
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Remote-Operations-Merged.set.asn13
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Remote-Operations-Useful-Definitions.asn1149
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-CommonDataTypes.asn35
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-Constants.asn251
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-Containers.asn201
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-IEs.asn1178
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Contents.asn2083
-rw-r--r--lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Descriptions.asn548
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SOpttest.asn30
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SSL-PKIX.asn1704
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SelectionType.asn59
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Seq.py152
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Seq2738.asn137
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqDefault.asn177
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqExtension.asn137
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqExternal.asn168
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOf.asn165
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOf.py45
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOfEnum.asn111
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOptional.asn186
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqOptional2.asn90
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqPrim.asn119
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqSetIndefinite.asn41
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqSetLib.py32
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqTag.asn148
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqTypeRefCho.asn128
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqTypeRefPrim.asn148
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqTypeRefSeq.asn1113
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SeqTypeRefSet.asn139
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SequenceBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SequenceBadComponentName.asn110
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SequenceBadComponentType.asn110
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Set.py141
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetDefault.asn133
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetExtension.asn137
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetExternal.asn168
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOf.asn161
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOf.py42
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetOptional.asn177
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetPrim.asn120
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetTag.asn147
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetTypeRefCho.asn127
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetTypeRefPrim.asn129
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetTypeRefSeq.asn138
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SetTypeRefSet.asn1110
-rw-r--r--lib/asn1/test/asn1_SUITE_data/String.py7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/SwCDR.py213
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Syntax.py10
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TCAPMessages-simple.asn206
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TCAPMessages.asn98
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn271
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn1config12
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TCAPPackage_msg.erl141
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TConstr.asn195
-rw-r--r--lib/asn1/test/asn1_SUITE_data/TConstrChoice.asn1175
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Time.py7
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Tst.py153
-rw-r--r--lib/asn1/test/asn1_SUITE_data/Two.py34
-rw-r--r--lib/asn1/test/asn1_SUITE_data/UPERDefault.asn18
-rw-r--r--lib/asn1/test/asn1_SUITE_data/UndefType.py14
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/UpperBounds.asn89
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ValueTest.asn53
-rw-r--r--lib/asn1/test/asn1_SUITE_data/XSeq.py42
-rw-r--r--lib/asn1/test/asn1_SUITE_data/XSeqOf.py19
-rw-r--r--lib/asn1/test/asn1_SUITE_data/XSet.py47
-rw-r--r--lib/asn1/test/asn1_SUITE_data/XSetOf.py12
-rw-r--r--lib/asn1/test/asn1_SUITE_data/a_SeqIn.erl31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/b_SeqIn.erl29
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg1.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg10.valbin0 -> 893 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg11.valbin0 -> 854 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg12.valbin0 -> 538 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg13.valbin0 -> 1156 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg14.valbin0 -> 878 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg15.valbin0 -> 1542 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg16.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg17.valbin0 -> 957 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg18.valbin0 -> 402 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg19.valbin0 -> 476 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg2.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg20.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg21.valbin0 -> 474 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg22.valbin0 -> 329 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg23.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg24.valbin0 -> 452 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg25.valbin0 -> 1552 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg3.valbin0 -> 1090 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg4.valbin0 -> 473 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg5.valbin0 -> 550 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg6.valbin0 -> 483 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg7.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg8.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/megacomessages/Msg9.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/PKCS7.asn343
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_SUITE_data/modified_x420/p7_signed_data.pem23
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn58
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Constants.asn688
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Containers.asn197
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-IEs.asn4127
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn9234
-rwxr-xr-xlib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn916
-rw-r--r--lib/asn1/test/asn1_SUITE_data/p_record.asn1config1
-rw-r--r--lib/asn1/test/asn1_SUITE_data/p_record.set.asn1
-rw-r--r--lib/asn1/test/asn1_SUITE_data/subdir/MySO.asn14
-rw-r--r--lib/asn1/test/asn1_SUITE_data/subdir/subsubdir/.gitignore0
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/DialoguePDUs.asn80
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn186
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-BS-Code.asn126
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn438
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn198
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn612
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-DialogueInformation.asn149
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn405
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Errors.asn507
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn65
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn122
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn72
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn533
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn103
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn2458
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn506
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn62
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn91
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Protocol.asn176
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn217
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-Code.asn183
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn337
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn98
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn78
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn155
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn295
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-TS-Code.asn87
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/MobileDomainDefinitions.asn38
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn167
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn127
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn99
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/TC-Notation-Extensions.asn87
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Examples.asn72
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Tools.asn47
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAPMessages.asn149
-rw-r--r--lib/asn1/test/asn1_SUITE_data/tcapsystem/UnidialoguePDUs.asn26
-rw-r--r--lib/asn1/test/asn1_SUITE_data/test_records.erl87
-rw-r--r--lib/asn1/test/asn1_SUITE_data/testobj.erl1443
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn253
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn17
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn125
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn54
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn192
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn134
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn186
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn143
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn162
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn246
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn117
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn26
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn70
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn324
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn118
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn181
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn464
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn363
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/External-References.asn49
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn71
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn66
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn16
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn265
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn44
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn79
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn212
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn123
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn148
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn234
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn102
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn37
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn39
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn253
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn53
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn41
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn47
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn246
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn626
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn1120
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn507
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn33
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn143
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn46
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn459
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn1453
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn51
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn126
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn57
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn268
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn80
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn338
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn95
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn187
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn112
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn1085
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn259
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn830
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn118
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn225
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn322
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn77
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn481
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn150
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn321
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn116
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Notation.asn244
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn46
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn263
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn342
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn31
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn74
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn140
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn75
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn92
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn76
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn132
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn103
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn163
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn36
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn123
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn81
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn95
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn116
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn257
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn190
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn96
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn92
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn72
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn30
-rw-r--r--lib/asn1/test/asn1_app_test.erl253
-rw-r--r--lib/asn1/test/asn1_appup_test.erl418
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/AA1.asn13
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/AA2.asn1dbbin0 -> 5224 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BadEnumValue1.asn8
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BadTypeEnding.asn6
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment1.asn18
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment2.asn18
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BadValueSet.asn19
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/BitStr.py56
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/CCSNARG3.asn345
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Certificate.asn0
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Cho.py27
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoExtension.asn144
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoExternal.asn140
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoOptional.asn135
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoOptionalImplicitTag.asn135
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoPrim.asn120
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoRecursive.asn130
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefCho.asn144
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefPrim.asn134
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSeq.asn137
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSet.asn137
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoiceBadExtension.asn127
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoiceInSeq.asn22
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ChoiceIndef.asn24
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Comment.asn21
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/CommonDataTypes.py4360
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Constraints.py84
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Constructed.asn23
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ContextSwitchingTypes.asn153
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/DERSpec.asn38
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py150
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Def.asn131
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Def.py31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Default.asn158
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/DoubleEllipses.asn99
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ELDAPv3.asn291
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EUTRA-InterNodeDefinitions.asn123
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EUTRA-RRC-Definitions.asn2640
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EUTRA-UE-Variables.asn49
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-55.asn47
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-7407.asn1109
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Enum.py46
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EnumExt.asn128
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/EnumerationBadExtension.asn120
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ErrorClass.asn15
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Example.asn120
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Export1.asn7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/External.asn1132
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/From.py15
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/H235-SECURITY-MESSAGES.asn170
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/H323-MESSAGES.asn1341
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/IMP.asn17
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/IN-CS-1-Datatypes.asn1630
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/INAPv2extract.asn112
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/INSTANCEOF.asn134
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/IllegalExport.asn17
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Import.py14
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ImportsFrom.asn117
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/InfClass.asn56
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/InfObj.asn153
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/InfObj2.asn156
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Int.py12
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/LDAP.asn1283
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/M1.asn24
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/M2.asn29
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MAP-ExtensionDataTypes.asn37
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MAP-commonDataTypes.py31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MAP-insertSubscriberData-def.py102
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn975
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MS.set.asn2
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn3084
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MissingEnd.asn15
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod.set.asn5
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod1.asn18
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod2.asn43
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod3.asn33
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod4.asn33
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mod5.asn37
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-4.asn675
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-6.asn1776
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-4.asn66
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-6.asn352
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-4.asn42
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-6.asn202
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-17-4.asn100
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-4.asn215
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-6.asn515
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-4.asn53
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-6.asn109
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-4.asn54
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-6.asn147
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-21-4.asn66
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-Constants-1.asn85
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-DataTypes-1.asn454
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn.set.asn7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn4.set.asn10
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Mvrasn6.set.asn7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/MyMerge.set.asn2
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/NoImport.asn14
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/Nortel.asn592
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Null.py22
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn950
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.asn1config2
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.set.asn5
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ObjIdValues.asn166
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Objects.asn61
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Octetstr.py15
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/One.py52
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/OpenType.asn112
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/OpenTypeImplicitTag.asn19
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Opt.asn131
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Opt.py31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1config1
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1dbbin0 -> 3128 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl244
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.hrl17
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.py59
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-RecordA1.asn29
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-RecordA2.asn33
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-RecordA3.asn40
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P.py19
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PDUs.py325
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIX1Algorithms88.asn1274
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit88.asn1619
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit93.asn1779
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit88.asn1349
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit93.asn1357
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PKIXAttributeCertificate.asn1189
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Param.asn193
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ParamBasic.asn123
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn19
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn1config3
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn34
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn1config22
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn29
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn1config4
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn45
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn1config2
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Pattern.asn8
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Person.py10
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Prim.asn132
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PrimExternal.asn139
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/PrimStrings.asn197
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-CommonDataTypes.asn145
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-Constants.asn1355
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-Containers.asn1206
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-IEs.asn12081
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Contents.asn13383
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Descriptions.asn1619
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAP.asn13237
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAPSET.set.asn16
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/RANAPextract1.asn142
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ROSE.asn1449
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Real.py31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1203
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Information-Objects.asn1130
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Merged.set.asn13
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Useful-Definitions.asn1149
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-CommonDataTypes.asn35
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-Constants.asn251
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-Containers.asn201
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-IEs.asn1178
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Contents.asn2083
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Descriptions.asn548
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SOpttest.asn30
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SSL-PKIX.asn1704
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SelectionType.asn59
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Seq.py152
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Seq2738.asn137
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqDefault.asn177
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqExtension.asn137
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqExternal.asn168
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOf.asn165
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOf.py45
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOfEnum.asn111
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOptional.asn186
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqOptional2.asn90
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqPrim.asn119
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqSetIndefinite.asn41
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqSetLib.py32
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqTag.asn148
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefCho.asn128
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefPrim.asn148
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSeq.asn1113
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSet.asn139
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentName.asn110
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentType.asn110
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Set.py141
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetDefault.asn133
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetExtension.asn137
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetExternal.asn168
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOf.asn161
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOf.py42
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetOptional.asn177
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetPrim.asn120
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetTag.asn147
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefCho.asn127
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefPrim.asn129
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSeq.asn138
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSet.asn1110
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/String.py7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/SwCDR.py213
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Syntax.py10
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages-simple.asn206
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages.asn98
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn271
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn1config12
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage_msg.erl141
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TConstr.asn195
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/TConstrChoice.asn1175
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Time.py7
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Tst.py153
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/Two.py34
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/UPERDefault.asn18
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/UndefType.py14
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/UpperBounds.asn89
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/ValueTest.asn53
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/XSeq.py42
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/XSeqOf.py19
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/XSet.py47
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/XSetOf.py12
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/a_SeqIn.erl31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/b_SeqIn.erl29
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg1.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg10.valbin0 -> 893 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg11.valbin0 -> 854 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg12.valbin0 -> 538 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg13.valbin0 -> 1156 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg14.valbin0 -> 878 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg15.valbin0 -> 1542 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg16.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg17.valbin0 -> 957 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg18.valbin0 -> 402 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg19.valbin0 -> 476 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg2.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg20.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg21.valbin0 -> 474 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg22.valbin0 -> 329 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg23.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg24.valbin0 -> 452 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg25.valbin0 -> 1552 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg3.valbin0 -> 1090 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg4.valbin0 -> 473 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg5.valbin0 -> 550 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg6.valbin0 -> 483 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg7.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg8.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg9.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/PKCS7.asn343
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/modified_x420/p7_signed_data.pem23
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn58
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Constants.asn688
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Containers.asn197
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-IEs.asn4127
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn9234
-rwxr-xr-xlib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn916
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/p_record.asn1config1
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/p_record.set.asn1
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/subdir/MySO.asn14
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/subdir/subsubdir/.gitignore0
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/DialoguePDUs.asn80
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn186
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-BS-Code.asn126
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn438
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn198
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn612
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-DialogueInformation.asn149
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn405
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Errors.asn507
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn65
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn122
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn72
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn533
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn103
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn2458
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn506
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn62
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn91
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Protocol.asn176
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn217
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-Code.asn183
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn337
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn98
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn78
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn155
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn295
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-TS-Code.asn87
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MobileDomainDefinitions.asn38
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn167
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn127
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn99
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TC-Notation-Extensions.asn87
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Examples.asn72
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Tools.asn47
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAPMessages.asn149
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/UnidialoguePDUs.asn26
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/test_records.erl87
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/testobj.erl1443
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ACSE-1.asn253
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Coding-Attributes.asn17
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Presentation-Attributes.asn125
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Profile-Attributes.asn54
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Colour-Attributes.asn192
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DOR-definition.asn134
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DSAOperationalAttributeTypes.asn186
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Default-Value-Lists.asn143
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAccessProtocol.asn162
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryInformationShadowProtocol.asn246
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn117
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingTypes.asn26
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryProtectionMappings.asn70
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryShadowAbstractService.asn324
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DirectorySystemProtocol.asn118
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/DistributedOperations.asn181
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Document-Profile-Descriptor.asn464
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/EnhancedSecurity.asn363
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/External-References.asn49
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/GULSProtectionMappings.asn71
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/GenericProtectingTransferSyntax.asn66
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn16
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn265
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn44
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityExchanges.asn79
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityTransformations.asn212
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/HierarchicalOperationalBindings.asn123
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAbstractService.asn148
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAutoActionTypes.asn234
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn102
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn37
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn39
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFileTransferBodyPartType.asn253
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn53
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn41
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFunctionalObjects.asn47
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSHeadingExtensions.asn246
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSInformationObjects.asn626
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSMessageStoreAttributes.asn1120
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers.asn507
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers2.asn33
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSSecurityExtensions.asn143
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSUpperBounds.asn46
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn459
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ISO8571-FTAM.asn1453
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ISO9541-SN.asn51
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Identifiers-and-Expressions.asn126
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Interchange-Data-Elements.asn57
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Layout-Descriptors.asn268
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Link-Descriptors.asn80
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Location-Expressions.asn338
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Logical-Descriptors.asn95
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MHSObjectIdentifiers.asn187
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn112
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSAbstractService.asn1085
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSAccessProtocol.asn259
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAttributeTypes.asn830
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAutoActionTypes.asn118
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSMatchingRules.asn225
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSObjectIdentifiers.asn322
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MSUpperBounds.asn77
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTAAbstractService.asn481
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService88.asn150
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAccessProtocol.asn321
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTSObjectIdentifiers.asn116
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Notation.asn244
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ObjectIdentifiers.asn46
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/OperationalBindingManagement.asn263
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7.asn342
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7BodyPartType.asn31
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Protected-Part-Descriptors.asn74
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/ProtocolObjectIdentifiers.asn140
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn75
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn92
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn76
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Reliable-Transfer-APDU.asn132
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn103
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn163
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn36
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects.asn123
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Realizations.asn81
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn95
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/SeseAPDUs.asn116
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/SpkmGssTokens.asn257
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Style-Descriptors.asn190
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Subprofiles.asn96
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Temporal-Relationships.asn92
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Text-Units.asn72
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/x420/Videotex-Coding-Attributes.asn30
-rw-r--r--lib/asn1/test/asn1_bin_particular_SUITE.erl.src2
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/AA1.asn13
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/AA2.asn1dbbin0 -> 5224 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BadEnumValue1.asn8
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BadTypeEnding.asn6
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment1.asn18
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment2.asn18
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueSet.asn19
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/BitStr.py56
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/CCSNARG3.asn345
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Certificate.asn0
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Cho.py27
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExtension.asn144
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExternal.asn140
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptional.asn135
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptionalImplicitTag.asn135
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoPrim.asn120
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoRecursive.asn130
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefCho.asn144
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefPrim.asn134
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSeq.asn137
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSet.asn137
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceBadExtension.asn127
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceInSeq.asn22
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceIndef.asn24
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Comment.asn21
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/CommonDataTypes.py4360
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Constraints.py84
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Constructed.asn23
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ContextSwitchingTypes.asn153
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/DERSpec.asn38
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py150
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Def.asn131
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Def.py31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Default.asn158
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/DoubleEllipses.asn99
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ELDAPv3.asn291
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-InterNodeDefinitions.asn123
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-RRC-Definitions.asn2640
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-UE-Variables.asn49
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-55.asn47
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-7407.asn1109
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Enum.py46
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EnumExt.asn128
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/EnumerationBadExtension.asn120
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ErrorClass.asn15
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Example.asn120
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Export1.asn7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/External.asn1132
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/From.py15
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/H235-SECURITY-MESSAGES.asn170
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/H323-MESSAGES.asn1341
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/IMP.asn17
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/IN-CS-1-Datatypes.asn1630
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/INAPv2extract.asn112
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/INSTANCEOF.asn134
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/IllegalExport.asn17
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Import.py14
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ImportsFrom.asn117
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/InfClass.asn56
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj.asn153
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj2.asn156
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Int.py12
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/LDAP.asn1283
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/M1.asn24
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/M2.asn29
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-ExtensionDataTypes.asn37
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-commonDataTypes.py31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-insertSubscriberData-def.py102
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn975
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MS.set.asn2
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn3084
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MissingEnd.asn15
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod.set.asn5
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod1.asn18
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod2.asn43
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod3.asn33
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod4.asn33
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mod5.asn37
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-4.asn675
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-6.asn1776
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-4.asn66
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-6.asn352
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-4.asn42
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-6.asn202
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-17-4.asn100
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-4.asn215
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-6.asn515
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-4.asn53
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-6.asn109
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-4.asn54
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-6.asn147
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-21-4.asn66
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-Constants-1.asn85
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-DataTypes-1.asn454
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn.set.asn7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn4.set.asn10
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn6.set.asn7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/MyMerge.set.asn2
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/NoImport.asn14
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/Nortel.asn592
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Null.py22
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn950
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.asn1config2
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.set.asn5
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ObjIdValues.asn166
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Objects.asn61
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Octetstr.py15
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/One.py52
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/OpenType.asn112
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/OpenTypeImplicitTag.asn19
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.asn131
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.py31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1config1
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1dbbin0 -> 3128 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.erl244
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.hrl17
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.py59
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA1.asn29
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA2.asn33
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA3.asn40
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/P.py19
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PDUs.py325
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Algorithms88.asn1274
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit88.asn1619
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit93.asn1779
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit88.asn1349
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit93.asn1357
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PKIXAttributeCertificate.asn1189
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Param.asn193
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ParamBasic.asn123
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn19
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn1config3
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn34
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn1config22
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn29
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn1config4
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn45
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn1config2
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Pattern.asn8
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Person.py10
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Prim.asn132
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PrimExternal.asn139
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/PrimStrings.asn197
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-CommonDataTypes.asn145
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Constants.asn1355
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Containers.asn1206
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-IEs.asn12081
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Contents.asn13383
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Descriptions.asn1619
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP.asn13237
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPSET.set.asn16
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPextract1.asn142
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ROSE.asn1449
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Real.py31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1203
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Information-Objects.asn1130
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Merged.set.asn13
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Useful-Definitions.asn1149
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-CommonDataTypes.asn35
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Constants.asn251
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Containers.asn201
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-IEs.asn1178
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Contents.asn2083
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Descriptions.asn548
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SOpttest.asn30
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SSL-PKIX.asn1704
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SelectionType.asn59
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Seq.py152
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Seq2738.asn137
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqDefault.asn177
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExtension.asn137
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExternal.asn168
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.asn165
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.py45
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfEnum.asn111
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional.asn186
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional2.asn90
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqPrim.asn119
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetIndefinite.asn41
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetLib.py32
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTag.asn148
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefCho.asn128
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefPrim.asn148
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSeq.asn1113
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSet.asn139
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComma.asn10
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentName.asn110
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentType.asn110
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Set.py141
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetDefault.asn133
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetExtension.asn137
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetExternal.asn168
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.asn161
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.py42
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfCho.asn173
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfExternal.asn142
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfTag.asn165
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetOptional.asn177
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetPrim.asn120
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetTag.asn147
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefCho.asn127
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefPrim.asn129
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSeq.asn138
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSet.asn1110
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/String.py7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/SwCDR.py213
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Syntax.py10
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages-simple.asn206
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages.asn98
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn271
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn1config12
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage_msg.erl141
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TConstr.asn195
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/TConstrChoice.asn1175
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Time.py7
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Tst.py153
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/Two.py34
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/UPERDefault.asn18
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/UndefType.py14
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/UpperBounds.asn89
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/ValueTest.asn53
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/XSeq.py42
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/XSeqOf.py19
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/XSet.py47
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/XSetOf.py12
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/a_SeqIn.erl31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/b_SeqIn.erl29
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg1.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg10.valbin0 -> 893 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg11.valbin0 -> 854 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg12.valbin0 -> 538 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg13.valbin0 -> 1156 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg14.valbin0 -> 878 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg15.valbin0 -> 1542 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg16.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg17.valbin0 -> 957 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg18.valbin0 -> 402 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg19.valbin0 -> 476 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg2.valbin0 -> 1032 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg20.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg21.valbin0 -> 474 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg22.valbin0 -> 329 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg23.valbin0 -> 691 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg24.valbin0 -> 452 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg25.valbin0 -> 1552 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg3.valbin0 -> 1090 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg4.valbin0 -> 473 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg5.valbin0 -> 550 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg6.valbin0 -> 483 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg7.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg8.valbin0 -> 326 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg9.valbin0 -> 331 bytes
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/PKCS7.asn343
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/p7_signed_data.pem23
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn58
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Constants.asn688
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Containers.asn197
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-IEs.asn4127
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn9234
-rwxr-xr-xlib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn916
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.asn1config1
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.set.asn1
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/MySO.asn14
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/subsubdir/.gitignore0
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/DialoguePDUs.asn80
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn186
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-BS-Code.asn126
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn438
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn198
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn612
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-DialogueInformation.asn149
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn405
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Errors.asn507
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn65
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn122
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn72
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn533
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn103
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn2458
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn506
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn62
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn91
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Protocol.asn176
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn217
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-Code.asn183
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn337
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn98
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn78
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn155
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn295
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-TS-Code.asn87
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MobileDomainDefinitions.asn38
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn167
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn127
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn99
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TC-Notation-Extensions.asn87
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Examples.asn72
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Tools.asn47
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAPMessages.asn149
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/UnidialoguePDUs.asn26
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/test_records.erl87
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl1443
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ACSE-1.asn253
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/AuthenticationFramework.asn290
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/BasicAccessControl.asn184
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/CertificateExtensions.asn498
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Coding-Attributes.asn17
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Presentation-Attributes.asn125
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Profile-Attributes.asn54
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Colour-Attributes.asn192
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DOR-definition.asn134
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DSAOperationalAttributeTypes.asn186
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Default-Value-Lists.asn143
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAbstractService.asn710
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAccessProtocol.asn162
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryInformationShadowProtocol.asn246
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn117
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingTypes.asn26
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryProtectionMappings.asn70
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryShadowAbstractService.asn324
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectorySystemProtocol.asn118
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DistributedOperations.asn181
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Document-Profile-Descriptor.asn464
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/EnhancedSecurity.asn363
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/External-References.asn49
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GULSProtectionMappings.asn71
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GenericProtectingTransferSyntax.asn66
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn16
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn265
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn44
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityExchanges.asn79
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityTransformations.asn212
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/HierarchicalOperationalBindings.asn123
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAbstractService.asn148
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAutoActionTypes.asn234
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn102
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn37
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn39
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFileTransferBodyPartType.asn253
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn53
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn41
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFunctionalObjects.asn47
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSHeadingExtensions.asn246
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSInformationObjects.asn626
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSMessageStoreAttributes.asn1120
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers.asn507
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers2.asn33
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSSecurityExtensions.asn143
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSUpperBounds.asn46
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn459
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO8571-FTAM.asn1453
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO9541-SN.asn51
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Identifiers-and-Expressions.asn126
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/InformationFramework.asn868
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Interchange-Data-Elements.asn57
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Layout-Descriptors.asn268
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Link-Descriptors.asn80
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Location-Expressions.asn338
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Logical-Descriptors.asn95
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSObjectIdentifiers.asn187
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn112
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAbstractService.asn1085
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAccessProtocol.asn259
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAttributeTypes.asn830
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAutoActionTypes.asn118
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSMatchingRules.asn225
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSObjectIdentifiers.asn322
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSUpperBounds.asn77
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTAAbstractService.asn481
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService.asn2366
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService88.asn150
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAccessProtocol.asn321
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSObjectIdentifiers.asn116
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSUpperBounds.asn146
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Notation.asn244
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ObjectIdentifiers.asn46
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/OperationalBindingManagement.asn263
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7.asn342
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7BodyPartType.asn31
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Protected-Part-Descriptors.asn74
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ProtocolObjectIdentifiers.asn140
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn75
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn92
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn76
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Reliable-Transfer-APDU.asn132
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn103
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn163
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn36
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects.asn123
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Realizations.asn81
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn95
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SelectedAttributeTypes.asn1466
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SeseAPDUs.asn116
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SpkmGssTokens.asn257
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Style-Descriptors.asn190
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Subprofiles.asn96
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Temporal-Relationships.asn92
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Text-Units.asn72
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UpperBounds.asn89
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UsefulDefinitions.asn238
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Videotex-Coding-Attributes.asn30
-rw-r--r--lib/asn1/test/asn1_bin_v2_particular_SUITE.erl.src95
-rw-r--r--lib/asn1/test/asn1_common_SUITE.erl.src98
-rw-r--r--lib/asn1/test/asn1_particular_SUITE.erl.src10
-rw-r--r--lib/asn1/test/asn1_test_lib.erl151
-rw-r--r--lib/asn1/test/asn1_wrapper.erl74
-rw-r--r--lib/asn1/test/bench/README109
-rw-r--r--lib/asn1/test/bench/RanapASN1.asn3146
-rw-r--r--lib/asn1/test/bench/all.erl98
-rw-r--r--lib/asn1/test/bench/bench.erl454
-rw-r--r--lib/asn1/test/bench/bench.hrl24
-rw-r--r--lib/asn1/test/bench/per_bm.erl650
-rw-r--r--lib/asn1/test/ber_decode_error.erl56
-rw-r--r--lib/asn1/test/choice_extension.erl37
-rw-r--r--lib/asn1/test/h323test.erl172
-rw-r--r--lib/asn1/test/testChoExtension.erl76
-rw-r--r--lib/asn1/test/testChoExternal.erl99
-rw-r--r--lib/asn1/test/testChoOptional.erl113
-rw-r--r--lib/asn1/test/testChoOptionalImplicitTag.erl113
-rw-r--r--lib/asn1/test/testChoPrim.erl115
-rw-r--r--lib/asn1/test/testChoRecursive.erl76
-rw-r--r--lib/asn1/test/testChoTypeRefCho.erl78
-rw-r--r--lib/asn1/test/testChoTypeRefPrim.erl95
-rw-r--r--lib/asn1/test/testChoTypeRefSeq.erl115
-rw-r--r--lib/asn1/test/testChoTypeRefSet.erl116
-rw-r--r--lib/asn1/test/testChoiceIndefinite.erl55
-rw-r--r--lib/asn1/test/testCompactBitString.erl279
-rw-r--r--lib/asn1/test/testConstraints.erl159
-rw-r--r--lib/asn1/test/testContextSwitchingTypes.erl83
-rw-r--r--lib/asn1/test/testDER.erl59
-rw-r--r--lib/asn1/test/testDeepTConstr.erl107
-rw-r--r--lib/asn1/test/testDef.erl128
-rw-r--r--lib/asn1/test/testDoubleEllipses.erl112
-rw-r--r--lib/asn1/test/testEnumExt.erl95
-rw-r--r--lib/asn1/test/testExternal.erl35
-rw-r--r--lib/asn1/test/testINSTANCE_OF.erl89
-rw-r--r--lib/asn1/test/testInfObj.erl104
-rw-r--r--lib/asn1/test/testInfObjectClass.erl67
-rw-r--r--lib/asn1/test/testMegaco.erl191
-rw-r--r--lib/asn1/test/testMergeCompile.erl184
-rw-r--r--lib/asn1/test/testMvrasn6.erl44
-rw-r--r--lib/asn1/test/testNBAPsystem.erl357
-rw-r--r--lib/asn1/test/testOpenTypeImplicitTag.erl52
-rw-r--r--lib/asn1/test/testOpt.erl130
-rw-r--r--lib/asn1/test/testParamBasic.erl99
-rw-r--r--lib/asn1/test/testParameterizedInfObj.erl114
-rw-r--r--lib/asn1/test/testPrim.erl695
-rw-r--r--lib/asn1/test/testPrimExternal.erl118
-rw-r--r--lib/asn1/test/testPrimStrings.erl936
-rw-r--r--lib/asn1/test/testRANAP.erl52
-rw-r--r--lib/asn1/test/testROSE.erl36
-rw-r--r--lib/asn1/test/testSSLspecs.erl179
-rw-r--r--lib/asn1/test/testSelectionTypes.erl45
-rw-r--r--lib/asn1/test/testSeq2738.erl53
-rw-r--r--lib/asn1/test/testSeqDefault.erl190
-rw-r--r--lib/asn1/test/testSeqExtension.erl108
-rw-r--r--lib/asn1/test/testSeqExternal.erl140
-rw-r--r--lib/asn1/test/testSeqIndefinite.erl63
-rw-r--r--lib/asn1/test/testSeqOf.erl242
-rw-r--r--lib/asn1/test/testSeqOfCho.erl159
-rw-r--r--lib/asn1/test/testSeqOfExternal.erl171
-rw-r--r--lib/asn1/test/testSeqOfIndefinite.erl329
-rw-r--r--lib/asn1/test/testSeqOfTag.erl201
-rw-r--r--lib/asn1/test/testSeqOptional.erl206
-rw-r--r--lib/asn1/test/testSeqPrim.erl94
-rw-r--r--lib/asn1/test/testSeqSetDefaultVal.erl345
-rw-r--r--lib/asn1/test/testSeqTag.erl114
-rw-r--r--lib/asn1/test/testSeqTypeRefCho.erl54
-rw-r--r--lib/asn1/test/testSeqTypeRefPrim.erl57
-rw-r--r--lib/asn1/test/testSeqTypeRefSeq.erl186
-rw-r--r--lib/asn1/test/testSeqTypeRefSet.erl76
-rw-r--r--lib/asn1/test/testSetDefault.erl94
-rw-r--r--lib/asn1/test/testSetExtension.erl106
-rw-r--r--lib/asn1/test/testSetExternal.erl140
-rw-r--r--lib/asn1/test/testSetIndefinite.erl55
-rw-r--r--lib/asn1/test/testSetOf.erl235
-rw-r--r--lib/asn1/test/testSetOfCho.erl159
-rw-r--r--lib/asn1/test/testSetOfExternal.erl171
-rw-r--r--lib/asn1/test/testSetOfTag.erl201
-rw-r--r--lib/asn1/test/testSetOptional.erl218
-rw-r--r--lib/asn1/test/testSetPrim.erl95
-rw-r--r--lib/asn1/test/testSetTag.erl114
-rw-r--r--lib/asn1/test/testSetTypeRefCho.erl54
-rw-r--r--lib/asn1/test/testSetTypeRefPrim.erl57
-rw-r--r--lib/asn1/test/testSetTypeRefSeq.erl76
-rw-r--r--lib/asn1/test/testSetTypeRefSet.erl186
-rw-r--r--lib/asn1/test/testTCAP.erl103
-rw-r--r--lib/asn1/test/testTcapsystem.erl72
-rw-r--r--lib/asn1/test/testTimer.erl222
-rw-r--r--lib/asn1/test/testTypeValueNotation.erl78
-rw-r--r--lib/asn1/test/testX420.erl114
-rw-r--r--lib/asn1/test/test_bad_values.erl29
-rw-r--r--lib/asn1/test/test_compile_options.erl169
-rw-r--r--lib/asn1/test/test_driver_load.erl58
-rw-r--r--lib/asn1/test/test_inline.erl285
-rw-r--r--lib/asn1/test/test_modified_x420.erl67
-rw-r--r--lib/asn1/test/test_partial_incomplete_decode.erl253
-rw-r--r--lib/asn1/test/test_selective_decode.erl65
-rw-r--r--lib/asn1/test/test_special_decode_performance.erl165
-rw-r--r--lib/asn1/test/test_undecoded_rest.erl65
-rw-r--r--lib/asn1/test/test_x691.erl227
-rw-r--r--lib/asn1/vsn.mk9
1369 files changed, 348428 insertions, 105 deletions
diff --git a/lib/asn1/src/Restrictions.txt b/lib/asn1/src/Restrictions.txt
index 73b725245d..ed5ac6181e 100644
--- a/lib/asn1/src/Restrictions.txt
+++ b/lib/asn1/src/Restrictions.txt
@@ -1,10 +1,12 @@
The following restrictions apply to this implementation of the ASN.1 compiler:
-Supported encoding rules are:
-BER
-PER (aligned)
+The ASN.1 2002 standard is not fully supported because there has been no need for that.
+It seems as if most ASN.1 specifications are still using the 1998 standard or older.
-PER (unaligned) IS NOT SUPPORTED
+Supported encoding rules are:
+BER, DER
+PER ALIGNED
+PER UNALIGNED
Supported types are:
@@ -49,7 +51,7 @@ Files with ASN.1 source must have a suffix .asn1 the suffix .py used by the
old ASN.1 compiler is supported in this version but will not be supported in the future.
Generated files:
-X.asn1db % the intermediate format of a compiled ASN.1 module
+X.asn1db % the intermediate format of a compiled ASN.1 module ,only used by the ASN.1 compiler.
X.hrl % generated Erlang include file for module X
X.erl % generated Erlang module with encode decode functions for
% ASN.1 module X
diff --git a/lib/asn1/src/asn1ct_check.erl b/lib/asn1/src/asn1ct_check.erl
index f0a48a086b..54a5c7e727 100644
--- a/lib/asn1/src/asn1ct_check.erl
+++ b/lib/asn1/src/asn1ct_check.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%
@@ -5416,9 +5416,12 @@ instance_of_constraints(S,#constraint{c={simpletable,Type}}) ->
%% assign values to un-numbered identifiers
%% check that the constraints are allowed and correct
%% put the updated info back into database
-check_enumerated(_S,[{Name,Number}|Rest],_Constr) when is_atom(Name), is_integer(Number)->
+check_enumerated(_S,[{Name,Number}|_Rest]= NNList,_Constr) when is_atom(Name), is_integer(Number)->
%% already checked , just return the same list
- [{Name,Number}|Rest];
+ NNList;
+check_enumerated(_S,{[{Name,Number}|_Rest],L}= NNList,_Constr) when is_atom(Name), is_integer(Number), is_list(L)->
+ %% already checked , contains extension marker, just return the same lists
+ NNList;
check_enumerated(S,NamedNumberList,_Constr) ->
check_enum(S,NamedNumberList,[],[],[]).
@@ -5568,14 +5571,14 @@ expand_components2(_S,{_,#typedef{typespec=#type{def=Seq}}})
case Seq#'SEQUENCE'.components of
{R1,_Ext,R2} -> R1 ++ R2;
{Root,_Ext} -> Root;
- Root -> Root
+ Root -> take_only_rootset(Root)
end;
expand_components2(_S,{_,#typedef{typespec=#type{def=Set}}})
when is_record(Set,'SET') ->
case Set#'SET'.components of
{R1,_Ext,R2} -> R1 ++ R2;
{Root,_Ext} -> Root;
- Root -> Root
+ Root -> take_only_rootset(Root)
end;
expand_components2(_S,{_,#typedef{typespec=RefType=#type{def=#'Externaltypereference'{}}}}) ->
[{'COMPONENTS OF',RefType}];
@@ -5591,6 +5594,12 @@ expand_components2(S,{_,ERef}) when is_record(ERef,'Externaltypereference') ->
expand_components2(_S,Err) ->
throw({error,{asn1,{illegal_COMPONENTS_OF,Err}}}).
+take_only_rootset([])->
+ [];
+take_only_rootset([#'EXTENSIONMARK'{}|_T])->
+ [];
+take_only_rootset([H|T]) ->
+ [H|take_only_rootset(T)].
check_unique_sequence_tags(S,[#'ComponentType'{prop=mandatory}|Rest]) ->
check_unique_sequence_tags(S,Rest);
@@ -5885,8 +5894,8 @@ check_relative_oid(_S,_Constr) ->
% - that each alternative is of a valid type
% - that the extension marks are valid
check_choice(S,Type,Components) when is_list(Components) ->
- case check_unique([C||C <- Components,
- is_record(C,'ComponentType')],#'ComponentType'.name) of
+ Components1 = [C||C = #'ComponentType'{} <- Components],
+ case check_unique(Components1,#'ComponentType'.name) of
[] ->
%% sort_canonical(Components),
Components2 = maybe_automatic_tags(S,Components),
@@ -5927,13 +5936,13 @@ maybe_automatic_tags(S,C) ->
%% Pos == 1 for Root1, 2 for Ext, 3 for Root2
tag_nums(Cl) ->
tag_nums(Cl,0,0).
-tag_nums([{'EXTENSIONMARK',_,_}|Rest],Ext,Root2) ->
+tag_nums([#'EXTENSIONMARK'{}|Rest],Ext,Root2) ->
tag_nums_ext(Rest,Ext,Root2);
tag_nums([_|Rest],Ext,Root2) ->
tag_nums(Rest,Ext+1,Root2+1);
tag_nums([],Ext,Root2) ->
[0,Ext,Root2].
-tag_nums_ext([{'EXTENSIONMARK',_,_}|Rest],Ext,Root2) ->
+tag_nums_ext([#'EXTENSIONMARK'{}|Rest],Ext,Root2) ->
tag_nums_root2(Rest,Ext,Root2);
tag_nums_ext([_|Rest],Ext,Root2) ->
tag_nums_ext(Rest,Ext,Root2);
@@ -5983,7 +5992,7 @@ generate_automatic_tags1([],_) ->
any_manual_tag([#'ComponentType'{typespec=#type{tag=[]}}|Rest]) ->
any_manual_tag(Rest);
-any_manual_tag([{'EXTENSIONMARK',_,_}|Rest]) ->
+any_manual_tag([#'EXTENSIONMARK'{}|Rest]) ->
any_manual_tag(Rest);
any_manual_tag([_|_Rest]) ->
true;
diff --git a/lib/asn1/src/asn1ct_parser2.erl b/lib/asn1/src/asn1ct_parser2.erl
index 9d2df72f5b..46d7ad6fdb 100644
--- a/lib/asn1/src/asn1ct_parser2.erl
+++ b/lib/asn1/src/asn1ct_parser2.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2000-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2000-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%
@@ -74,8 +74,9 @@ parse_ModuleDefinition([{typereference,L1,ModuleIdentifier}|Rest0]) ->
{ExtensionDefault,Rest3} =
case Rest2 of
[{'EXTENSIBILITY',_L5}, {'IMPLIED',_L6}|Rest21] ->
- {'IMPLIED',Rest21};
- _ -> {false,Rest2}
+ put(extensiondefault,'IMPLIED'),{'IMPLIED',Rest21};
+ _ ->
+ put(extensiondefault,undefined),{undefined,Rest2}
end,
case Rest3 of
[{'::=',_L7}, {'BEGIN',_L8}|Rest4] ->
@@ -416,7 +417,7 @@ parse_BuiltinType([{'CHARACTER',_},{'STRING',_}|Rest]) ->
{#type{def='CHARACTER STRING'},Rest};
parse_BuiltinType([{'CHOICE',_},{'{',_}|Rest]) ->
- {AlternativeTypeLists,Rest2} = parse_AlternativeTypeLists(Rest),
+ {AlternativeTypeLists,Rest2} = parse_AlternativeTypeLists(Rest,get(extensiondefault)),
case Rest2 of
[{'}',_}|Rest3] ->
{#type{def={'CHOICE',AlternativeTypeLists}},Rest3};
@@ -427,7 +428,7 @@ parse_BuiltinType([{'CHOICE',_},{'{',_}|Rest]) ->
parse_BuiltinType([{'EMBEDDED',_},{'PDV',_}|Rest]) ->
{#type{def='EMBEDDED PDV'},Rest};
parse_BuiltinType([{'ENUMERATED',_},{'{',_}|Rest]) ->
- {Enumerations,Rest2} = parse_Enumerations(Rest),
+ {Enumerations,Rest2} = parse_Enumerations(Rest,get(extensiondefault)),
case Rest2 of
[{'}',_}|Rest3] ->
{#type{def={'ENUMERATED',Enumerations}},Rest3};
@@ -490,7 +491,8 @@ parse_BuiltinType([{'SEQUENCE',_},{'{',_},{'...',Line},{'!',_}|Rest]) ->
ExceptionIdentification}]}},
Rest3};
_ ->
- {ComponentTypeLists,Rest3}=parse_ComponentTypeLists2(Rest2,[#'EXTENSIONMARK'{pos=Line}]),
+ {ComponentTypeLists,Rest3}=
+ parse_ComponentTypeLists2(Rest2,[#'EXTENSIONMARK'{pos=Line}]),
case Rest3 of
[{'}',_}|Rest4] ->
{#type{def=#'SEQUENCE'{components=ComponentTypeLists}},Rest4};
@@ -506,11 +508,29 @@ parse_BuiltinType([{'SEQUENCE',_},{'{',_}|Rest]) ->
{ComponentTypeLists,Rest2} = parse_ComponentTypeLists(Rest),
case Rest2 of
[{'}',_}|Rest3] ->
- {#type{def=#'SEQUENCE'{components=ComponentTypeLists}},Rest3};
+ ComponentTypeLists2 =
+ case {[Ext||Ext = #'EXTENSIONMARK'{} <- ComponentTypeLists],
+ get(extensiondefault)} of
+ {[],'IMPLIED'} -> ComponentTypeLists ++ [#'EXTENSIONMARK'{}];
+ _ -> ComponentTypeLists
+ end,
+ {#type{def=#'SEQUENCE'{components = ComponentTypeLists2}},
+ Rest3};
_ ->
throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
[got,get_token(hd(Rest2)),expected,'}']}})
end;
+
+parse_BuiltinType([{'SEQUENCE',_},{'OF',_},Id={identifier,_,_},Lt={'<',_}|Rest]) ->
+%% TODO: take care of the identifier for something useful
+ {Type,Rest2} = parse_SelectionType([Id,Lt|Rest]),
+ {#type{def={'SEQUENCE OF',#type{def=Type,tag=[]}}},Rest2};
+
+parse_BuiltinType([{'SEQUENCE',_},{'OF',_},{identifier,_,_} |Rest]) ->
+%% TODO: take care of the identifier for something useful
+ {Type,Rest2} = parse_Type(Rest),
+ {#type{def={'SEQUENCE OF',Type}},Rest2};
+
parse_BuiltinType([{'SEQUENCE',_},{'OF',_}|Rest]) ->
{Type,Rest2} = parse_Type(Rest),
{#type{def={'SEQUENCE OF',Type}},Rest2};
@@ -533,11 +553,30 @@ parse_BuiltinType([{'SET',_},{'{',_}|Rest]) ->
{ComponentTypeLists,Rest2} = parse_ComponentTypeLists(Rest),
case Rest2 of
[{'}',_}|Rest3] ->
- {#type{def=#'SET'{components=ComponentTypeLists}},Rest3};
+ ComponentTypeLists2 =
+ case {[Ext||Ext = #'EXTENSIONMARK'{} <- ComponentTypeLists],
+ get(extensiondefault)} of
+ {[],'IMPLIED'} -> ComponentTypeLists ++ [#'EXTENSIONMARK'{}];
+ _ -> ComponentTypeLists
+ end,
+ {#type{def=#'SET'{components = ComponentTypeLists2}},
+ Rest3};
_ ->
throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
[got,get_token(hd(Rest2)),expected,'}']}})
end;
+
+parse_BuiltinType([{'SET',_},{'OF',_},Id={identifier,_,_},Lt={'<',_}|Rest]) ->
+%% TODO: take care of the identifier for something useful
+ {Type,Rest2} = parse_SelectionType([Id,Lt|Rest]),
+ {#type{def={'SET OF',#type{def=Type,tag=[]}}},Rest2};
+
+
+parse_BuiltinType([{'SET',_},{'OF',_},{identifier,_,_}|Rest]) ->
+%%TODO: take care of the identifier for something useful
+ {Type,Rest2} = parse_Type(Rest),
+ {#type{def={'SET OF',Type}},Rest2};
+
parse_BuiltinType([{'SET',_},{'OF',_}|Rest]) ->
{Type,Rest2} = parse_Type(Rest),
{#type{def={'SET OF',Type}},Rest2};
@@ -563,48 +602,74 @@ parse_BuiltinType(Tokens) ->
parse_TypeWithConstraint([{'SEQUENCE',_},Lpar = {'(',_}|Rest]) ->
{Constraint,Rest2} = parse_Constraint([Lpar|Rest]),
- case Rest2 of
- [{'OF',_}|Rest3] ->
- {Type,Rest4} = parse_Type(Rest3),
- {#type{def = {'SEQUENCE OF',Type}, constraint = merge_constraints([Constraint])},Rest4};
- _ ->
- throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
- [got,get_token(hd(Rest2)),expected,'OF']}})
- end;
+ Rest4 = case Rest2 of
+ [{'OF',_}, {identifier,_,_Id}|Rest3] ->
+%%% TODO: make some use of the identifier, maybe useful in the XML mapping
+ Rest3;
+ [{'OF',_}|Rest3] ->
+ Rest3;
+ _ ->
+ throw({asn1_error,
+ {get_line(hd(Rest2)),get(asn1_module),
+ [got,get_token(hd(Rest2)),expected,'OF']}})
+ end,
+ {Type,Rest5} = parse_Type(Rest4),
+ {#type{def = {'SEQUENCE OF',Type},
+ constraint = merge_constraints([Constraint])},Rest5};
+
parse_TypeWithConstraint([{'SEQUENCE',_},{'SIZE',_},Lpar = {'(',_}|Rest]) ->
{Constraint,Rest2} = parse_Constraint([Lpar|Rest]),
#constraint{c=C} = Constraint,
Constraint2 = Constraint#constraint{c={'SizeConstraint',C}},
- case Rest2 of
- [{'OF',_}|Rest3] ->
- {Type,Rest4} = parse_Type(Rest3),
- {#type{def = {'SEQUENCE OF',Type}, constraint = merge_constraints([Constraint2])},Rest4};
- _ ->
- throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
- [got,get_token(hd(Rest2)),expected,'OF']}})
- end;
+ Rest4 = case Rest2 of
+ [{'OF',_}, {identifier,_,_Id}|Rest3] ->
+%%% TODO: make some use of the identifier, maybe useful in the XML mapping
+ Rest3;
+ [{'OF',_}|Rest3] ->
+ Rest3;
+ _ ->
+ throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
+ [got,get_token(hd(Rest2)),expected,'OF']}})
+ end,
+ {Type,Rest5} = parse_Type(Rest4),
+ {#type{def = {'SEQUENCE OF',Type}, constraint = merge_constraints([Constraint2])},Rest5};
+
parse_TypeWithConstraint([{'SET',_},Lpar = {'(',_}|Rest]) ->
{Constraint,Rest2} = parse_Constraint([Lpar|Rest]),
- case Rest2 of
- [{'OF',_}|Rest3] ->
- {Type,Rest4} = parse_Type(Rest3),
- {#type{def = {'SET OF',Type}, constraint = merge_constraints([Constraint])},Rest4};
- _ ->
- throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
- [got,get_token(hd(Rest2)),expected,'OF']}})
- end;
+ Rest4 = case Rest2 of
+ [{'OF',_}, {identifier,_,_Id}|Rest3] ->
+%%% TODO: make some use of the identifier, maybe useful in the XML mapping
+ Rest3;
+ [{'OF',_}|Rest3] ->
+ Rest3;
+ _ ->
+ throw({asn1_error,
+ {get_line(hd(Rest2)),get(asn1_module),
+ [got,get_token(hd(Rest2)),expected,'OF']}})
+ end,
+ {Type,Rest5} = parse_Type(Rest4),
+ {#type{def = {'SET OF',Type},
+ constraint = merge_constraints([Constraint])},Rest5};
+
parse_TypeWithConstraint([{'SET',_},{'SIZE',_},Lpar = {'(',_}|Rest]) ->
{Constraint,Rest2} = parse_Constraint([Lpar|Rest]),
#constraint{c=C} = Constraint,
Constraint2 = Constraint#constraint{c={'SizeConstraint',C}},
- case Rest2 of
- [{'OF',_}|Rest3] ->
- {Type,Rest4} = parse_Type(Rest3),
- {#type{def = {'SET OF',Type}, constraint = merge_constraints([Constraint2])},Rest4};
- _ ->
- throw({asn1_error,{get_line(hd(Rest2)),get(asn1_module),
- [got,get_token(hd(Rest2)),expected,'OF']}})
- end;
+ Rest4 = case Rest2 of
+ [{'OF',_}, {identifier,_,_Id}|Rest3] ->
+%%% TODO: make some use of the identifier, maybe useful in the XML mapping
+ Rest3;
+ [{'OF',_}|Rest3] ->
+ Rest3;
+ _ ->
+ throw({asn1_error,
+ {get_line(hd(Rest2)),get(asn1_module),
+ [got,get_token(hd(Rest2)),expected,'OF']}})
+ end,
+ {Type,Rest5} = parse_Type(Rest4),
+ {#type{def = {'SET OF',Type},
+ constraint = merge_constraints([Constraint2])},Rest5};
+
parse_TypeWithConstraint(Tokens) ->
throw({asn1_error,{get_line(hd(Tokens)),get(asn1_module),
[got,get_token(hd(Tokens)),expected,
@@ -2259,8 +2324,8 @@ to_set(V) ->
ordsets:from_list([V]).
-parse_AlternativeTypeLists(Tokens) ->
- {AlternativeTypeList,Rest1} = parse_AlternativeTypeList(Tokens),
+parse_AlternativeTypeLists(Tokens,ExtensionDefault) ->
+ {AltTypeList,Rest1} = parse_AlternativeTypeList(Tokens),
{ExtensionAndException,Rest2} =
case Rest1 of
[{',',_},{'...',L1},{'!',_}|Rest12] ->
@@ -2272,26 +2337,36 @@ parse_AlternativeTypeLists(Tokens) ->
_ ->
{[],Rest1}
end,
- case ExtensionAndException of
- [] ->
- {AlternativeTypeList,Rest2};
- _ ->
- {ExtensionAddition,Rest3} =
- case Rest2 of
- [{',',_}|Rest23] ->
- parse_ExtensionAdditionAlternativeList(Rest23);
- _ ->
- {[],Rest2}
- end,
- {OptionalExtensionMarker,Rest4} =
- case Rest3 of
- [{',',_},{'...',L3}|Rest31] ->
- {[#'EXTENSIONMARK'{pos=L3}],Rest31};
- _ ->
- {[],Rest3}
- end,
- {AlternativeTypeList ++ ExtensionAndException ++ ExtensionAddition ++ OptionalExtensionMarker, Rest4}
- end.
+ {AltTypeList2,Rest5} =
+ case ExtensionAndException of
+ [] ->
+ {AltTypeList,Rest2};
+ _ ->
+ {ExtensionAddition,Rest3} =
+ case Rest2 of
+ [{',',_}|Rest23] ->
+ parse_ExtensionAdditionAlternativeList(Rest23);
+ _ ->
+ {[],Rest2}
+ end,
+ {OptionalExtensionMarker,Rest4} =
+ case Rest3 of
+ [{',',_},{'...',L3}|Rest31] ->
+ {[#'EXTENSIONMARK'{pos=L3}],Rest31};
+ _ ->
+ {[],Rest3}
+ end,
+ {AltTypeList ++ ExtensionAndException ++
+ ExtensionAddition ++ OptionalExtensionMarker, Rest4}
+ end,
+ AltTypeList3 =
+ case [X || X=#'EXTENSIONMARK'{} <- AltTypeList2] of
+ [] when ExtensionDefault == 'IMPLIED' ->
+ AltTypeList2 ++ [#'EXTENSIONMARK'{}];
+ _ ->
+ AltTypeList2
+ end,
+ {AltTypeList3,Rest5}.
parse_AlternativeTypeList(Tokens) ->
@@ -2512,35 +2587,39 @@ parse_SignedNumber(Tokens) ->
[got,get_token(hd(Tokens)),expected,
[number,'-number']]}}).
-parse_Enumerations(Tokens=[{identifier,_,_}|_Rest]) ->
- parse_Enumerations(Tokens,[]);
-parse_Enumerations([H|_T]) ->
+parse_Enumerations(Tokens=[{identifier,_,_}|_Rest],ExtensionDefault) ->
+ parse_Enumerations(Tokens,[],ExtensionDefault);
+parse_Enumerations([H|_T],_) ->
throw({asn1_error,{get_line(H),get(asn1_module),
[got,get_token(H),expected,identifier]}}).
-parse_Enumerations(Tokens = [{identifier,_,_},{'(',_}|_Rest], Acc) ->
+parse_Enumerations(Tokens = [{identifier,_,_},{'(',_}|_Rest], Acc, ExtensionDefault) ->
{NamedNumber,Rest2} = parse_NamedNumber(Tokens),
case Rest2 of
[{',',_}|Rest3] ->
- parse_Enumerations(Rest3,[NamedNumber|Acc]);
+ parse_Enumerations(Rest3,[NamedNumber|Acc], ExtensionDefault);
+ _ when ExtensionDefault == 'IMPLIED'->
+ {lists:reverse(['EXTENSIONMARK',NamedNumber|Acc]),Rest2};
_ ->
{lists:reverse([NamedNumber|Acc]),Rest2}
end;
-parse_Enumerations([{identifier,_,Id}|Rest], Acc) ->
+parse_Enumerations([{identifier,_,Id}|Rest], Acc, ExtensionDefault) ->
case Rest of
[{',',_}|Rest2] ->
- parse_Enumerations(Rest2,[Id|Acc]);
+ parse_Enumerations(Rest2,[Id|Acc], ExtensionDefault);
+ _ when ExtensionDefault == 'IMPLIED' ->
+ {lists:reverse(['EXTENSIONMARK', Id |Acc]),Rest};
_ ->
{lists:reverse([Id|Acc]),Rest}
end;
-parse_Enumerations([{'...',_}|Rest], Acc) ->
+parse_Enumerations([{'...',_}|Rest], Acc, _ExtensionDefault) ->
case Rest of
[{',',_}|Rest2] ->
- parse_Enumerations(Rest2,['EXTENSIONMARK'|Acc]);
+ parse_Enumerations(Rest2,['EXTENSIONMARK'|Acc],undefined);
_ ->
{lists:reverse(['EXTENSIONMARK'|Acc]),Rest}
end;
-parse_Enumerations([H|_T],_) ->
+parse_Enumerations([H|_T],_,_) ->
throw({asn1_error,{get_line(H),get(asn1_module),
[got,get_token(H),expected,identifier]}}).
@@ -2915,6 +2994,7 @@ merge_constraints([],Cacc,Eacc) ->
%% lists:flatten(Cacc) ++ [{'Errors',Eacc}].
lists:reverse(Cacc) ++ [{'Errors',Eacc}].
+
fixup_constraint(C) ->
case C of
{'SingleValue',SubType} when element(1,SubType) == 'ContainedSubtype' ->
diff --git a/lib/asn1/src/asn1ct_tok.erl b/lib/asn1/src/asn1ct_tok.erl
index 27116c46c5..f0ce31bdb2 100644
--- a/lib/asn1/src/asn1ct_tok.erl
+++ b/lib/asn1/src/asn1ct_tok.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
%%
@@ -327,7 +327,7 @@ reserved_word('COMPONENTS') -> true;
reserved_word('CONSTRAINED') -> true;
reserved_word('CONTAINING') -> true;
reserved_word('DEFAULT') -> true;
-reserved_word('DEFINED') -> true;
+reserved_word('DEFINED') -> true; % not present in X.680 07/2002
reserved_word('DEFINITIONS') -> true;
reserved_word('EMBEDDED') -> true;
reserved_word('ENCODED') -> true;
@@ -336,6 +336,7 @@ reserved_word('ENUMERATED') -> true;
reserved_word('EXCEPT') -> true;
reserved_word('EXPLICIT') -> true;
reserved_word('EXPORTS') -> true;
+reserved_word('EXTENSIBILITY') -> true;
reserved_word('EXTERNAL') -> true;
reserved_word('FALSE') -> true;
reserved_word('FROM') -> true;
@@ -343,9 +344,9 @@ reserved_word('GeneralizedTime') -> true;
reserved_word('GeneralString') -> rstrtype;
reserved_word('GraphicString') -> rstrtype;
reserved_word('IA5String') -> rstrtype;
-% reserved_word('TYPE-IDENTIFIER') -> true; % impl as predef item
reserved_word('IDENTIFIER') -> true;
reserved_word('IMPLICIT') -> true;
+reserved_word('IMPLIED') -> true;
reserved_word('IMPORTS') -> true;
reserved_word('INCLUDES') -> true;
reserved_word('INSTANCE') -> true;
@@ -379,6 +380,7 @@ reserved_word('T61String') -> rstrtype;
reserved_word('TAGS') -> true;
reserved_word('TeletexString') -> rstrtype;
reserved_word('TRUE') -> true;
+%% reserved_word('TYPE-IDENTIFIER') -> true; % impl as predef item
reserved_word('UNION') -> true;
reserved_word('UNIQUE') -> true;
reserved_word('UNIVERSAL') -> true;
diff --git a/lib/asn1/test/External.hrl b/lib/asn1/test/External.hrl
new file mode 100644
index 0000000000..8818fac488
--- /dev/null
+++ b/lib/asn1/test/External.hrl
@@ -0,0 +1,42 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%% Generated by the Erlang ASN.1 compiler version:0.8.1
+%% Purpose: Erlang record definitions for each named and unnamed
+%% SEQUENCE and SET in module External
+
+-record('XSeq1',{bool1, int1, seq1}).
+-record('XSeqIn',{boolIn, intIn}).
+-record('XSet1',{bool1, int1, set1}).
+-record('XSetIn',{boolIn, intIn}).
+-record('XSetExt1',{asn1_EXT}).
+-record('XSetExt2',{bool, int, asn1_EXT}).
+-record('XSetExt3',{asn1_EXT, bool, int}).
+-record('XSetExt4',{bool, asn1_EXT, int}).
+-record('XSeqExt1',{asn1_EXT}).
+-record('XSeqExt2',{bool, int, asn1_EXT}).
+-record('XSeqExt3',{asn1_EXT, bool, int}).
+-record('XSeqExt4',{bool, asn1_EXT, int}).
+-record('XSetNT',{os, bool}).
+-record('XSetImp',{os, bool}).
+-record('XSetExp',{os, bool}).
+-record('XSeqNT',{os, bool}).
+-record('XSeqImp',{os, bool}).
+-record('XSeqExp',{os, bool}).
+
diff --git a/lib/asn1/test/Makefile b/lib/asn1/test/Makefile
new file mode 100644
index 0000000000..d91b77dfc5
--- /dev/null
+++ b/lib/asn1/test/Makefile
@@ -0,0 +1,212 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-2009. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+MODULES= \
+ h323test \
+ choice_extension \
+ ber_decode_error \
+ testExternal \
+ testPrim \
+ testPrimStrings \
+ testCompactBitString \
+ testPrimExternal \
+ testChoPrim \
+ testChoExtension \
+ testChoExternal \
+ testChoOptional \
+ testChoOptionalImplicitTag \
+ testChoRecursive \
+ testChoTypeRefCho \
+ testChoTypeRefPrim \
+ testChoTypeRefSeq \
+ testChoTypeRefSet \
+ testConstraints \
+ testDef \
+ testOpt \
+ testSeqDefault \
+ testSeqExtension \
+ testSeqExternal \
+ testSeqOptional \
+ testSeq2738 \
+ testSeqPrim \
+ testSeqTag \
+ testSeqTypeRefCho \
+ testSeqTypeRefPrim \
+ testSeqTypeRefSeq \
+ testSeqTypeRefSet \
+ testSeqIndefinite \
+ testSeqOf \
+ testSeqOfIndefinite \
+ testSeqOfCho \
+ testSeqOfExternal \
+ testSeqOfTag \
+ testSetDefault \
+ testSetExtension \
+ testSetExternal \
+ testSetOptional \
+ testSetPrim \
+ testSetTag \
+ testSetTypeRefCho \
+ testSetTypeRefPrim \
+ testSetTypeRefSeq \
+ testSetTypeRefSet \
+ testSetIndefinite \
+ testChoiceIndefinite \
+ testSetOf \
+ testSetOfCho \
+ testSetOfExternal \
+ testSetOfTag \
+ testEnumExt \
+ testInfObjectClass \
+ testInfObj \
+ testParameterizedInfObj \
+ testMergeCompile \
+ testDeepTConstr \
+ testTimer \
+ testRANAP \
+ testMegaco \
+ testMvrasn6 \
+ testSeqSetDefaultVal \
+ testParamBasic \
+ testContextSwitchingTypes \
+ testTypeValueNotation \
+ testOpenTypeImplicitTag \
+ testROSE \
+ testINSTANCE_OF \
+ test_partial_incomplete_decode \
+ testDER \
+ test_selective_decode \
+ test_special_decode_performance \
+ testTCAP \
+ testSSLspecs \
+ test_driver_load \
+ testSelectionTypes \
+ test_undecoded_rest \
+ test_inline \
+ testTcapsystem \
+ testNBAPsystem \
+ test_bad_values \
+ test_compile_options \
+ testDoubleEllipses \
+ test_modified_x420 \
+ testX420 \
+ test_x691 \
+ asn1_test_lib \
+ asn1_app_test \
+ asn1_appup_test \
+ asn1_wrapper \
+ asn1_SUITE \
+ asn1_bin_SUITE \
+ asn1_bin_v2_SUITE
+
+SUITE= asn1_SUITE.erl
+SUITE_BIN= asn1_bin_SUITE.erl
+SUITE_BIN_V2= asn1_bin_v2_SUITE.erl
+SUITE_SRC= asn1_SUITE.erl.src
+SUITE_BIN_SRC= asn1_bin_SUITE.erl.src
+SUITE_BIN_V2_SRC= asn1_bin_SUITE.erl.src
+
+ERL_FILES= $(MODULES:%=%.erl)
+
+HRL_FILES= External.hrl
+
+TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+
+INSTALL_PROGS= $(TARGET_FILES)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/asn1_test
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/test_server/include \
+ -I$(ERL_TOP)/lib/kernel/include
+
+EBIN = .
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+
+tests debug opt: $(TARGET_FILES) $(SUITE) $(SUITE_BIN) $(SUITE_BIN_V2)
+
+clean:
+ rm -f $(TARGET_FILES) $(SUITE) $(SUITE_BIN) $(SUITE_BIN_V2)
+ rm -f core
+
+docs:
+
+#-----------------------------------------------------
+# Special Targets
+#-----------------------------------------------------
+$(SUITE): $(SUITE_SRC)
+ sed -e 's;%BIN%;;' -e 's;%PER%;per;' -e 's;%BER%;ber;' $< > $@
+ cat asn1_common_SUITE.erl.src >> $@
+ cat asn1_particular_SUITE.erl.src >> $@
+
+
+$(SUITE_BIN): $(SUITE_SRC)
+ sed -e 's;%BIN%;bin_;' -e 's;%PER%;per_bin;' -e 's;%BER%;ber_bin;' $< > $@
+ echo "common() -> []." >> $@
+ cat asn1_bin_particular_SUITE.erl.src >> $@
+
+$(SUITE_BIN_V2): $(SUITE_SRC)
+ sed -e 's;%BIN%;bin_v2_;' -e 's;%PER%;per_bin;' -e 's;%BER%;ber_bin_v2;' $< > $@
+ echo "common() -> []." >> $@
+ cat asn1_bin_v2_particular_SUITE.erl.src >> $@
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+
+release_tests_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)
+ $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(RELSYSDIR)
+ $(INSTALL_DATA) asn1.spec $(INSTALL_PROGS) $(RELSYSDIR)
+ chmod -f -R u+w $(RELSYSDIR)
+ @tar cfh - *_SUITE_data | (cd $(RELSYSDIR); tar xf -)
+
+release_docs_spec:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1.spec b/lib/asn1/test/asn1.spec
new file mode 100644
index 0000000000..6d9ae924fa
--- /dev/null
+++ b/lib/asn1/test/asn1.spec
@@ -0,0 +1,3 @@
+{topcase, {dir, "../asn1_test"}}.
+
+
diff --git a/lib/asn1/test/asn1_SUITE.erl.src b/lib/asn1/test/asn1_SUITE.erl.src
new file mode 100644
index 0000000000..53a5cc5284
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE.erl.src
@@ -0,0 +1,2358 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%%% Purpose : Test suite for the ASN.1 application
+
+-module(asn1_%BIN%SUITE).
+-define(PER,'%PER%').
+-define(BER,'%BER%').
+-define(ber_driver(Erule,Func),
+ case Erule of
+ ber_bin_v2 ->
+ Func;
+ _ -> ok
+ end).
+-define(per_optimize(Erule),
+ case Erule of
+ ber_bin_v2 ->[optimize];
+ _ -> []
+ end).
+-define(per_bit_opt(FuncCall),
+ case ?BER of
+ ber_bin_v2 -> FuncCall;
+% _ -> {skip,"only for bit optimized per_bin"}
+ _ -> ok
+ end).
+-define(uper_bin(FuncCall),
+ case ?PER of
+ per -> FuncCall;
+ _ -> ok
+ end).
+
+-compile(export_all).
+%%-export([Function/Arity, ...]).
+
+-include("test_server.hrl").
+
+%% records used by test-case default
+-record('Def1',{
+bool0, bool1 = asn1_DEFAULT, bool2 = asn1_DEFAULT, bool3 = asn1_DEFAULT}).
+
+%-record('Def2',{
+%bool10, bool11 = asn1_DEFAULT, bool12 = asn1_DEFAULT, bool13}).
+
+%-record('Def3',{
+%bool30 = asn1_DEFAULT, bool31 = asn1_DEFAULT, bool32 = asn1_DEFAULT, bool33 = asn1_DEFAULT}).
+
+
+
+all(suite) -> [compile,parse,default_per,default_ber,default_per_opt,per,
+ ber,testPrim,
+ testPrimStrings, testPrimExternal, testChoPrim,
+ testChoExtension, testChoExternal, testChoOptional,
+ testChoOptionalImplicitTag, testChoRecursive,
+ testChoTypeRefCho, testChoTypeRefPrim, testChoTypeRefSeq,
+ testChoTypeRefSet, testDef, testOpt, testSeqDefault,
+ testSeqExtension, testSeqExternal, testSeqOptional,
+ testSeqPrim, testSeqTag, testSeqTypeRefCho,
+ testSeqTypeRefPrim, testSeqTypeRefSeq, testSeqTypeRefSet,
+ testSeqOf, testSeqOfIndefinite, testSeqOfCho,
+ testSeqOfExternal, testSetDefault, testSetExtension,
+ testSetExternal, testSeqOfTag, testSetOptional, testSetPrim,
+ testSetTag, testSetTypeRefCho, testSetTypeRefPrim,
+ testSetTypeRefSeq, testSetTypeRefSet, testSetOf, testSetOfCho,
+ testSetOfExternal, testSetOfTag, testEnumExt, value_test,
+ testSeq2738, constructed, ber_decode_error,
+ h323test, testSeqIndefinite, testSetIndefinite,
+ testChoiceIndefinite,
+ per_GeneralString, per_open_type, testInfObjectClass,
+ testParameterizedInfObj, testMergeCompile, testobj,
+ testDeepTConstr, testConstraints,
+ testInvokeMod, testExport, testImport, testCompactBitString,
+ testMegaco, testParamBasic, testMvrasn6,
+ testContextSwitchingTypes, testTypeValueNotation,
+ testOpenTypeImplicitTag,duplicate_tags,rtUI,testROSE,
+ testINSTANCE_OF,testTCAP,testDER,specialized_decodes,
+ special_decode_performance,test_driver_load,
+ test_ParamTypeInfObj, test_WS_ParamClass,
+ test_Defed_ObjectIdentifier, testSelectionType,
+ testSSLspecs, testNortel,test_undecoded_rest,
+ test_inline, testTcapsystem, testNBAPsystem,
+ test_compile_options,testDoubleEllipses, test_modified_x420,
+ testX420, test_x691,ticket_6143
+ ] ++ common() ++ particular().
+
+%all(suite) -> [test_inline,testNBAPsystem,test_compile_options,ticket_6143].
+
+option_tests(suite) ->
+ [test_compile_options,ticket_6143].
+
+infobj(suite) ->
+ [testInfObjectClass, testParameterizedInfObj, testMergeCompile,
+ testobj, testDeepTConstr].
+
+performance(suite) ->
+ [testTimer_ber, testTimer_ber_opt_driver,
+ testTimer_per, testTimer_per_opt, testTimer_uper_bin].
+
+bugs(suite) ->
+ [test_ParamTypeInfObj, test_WS_ParamClass,test_Defed_ObjectIdentifier].
+
+init_per_testcase(Func,Config) ->
+ %%?line test_server:format("Func: ~p~n",[Func]),
+ ?line {ok, _} = file:read_file_info(filename:join([?config(priv_dir,Config)])),
+ ?line code:add_patha(?config(priv_dir,Config)),
+ Dog=
+ case Func of
+ testX420 ->
+ test_server:timetrap({minutes,60}); % 60 minutes
+ _ ->
+ test_server:timetrap({minutes,30}) % 60 minutes
+ end,
+%% Dog=test_server:timetrap(1800000), % 30 minutes
+ [{watchdog, Dog}|Config].
+
+fin_per_testcase(_Func,Config) ->
+ Dog=?config(watchdog, Config),
+ test_server:timetrap_cancel(Dog).
+
+
+testPrim(suite) -> [];
+testPrim(Config) ->
+ ?line testPrim:compile(Config,?BER,[]),
+ ?line testPrim_cases(?BER),
+ ?line ?ber_driver(?BER,testPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testPrim_cases(?BER)),
+ ?line testPrim:compile(Config,?PER,[]),
+ ?line testPrim_cases(?PER),
+ ?line ?per_bit_opt(testPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testPrim_cases(?PER)),
+ ?line ?uper_bin(testPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testPrim_cases(uper_bin)),
+ ?line testPrim:compile(Config,?PER,[optimize]),
+ ?line testPrim_cases(?PER).
+
+testPrim_cases(Rules) ->
+ ?line testPrim:bool(Rules),
+ ?line testPrim:int(Rules),
+ ?line testPrim:enum(Rules),
+ ?line testPrim:obj_id(Rules),
+ ?line testPrim:rel_oid(Rules),
+ ?line testPrim:null(Rules),
+ ?line testPrim:real(Rules).
+
+
+testCompactBitString(suite) -> [];
+testCompactBitString(Config) ->
+
+ ?line testCompactBitString:compile(Config,?BER,[compact_bit_string]),
+ ?line testCompactBitString:compact_bit_string(?BER),
+
+ ?line ?ber_driver(?BER,testCompactBitString:compile(Config,?BER,[compact_bit_string,driver])),
+ ?line ?ber_driver(?BER,testCompactBitString:compact_bit_string(?BER)),
+
+ ?line testCompactBitString:compile(Config,?PER,[compact_bit_string]),
+ ?line testCompactBitString:compact_bit_string(?PER),
+ ?line testCompactBitString:bit_string_unnamed(?PER),
+
+ ?line ?per_bit_opt(testCompactBitString:compile(Config,?PER,
+ [compact_bit_string,optimize])),
+ ?line ?per_bit_opt(testCompactBitString:compact_bit_string(?PER)),
+ ?line ?per_bit_opt(testCompactBitString:bit_string_unnamed(?PER)),
+ ?line ?per_bit_opt(testCompactBitString:ticket_7734(?PER)),
+
+ ?line ?uper_bin(testCompactBitString:compile(Config,uper_bin,
+ [compact_bit_string])),
+ ?line ?uper_bin(testCompactBitString:compact_bit_string(uper_bin)),
+ ?line ?uper_bin(testCompactBitString:bit_string_unnamed(uper_bin)),
+
+ ?line testCompactBitString:compile(Config,?PER,[optimize,compact_bit_string]),
+ ?line testCompactBitString:compact_bit_string(?PER),
+ ?line testCompactBitString:bit_string_unnamed(?PER),
+
+ ?line testCompactBitString:otp_4869(?PER).
+
+
+testPrimStrings(suite) -> [];
+testPrimStrings(Config) ->
+
+ ?line testPrimStrings:compile(Config,?BER,[]),
+ ?line testPrimStrings_cases(?BER),
+ ?line testPrimStrings:more_strings(?BER), %% these are not implemented in per yet
+ ?line ?ber_driver(?BER,testPrimStrings:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testPrimStrings_cases(?BER)),
+ ?line ?ber_driver(?BER,testPrimStrings:more_strings(?BER)),
+
+ ?line testPrimStrings:compile(Config,?PER,[]),
+ ?line testPrimStrings_cases(?PER),
+
+ ?line ?per_bit_opt(testPrimStrings:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testPrimStrings_cases(?PER)),
+
+ ?line ?uper_bin(testPrimStrings:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testPrimStrings_cases(uper_bin)),
+
+ ?line testPrimStrings:compile(Config,?PER,[optimize]),
+ ?line testPrimStrings_cases(?PER).
+
+testPrimStrings_cases(Rules) ->
+ ?line testPrimStrings:bit_string(Rules),
+ ?line testPrimStrings:bit_string_unnamed(Rules),
+ ?line testPrimStrings:octet_string(Rules),
+ ?line testPrimStrings:numeric_string(Rules),
+ ?line testPrimStrings:other_strings(Rules),
+ ?line testPrimStrings:universal_string(Rules),
+ ?line testPrimStrings:bmp_string(Rules),
+ ?line testPrimStrings:times(Rules),
+ ?line testPrimStrings:utf8_string(Rules).
+
+
+
+testPrimExternal(suite) -> [];
+testPrimExternal(Config) ->
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testPrimExternal:compile(Config,?BER,[]),
+ ?line testPrimExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testPrimExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testPrimExternal_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testPrimExternal:compile(Config,?PER,[]),
+ ?line testPrimExternal_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testPrimExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testPrimExternal_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testPrimExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testPrimExternal_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testPrimExternal:compile(Config,?PER,[optimize]),
+ ?line testPrimExternal_cases(?PER).
+
+testPrimExternal_cases(Rules) ->
+ ?line testPrimExternal:external(Rules).
+
+
+
+
+testChoPrim(suite) -> [];
+testChoPrim(Config) ->
+
+ ?line testChoPrim:compile(Config,?BER,[]),
+ ?line testChoPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoPrim_cases(?BER)),
+
+ ?line testChoPrim:compile(Config,?PER,[]),
+ ?line testChoPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testChoPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoPrim_cases(?PER)),
+
+ ?line ?uper_bin(testChoPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoPrim_cases(uper_bin)),
+
+ ?line testChoPrim:compile(Config,?PER,[optimize]),
+ ?line testChoPrim_cases(?PER).
+
+testChoPrim_cases(Rules) ->
+ ?line testChoPrim:bool(Rules),
+ ?line testChoPrim:int(Rules).
+
+
+
+testChoExtension(suite) -> [];
+testChoExtension(Config) ->
+
+ ?line testChoExtension:compile(Config,?BER,[]),
+ ?line testChoExtension_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoExtension:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoExtension_cases(?BER)),
+
+ ?line testChoExtension:compile(Config,?PER,[]),
+ ?line testChoExtension_cases(?PER),
+
+ ?line ?per_bit_opt(testChoExtension:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoExtension_cases(?PER)),
+
+ ?line ?uper_bin(testChoExtension:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoExtension_cases(uper_bin)),
+
+ ?line testChoExtension:compile(Config,?PER,[optimize]),
+ ?line testChoExtension_cases(?PER).
+
+testChoExtension_cases(Rules) ->
+ ?line testChoExtension:extension(Rules).
+
+
+
+testChoExternal(suite) -> [];
+testChoExternal(Config) ->
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testChoExternal:compile(Config,?BER,[]),
+ ?line testChoExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoExternal_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testChoExternal:compile(Config,?PER,[]),
+ ?line testChoExternal_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoExternal_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoExternal_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testChoExternal:compile(Config,?PER,[optimize]),
+ ?line testChoExternal_cases(?PER).
+
+
+testChoExternal_cases(Rules) ->
+ ?line testChoExternal:external(Rules).
+
+
+
+testChoOptional(suite) -> [];
+testChoOptional(Config) ->
+
+ ?line testChoOptional:compile(Config,?BER,[]),
+ ?line testChoOptional_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoOptional:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoOptional_cases(?BER)),
+
+ ?line testChoOptional:compile(Config,?PER,[]),
+ ?line testChoOptional_cases(?PER),
+
+ ?line ?per_bit_opt(testChoOptional:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoOptional_cases(?PER)),
+
+ ?line ?uper_bin(testChoOptional:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoOptional_cases(uper_bin)),
+
+ ?line testChoOptional:compile(Config,?PER,[optimize]),
+ ?line testChoOptional_cases(?PER).
+
+testChoOptional_cases(Rules) ->
+ ?line testChoOptional:optional(Rules).
+
+testChoOptionalImplicitTag(suite) -> [];
+testChoOptionalImplicitTag(Config) ->
+ %% Only meaningful for ?BER
+ ?line testChoOptionalImplicitTag:compile(Config,?BER),
+ ?line testChoOptionalImplicitTag:optional(?BER).
+
+
+testChoRecursive(suite) -> [];
+testChoRecursive(Config) ->
+
+ ?line testChoRecursive:compile(Config,?BER,[]),
+ ?line testChoRecursive_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoRecursive:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoRecursive_cases(?BER)),
+
+ ?line testChoRecursive:compile(Config,?PER,[]),
+ ?line testChoRecursive_cases(?PER),
+
+ ?line ?per_bit_opt(testChoRecursive:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoRecursive_cases(?PER)),
+
+ ?line ?uper_bin(testChoRecursive:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoRecursive_cases(uper_bin)),
+
+ ?line testChoRecursive:compile(Config,?PER,[optimize]),
+ ?line testChoRecursive_cases(?PER).
+
+testChoRecursive_cases(Rules) ->
+ ?line testChoRecursive:recursive(Rules).
+
+
+
+testChoTypeRefCho(suite) -> [];
+testChoTypeRefCho(Config) ->
+
+ ?line testChoTypeRefCho:compile(Config,?BER,[]),
+ ?line testChoTypeRefCho_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoTypeRefCho:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoTypeRefCho_cases(?BER)),
+
+ ?line testChoTypeRefCho:compile(Config,?PER,[]),
+ ?line testChoTypeRefCho_cases(?PER),
+
+ ?line ?per_bit_opt(testChoTypeRefCho:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoTypeRefCho_cases(?PER)),
+
+ ?line ?uper_bin(testChoTypeRefCho:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoTypeRefCho_cases(uper_bin)),
+
+ ?line testChoTypeRefCho:compile(Config,?PER,[optimize]),
+ ?line testChoTypeRefCho_cases(?PER).
+
+testChoTypeRefCho_cases(Rules) ->
+ ?line testChoTypeRefCho:choice(Rules).
+
+
+
+testChoTypeRefPrim(suite) -> [];
+testChoTypeRefPrim(Config) ->
+
+ ?line testChoTypeRefPrim:compile(Config,?BER,[]),
+ ?line testChoTypeRefPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoTypeRefPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoTypeRefPrim_cases(?BER)),
+
+ ?line testChoTypeRefPrim:compile(Config,?PER,[]),
+ ?line testChoTypeRefPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testChoTypeRefPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoTypeRefPrim_cases(?PER)),
+
+ ?line ?uper_bin(testChoTypeRefPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoTypeRefPrim_cases(uper_bin)),
+
+ ?line testChoTypeRefPrim:compile(Config,?PER,[optimize]),
+ ?line testChoTypeRefPrim_cases(?PER).
+
+testChoTypeRefPrim_cases(Rules) ->
+ ?line testChoTypeRefPrim:prim(Rules).
+
+
+
+testChoTypeRefSeq(suite) -> [];
+testChoTypeRefSeq(Config) ->
+
+ ?line testChoTypeRefSeq:compile(Config,?BER,[]),
+ ?line testChoTypeRefSeq_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoTypeRefSeq:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoTypeRefSeq_cases(?BER)),
+
+ ?line testChoTypeRefSeq:compile(Config,?PER,[]),
+ ?line testChoTypeRefSeq_cases(?PER),
+
+ ?line ?per_bit_opt(testChoTypeRefSeq:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoTypeRefSeq_cases(?PER)),
+
+ ?line ?uper_bin(testChoTypeRefSeq:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoTypeRefSeq_cases(uper_bin)),
+
+ ?line testChoTypeRefSeq:compile(Config,?PER,[optimize]),
+ ?line testChoTypeRefSeq_cases(?PER).
+
+testChoTypeRefSeq_cases(Rules) ->
+ ?line testChoTypeRefSeq:seq(Rules).
+
+
+
+testChoTypeRefSet(suite) -> [];
+testChoTypeRefSet(Config) ->
+
+ ?line testChoTypeRefSet:compile(Config,?BER,[]),
+ ?line testChoTypeRefSet_cases(?BER),
+
+ ?line ?ber_driver(?BER,testChoTypeRefSet:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoTypeRefSet_cases(?BER)),
+
+ ?line testChoTypeRefSet:compile(Config,?PER,[]),
+ ?line testChoTypeRefSet_cases(?PER),
+
+ ?line ?per_bit_opt(testChoTypeRefSet:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testChoTypeRefSet_cases(?PER)),
+
+ ?line ?uper_bin(testChoTypeRefSet:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testChoTypeRefSet_cases(uper_bin)),
+
+ ?line testChoTypeRefSet:compile(Config,?PER,[optimize]),
+ ?line testChoTypeRefSet_cases(?PER).
+
+testChoTypeRefSet_cases(Rules) ->
+ ?line testChoTypeRefSet:set(Rules).
+
+
+
+testDef(suite) -> [];
+testDef(Config) ->
+
+ ?line testDef:compile(Config,?BER,[]),
+ ?line testDef_cases(?BER),
+
+ ?line ?ber_driver(?BER,testDef:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testDef_cases(?BER)),
+
+ ?line testDef:compile(Config,?PER,[]),
+ ?line testDef_cases(?PER),
+
+ ?line ?per_bit_opt(testDef:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testDef_cases(?PER)),
+
+ ?line ?uper_bin(testDef:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testDef_cases(uper_bin)),
+
+ ?line testDef:compile(Config,?PER,[optimize]),
+ ?line testDef_cases(?PER).
+
+testDef_cases(Rules) ->
+ ?line testDef:main(Rules).
+
+
+
+testOpt(suite) -> [];
+testOpt(Config) ->
+
+ ?line testOpt:compile(Config,?BER),
+ ?line testOpt_cases(?BER),
+
+ ?line testOpt:compile(Config,?PER),
+ ?line testOpt_cases(?PER).
+
+testOpt_cases(Rules) ->
+ ?line testOpt:main(Rules).
+
+
+testEnumExt(suite) -> [];
+testEnumExt(Config) ->
+
+ ?line testEnumExt:compile(Config,?BER,[]),
+ ?line testEnumExt:main(?BER),
+
+ ?line ?ber_driver(?BER,testEnumExt:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testEnumExt:main(?BER)),
+
+ ?line testEnumExt:compile(Config,?PER,[]),
+ ?line testEnumExt:main(?PER),
+
+ ?line ?per_bit_opt(testEnumExt:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testEnumExt:main(?PER)),
+
+ ?line ?uper_bin(testEnumExt:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testEnumExt:main(uper_bin)),
+
+ ?line testEnumExt:compile(Config,?PER,[optimize]),
+ ?line testEnumExt:main(?PER).
+
+testSeqDefault(doc) -> ["Test of OTP-2523 ENUMERATED with extensionmark."];
+testSeqDefault(suite) -> [];
+testSeqDefault(Config) ->
+
+ ?line testSeqDefault:compile(Config,?BER,[]),
+ ?line testSeqDefault_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqDefault:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqDefault_cases(?BER)),
+
+ ?line testSeqDefault:compile(Config,?PER,[]),
+ ?line testSeqDefault_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqDefault:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqDefault_cases(?PER)),
+
+ ?line ?uper_bin(testSeqDefault:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqDefault_cases(uper_bin)),
+
+ ?line testSeqDefault:compile(Config,?PER,[optimize]),
+ ?line testSeqDefault_cases(?PER).
+
+testSeqDefault_cases(Rules) ->
+ ?line testSeqDefault:main(Rules).
+
+
+
+testSeqExtension(suite) -> [];
+testSeqExtension(Config) ->
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSeqExtension:compile(Config,?BER,[]),
+ ?line testSeqExtension_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqExtension:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqExtension_cases(?BER)).
+
+testSeqExtension_cases(Rules) ->
+ ?line testSeqExtension:main(Rules).
+
+
+
+testSeqExternal(suite) -> [];
+testSeqExternal(Config) ->
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSeqExternal:compile(Config,?BER,[]),
+ ?line testSeqExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqExternal_cases(?BER)).
+
+testSeqExternal_cases(Rules) ->
+ ?line testSeqExternal:main(Rules).
+
+
+testSeqOptional(suite) -> [];
+testSeqOptional(Config) ->
+
+ ?line testSeqOptional:compile(Config,?BER,[]),
+ ?line testSeqOptional_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqOptional:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOptional_cases(?BER)),
+
+ ?line testSeqOptional:compile(Config,?PER,[]),
+ ?line testSeqOptional_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqOptional:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOptional_cases(?PER)),
+
+ ?line ?uper_bin(testSeqOptional:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOptional_cases(uper_bin)),
+
+ ?line testSeqOptional:compile(Config,?PER,[optimize]),
+ ?line testSeqOptional_cases(?PER).
+
+testSeqOptional_cases(Rules) ->
+ ?line testSeqOptional:main(Rules).
+
+
+
+testSeqPrim(suite) -> [];
+testSeqPrim(Config) ->
+
+ ?line testSeqPrim:compile(Config,?BER,[]),
+ ?line testSeqPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqPrim_cases(?BER)),
+
+ ?line testSeqPrim:compile(Config,?PER,[]),
+ ?line testSeqPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqPrim_cases(?PER)),
+
+ ?line ?uper_bin(testSeqPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqPrim_cases(uper_bin)),
+
+ ?line testSeqPrim:compile(Config,?PER,[optimize]),
+ ?line testSeqPrim_cases(?PER).
+
+testSeqPrim_cases(Rules) ->
+ ?line testSeqPrim:main(Rules).
+
+
+testSeq2738(doc) -> ["Test of OTP-2738 Detect corrupt optional component."];
+testSeq2738(suite) -> [];
+testSeq2738(Config) ->
+
+ ?line testSeq2738:compile(Config,?BER,[]),
+ ?line testSeq2738_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeq2738:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeq2738_cases(?BER)),
+
+ ?line testSeq2738:compile(Config,?PER,[]),
+ ?line testSeq2738_cases(?PER),
+
+ ?line ?per_bit_opt(testSeq2738:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeq2738_cases(?PER)),
+
+ ?line ?uper_bin(testSeq2738:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeq2738_cases(uper_bin)),
+
+ ?line testSeq2738:compile(Config,?PER,[optimize]),
+ ?line testSeq2738_cases(?PER).
+
+testSeq2738_cases(Rules) ->
+ ?line testSeq2738:main(Rules).
+
+
+testSeqTag(suite) -> [];
+testSeqTag(Config) ->
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSeqTag:compile(Config,?BER,[]),
+ ?line testSeqTag_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTag:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTag_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSeqTag:compile(Config,?PER,[]),
+ ?line testSeqTag_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTag:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTag_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTag:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTag_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSeqTag:compile(Config,?PER,[optimize]),
+ ?line testSeqTag_cases(?PER).
+
+testSeqTag_cases(Rules) ->
+ ?line testSeqTag:main(Rules).
+
+
+
+
+testSeqTypeRefCho(suite) -> [];
+testSeqTypeRefCho(Config) ->
+
+ ?line testSeqTypeRefCho:compile(Config,?BER,[]),
+ ?line testSeqTypeRefCho_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqTypeRefCho:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTypeRefCho_cases(?BER)),
+
+ ?line testSeqTypeRefCho:compile(Config,?PER,[]),
+ ?line testSeqTypeRefCho_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqTypeRefCho:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTypeRefCho_cases(?PER)),
+
+ ?line ?uper_bin(testSeqTypeRefCho:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTypeRefCho_cases(uper_bin)),
+
+ ?line testSeqTypeRefCho:compile(Config,?PER,[optimize]),
+ ?line testSeqTypeRefCho_cases(?PER).
+
+testSeqTypeRefCho_cases(Rules) ->
+ ?line testSeqTypeRefCho:main(Rules).
+
+
+
+testSeqTypeRefPrim(suite) -> [];
+testSeqTypeRefPrim(Config) ->
+
+ ?line testSeqTypeRefPrim:compile(Config,?BER,[]),
+ ?line testSeqTypeRefPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqTypeRefPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTypeRefPrim_cases(?BER)),
+
+ ?line testSeqTypeRefPrim:compile(Config,?PER,[]),
+ ?line testSeqTypeRefPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqTypeRefPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTypeRefPrim_cases(?PER)),
+
+ ?line ?uper_bin(testSeqTypeRefPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTypeRefPrim_cases(uper_bin)),
+
+ ?line testSeqTypeRefPrim:compile(Config,?PER,[optimize]),
+ ?line testSeqTypeRefPrim_cases(?PER).
+
+testSeqTypeRefPrim_cases(Rules) ->
+ ?line testSeqTypeRefPrim:main(Rules).
+
+
+
+testSeqTypeRefSeq(suite) -> [];
+testSeqTypeRefSeq(Config) ->
+
+ ?line testSeqTypeRefSeq:compile(Config,?BER,[]),
+ ?line testSeqTypeRefSeq_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqTypeRefSeq:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTypeRefSeq_cases(?BER)),
+
+ ?line testSeqTypeRefSeq:compile(Config,?PER,[]),
+ ?line testSeqTypeRefSeq_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqTypeRefSeq:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTypeRefSeq_cases(?PER)),
+
+ ?line ?uper_bin(testSeqTypeRefSeq:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTypeRefSeq_cases(uper_bin)),
+
+ ?line testSeqTypeRefSeq:compile(Config,?PER,[optimize]),
+ ?line testSeqTypeRefSeq_cases(?PER).
+
+testSeqTypeRefSeq_cases(Rules) ->
+ ?line testSeqTypeRefSeq:main(Rules).
+
+
+
+testSeqTypeRefSet(suite) -> [];
+testSeqTypeRefSet(Config) ->
+
+ ?line testSeqTypeRefSet:compile(Config,?BER,[]),
+ ?line testSeqTypeRefSet_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqTypeRefSet:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqTypeRefSet_cases(?BER)),
+
+ ?line testSeqTypeRefSet:compile(Config,?PER,[]),
+ ?line testSeqTypeRefSet_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqTypeRefSet:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqTypeRefSet_cases(?PER)),
+
+ ?line ?uper_bin(testSeqTypeRefSet:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqTypeRefSet_cases(uper_bin)),
+
+ ?line testSeqTypeRefSet:compile(Config,?PER,[optimize]),
+ ?line testSeqTypeRefSet_cases(?PER).
+
+testSeqTypeRefSet_cases(Rules) ->
+ ?line testSeqTypeRefSet:main(Rules).
+
+
+
+
+testSeqOf(suite) -> [];
+testSeqOf(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSeqOf:compile(Config,?BER,[]),
+ ?line testSeqOf_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqOf:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOf_cases(?BER)),
+
+ ?line testSeqOf:compile(Config,?PER,[]),
+ ?line testSeqOf_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqOf:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOf_cases(?PER)),
+
+ ?line ?uper_bin(testSeqOf:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOf_cases(uper_bin)),
+
+ ?line testSeqOf:compile(Config,?PER,[optimize]),
+ ?line testSeqOf_cases(?PER).
+
+testSeqOf_cases(Rules) ->
+ ?line testSeqOf:main(Rules).
+
+
+
+
+testSeqOfCho(suite) -> [];
+testSeqOfCho(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSeqOfCho:compile(Config,?BER,[]),
+ ?line testSeqOfCho_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSeqOfCho:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfCho_cases(?BER)),
+
+ ?line testSeqOfCho:compile(Config,?PER,[]),
+ ?line testSeqOfCho_cases(?PER),
+
+ ?line ?per_bit_opt(testSeqOfCho:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOfCho_cases(?PER)),
+
+ ?line ?uper_bin(testSeqOfCho:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOfCho_cases(uper_bin)),
+
+ ?line testSeqOfCho:compile(Config,?PER,[optimize]),
+ ?line testSeqOfCho_cases(?PER).
+
+testSeqOfIndefinite(suite) -> [];
+testSeqOfIndefinite(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSeqOfIndefinite:compile(Config,?BER,[]),
+ ?line testSeqOfIndefinite:main(),
+
+ ?line ?ber_driver(?BER,testSeqOfIndefinite:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfIndefinite:main()).
+
+testSeqOfCho_cases(Rules) ->
+ ?line testSeqOfCho:main(Rules).
+
+
+testSeqOfExternal(suite) -> [];
+testSeqOfExternal(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSeqOfExternal:compile(Config,?BER,[]),
+ ?line testSeqOfExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfExternal_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSeqOfExternal:compile(Config,?PER,[]),
+ ?line testSeqOfExternal_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOfExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOfExternal_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOfExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOfExternal_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSeqOfExternal:compile(Config,?PER,[optimize]),
+ ?line testSeqOfExternal_cases(?PER).
+
+testSeqOfExternal_cases(Rules) ->
+ ?line testSeqOfExternal:main(Rules).
+
+
+
+testSeqOfTag(suite) -> [];
+testSeqOfTag(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSeqOfTag:compile(Config,?BER,[]),
+ ?line testSeqOfTag_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfTag:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqOfTag_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSeqOfTag:compile(Config,?PER,[]),
+ ?line testSeqOfTag_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOfTag:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSeqOfTag_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOfTag:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSeqOfTag_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSeqOfTag:compile(Config,?PER,[optimize]),
+ ?line testSeqOfTag_cases(?PER).
+
+testSeqOfTag_cases(Rules) ->
+ ?line testSeqOfTag:main(Rules).
+
+
+
+
+testSetDefault(suite) -> [];
+testSetDefault(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetDefault:compile(Config,?BER,[]),
+ ?line testSetDefault_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetDefault:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetDefault_cases(?BER)),
+
+ ?line testSetDefault:compile(Config,?PER,[]),
+ ?line testSetDefault_cases(?PER),
+
+ ?line ?per_bit_opt(testSetDefault:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetDefault_cases(?PER)),
+
+ ?line ?uper_bin(testSetDefault:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetDefault_cases(uper_bin)),
+
+ ?line testSetDefault:compile(Config,?PER,[optimize]),
+ ?line testSetDefault_cases(?PER).
+
+testSetDefault_cases(Rules) ->
+ ?line testSetDefault:main(Rules).
+
+
+testParamBasic(suite) -> [];
+testParamBasic(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testParamBasic:compile(Config,?BER,[]),
+ ?line testParamBasic_cases(?BER),
+
+ ?line ?ber_driver(?BER,testParamBasic:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testParamBasic_cases(?BER)),
+
+ ?line testParamBasic:compile(Config,?PER,[]),
+ ?line testParamBasic_cases(?PER),
+
+ ?line ?per_bit_opt(testParamBasic:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testParamBasic_cases(?PER)),
+
+ ?line ?uper_bin(testParamBasic:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testParamBasic_cases(uper_bin)),
+
+ ?line testParamBasic:compile(Config,?PER,[optimize]),
+ ?line testParamBasic_cases(?PER).
+
+
+testParamBasic_cases(Rules) ->
+ ?line testParamBasic:main(Rules).
+
+testSetExtension(suite) -> [];
+testSetExtension(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSetExtension:compile(Config,?BER,[]),
+ ?line testSetExtension_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetExtension:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetExtension_cases(?BER)).
+
+testSetExtension_cases(Rules) ->
+ ?line testSetExtension:main(Rules).
+
+
+
+testSetExternal(suite) -> [];
+testSetExternal(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSetExternal:compile(Config,?BER,[]),
+ ?line testSetExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetExternal_cases(?BER)).
+
+testSetExternal_cases(Rules) ->
+ ?line testSetExternal:main(Rules).
+
+
+testSetOptional(suite) -> [];
+testSetOptional(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetOptional:compile(Config,?BER,[]),
+ ?line testSetOptional_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetOptional:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOptional_cases(?BER)),
+
+ ?line testSetOptional:compile(Config,?PER,[]),
+ ?line testSetOptional_cases(?PER),
+
+ ?line ?per_bit_opt(testSetOptional:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOptional_cases(?PER)),
+
+ ?line ?uper_bin(testSetOptional:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOptional_cases(uper_bin)),
+
+ ?line testSetOptional:compile(Config,?PER,[optimize]),
+ ?line testSetOptional_cases(?PER).
+
+testSetOptional_cases(Rules) ->
+ ?line ok = testSetOptional:ticket_7533(Rules),
+ ?line ok = testSetOptional:main(Rules).
+
+
+
+
+testSetPrim(suite) -> [];
+testSetPrim(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetPrim:compile(Config,?BER,[]),
+ ?line testSetPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetPrim_cases(?BER)),
+
+ ?line testSetPrim:compile(Config,?PER,[]),
+ ?line testSetPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testSetPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetPrim_cases(?PER)),
+
+ ?line ?uper_bin(testSetPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetPrim_cases(uper_bin)),
+
+ ?line testSetPrim:compile(Config,?PER,[optimize]),
+ ?line testSetPrim_cases(?PER).
+
+testSetPrim_cases(Rules) ->
+ ?line testSetPrim:main(Rules).
+
+
+
+testSetTag(suite) -> [];
+testSetTag(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSetTag:compile(Config,?BER,[]),
+ ?line testSetTag_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTag:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTag_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSetTag:compile(Config,?PER,[]),
+ ?line testSetTag_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTag:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTag_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTag:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTag_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSetTag:compile(Config,?PER,[optimize]),
+ ?line testSetTag_cases(?PER).
+
+testSetTag_cases(Rules) ->
+ ?line testSetTag:main(Rules).
+
+
+
+testSetTypeRefCho(suite) -> [];
+testSetTypeRefCho(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetTypeRefCho:compile(Config,?BER,[]),
+ ?line testSetTypeRefCho_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetTypeRefCho:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTypeRefCho_cases(?BER)),
+
+ ?line testSetTypeRefCho:compile(Config,?PER,[]),
+ ?line testSetTypeRefCho_cases(?PER),
+
+ ?line ?per_bit_opt(testSetTypeRefCho:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTypeRefCho_cases(?PER)),
+
+ ?line ?uper_bin(testSetTypeRefCho:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTypeRefCho_cases(uper_bin)),
+
+ ?line testSetTypeRefCho:compile(Config,?PER,[optimize]),
+ ?line testSetTypeRefCho_cases(?PER).
+
+testSetTypeRefCho_cases(Rules) ->
+ ?line testSetTypeRefCho:main(Rules).
+
+
+
+testSetTypeRefPrim(suite) -> [];
+testSetTypeRefPrim(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetTypeRefPrim:compile(Config,?BER,[]),
+ ?line testSetTypeRefPrim_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetTypeRefPrim:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTypeRefPrim_cases(?BER)),
+
+ ?line testSetTypeRefPrim:compile(Config,?PER,[]),
+ ?line testSetTypeRefPrim_cases(?PER),
+
+ ?line ?per_bit_opt(testSetTypeRefPrim:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTypeRefPrim_cases(?PER)),
+
+ ?line ?uper_bin(testSetTypeRefPrim:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTypeRefPrim_cases(uper_bin)),
+
+ ?line testSetTypeRefPrim:compile(Config,?PER,[optimize]),
+ ?line testSetTypeRefPrim_cases(?PER).
+
+testSetTypeRefPrim_cases(Rules) ->
+ ?line testSetTypeRefPrim:main(Rules).
+
+
+
+testSetTypeRefSeq(suite) -> [];
+testSetTypeRefSeq(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetTypeRefSeq:compile(Config,?BER,[]),
+ ?line testSetTypeRefSeq_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetTypeRefSeq:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTypeRefSeq_cases(?BER)),
+
+ ?line testSetTypeRefSeq:compile(Config,?PER,[]),
+ ?line testSetTypeRefSeq_cases(?PER),
+
+ ?line ?per_bit_opt(testSetTypeRefSeq:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTypeRefSeq_cases(?PER)),
+
+ ?line ?uper_bin(testSetTypeRefSeq:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTypeRefSeq_cases(uper_bin)),
+
+ ?line testSetTypeRefSeq:compile(Config,?PER,[optimize]),
+ ?line testSetTypeRefSeq_cases(?PER).
+
+testSetTypeRefSeq_cases(Rules) ->
+ ?line testSetTypeRefSeq:main(Rules).
+
+
+
+testSetTypeRefSet(suite) -> [];
+testSetTypeRefSet(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetTypeRefSet:compile(Config,?BER,[]),
+ ?line testSetTypeRefSet_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetTypeRefSet:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetTypeRefSet_cases(?BER)),
+
+ ?line testSetTypeRefSet:compile(Config,?PER,[]),
+ ?line testSetTypeRefSet_cases(?PER),
+
+ ?line ?per_bit_opt(testSetTypeRefSet:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetTypeRefSet_cases(?PER)),
+
+ ?line ?uper_bin(testSetTypeRefSet:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetTypeRefSet_cases(uper_bin)),
+
+ ?line testSetTypeRefSet:compile(Config,?PER,[optimize]),
+ ?line testSetTypeRefSet_cases(?PER).
+
+testSetTypeRefSet_cases(Rules) ->
+ ?line testSetTypeRefSet:main(Rules).
+
+
+
+testSetOf(suite) -> [];
+testSetOf(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetOf:compile(Config,?BER,[]),
+ ?line testSetOf_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetOf:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOf_cases(?BER)),
+
+ ?line testSetOf:compile(Config,?PER,[]),
+ ?line testSetOf_cases(?PER),
+
+ ?line ?per_bit_opt(testSetOf:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOf_cases(?PER)),
+
+ ?line ?uper_bin(testSetOf:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOf_cases(uper_bin)),
+
+ ?line testSetOf:compile(Config,?PER,[optimize]),
+ ?line testSetOf_cases(?PER).
+
+testSetOf_cases(Rules) ->
+ ?line testSetOf:main(Rules).
+
+
+
+testSetOfCho(suite) -> [];
+testSetOfCho(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetOfCho:compile(Config,?BER,[]),
+ ?line testSetOfCho_cases(?BER),
+
+ ?line ?ber_driver(?BER,testSetOfCho:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOfCho_cases(?BER)),
+
+ ?line testSetOfCho:compile(Config,?PER,[]),
+ ?line testSetOfCho_cases(?PER),
+
+ ?line ?per_bit_opt(testSetOfCho:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOfCho_cases(?PER)),
+
+ ?line ?uper_bin(testSetOfCho:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOfCho_cases(uper_bin)),
+
+ ?line testSetOfCho:compile(Config,?PER,[optimize]),
+ ?line testSetOfCho_cases(?PER).
+
+testSetOfCho_cases(Rules) ->
+ ?line testSetOfCho:main(Rules).
+
+
+testSetOfExternal(suite) -> [];
+testSetOfExternal(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSetOfExternal:compile(Config,?BER,[]),
+ ?line testSetOfExternal_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOfExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOfExternal_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSetOfExternal:compile(Config,?PER,[]),
+ ?line testSetOfExternal_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOfExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOfExternal_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOfExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOfExternal_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSetOfExternal:compile(Config,?PER,[optimize]),
+ ?line testSetOfExternal_cases(?PER).
+
+testSetOfExternal_cases(Rules) ->
+ ?line testSetOfExternal:main(Rules).
+
+
+
+
+testSetOfTag(suite) -> [];
+testSetOfTag(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testExternal:compile(Config,?BER,[]),
+ ?line testSetOfTag:compile(Config,?BER,[]),
+ ?line testSetOfTag_cases(?BER),
+
+ ?line ?ber_driver(?BER,testExternal:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOfTag:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetOfTag_cases(?BER)),
+
+ ?line testExternal:compile(Config,?PER,[]),
+ ?line testSetOfTag:compile(Config,?PER,[]),
+ ?line testSetOfTag_cases(?PER),
+
+ ?line ?per_bit_opt(testExternal:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOfTag:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testSetOfTag_cases(?PER)),
+
+ ?line ?uper_bin(testExternal:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOfTag:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testSetOfTag_cases(uper_bin)),
+
+ ?line testExternal:compile(Config,?PER,[optimize]),
+ ?line testSetOfTag:compile(Config,?PER,[optimize]),
+ ?line testSetOfTag_cases(?PER).
+
+testSetOfTag_cases(Rules) ->
+ ?line testSetOfTag:main(Rules).
+
+
+sequence(suite) -> [{sequence,all}].
+
+compile(suite) -> [c_syntax,c_string_per,c_string_ber,c_implicit_before_choice];
+compile(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line TempDir = ?config(priv_dir,Config),
+ ?line True = lists:member(TempDir,code:get_path()),
+ ?line test_server:format("~p~n",[True]),
+ ?line test_server:format("~p~n",[code:get_path()]),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line {error,_R1} = asn1ct:compile(filename:join(DataDir,"Syntax")),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"String"),[?PER,{outdir,TempDir}]),
+ test_server:format("first String ok~n"),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"String"),[?BER,{outdir,TempDir}]),
+ ?line {error,_R2} = asn1ct:compile(filename:join(DataDir,"CCSNARG3"),[?BER,{outdir,TempDir}]),
+ ?line {error,_} = asn1ct:compile(filename:join(DataDir,"ImportsFrom"),[?BER,{outdir,TempDir}]),
+ ok.
+
+c_syntax(suite) -> [];
+c_syntax(Config) ->
+ ?line DataDir% ?line testExternal:compile(Config,?PER),
+% ?line testPrimExternal:compile(Config,?PER),
+% ?line testPrimExternal_cases(?PER).
+ = ?config(data_dir,Config),
+ ?line _TempDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line {error,_R1} = asn1ct:compile(filename:join(DataDir,"Syntax")),
+ ?line {error,_R2} = asn1ct:compile(filename:join(DataDir,"BadTypeEnding")),
+ ?line {error,_R3} = asn1ct:compile(filename:join(DataDir,
+ "BadValueAssignment1")),
+ ?line {error,_R4} = asn1ct:compile(filename:join(DataDir,
+ "BadValueAssignment2")),
+ ?line {error,_R5} = asn1ct:compile(filename:join(DataDir,
+ "BadValueSet")),
+ ?line {error,_R6} = asn1ct:compile(filename:join(DataDir,
+ "ChoiceBadExtension")),
+ ?line {error,_R7} = asn1ct:compile(filename:join(DataDir,
+ "EnumerationBadExtension")),
+ ?line {error,_R8} = asn1ct:compile(filename:join(DataDir,
+ "Example")),
+ ?line {error,_R9} = asn1ct:compile(filename:join(DataDir,
+ "Export1")),
+ ?line {error,_R10} = asn1ct:compile(filename:join(DataDir,
+ "MissingEnd")),
+ ?line {error,_R11} = asn1ct:compile(filename:join(DataDir,
+ "SequenceBadComma")),
+ ?line {error,_R12} = asn1ct:compile(filename:join(DataDir,
+ "SequenceBadComponentName")),
+ ?line {error,_R13} = asn1ct:compile(filename:join(DataDir,
+ "SequenceBadComponentType")),
+ ?line {error,_R14} = asn1ct:compile(filename:join(DataDir,
+ "SeqBadComma")).
+
+
+c_string_per(suite) -> [];
+c_string_per(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line TempDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"String"),[?PER,{outdir,TempDir}]).
+
+c_string_ber(suite) -> [];
+c_string_ber(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line TempDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"String"),[?BER,{outdir,TempDir}]).
+
+
+c_implicit_before_choice(suite) -> [];
+c_implicit_before_choice(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line TempDir = ?config(priv_dir,Config),
+ ?line {error,_R2} = asn1ct:compile(filename:join(DataDir,"CCSNARG3"),[?BER,{outdir,TempDir}]).
+
+parse(suite) -> [];
+parse(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ M1 = test_modules(),
+% M2 = parse_modules(),
+ ?line ok = parse1(M1,DataDir,OutDir).
+
+parse1([M|T],DataDir,OutDir) ->
+ ?line ok = asn1ct:compile(DataDir ++ M,[abs,{outdir,OutDir}]),
+ parse1(T,DataDir,OutDir);
+parse1([],_,_) ->
+ ok.
+
+per(suite) -> [];
+per(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = per1(per_modules(),DataDir,OutDir),
+ ?line ?per_bit_opt(per1_bit_opt(per_modules(),DataDir,OutDir)),
+ ?line ok = per1_opt(per_modules(),DataDir,OutDir).
+
+
+per1([M|T],DataDir,OutDir) ->
+ ?line ok = asn1ct:compile(DataDir ++ M,[?PER,{outdir,OutDir}]),
+ ?line ok = asn1ct:test(list_to_atom(M)),
+ per1(T,DataDir,OutDir);
+per1([],_,_) ->
+ ok.
+
+per1_bit_opt([M|T],DataDir,OutDir) ->
+ ?line ok = asn1ct:compile(DataDir ++ M,[?PER,optimize,{outdir,OutDir}]),
+ ?line ok = asn1ct:test(list_to_atom(M)),
+ per1_bit_opt(T,DataDir,OutDir);
+per1_bit_opt([],_,_) ->
+ ok.
+
+per1_opt([M|T],DataDir,OutDir) ->
+ ?line ok = asn1ct:compile(DataDir ++ M,[?PER,optimized,{outdir,OutDir}]),
+ ?line ok = asn1ct:test(list_to_atom(M)),
+ per1_opt(T,DataDir,OutDir);
+per1_opt([],_,_) ->
+ ok.
+
+ber(suite) -> [ber_choiceinseq,ber_optional,ber_optional_keyed_list,ber_other].
+
+ber_choiceinseq(suite) ->[];
+ber_choiceinseq(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"ChoiceInSeq"),[?BER,{outdir,OutDir}]).
+
+ber_optional(suite) ->[];
+ber_optional(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"SOpttest"),[?BER,{outdir,OutDir}]),
+ ?line V = {'S',{'A',10,asn1_NOVALUE,asn1_NOVALUE},
+ {'B',asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE},
+ {'C',asn1_NOVALUE,111,asn1_NOVALUE}},
+ ?line {ok,B} = asn1_wrapper:encode('SOpttest','S',V),
+ ?line Bytes = lists:flatten(B),
+ ?line V2 = asn1_wrapper:decode('SOpttest','S',Bytes),
+ ?line ok = eq(V,element(2,V2)).
+
+ber_optional_keyed_list(suite) ->[];
+ber_optional_keyed_list(Config) ->
+ case ?BER of
+ ber_bin_v2 -> ok;
+ _ ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"SOpttest"),
+ [?BER,keyed_list,{outdir,OutDir}]),
+ ?line Vrecord = {'S',{'A',10,asn1_NOVALUE,asn1_NOVALUE},
+ {'B',asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE},
+ {'C',asn1_NOVALUE,111,asn1_NOVALUE}},
+ ?line V = [ {a,[{scriptKey,10}]},
+ {b,[]},
+ {c,[{callingPartysCategory,111}]} ],
+ ?line {ok,B} = asn1_wrapper:encode('SOpttest','S',V),
+ ?line Bytes = lists:flatten(B),
+ ?line V2 = asn1_wrapper:decode('SOpttest','S',Bytes),
+ ?line ok = eq(Vrecord,element(2,V2))
+ end.
+
+
+eq(V,V) ->
+ ok.
+
+
+ber_other(suite) ->[];
+ber_other(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = ber1(ber_modules(),DataDir,OutDir).
+
+
+ber1([M|T],DataDir,OutDir) ->
+ ?line ok = asn1ct:compile(DataDir ++ M,[?BER,{outdir,OutDir}]),
+ ?line ok = asn1ct:test(list_to_atom(M)),
+ ber1(T,DataDir,OutDir);
+ber1([],_,_) ->
+ ok.
+
+default_per(suite) ->[];
+default_per(Config) ->
+ default1(?PER,Config,[]).
+
+default_per_opt(suite) -> [];
+default_per_opt(Config) ->
+ ?per_bit_opt(default1(?PER,Config,[optimize])),
+ default1(?PER,Config,[optimize]).
+
+default_ber(suite) ->[];
+default_ber(Config) ->
+ default1(?BER,Config,[]).
+
+default1(Rule,Config,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Def",[Rule,{outdir,OutDir}]++Options),
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true,
+ bool1 = true,
+ bool2 = true,
+ bool3 = true}),
+ ?line {ok,{'Def1',true,true,true,true}} = asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true}),
+ ?line {ok,{'Def1',true,false,false,false}} = asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true,bool2=false}),
+ ?line {ok,{'Def1',true,false,false,false}} = asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes3)).
+
+
+value_test(suite) ->[];
+value_test(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ObjIdValues",[?BER,{outdir,OutDir}]),
+ ?line {ok,_} = asn1_wrapper:encode('ObjIdValues','ObjIdType','ObjIdValues':'mobileDomainId'()),
+ ?line ok = asn1ct:compile(DataDir ++ "ObjIdValues",[?PER,{outdir,OutDir}]),
+ ?line {ok,_} = asn1_wrapper:encode('ObjIdValues','ObjIdType','ObjIdValues':'mobileDomainId'()),
+ ?line ok = test_bad_values:tests(Config),
+ ok.
+
+
+constructed(suite) ->
+ [];
+constructed(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Constructed",[?BER,{outdir,OutDir}]),
+ ?line {ok,B} = asn1_wrapper:encode('Constructed','S',{'S',false}),
+ ?line [40,3,1,1,0] = lists:flatten(B),
+ ?line {ok,B1} = asn1_wrapper:encode('Constructed','S2',{'S2',false}),
+ ?line [40,5,48,3,1,1,0] = lists:flatten(B1),
+ ?line {ok,B2} = asn1_wrapper:encode('Constructed','I',10),
+ ?line [136,1,10] = lists:flatten(B2),
+ ok.
+
+ber_decode_error(suite) -> [];
+ber_decode_error(Config) ->
+ ?line ok = ber_decode_error:compile(Config,?BER,[]),
+ ?line ok = ber_decode_error:run([]),
+
+ ?line ok = ?ber_driver(?BER,ber_decode_error:compile(Config,?BER,[driver])),
+ ?line ok = ?ber_driver(?BER,ber_decode_error:run([driver])),
+ ok.
+
+h323test(suite) ->
+ [];
+h323test(Config) ->
+ ?line ok = h323test:compile(Config,?PER,[]),
+ ?line ok = h323test:run(?PER),
+ ?line ?per_bit_opt(h323test:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(h323test:run(?PER)),
+ ?line ?uper_bin(h323test:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(h323test:run(uper_bin)),
+ ?line ok = h323test:compile(Config,?PER,[optimize]),
+ ?line ok = h323test:run(?PER),
+ ok.
+
+per_GeneralString(suite) ->
+ [];
+per_GeneralString(Config) ->
+ case erlang:module_loaded('MULTIMEDIA-SYSTEM-CONTROL') of
+ true ->
+ ok;
+ false ->
+ h323test:compile(Config,?PER,[])
+ end,
+ UI = [109,64,1,57],
+ ?line {ok,_V} = asn1_wrapper:decode('MULTIMEDIA-SYSTEM-CONTROL',
+ 'MultimediaSystemControlMessage',UI).
+
+per_open_type(suite) ->
+ [];
+per_open_type(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line ok = asn1ct:compile(DataDir ++ "OpenType",[?PER,{outdir,OutDir}]),
+ Stype = {'Stype',10,true},
+ ?line {ok,Bytes} = asn1_wrapper:encode('OpenType','Ot',Stype),
+ ?line {ok,Stype} = asn1_wrapper:decode('OpenType','Ot',Bytes),
+
+ ?line ?per_bit_opt(ok = asn1ct:compile(DataDir ++ "OpenType",
+ [?PER,optimize,{outdir,OutDir}])),
+ ?line ?per_bit_opt({ok,Bytes}=asn1_wrapper:encode('OpenType','Ot',Stype)),
+ ?line ?per_bit_opt({ok,Stype}=asn1_wrapper:decode('OpenType','Ot',Bytes)),
+
+ ?line ?uper_bin(ok = asn1ct:compile(DataDir ++ "OpenType",
+ [uper_bin,{outdir,OutDir}])),
+ ?line ?uper_bin({ok,Bytes}=asn1_wrapper:encode('OpenType','Ot',Stype)),
+ ?line ?uper_bin({ok,Stype}=asn1_wrapper:decode('OpenType','Ot',Bytes)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "OpenType",
+ [?PER,optimize,{outdir,OutDir}]),
+ ?line {ok,Bytes} = asn1_wrapper:encode('OpenType','Ot',Stype),
+ ?line {ok,Stype} = asn1_wrapper:decode('OpenType','Ot',Bytes).
+
+testConstraints(suite) ->
+ [];
+testConstraints(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testConstraints:compile(Config,?BER,[]),
+ ?line testConstraints:int_constraints(?BER),
+
+ ?line ?ber_driver(?BER,testConstraints:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testConstraints:int_constraints(?BER)),
+
+ ?line testConstraints:compile(Config,?PER,[]),
+ ?line testConstraints:int_constraints(?PER),
+ ?line testConstraints:refed_NNL_name(?PER),
+
+ ?line ?per_bit_opt(testConstraints:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testConstraints:int_constraints(?PER)),
+ ?line ?per_bit_opt(testConstraints:refed_NNL_name(?PER)),
+
+ ?line ?uper_bin(testConstraints:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testConstraints:int_constraints(uper_bin)),
+ ?line ?uper_bin(testConstraints:refed_NNL_name(uper_bin)),
+
+ ?line testConstraints:compile(Config,?PER,[optimize]),
+ ?line testConstraints:int_constraints(?PER),
+ ?line testConstraints:refed_NNL_name(?PER).
+
+testSeqIndefinite(suite) -> [];
+testSeqIndefinite(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSeqIndefinite:compile(Config,?BER,[]),
+ ?line testSeqIndefinite:main(?BER),
+
+ ?line ?ber_driver(?BER,testSeqIndefinite:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSeqIndefinite:main(?BER)).
+
+testSetIndefinite(suite) -> [];
+testSetIndefinite(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testSetIndefinite:compile(Config,?BER,[]),
+ ?line testSetIndefinite:main(?BER),
+
+ ?line ?ber_driver(?BER,testSetIndefinite:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testSetIndefinite:main(?BER)).
+
+testChoiceIndefinite(suite) -> [];
+testChoiceIndefinite(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testChoiceIndefinite:compile(Config,?BER,[]),
+ ?line testChoiceIndefinite:main(?BER),
+
+ ?line ?ber_driver(?BER,testChoiceIndefinite:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testChoiceIndefinite:main(?BER)).
+
+testInfObjectClass(suite) ->
+ [];
+testInfObjectClass(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testInfObjectClass:compile(Config,?PER,[]),
+ ?line testInfObjectClass:main(?PER),
+ ?line testInfObj:compile(Config,?PER,[]),
+ ?line testInfObj:main(?PER),
+
+ ?line ?per_bit_opt(testInfObjectClass:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testInfObjectClass:main(?PER)),
+ ?line ?per_bit_opt(testInfObj:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testInfObj:main(?PER)),
+
+ ?line ?uper_bin(testInfObjectClass:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testInfObjectClass:main(uper_bin)),
+ ?line ?uper_bin(testInfObj:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testInfObj:main(uper_bin)),
+
+ ?line testInfObjectClass:compile(Config,?PER,[optimize]),
+ ?line testInfObjectClass:main(?PER),
+ ?line testInfObj:compile(Config,?PER,[optimize]),
+ ?line testInfObj:main(?PER),
+
+ ?line testInfObjectClass:compile(Config,?BER,[]),
+ ?line testInfObjectClass:main(?BER),
+ ?line testInfObj:compile(Config,?BER,[]),
+ ?line testInfObj:main(?BER),
+
+ ?line ?ber_driver(?BER,testInfObjectClass:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testInfObjectClass:main(?BER)),
+ ?line ?ber_driver(?BER,testInfObj:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testInfObj:main(?BER)),
+
+ ?line testInfObj:compile_RANAPfiles(Config,?PER,[]),
+
+ ?line ?per_bit_opt(testInfObj:compile_RANAPfiles(Config,?PER,[optimize])),
+
+ ?line ?uper_bin(testInfObj:compile_RANAPfiles(Config,uper_bin,[])),
+
+ ?line testInfObj:compile_RANAPfiles(Config,?PER,[optimize]),
+
+ ?line testInfObj:compile_RANAPfiles(Config,?BER,[]).
+
+testParameterizedInfObj(suite) ->
+ [];
+testParameterizedInfObj(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testParameterizedInfObj:compile(Config,?PER,[]),
+ ?line testParameterizedInfObj:main(?PER),
+
+ ?line ?per_bit_opt(testParameterizedInfObj:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testParameterizedInfObj:main(?PER)),
+
+ ?line ?uper_bin(testParameterizedInfObj:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testParameterizedInfObj:main(uper_bin)),
+
+ ?line testParameterizedInfObj:compile(Config,?PER,[optimize]),
+ ?line testParameterizedInfObj:main(?PER),
+
+ ?line testParameterizedInfObj:compile(Config,?BER,[]),
+ ?line testParameterizedInfObj:main(?BER),
+
+ ?line ?ber_driver(?BER,testParameterizedInfObj:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testParameterizedInfObj:main(?BER)).
+
+testMergeCompile(suite) ->
+ [];
+testMergeCompile(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testMergeCompile:compile(Config,?PER,[]),
+ ?line testMergeCompile:main(?PER),
+ ?line testMergeCompile:mvrasn(?PER),
+
+ ?line ?per_bit_opt(testMergeCompile:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testMergeCompile:main(?PER)),
+ ?line ?per_bit_opt(testMergeCompile:mvrasn(?PER)),
+
+ ?line ?uper_bin(testMergeCompile:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testMergeCompile:main(uper_bin)),
+ ?line ?uper_bin(testMergeCompile:mvrasn(uper_bin)),
+
+ ?line testMergeCompile:compile(Config,?BER,[]),
+ ?line testMergeCompile:main(?BER),
+ ?line testMergeCompile:mvrasn(?BER),
+
+ ?line ?ber_driver(?BER,testMergeCompile:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testMergeCompile:main(?BER)),
+ ?line ?ber_driver(?BER,testMergeCompile:mvrasn(?BER)).
+
+testobj(suite) ->
+ [];
+testobj(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = testRANAP:compile(Config,?PER,[]),
+ ?line ok = testRANAP:testobj(?PER),
+ ?line ok = testParameterizedInfObj:ranap(?PER),
+
+ ?line ?per_bit_opt(ok = testRANAP:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(ok = testRANAP:testobj(?PER)),
+ ?line ?per_bit_opt(ok = testParameterizedInfObj:ranap(?PER)),
+
+ ?line ?uper_bin(ok = testRANAP:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(ok = testRANAP:testobj(uper_bin)),
+ ?line ?uper_bin(ok = testParameterizedInfObj:ranap(uper_bin)),
+
+ ?line ok = testRANAP:compile(Config,?PER,[optimize]),
+ ?line ok = testRANAP:testobj(?PER),
+ ?line ok = testParameterizedInfObj:ranap(?PER),
+
+ ?line ok = testRANAP:compile(Config,?BER,[]),
+ ?line ok = testRANAP:testobj(?BER),
+ ?line ok = testParameterizedInfObj:ranap(?BER),
+
+ ?line ?ber_driver(?BER,testRANAP:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testRANAP:testobj(?BER)),
+ ?line ?ber_driver(?BER,testParameterizedInfObj:ranap(?BER)).
+
+
+testDeepTConstr(suite) ->
+ [];
+testDeepTConstr(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testDeepTConstr:compile(Config,?PER,[]),
+ ?line testDeepTConstr:main(?PER),
+
+ ?line ?per_bit_opt(testDeepTConstr:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testDeepTConstr:main(?PER)),
+
+ ?line ?uper_bin(testDeepTConstr:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testDeepTConstr:main(uper_bin)),
+
+ ?line testDeepTConstr:compile(Config,?PER,[optimize]),
+ ?line testDeepTConstr:main(?PER),
+
+ ?line testDeepTConstr:compile(Config,?BER,[]),
+ ?line testDeepTConstr:main(?BER),
+
+ ?line ?ber_driver(?BER,testDeepTConstr:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testDeepTConstr:main(?BER)).
+
+testInvokeMod(suite) ->
+ [];
+testInvokeMod(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(filename:join(DataDir,"PrimStrings"),[{outdir,OutDir}]),
+ ?line {ok,_Result1} = 'PrimStrings':encode('Bs1',[1,0,1,0]),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"PrimStrings"),[?PER,{outdir,OutDir}]),
+ ?line {ok,_Result2} = 'PrimStrings':encode('Bs1',[1,0,1,0]).
+
+testExport(suite) ->
+ [];
+testExport(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line {error,{asn1,_Reason}} = asn1ct:compile(filename:join(DataDir,"IllegalExport"),[{outdir,OutDir}]).
+
+testImport(suite) ->
+ [];
+testImport(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line _OutDir = ?config(priv_dir,Config),
+ ?line {error,_} = asn1ct:compile(filename:join(DataDir,"ImportsFrom"),[?BER]),
+ ok.
+
+testMegaco(suite) ->
+ [];
+testMegaco(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ io:format("Config: ~p~n",[Config]),
+ ?line {ok,ModuleName1,ModuleName2} = testMegaco:compile(Config,?BER,[]),
+ ?line ok = testMegaco:main(ModuleName1,Config),
+ ?line ok = testMegaco:main(ModuleName2,Config),
+
+ case ?BER of
+ ber_bin_v2 ->
+ ?line {ok,ModuleName3,ModuleName4} = testMegaco:compile(Config,?BER,[driver]),
+ ?line ok = testMegaco:main(ModuleName3,Config),
+ ?line ok = testMegaco:main(ModuleName4,Config);
+ _-> ok
+ end,
+
+ ?line {ok,ModuleName5,ModuleName6} = testMegaco:compile(Config,?PER,[]),
+ ?line ok = testMegaco:main(ModuleName5,Config),
+ ?line ok = testMegaco:main(ModuleName6,Config),
+
+ ?line ?per_bit_opt({ok,ModuleName5,ModuleName6} = testMegaco:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(ok = testMegaco:main(ModuleName5,Config)),
+ ?line ?per_bit_opt(ok = testMegaco:main(ModuleName6,Config)),
+
+ ?line ?uper_bin({ok,ModuleName5,ModuleName6} = testMegaco:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(ok = testMegaco:main(ModuleName5,Config)),
+ ?line ?uper_bin(ok = testMegaco:main(ModuleName6,Config)),
+
+ ?line {ok,ModuleName7,ModuleName8} = testMegaco:compile(Config,?PER,[optimize]),
+ ?line ok = testMegaco:main(ModuleName7,Config),
+ ?line ok = testMegaco:main(ModuleName8,Config).
+
+
+testMvrasn6(suite) -> [];
+testMvrasn6(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testMvrasn6:compile(Config,?BER),
+ ?line testMvrasn6:main().
+
+testContextSwitchingTypes(suite) -> [];
+testContextSwitchingTypes(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testContextSwitchingTypes:compile(Config,?BER,[]),
+ ?line testContextSwitchingTypes:test(),
+
+ ?line ?ber_driver(?BER,testContextSwitchingTypes:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testContextSwitchingTypes:test()),
+
+ ?line testContextSwitchingTypes:compile(Config,?PER,[]),
+ ?line testContextSwitchingTypes:test(),
+
+ ?line ?per_bit_opt(testContextSwitchingTypes:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testContextSwitchingTypes:test()),
+
+ ?line ?uper_bin(testContextSwitchingTypes:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testContextSwitchingTypes:test()),
+
+ ?line testContextSwitchingTypes:compile(Config,?PER,[optimize]),
+ ?line testContextSwitchingTypes:test().
+
+testTypeValueNotation(suite) -> [];
+testTypeValueNotation(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ case ?BER of
+ Ber when Ber == ber; Ber == ber_bin ->
+ ?line testTypeValueNotation:compile(Config,?BER,[]),
+ ?line testTypeValueNotation:main(?BER,dummy);
+ _ ->
+ ok
+ end,
+
+ ?line ?ber_driver(?BER,testTypeValueNotation:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testTypeValueNotation:main(?BER,optimize)),
+
+ case ?BER of
+ Ber2 when Ber2 == ber; Ber2 == ber_bin ->
+ ?line testTypeValueNotation:compile(Config,?PER,[]),
+ ?line testTypeValueNotation:main(?PER,dummy);
+ _ ->
+ ok
+ end,
+
+ ?line ?per_bit_opt(testTypeValueNotation:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testTypeValueNotation:main(?PER,optimize)),
+
+ ?line ?uper_bin(testTypeValueNotation:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testTypeValueNotation:main(uper_bin,optimize)),
+ case ?BER of
+ Ber3 when Ber3 == ber; Ber3 == ber_bin ->
+ ?line testTypeValueNotation:compile(Config,?PER,[optimize]),
+ ?line testTypeValueNotation:main(?PER,optimize);
+ _ ->
+ ok
+ end.
+
+testOpenTypeImplicitTag(suite) -> [];
+testOpenTypeImplicitTag(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testOpenTypeImplicitTag:compile(Config,?BER,[]),
+ ?line testOpenTypeImplicitTag:main(?BER),
+
+ ?line ?ber_driver(?BER,testOpenTypeImplicitTag:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testOpenTypeImplicitTag:main(?BER)),
+
+ ?line testOpenTypeImplicitTag:compile(Config,?PER,[]),
+ ?line testOpenTypeImplicitTag:main(?PER),
+
+ ?line ?per_bit_opt(testOpenTypeImplicitTag:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testOpenTypeImplicitTag:main(?PER)),
+
+ ?line ?uper_bin(testOpenTypeImplicitTag:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testOpenTypeImplicitTag:main(uper_bin)),
+
+ ?line testOpenTypeImplicitTag:compile(Config,?PER,[optimize]),
+ ?line testOpenTypeImplicitTag:main(?PER).
+
+duplicate_tags(suite) -> [];
+duplicate_tags(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ {error,{asn1,[{error,{type,_,_,'SeqOpt1Imp',{asn1,{duplicates_of_the_tags,_}}}}]}} =
+ asn1ct:compile(filename:join(DataDir,"SeqOptional2"),[abs]),
+ ok.
+
+rtUI(suite) -> [];
+rtUI(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Prim"),[?BER]),
+ ?line {ok,_} = asn1rt:info('Prim'),
+
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Prim"),[?PER]),
+ ?line {ok,_} = asn1rt:info('Prim'),
+
+ ?line ok = asn1rt:load_driver(),
+ ?line ok = asn1rt:load_driver(),
+ ?line ok = asn1rt:unload_driver().
+
+testROSE(suite) -> [];
+testROSE(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testROSE:compile(Config,?BER,[]),
+
+ ?line testROSE:compile(Config,?PER,[]),
+ ?line ?per_bit_opt(testROSE:compile(Config,?PER,[optimize])),
+ ?line ?uper_bin(testROSE:compile(Config,uper_bin,[])),
+ ?line testROSE:compile(Config,?PER,[optimize]).
+
+testINSTANCE_OF(suite) -> [];
+testINSTANCE_OF(Config) ->
+ ?line testINSTANCE_OF:compile(Config,?BER,[]),
+ ?line testINSTANCE_OF:main(?BER),
+
+ ?line ?ber_driver(?BER,testINSTANCE_OF:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testINSTANCE_OF:main(?BER)),
+
+ ?line testINSTANCE_OF:compile(Config,?PER,[]),
+ ?line testINSTANCE_OF:main(?PER),
+
+ ?line ?per_bit_opt(testINSTANCE_OF:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testINSTANCE_OF:main(?PER)),
+
+ ?line ?uper_bin(testINSTANCE_OF:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testINSTANCE_OF:main(uper_bin)),
+
+ ?line testINSTANCE_OF:compile(Config,?PER,[optimize]),
+ ?line testINSTANCE_OF:main(?PER).
+
+testTCAP(suite) -> [];
+testTCAP(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testTCAP:compile(Config,?BER,[]),
+ ?line testTCAP:test(?BER,Config),
+
+ ?line ?ber_driver(?BER,testTCAP:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testTCAP:test(?BER,Config)),
+
+ ?line ?ber_driver(?BER,testTCAP:compile_asn1config(Config,?BER,[asn1config])),
+ ?line ?ber_driver(?BER,testTCAP:test_asn1config()).
+
+testDER(suite) ->[];
+testDER(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line testDER:compile(Config,?BER,[]),
+ ?line testDER:test(),
+
+ ?line ?ber_driver(?BER,testDER:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testDER:test()),
+
+ ?line testParamBasic:compile_der(Config,?BER),
+ ?line testParamBasic_cases(der),
+
+
+ ?line testSeqSetDefaultVal:compile(Config,?BER),
+ ?line testSeqSetDefaultVal_cases(?BER).
+
+testSeqSetDefaultVal_cases(?BER) ->
+ ?line testSeqSetDefaultVal:main(?BER).
+
+
+specialized_decodes(suite) -> [];
+specialized_decodes(Config) ->
+ ?line test_partial_incomplete_decode:compile(Config,?BER,[optimize]),
+ ?line test_partial_incomplete_decode:test(?BER,Config),
+ ?line test_selective_decode:test(?BER,Config).
+
+special_decode_performance(suite) ->[];
+special_decode_performance(Config) ->
+ ?line ?ber_driver(?BER,test_special_decode_performance:compile(Config,?BER)),
+ ?line ?ber_driver(?BER,test_special_decode_performance:go(all)).
+
+
+test_driver_load(suite) -> [];
+test_driver_load(Config) ->
+ ?line test_driver_load:compile(Config,?PER),
+ ?line test_driver_load:test(?PER,5).
+
+test_ParamTypeInfObj(suite) -> [];
+test_ParamTypeInfObj(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"IN-CS-1-Datatypes"),[ber_bin]).
+
+test_WS_ParamClass(suite) -> [];
+test_WS_ParamClass(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"InformationFramework"),
+ [ber_bin]).
+
+test_Defed_ObjectIdentifier(suite) -> [];
+test_Defed_ObjectIdentifier(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"UsefulDefinitions"),
+ [ber_bin]).
+
+testSelectionType(suite) -> [];
+testSelectionType(Config) ->
+
+ ?line ok = testSelectionTypes:compile(Config,?BER,[]),
+ ?line {ok,_} = testSelectionTypes:test(),
+
+ ?line ok = testSelectionTypes:compile(Config,?PER,[]),
+ ?line {ok,_} = testSelectionTypes:test().
+
+testSSLspecs(suite) -> [];
+testSSLspecs(Config) ->
+
+ ?line ok = testSSLspecs:compile(Config,?BER,
+ [optimize,compact_bit_string,der]),
+ ?line testSSLspecs:run(?BER),
+
+ case code:which(asn1ct) of
+ cover_compiled ->
+ ok;
+ _ ->
+ ?line ok = testSSLspecs:compile_inline(Config,?BER),
+ ?line ok = testSSLspecs:run_inline(?BER)
+ end.
+
+testNortel(suite) -> [];
+testNortel(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Nortel"),[?BER]),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Nortel"),
+ [?BER,optimize]),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Nortel"),
+ [?BER,optimize,driver]),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Nortel"),[?PER]),
+ ?line ?per_bit_opt(ok = asn1ct:compile(filename:join(DataDir,"Nortel"),
+ [?PER,optimize])),
+ ?line ?uper_bin(ok = asn1ct:compile(filename:join(DataDir,"Nortel"),[uper_bin])),
+ ?line ok = asn1ct:compile(filename:join(DataDir,"Nortel"),
+ [?PER,optimize]).
+test_undecoded_rest(suite) -> [];
+test_undecoded_rest(Config) ->
+
+ ?line ok = test_undecoded_rest:compile(Config,?BER,[]),
+ ?line ok = test_undecoded_rest:test([]),
+
+ ?line ok = test_undecoded_rest:compile(Config,?BER,[undec_rest]),
+ ?line ok = test_undecoded_rest:test(undec_rest),
+
+ ?line ok = test_undecoded_rest:compile(Config,?PER,[]),
+ ?line ok = test_undecoded_rest:test([]),
+
+ ?line ?per_bit_opt(ok = test_undecoded_rest:compile(Config,?PER,[optimize,undec_rest])),
+ ?line ?per_bit_opt(ok = test_undecoded_rest:test(undec_rest)),
+
+ ?line ?uper_bin(ok = test_undecoded_rest:compile(Config,uper_bin,[undec_rest])),
+ ?line ?uper_bin(ok = test_undecoded_rest:test(undec_rest)),
+
+ ?line ok = test_undecoded_rest:compile(Config,?PER,[undec_rest]),
+ ?line ok = test_undecoded_rest:test(undec_rest).
+
+test_inline(suite) -> [];
+test_inline(Config) ->
+ case code:which(asn1ct) of
+ cover_compiled ->
+ {skip,"Not runnable when cover compiled"};
+ _ ->
+ ?line ok=test_inline:compile(Config,?BER,[]),
+ ?line test_inline:main(?BER),
+ ?line test_inline:inline1(Config,?BER,[]),
+ ?line test_inline:performance2()
+ end.
+
+%test_inline_prf(suite) -> [];
+%test_inline_prf(Config) ->
+% ?line test_inline:performance(Config).
+
+testTcapsystem(suite) -> [];
+testTcapsystem(Config) ->
+ ?line ok=testTcapsystem:compile(Config,?BER,[]).
+
+testNBAPsystem(suite) -> [];
+testNBAPsystem(Config) ->
+ ?line ok=testNBAPsystem:compile(Config,?PER,?per_optimize(?BER)),
+ ?line ok=testNBAPsystem:test(?PER,Config).
+
+test_compile_options(suite) -> [];
+test_compile_options(Config) ->
+ case code:which(asn1ct) of
+ cover_compiled ->
+ {skip,"Not runnable when cover compiled"};
+ _ ->
+ ?line ok = test_compile_options:wrong_path(Config),
+ ?line ok = test_compile_options:path(Config),
+ ?line ok = test_compile_options:noobj(Config),
+ ?line ok = test_compile_options:record_name_prefix(Config)
+ end.
+testDoubleEllipses(suite) -> [];
+testDoubleEllipses(Config) ->
+ ?line testDoubleEllipses:compile(Config,?BER,[]),
+ ?line testDoubleEllipses:main(?BER),
+ ?line ?ber_driver(?BER,testDoubleEllipses:compile(Config,?BER,[driver])),
+ ?line ?ber_driver(?BER,testDoubleEllipses:main(?BER)),
+ ?line ?per_bit_opt(testDoubleEllipses:compile(Config,?PER,[optimize])),
+ ?line ?per_bit_opt(testDoubleEllipses:main(?PER)),
+ ?line ?uper_bin(testDoubleEllipses:compile(Config,uper_bin,[])),
+ ?line ?uper_bin(testDoubleEllipses:main(uper_bin)),
+ ?line testDoubleEllipses:compile(Config,?PER,?per_optimize(?BER)),
+ ?line testDoubleEllipses:main(?PER).
+
+test_modified_x420(suite) -> [];
+test_modified_x420(Config) ->
+ ?line test_modified_x420:compile(Config),
+ ?line test_modified_x420:test_io(Config).
+
+testX420(suite) -> [];
+testX420(Config) ->
+ ?line testX420:compile(?BER,[der],Config),
+ ?line ok = testX420:ticket7759(?BER,Config),
+ ?line testX420:compile(?PER,[],Config).
+
+test_x691(suite) -> [];
+test_x691(Config) ->
+ case ?PER of
+ per ->
+ ?line ok = test_x691:compile(Config,uper_bin,[]),
+ ?line true = test_x691:cases(uper_bin,unaligned),
+ ?line ok = test_x691:compile(Config,?PER,[]),
+ ?line true = test_x691:cases(?PER,aligned),
+%% ?line ok = asn1_test_lib:ticket_7678(Config,[]),
+ ?line ok = asn1_test_lib:ticket_7708(Config,[]),
+ ?line ok = asn1_test_lib:ticket_7763(Config);
+ _ ->
+ ?line ok = test_x691:compile(Config,?PER,?per_optimize(?BER)),
+ ?line true = test_x691:cases(?PER,aligned)
+ end.
+%% ?line ok = asn1_test_lib:ticket_7876(Config,?PER,[]),
+%% ?line ok = asn1_test_lib:ticket_7876(Config,?PER,[compact_bit_string]),
+%% ?line ok = asn1_test_lib:ticket_7876(Config,?PER,[optimize]),
+%% ?line ok = asn1_test_lib:ticket_7876(Config,?PER,[optimize,compact_bit_string]).
+
+
+ticket_6143(suite) -> [];
+ticket_6143(Config) ->
+ ?line ok = test_compile_options:ticket_6143(Config).
+
+
+% parse_modules() ->
+% ["ImportsFrom"].
+
+per_modules() ->
+ [X || X <- test_modules()].
+ber_modules() ->
+ [X || X <- test_modules(),
+ X =/= "CommonDataTypes",
+ X =/= "DS-EquipmentUser-CommonFunctionOrig-TransmissionPath",
+ X =/= "H323-MESSAGES",
+ X =/= "H235-SECURITY-MESSAGES",
+ X =/= "MULTIMEDIA-SYSTEM-CONTROL"].
+test_modules() ->
+ _Modules = [
+ "BitStr",
+ "CommonDataTypes",
+ "Constraints",
+ "ContextSwitchingTypes",
+ "DS-EquipmentUser-CommonFunctionOrig-TransmissionPath",
+ "Enum",
+ "From",
+ "H235-SECURITY-MESSAGES",
+ "H323-MESSAGES",
+ %%"MULTIMEDIA-SYSTEM-CONTROL", recursive type , problem for asn1ct:value
+ "Import",
+ "Int",
+ "MAP-commonDataTypes",
+% ambigous tags "MAP-insertSubscriberData-def",
+ "Null",
+ "Octetstr",
+ "One",
+ "P-Record",
+ "P",
+% "PDUs",
+ "Person",
+ "PrimStrings",
+ "Real",
+ "XSeq",
+ "XSeqOf",
+ "XSet",
+ "XSetOf",
+ "String",
+ "SwCDR",
+% "Syntax",
+ "Time"
+% ANY "Tst",
+% "Two",
+% errors that should be detected "UndefType"
+] ++
+ [
+ "SeqSetLib", % must be compiled before Seq and Set
+ "Seq",
+ "Set",
+ "SetOf",
+ "SeqOf",
+ "Prim",
+ "Cho",
+ "Def",
+ "Opt",
+ "ELDAPv3",
+ "LDAP"
+ ].
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/AA1.asn b/lib/asn1/test/asn1_SUITE_data/AA1.asn
new file mode 100644
index 0000000000..c2c20f17a1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/AA1.asn
@@ -0,0 +1,13 @@
+AA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ B
+ FROM AA2;
+
+T1 ::= SEQUENCE (SIZE (1..10)) OF B
+T2 ::= SEQUENCE (SIZE (1..10)) OF B
+T3 ::= SEQUENCE (SIZE (1..10)) OF INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/AA2.asn1db b/lib/asn1/test/asn1_SUITE_data/AA2.asn1db
new file mode 100644
index 0000000000..3bf2c1b89d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/AA2.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/BadEnumValue1.asn b/lib/asn1/test/asn1_SUITE_data/BadEnumValue1.asn
new file mode 100644
index 0000000000..dbc224a74b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BadEnumValue1.asn
@@ -0,0 +1,8 @@
+BadEnumValue1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+enumWrongVal E3 ::= sunday
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/BadTypeEnding.asn b/lib/asn1/test/asn1_SUITE_data/BadTypeEnding.asn
new file mode 100644
index 0000000000..3ccd838ac0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BadTypeEnding.asn
@@ -0,0 +1,6 @@
+BadTypeEnding DEFINITIONS ::=
+BEGIN
+
+T ::= Typ;
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/BadValueAssignment1.asn1 b/lib/asn1/test/asn1_SUITE_data/BadValueAssignment1.asn1
new file mode 100644
index 0000000000..a5d4984e60
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BadValueAssignment1.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment1 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 integer ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/BadValueAssignment2.asn1 b/lib/asn1/test/asn1_SUITE_data/BadValueAssignment2.asn1
new file mode 100644
index 0000000000..7a96406001
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BadValueAssignment2.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment2 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/BadValueSet.asn1 b/lib/asn1/test/asn1_SUITE_data/BadValueSet.asn1
new file mode 100644
index 0000000000..68bd4380b7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BadValueSet.asn1
@@ -0,0 +1,9 @@
+BadValueSet DEFINITIONS ::=
+BEGIN
+
+Int INTEGER ::= {1|2|3}
+
+Int2 INTEGER ::= {
+ 1,2,3}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/BitStr.py b/lib/asn1/test/asn1_SUITE_data/BitStr.py
new file mode 100644
index 0000000000..1d5bc21fda
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/BitStr.py
@@ -0,0 +1,56 @@
+BitStr DEFINITIONS ::=
+BEGIN
+
+-- F.2.5.1
+-- Use a bit string type to model binary data whose format and
+-- length are unspecified,
+-- or specified elsewhere, and whose length in bits is not necessarily
+-- a multiple of eight.
+-- EXAMPLE
+
+G3FacsimilePage ::= BIT STRING
+-- a sequence of bits conforming to Recommendation T.4.
+
+image G3FacsimilePage ::= '100110100100001110110'B
+trailer BIT STRING ::= '0123456789ABCDEF'H
+body1 G3FacsimilePage ::= '1101'B
+body2 G3FacsimilePage ::= '1101000'B
+
+-- F.2.5.2
+-- Use a bit string type with a size constraint to model the
+-- values of a fixed sized bit field.
+-- EXAMPLE
+
+BitField ::= BIT STRING (SIZE (12))
+map1 BitField ::= '100110100100'B
+map2 BitField ::= '9A4'H
+map3 BitField ::= '1001101001'B -- Illegal - violates size constraint
+
+-- F.2.5.3
+-- Use a bit string type to model the values of a bit map, an
+-- ordered collection of logical variables
+-- indicating whether a particular condition holds for each of a
+-- correspondingly ordered collection of objects.
+
+DaysOfTheWeek ::= BIT STRING {
+ sunday(0), monday (1), tuesday(2),
+ wednesday(3), thursday(4), friday(5),
+ saturday(6) } (SIZE (0..7))
+
+sunnyDaysLastWeek1 DaysOfTheWeek ::= {sunday, monday, wednesday}
+sunnyDaysLastWeek2 DaysOfTheWeek ::= '1101'B
+sunnyDaysLastWeek3 DaysOfTheWeek ::= '1101000'B
+sunnyDaysLastWeek4 DaysOfTheWeek ::= '11010000'B -- Illegal - violates size constraint
+
+-- F.2.5.5
+-- Use a bit string type with named bits to model the values of a
+-- collection of related logical variables.
+-- EXAMPLE
+
+PersonalStatus ::= BIT STRING
+ {married(0), employed(1), veteran(2), collegeGraduate(3)}
+
+billClinton PersonalStatus ::= {married, employed, collegeGraduate}
+hillaryClinton PersonalStatus ::= '110100'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/CCSNARG3.asn b/lib/asn1/test/asn1_SUITE_data/CCSNARG3.asn
new file mode 100644
index 0000000000..23c1f32ceb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/CCSNARG3.asn
@@ -0,0 +1,345 @@
+CCSNARG3 DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation [1] IMPLICIT EventInformation OPTIONAL
+
+
+}
+
+EventInformation ::=
+ CHOICE
+ { callEvent [0] CallEvent,
+ billingReport [1] BillingInformation
+ }
+
+
+ScriptToScriptInformation ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] Attribute1 OPTIONAL,
+ scriptAttribute2 [2] Attribute2 OPTIONAL,
+ scriptAttribute3 [3] Attribute3 OPTIONAL,
+ scriptAttribute4 [4] Attribute4 OPTIONAL,
+ scriptAttribute5 [5] Attribute5 OPTIONAL,
+ scriptAttribute6 [6] Attribute6 OPTIONAL,
+ scriptAttribute7 [7] Attribute7 OPTIONAL,
+ scriptAttribute8 [8] Attribute8 OPTIONAL,
+ scriptAttribute9 [9] Attribute9 OPTIONAL,
+ scriptAttribute10 [10] Attribute10 OPTIONAL,
+ scriptAttribute11 [11] Attribute11 OPTIONAL,
+ scriptAttribute12 [12] Attribute12 OPTIONAL,
+ scriptAttribute13 [13] Attribute13 OPTIONAL,
+ scriptAttribute14 [14] Attribute14 OPTIONAL,
+ scriptAttribute15 [15] Attribute15 OPTIONAL,
+ scriptAttribute16 [16] Attribute16 OPTIONAL,
+ scriptAttribute17 [17] Attribute17 OPTIONAL,
+ scriptAttribute18 [18] Attribute18 OPTIONAL,
+ scriptAttribute19 [19] Attribute19 OPTIONAL,
+ scriptAttribute20 [20] Attribute20 OPTIONAL,
+ scriptAttribute21 [21] Attribute21 OPTIONAL,
+ scriptAttribute22 [22] Attribute22 OPTIONAL,
+ scriptAttribute23 [23] Attribute23 OPTIONAL,
+ scriptAttribute24 [24] Attribute24 OPTIONAL,
+ scriptAttribute25 [25] Attribute25 OPTIONAL,
+ scriptAttribute26 [26] Attribute26 OPTIONAL,
+ scriptAttribute27 [27] Attribute27 OPTIONAL,
+ scriptAttribute28 [28] Attribute28 OPTIONAL,
+ scriptAttribute29 [29] Attribute29 OPTIONAL,
+ scriptAttribute30 [30] Attribute30 OPTIONAL
+ }
+
+
+CallEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM OPTIONAL,
+
+ miscCallInfo [1] MiscCallInfo OPTIONAL,
+ iNlegID [2] LegType OPTIONAL,
+ announcementInfo [3] INTEGER
+ { announcementstarted(0), announcementcompleted(1) } (0..1) OPTIONAL,
+ callAttemptElapsedTimeValue [4] INTEGER (0..255) OPTIONAL,
+ callStopTimeValue [5] DateAndTime OPTIONAL,
+ callConnectedElapsedTimeValue [6] INTEGER (0..4294967295) OPTIONAL,
+ calledAddressValue [7] GenericNumber OPTIONAL,
+ releaseCause [8] Cause OPTIONAL
+ }
+
+EventTypeBCSM ::= INTEGER {
+ origAttemptauthorized(1),
+ collectedInfo(2),
+ analyzedInformation(3),
+ routeSelectFailure(4),
+ oCalledPartyBusy(5),
+ oAlerting(255),
+ oCalledPartyNotReachable(254),
+ oNoAnswer(6),
+ oAnswer(7),
+ oMidCall(8),
+ oSuspended(253),
+ oReAnswer(252),
+ oDisconnect(9),
+ oAbandon(10),
+ termAttemptauthorized(12)
+ } (0..255)
+
+
+BackwardCallIndicators ::= OCTET STRING (SIZE (2))
+
+BackwardGVNSIndicator ::= OCTET STRING(SIZE(1))
+
+
+MiscCallInfo::= INTEGER {
+ request (0),
+ notification (1)
+ } (0..1)
+
+LegType ::= INTEGER (1..30)
+
+DateAndTime ::= OCTET STRING (SIZE(6))
+
+GenericNumber ::= OCTET STRING (SIZE(1..16))
+
+GenericDigits ::= OCTET STRING (SIZE(1..16))
+
+Number ::= OCTET STRING (SIZE(1..16))
+
+Cause::= OCTET STRING (SIZE(2))
+
+
+BillingInformation ::= SEQUENCE {
+ billingKey [0] INTEGER (0..214783647),
+ billingAttribute1 [1] Attribute1 OPTIONAL,
+ billingAttribute2 [2] Attribute2 OPTIONAL,
+ billingAttribute3 [3] Attribute3 OPTIONAL,
+ billingAttribute4 [4] Attribute4 OPTIONAL,
+ billingAttribute5 [5] Attribute5 OPTIONAL,
+ billingAttribute6 [6] Attribute6 OPTIONAL,
+ billingAttribute7 [7] Attribute7 OPTIONAL,
+ billingAttribute8 [8] Attribute8 OPTIONAL,
+ billingAttribute9 [9] Attribute9 OPTIONAL,
+ billingAttribute10 [10] Attribute10 OPTIONAL,
+ billingAttribute11 [11] Attribute11 OPTIONAL,
+ billingAttribute12 [12] Attribute12 OPTIONAL,
+ billingAttribute13 [13] Attribute13 OPTIONAL,
+ billingAttribute14 [14] Attribute14 OPTIONAL,
+ billingAttribute15 [15] Attribute15 OPTIONAL,
+ billingAttribute16 [16] Attribute16 OPTIONAL,
+ billingAttribute17 [17] Attribute17 OPTIONAL,
+ billingAttribute18 [18] Attribute18 OPTIONAL,
+ billingAttribute19 [19] Attribute19 OPTIONAL,
+ billingAttribute20 [20] Attribute20 OPTIONAL
+}
+
+
+Attribute1 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute2 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute3 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute4 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute5 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute6 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute7 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute8 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute9 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute10 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute11 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute12 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute13::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute14 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute15 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute16 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute17 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute18 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute19::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute20 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute21 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute22 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute23 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute24 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute25 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute26 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute27::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute28 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute29 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute30 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Certificate.asn b/lib/asn1/test/asn1_SUITE_data/Certificate.asn
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Certificate.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/Cho.py b/lib/asn1/test/asn1_SUITE_data/Cho.py
new file mode 100644
index 0000000000..c390eed2ba
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Cho.py
@@ -0,0 +1,27 @@
+Cho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoCon ::= CHOICE
+{
+ nested Cho2,
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+Cho2 ::= CHOICE
+{
+ i INTEGER,
+ b BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoExtension.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoExtension.asn1
new file mode 100644
index 0000000000..18473bae30
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoExtension.asn1
@@ -0,0 +1,44 @@
+ChoExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoExt1 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+ChoExt1x ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+ChoExt2 ::= CHOICE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+ChoExt3 ::= CHOICE
+{
+ str OCTET STRING,
+-- ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+ChoExt4 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoExternal.asn1
new file mode 100644
index 0000000000..950579a620
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoExternal.asn1
@@ -0,0 +1,40 @@
+ChoExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XCho, XBool, XBoolImp, XBoolExp, XChoNT, XChoExp FROM External;
+
+
+
+ChoXCho ::= XCho
+
+ChoXBool ::= CHOICE
+{
+ xbool XBool,
+ xboolImp XBoolImp,
+ xboolExp XBoolExp
+}
+
+
+
+NT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTExp ::= Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XChoNT
+XExpNT ::= [4] EXPLICIT XChoNT
+
+XNTExp ::= XChoExp
+XExpExp ::= [8] EXPLICIT XChoExp
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoOptional.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoOptional.asn1
new file mode 100644
index 0000000000..18f45b645c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoOptional.asn1
@@ -0,0 +1,35 @@
+ChoOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho VisibleString,
+ ocStrCho OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoOptionalImplicitTag.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoOptionalImplicitTag.asn1
new file mode 100644
index 0000000000..251f682ddc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoOptionalImplicitTag.asn1
@@ -0,0 +1,35 @@
+ChoOptionalImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool [0] BOOLEAN,
+ int [1] INTEGER OPTIONAL,
+ cho [7] ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho [2] VisibleString,
+ ocStrCho [3] OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoPrim.asn1
new file mode 100644
index 0000000000..984694ced8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoPrim.asn1
@@ -0,0 +1,20 @@
+ChoPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoCon ::= CHOICE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoRecursive.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoRecursive.asn1
new file mode 100644
index 0000000000..f0fe2f629c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoRecursive.asn1
@@ -0,0 +1,30 @@
+ChoRecursive DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoRec ::= CHOICE
+{
+ nothing [0] NULL,
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec
+ }
+}
+
+ChoRec2 ::= CHOICE
+{
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec2
+ },
+ nothing [0] NULL
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoTypeRefCho.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefCho.asn1
new file mode 100644
index 0000000000..bcbf5045cd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefCho.asn1
@@ -0,0 +1,44 @@
+ChoTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+ChoTRcho ::= CHOICE
+{
+ choCho ChoChoNT,
+ choChoE [145] EXPLICIT ChoChoNT,
+
+ choCho-E ChoChoExp,
+ choChoE-E [345] EXPLICIT ChoChoExp
+
+}
+
+ChoChoNT ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+ChoChoExp ::= [75] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+
+ChoChoInline ::= CHOICE
+{
+ bool1 [0] BOOLEAN,
+ choCho CHOICE
+ {
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+ }
+}
+
+OctStr ::= OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoTypeRefPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefPrim.asn1
new file mode 100644
index 0000000000..ed6095f769
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefPrim.asn1
@@ -0,0 +1,34 @@
+ChoTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTR ::= CHOICE
+{
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+}
+
+
+ChoTR2 ::= CHOICE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSeq.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSeq.asn1
new file mode 100644
index 0000000000..f9b5cbf85f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSeq.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoTRseq ::= CHOICE
+{
+ choSeq ChoSeq,
+ choSeqI [134] ChoSeq,
+ choSeqE [135] EXPLICIT ChoSeq,
+
+ choSeq-I ChoSeqImp,
+ choSeqI-I [234] ChoSeqImp,
+ choSeqE-I [235] EXPLICIT ChoSeqImp,
+
+ choSeq-E ChoSeqExp,
+ choSeqI-E [334] ChoSeqExp,
+ choSeqE-E [335] EXPLICIT ChoSeqExp
+
+}
+
+ChoSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSet.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSet.asn1
new file mode 100644
index 0000000000..7d8da3f90d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoTypeRefSet.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTRset ::= CHOICE
+{
+ choSet ChoSet,
+ choSetI [124] ChoSet,
+ choSetE [125] EXPLICIT ChoSet,
+
+ choSet-I ChoSetImp,
+ choSetI-I [224] ChoSetImp,
+ choSetE-I [225] EXPLICIT ChoSetImp,
+
+ choSet-E ChoSetExp,
+ choSetI-E [324] ChoSetExp,
+ choSetE-E [325] EXPLICIT ChoSetExp
+
+}
+
+ChoSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoiceBadExtension.asn1 b/lib/asn1/test/asn1_SUITE_data/ChoiceBadExtension.asn1
new file mode 100644
index 0000000000..d0789d7414
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoiceBadExtension.asn1
@@ -0,0 +1,27 @@
+ChoiceBadExtension DEFINITIONS ::=
+BEGIN
+
+Seq ::= SEQUENCE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho1 ::= CHOICE {
+ name PrintableString,
+ ...,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho2 ::= CHOICE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoiceInSeq.asn b/lib/asn1/test/asn1_SUITE_data/ChoiceInSeq.asn
new file mode 100644
index 0000000000..ac93226a1b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoiceInSeq.asn
@@ -0,0 +1,22 @@
+ChoiceInSeq DEFINITIONS ::=
+BEGIN
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ } OPTIONAL
+}
+
+ScriptToScriptInformation ::= INTEGER
+CallEvent ::= INTEGER
+BillingInformation ::= INTEGER
+EventInformation ::=
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ChoiceIndef.asn b/lib/asn1/test/asn1_SUITE_data/ChoiceIndef.asn
new file mode 100644
index 0000000000..71b717b621
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ChoiceIndef.asn
@@ -0,0 +1,24 @@
+ChoiceIndef DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+I ::= INTEGER
+
+Cho ::= CHOICE {
+ ca [0] I,
+ cb [1] INTEGER
+}
+
+Seq ::= SEQUENCE {
+ sa [0] Cho,
+ sb [1] INTEGER
+}
+
+-- detta varde funkar ej. fixat i OTP-4358
+-- Val4 = {'Seq',{ca,11},12}
+-- val4 = <<48,128,160,128,128,1,11,0,0,129,1,12,0,0>>
+
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Comment.asn b/lib/asn1/test/asn1_SUITE_data/Comment.asn
new file mode 100644
index 0000000000..c2a5abd633
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Comment.asn
@@ -0,0 +1,21 @@
+Comment DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+/* comments as to the 2002 standard
+
+this is the new added way of commenting multile lines */
+
+/* it is also allowed to have -- old kind of comment signs inside
+this new variant. The two dashes will lose their meaning as a comment
+inside a multiline comment, /* the new type of comment may also be
+nested */ */
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+/* another multiline comment, bu t on one line. */
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/CommonDataTypes.py b/lib/asn1/test/asn1_SUITE_data/CommonDataTypes.py
new file mode 100644
index 0000000000..2c25f81235
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/CommonDataTypes.py
@@ -0,0 +1,4360 @@
+CommonDataTypes DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- @prop dataType
+-- @descr This types only purpose is to avoid OSS compiler warning : Duplicate PDU tag
+-- @
+CommonDataTypeWrapper ::= CHOICE
+{
+ wrapAddAnalysisRejectReason AddAnalysisRejectReason,
+ wrapAddServiceToServiceProfileRejectReason AddServiceToServiceProfileRejectReason,
+ wrapAddUserIdentifiersRejectReason AddUserIdentifiersRejectReason,
+ wrapAdmissionRejectReason AdmissionRejectReason,
+ wrapAlertingUUIE AlertingUUIE,
+ wrapAllocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ wrapAnalyseRejectReason AnalyseRejectReason,
+ wrapAvailabilityOfEquipment AvailabilityOfEquipment,
+ wrapBandwidth Bandwidth,
+ wrapBandwidthReducedInformation BandwidthReducedInformation,
+ wrapBandwidthReducedReason BandwidthReducedReason,
+ wrapBandwidthRejectReason BandwidthRejectReason,
+ wrapBasicCallCategories BasicCallCategories,
+ wrapBearerCapability BearerCapability,
+ wrapCallInformation CallInformation,
+ wrapCallModel CallModel,
+ wrapCallProceedingUUIE CallProceedingUUIE,
+ wrapCallReference CallReference,
+ wrapCallServices CallServices,
+ wrapCallState CallState,
+ wrapCallType CallType,
+ wrapCause Cause,
+ wrapCauseValue CauseValue,
+ wrapChangeServiceAndStatusRejectReason ChangeServiceAndStatusRejectReason,
+ wrapCheckServiceRejectReason CheckServiceRejectReason,
+ wrapCoding Coding,
+ wrapConferenceGoal ConferenceGoal,
+ wrapConferenceIdentifier ConferenceIdentifier,
+ wrapConnectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ wrapConnectUUIE ConnectUUIE,
+ wrapConnectionData ConnectionData,
+ wrapConnectionIdentifier ConnectionIdentifier,
+ wrapConnectionInformation ConnectionInformation,
+ wrapConnectionInformationOriginatingSide ConnectionInformationOriginatingSide,
+ wrapConnectionInformationTerminatingSide ConnectionInformationTerminatingSide,
+ wrapConnectionType ConnectionType,
+ wrapCreateEquipmentRepresentationRejectReason CreateEquipmentRepresentationRejectReason,
+ wrapCreateServiceAndStatusRejectReason CreateServiceAndStatusRejectReason,
+ wrapCreateServiceIdentifierRejectReason CreateServiceIdentifierRejectReason,
+ wrapDeallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ wrapDetailedReasonAtom DetailedReasonAtom,
+ wrapDiagnostics Diagnostics,
+ wrapDisconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ wrapDisengageReason DisengageReason,
+ wrapDisengageRejectReason DisengageRejectReason,
+ wrapDisplay Display,
+ wrapE164Identifier E164Identifier,
+ wrapEndToEndEndpointInformationServiceCallAcknowledge EndToEndEndpointInformationServiceCallAcknowledge,
+ wrapEndToEndEndpointInformationServiceCallActive EndToEndEndpointInformationServiceCallActive,
+ wrapEndToEndEndpointInformationServiceCallProgress EndToEndEndpointInformationServiceCallProgress,
+ wrapEndToEndEndpointInformationServiceCallSetup EndToEndEndpointInformationServiceCallSetup,
+ wrapEndToEndEndpointInformationServiceCallTermination EndToEndEndpointInformationServiceCallTermination,
+ wrapEndpointIdentifier EndpointIdentifier,
+ wrapEndpointRegistrationCategories EndpointRegistrationCategories,
+ wrapEndpointRegistrationRejectReason EndpointRegistrationRejectReason,
+ wrapEndpointType EndpointType,
+ wrapEndpointUnregistrationCategories EndpointUnregistrationCategories,
+ wrapEndpointUnregistrationRejectReason EndpointUnregistrationRejectReason,
+ wrapEquipmentAddressAN EquipmentAddressAN,
+ wrapEquipmentAddressLAN EquipmentAddressLAN,
+ wrapEquipmentRelatedInformation EquipmentRelatedInformation,
+ wrapEquipmentRelatedInformationIdentifier EquipmentRelatedInformationIdentifier,
+ wrapFacilityReason FacilityReason,
+ wrapFacilityUUIE FacilityUUIE,
+ wrapGatekeeperIdentifier GatekeeperIdentifier,
+ wrapGatekeeperInformation GatekeeperInformation,
+ wrapGatekeeperRejectReason GatekeeperRejectReason,
+ wrapGatewayInformation GatewayInformation,
+ wrapGetAnalysisRejectReason GetAnalysisRejectReason,
+ wrapGetEquipmentInformationRejectReason GetEquipmentInformationRejectReason,
+ wrapGetLANDataRejectReason GetLANDataRejectReason,
+ wrapGetPartyInformationRejectReason GetPartyInformationRejectReason,
+ wrapGetRejectReasonUser GetRejectReasonUser,
+ wrapGetServiceFromServiceProfileRejectReason GetServiceFromServiceProfileRejectReason,
+ wrapGetServiceProfileRejectReason GetServiceProfileRejectReason,
+ wrapGetServicesAndStatusRejectReason GetServicesAndStatusRejectReason,
+ wrapGetUserServiceInformationAndStatusRejectReason GetUserServiceInformationAndStatusRejectReason,
+ wrapH221NonStandard H221NonStandard,
+ wrapH310Information H310Information,
+ wrapH320Information H320Information,
+ wrapH321Information H321Information,
+ wrapH322Information H322Information,
+ wrapH323Information H323Information,
+ wrapH323InterfaceAddCallReferenceRejectReason H323InterfaceAddCallReferenceRejectReason,
+ wrapH323InterfaceAddCallRelatedDataRejectReason H323InterfaceAddCallRelatedDataRejectReason,
+ wrapH323InterfaceAddFixedTransportAddressDataRejectReason H323InterfaceAddFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceAddKeysAndSetAttributesRejectReason H323InterfaceAddKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceAdditionalKeys H323InterfaceAdditionalKeys,
+ wrapH323InterfaceAllocateResourceRejectReason H323InterfaceAllocateResourceRejectReason,
+ wrapH323InterfaceChangeKeysAndRelationsToUsersReject H323InterfaceChangeKeysAndRelationsToUsersReject,
+ wrapH323InterfaceCommonAttribute H323InterfaceCommonAttribute,
+ wrapH323InterfaceCommonAttributeIdentifier H323InterfaceCommonAttributeIdentifier,
+ wrapH323InterfaceCreateCallReferenceRejectReason H323InterfaceCreateCallReferenceRejectReason,
+ wrapH323InterfaceCreateRejectReason H323InterfaceCreateRejectReason,
+ wrapH323InterfaceDeallocateResourceRejectReason H323InterfaceDeallocateResourceRejectReason,
+ wrapH323InterfaceGetFixedTransportAddressDataRejectReason H323InterfaceGetFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceGetOrRemoveCallRelatedDataRejectReason H323InterfaceGetOrRemoveCallRelatedDataRejectReason,
+ wrapH323InterfaceGetOrSetCommonRejectReason H323InterfaceGetOrSetCommonRejectReason,
+ wrapH323InterfaceGetOrSetInstanceRejectReason H323InterfaceGetOrSetInstanceRejectReason,
+ wrapH323InterfaceInstanceAttribute H323InterfaceInstanceAttribute,
+ wrapH323InterfaceInstanceAttributeIdentifier H323InterfaceInstanceAttributeIdentifier,
+ wrapH323InterfaceKey H323InterfaceKey,
+ wrapH323InterfaceKeyEndpointIdentifier H323InterfaceKeyEndpointIdentifier,
+ wrapH323InterfaceReduceBandwidthRejectReason H323InterfaceReduceBandwidthRejectReason,
+ wrapH323InterfaceRemoveCallReferenceRejectReason H323InterfaceRemoveCallReferenceRejectReason,
+ wrapH323InterfaceRemoveFixedTransportAddressDataRejectReason H323InterfaceRemoveFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceRemoveKeysAndSetAttributesRejectReason H323InterfaceRemoveKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceRemoveRejectReason H323InterfaceRemoveRejectReason,
+ wrapH324Information H324Information,
+ wrapHighLayerCompatibility HighLayerCompatibility,
+ wrapInterfaceRegistrationInformation InterfaceRegistrationInformation,
+ wrapLANAttribute LANAttribute,
+ wrapLANAttributeIdentifier LANAttributeIdentifier,
+ wrapLayer1ProtUserInfo Layer1ProtUserInfo,
+ wrapLocation Location,
+ wrapLocationRejectReason LocationRejectReason,
+ wrapLogicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ wrapLowLayerCompatibility LowLayerCompatibility,
+ wrapMaximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ wrapMaximumTotalBandwidth MaximumTotalBandwidth,
+ wrapMcuInformation McuInformation,
+ wrapNonStandardIdentifier NonStandardIdentifier,
+ wrapNonStandardMessage NonStandardMessage,
+ wrapNonStandardParameter NonStandardParameter,
+ wrapNumber Number,
+ wrapNumberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ wrapNumberType NumberType,
+ wrapNumberingPlan NumberingPlan,
+ wrapObjectIdentifier ObjectIdentifier,
+ wrapPhysicalConnectionPointIdentifier PhysicalConnectionPointIdentifier,
+ wrapPid Pid,
+ wrapPreStringToRemoveInDestinationAddress PreStringToRemoveInDestinationAddress,
+ wrapProgressIndicator ProgressIndicator,
+ wrapProtocolIdentifier ProtocolIdentifier,
+ wrapQ931Timer301Value Q931Timer301Value,
+ wrapQ931Timer303Value Q931Timer303Value,
+ wrapQ954Details Q954Details,
+ wrapQseriesOptions QseriesOptions,
+ wrapRASMessageTimerValue RASMessageTimerValue,
+ wrapRTPSession RTPSession,
+ wrapRegistrationRejectReason RegistrationRejectReason,
+ wrapRegistrationStatus RegistrationStatus,
+ wrapRelationToEquipment RelationToEquipment,
+ wrapRelationToUser RelationToUser,
+ wrapReleaseCompleteReason ReleaseCompleteReason,
+ wrapReleaseCompleteUUIE ReleaseCompleteUUIE,
+ wrapReleaseInformation ReleaseInformation,
+ wrapRemoveAnalysisRejectReason RemoveAnalysisRejectReason,
+ wrapRemoveEquipmentRepresentationRejectReason RemoveEquipmentRepresentationRejectReason,
+ wrapRemoveServiceAndStatusRejectReason RemoveServiceAndStatusRejectReason,
+ wrapRemoveServiceFromServiceProfileRejectReason RemoveServiceFromServiceProfileRejectReason,
+ wrapRemoveServiceIdentifierRejectReason RemoveServiceIdentifierRejectReason,
+ wrapRepeatIndicator RepeatIndicator,
+ wrapRequestSeqNum RequestSeqNum,
+ wrapRequestedUserAndLinkedUserAreIdentical RequestedUserAndLinkedUserAreIdentical,
+ wrapServiceAndStatus ServiceAndStatus,
+ wrapServiceCallSetupRejectionInformation ServiceCallSetupRejectionInformation,
+ wrapServiceCallSetupRejectionReason ServiceCallSetupRejectionReason,
+ wrapServiceCallTerminationInformation ServiceCallTerminationInformation,
+ wrapServiceCallTerminationReason ServiceCallTerminationReason,
+ wrapServiceData ServiceData,
+ wrapServiceIdentifier ServiceIdentifier,
+ wrapServiceProfile ServiceProfile,
+ wrapSetEquipmentStatusRejectReason SetEquipmentStatusRejectReason,
+ wrapSetLANDataRejectReason SetLANDataRejectReason,
+ wrapSetUserAttributeData SetUserAttributeData,
+ wrapSetupUUIE SetupUUIE,
+ wrapStateOfEquipment StateOfEquipment,
+ wrapStateOfUser StateOfUser,
+ wrapStatusOfService StatusOfService,
+ wrapSubaddress Subaddress,
+ wrapSubaddressInformation SubaddressInformation,
+ wrapSubaddressType SubaddressType,
+ wrapSupportedProtocols SupportedProtocols,
+ wrapT120Information T120Information,
+ wrapTerminalInformation TerminalInformation,
+ wrapTerminationInitiatior TerminationInitiatior,
+ wrapTimeSlot TimeSlot,
+ wrapTransferCapability TransferCapability,
+ wrapTransferRate TransferRate,
+ wrapTransportAddress TransportAddress,
+ wrapTransportAddressInformation TransportAddressInformation,
+ wrapTransportChannelInformation TransportChannelInformation,
+ wrapTypeOfEquipment TypeOfEquipment,
+ wrapTypeOfFlowControl TypeOfFlowControl,
+ wrapTypeOfLAN TypeOfLAN,
+ wrapTypeOfRegistration TypeOfRegistration,
+ wrapTypeOfService TypeOfService,
+ wrapTypeOfUser TypeOfUser,
+ wrapUnknownMessageResponse UnknownMessageResponse,
+ wrapUnregistrationRejectReason UnregistrationRejectReason,
+ wrapUserAllocateResourceRejectReason UserAllocateResourceRejectReason,
+ wrapUserAttributeData UserAttributeData,
+ wrapUserAttributeIdentifier UserAttributeIdentifier,
+ wrapUserCreateRejectReason UserCreateRejectReason,
+ wrapUserDeallocateResourceRejectReason UserDeallocateResourceRejectReason,
+ wrapUserIdentifier UserIdentifier,
+ wrapUserIdentifierInformation UserIdentifierInformation,
+ wrapUserInformation UserInformation,
+ wrapUserInformationUUIE UserInformationUUIE,
+ wrapUserKey UserKey,
+ wrapUserOrEquipmentRelatedInformation UserOrEquipmentRelatedInformation,
+ wrapUserOrEquipmentRelatedInformationIdentifier UserOrEquipmentRelatedInformationIdentifier,
+ wrapUserRelatedInformation UserRelatedInformation,
+ wrapUserRelatedInformationIdentifier UserRelatedInformationIdentifier,
+ wrapUserRemoveRejectReason UserRemoveRejectReason,
+ wrapUserSetRejectReason UserSetRejectReason,
+ wrapUserSpecificInformation UserSpecificInformation,
+ wrapVendorIdentifier VendorIdentifier,
+ wrapVoiceInformation VoiceInformation,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AddAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddServiceToServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddServiceToServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddUserIdentifiersRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddUserIdentifiersRejectReason ::= CHOICE
+{
+ userIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AdmissionRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AlertingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AlertingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AllocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AllocateTransmissionPathRejectReason ::= CHOICE
+{
+ calledUserNotAvailable NULL,
+ calledUserUnknown NULL,
+ permissionDenied NULL,
+ resourcesNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AnalyseRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AnalyseRejectReason ::= CHOICE
+{
+ noMatchingEntryFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AvailabilityOfEquipment
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AvailabilityOfEquipment ::= CHOICE
+{
+ available NULL,
+ notAvailable NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- Bandwidth
+--
+-- @prop dataType
+--
+-- @descr States the bandwidth to be used in 100 bps.
+--
+-- @
+--
+-- ---------------------------------
+
+Bandwidth ::= INTEGER ( 1.. 4294967295 )
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedInformation
+--
+-- @prop dataType
+--
+-- @descr States information related to the recuction of the bandwidth.
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedInformation ::= SEQUENCE
+{
+ allocatedBandwidth Bandwidth,
+ bandwidthReducedReason BandwidthReducedReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedReason ::= CHOICE
+{
+ bandwidthLimited NULL,
+ bandwidthAdaptedToOriginatingEndpoint NULL,
+ originBandwidthBarredDueToCategories NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BandwidthRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthRejectReason ::= CHOICE
+{
+ notBound NULL,
+ invalidConferenceID NULL,
+ invalidPermission NULL,
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BasicCallCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service basic call.
+--
+-- @
+-- ---------------------------------
+
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+-- ---------------------------------
+--
+-- BearerCapability
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+BearerCapability ::= SEQUENCE
+{
+ transferCapability TransferCapability,
+ transferRate TransferRate,
+ layer1ProtUserInfo Layer1ProtUserInfo,
+ rateMultiplier INTEGER (0..127),
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CallInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReference CallReference, -- callReferenceValue
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInformation OPTIONAL,
+ h245 TransportChannelInformation,
+ callSignaling TransportChannelInformation,
+ callType CallType,
+ bandwidth Bandwidth, -- bandWidth
+ callModel CallModel,
+ ...
+}
+
+-- ---------------------------------
+--
+-- CallModel
+--
+-- @prop dataType
+--
+-- @descr Type of callmodel used i.e routed via gatekeeper or not
+--
+-- @
+--
+-- ---------------------------------
+
+CallModel ::= CHOICE
+{
+ gatekeeperRouted NULL,
+ direct NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallProceedingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+
+CallProceedingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr states the call reference that identifies a specific call.
+-- Origin: H.225.0 CallReferenceValue.
+--
+-- @
+--
+-- ---------------------------------
+
+CallReference ::= INTEGER (0..65535)
+
+
+-- ---------------------------------
+--
+-- CallServices
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallServices ::= SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallState ::= CHOICE
+{
+ null NULL,
+ callInit NULL,
+ overlapSending NULL,
+ outgoingCallProceeding NULL,
+ callDelivered NULL,
+ callPresent NULL,
+ callReceived NULL,
+ connectRequest NULL,
+ incomingCallProceeding NULL,
+ active NULL,
+ disconnectRequest NULL,
+ disconnectIndication NULL,
+ releaseRequest NULL,
+ facilityRequest NULL,
+ overlapReceiving NULL,
+ restartRequest NULL,
+ restart NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Cause
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Cause ::= SEQUENCE
+{
+ coding Coding,
+ location Location,
+ value CauseValue,
+ diagnostics Diagnostics,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CauseValue
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+CauseValue ::= CHOICE
+{
+ unassignedNumber NULL, -- 1
+ noRouteToSpecifiedTransitNetwork NULL, -- 2
+ noRouteToDestination NULL, -- 3
+ channelUnacceptable NULL, -- 6
+ normalClearing NULL, -- 16
+ userBusy NULL, -- 17
+ noUserResponding NULL, -- 18
+ noAnswereFromUser NULL, -- 19
+ portableNotAvailable NULL, -- 20
+ callRejected NULL, -- 21
+ numberChanged NULL, -- 22
+ destinationOutOfOrder NULL, -- 27
+ invalidNumberFormat NULL, -- 28
+ facilityRequestRejected NULL, -- 29
+ responseToStatusEnquiry NULL, -- 30
+ normalUnspecified NULL, -- 31
+ noCircuitChannelAvailable NULL, -- 34
+ networkOutOfOrder NULL, -- 38
+ temporaryFailure NULL, -- 41
+ switchingEquipmentCongestion NULL, -- 42
+ accessInformationDiscarded NULL, -- 43
+ requestedCircuitChannelNotAvailable NULL, -- 44
+ resourceUnavailableUnspecified NULL, -- 47
+ qualityOfServiceUnavailable NULL, -- 49
+ notSubscribedToRequestedFacility NULL, -- 50
+ bearerCapabilityNotAuthorized NULL, -- 57
+ bearerCapabilityNotPresentlyAvailable NULL, -- 58
+ serviceOrOptionNotAvailableUnspecified NULL, -- 63, 79
+ bearerCapabilityNotImplemented NULL, -- 65
+ channelTypeNotImplemented NULL, -- 66
+ requestedFacilityNotImplemented NULL, -- 69
+ onlyRestrictedDigitalInformationBcIsAvailable NULL, -- 70
+ invalidCallReferenceValue NULL, -- 81
+ incompatibleDestination NULL, -- 88
+ invalidTransitNetworkSelection NULL, -- 91
+ invalidMessageUnspecified NULL, -- 95
+ mandatoryInformationElementIsMissing NULL, -- 96
+ messageTypeNonexistingOrNotimplemented NULL, -- 97
+ messageNotCompatibleOrImplemented NULL, -- 98
+ informationElementNonExisting NULL, -- 99
+ invalidInformationElementContents NULL, -- 100
+ messageNotCompatibleWithCallState NULL, -- 101
+ recoveryOnTimerExpiry NULL, -- 102
+ protocolErrorUnspecified NULL, -- 111
+ interworkingUnspecified NULL, -- 127
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ChangeServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ChangeServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CheckServiceRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CheckServiceRejectReason ::= CHOICE
+{
+ deniedDueToInteraction NULL,
+ deniedDueToCategories NULL,
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Coding
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Coding ::= CHOICE
+{
+ ccitt NULL,
+ ecma NULL,
+ national NULL,
+ network NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ConferenceGoal
+--
+-- @prop dataType
+--
+-- @descr Type of call setup desire
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceGoal ::= CHOICE
+{
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConferenceIdentifier
+--
+-- @prop dataType
+--
+--
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceIdentifier ::= OCTET STRING (SIZE (16))
+
+
+-- ---------------------------------
+--
+-- ConnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ destinationEndpointType EndpointType, -- destinationInfo
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionData
+--
+-- @prop dataType
+--
+-- @descr This parameter holds connection data that are specific for
+-- certain types of Equipments.
+-- @
+--
+-- ---------------------------------
+
+ConnectionData ::= CHOICE
+{
+ timeSlotInformation SEQUENCE OF TimeSlot,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionIdentifier
+--
+-- @prop dataType
+--
+-- @descr Identifier to the connection handler instance.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionIdentifier ::= ObjectIdentifier
+
+
+-- ---------------------------------
+--
+-- ConnectionInformation
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies information that are of interest for
+-- the functionallity handled by component Connection Handler.
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformation ::= SEQUENCE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ connectionData ConnectionData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationOriginatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the originating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationOriginatingSide ::= SEQUENCE
+{
+ bandwidth Bandwidth,
+ callType CallType,
+ originatorConnectionInformation ConnectionInformation,
+ terminatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationTerminatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the terminating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationTerminatingSide ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ originatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionType
+--
+-- @prop dataType
+--
+-- @descr States the type of connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateEquipmentRepresentationRejectReason ::= CHOICE
+{
+ equipmentRepresentationAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceIdentifierRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DeallocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DeallocateTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DetailedReasonAtom
+--
+-- @prop dataType
+-- @descr This data type indicates the release information of a forced drop
+-- during a call.
+-- @
+--
+-- ---------------------------------
+
+DetailedReasonAtom ::= CHOICE
+{
+ internalDataMissmatch NULL,
+ destinationUserIdentifierNotKnown NULL,
+ rejectedDueToCategories NULL,
+ rejectedDueToResources NULL,
+ failedToOpenDestinationCallSignallingPort NULL,
+ theRequestedServiceIsNotSupported NULL,
+ undefined NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Diagnostics
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Diagnostics ::= INTEGER(1..127)
+
+
+-- ---------------------------------
+--
+-- DisconnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DisconnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ switchNotConnected NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageReason
+--
+-- @prop dataType
+-- @descr the reason why a change was requested by the gatekeeper or the terminal.
+-- @
+-- ---------------------------------
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL,
+ normalDrop NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ requestToDropOther NULL,
+ ...
+}
+-- ---------------------------------
+--
+-- Display
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Display ::= OCTET STRING (SIZE(1..82))
+
+
+
+-- ---------------------------------
+--
+-- E164Identifier
+--
+-- @prop dataType
+--
+-- @descr Identifier for the user identifier of the type E.164.
+--
+-- @
+--
+-- ---------------------------------
+
+E164Identifier ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallAcknowledge
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallAcknowledge ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323AcknowledgeInformation AlertingUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallActive
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallActive ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323ActiveInformation ConnectUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallProgress
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallProgress ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ ...
+}
+
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallSetup
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallSetup ::=SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ calledNumber Number OPTIONAL,
+ calledSubaddress Subaddress OPTIONAL,
+ callingNumber Number OPTIONAL,
+ callingSubaddress Subaddress OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ repeatIndicator RepeatIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323SetupInformation SetupUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallTermination
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallTermination ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323TerminationInformation ReleaseCompleteUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointIdentifier
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointIdentifier ::= BMPString (SIZE(1..128)) -- change from SIZE(128)
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint registration.
+--
+-- @
+-- ---------------------------------
+
+EndpointRegistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointRegistrationRejectReason ::= CHOICE
+{
+ attemptToChangeEndpoint NULL,
+ requestedUserNotKnown NULL,
+ endpointTypeNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInformation OPTIONAL,
+ gateway GatewayInformation OPTIONAL,
+ mcu McuInformation OPTIONAL,
+ terminal TerminalInformation OPTIONAL,
+ mc BOOLEAN,
+ undefinedNode BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint unregistration.
+--
+-- @
+-- ---------------------------------
+
+EndpointUnregistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointUnregistrationRejectReason ::= CHOICE
+{
+ permissionDenied NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressAN
+--
+-- @prop dataType
+--
+-- @descr States the address for a certain equipment connected
+-- to the Access Node.
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressAN ::= SEQUENCE
+{
+ --TBD by SEA,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressLAN
+--
+-- @prop dataType
+--
+-- @descr States the transport address for a certain equipment
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressLAN ::= SEQUENCE
+{
+ transportAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformation
+--
+-- @prop dataType
+--
+-- @descr Contains the retreived data.
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentRelatedInformation ::= CHOICE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ registrationStatus RegistrationStatus,
+ stateOfEquipment StateOfEquipment,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain equipment.
+--
+-- @
+-- ---------------------------------
+
+EquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ logicalConnectionPointIdentifier NULL,
+ registrationStatus NULL,
+ stateOfEquipment NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- FacilityReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL,
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- FacilityUUIE
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeH245Address TransportAddress OPTIONAL, -- alternativeAddress
+ alternativeUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- alternativeAliasAddress
+ conferenceIdentifier ConferenceIdentifier OPTIONAL, -- conferenceID
+ facilityReason FacilityReason, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperIdentifier
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+
+
+-- ---------------------------------
+--
+-- GatekeeperInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatewayInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatewayInformation ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GetAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetAnalysisRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetEquipmentInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetEquipmentInformationRejectReason ::= CHOICE
+{
+ equipmentUnknown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetLANDataRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetLANDataRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetPartyInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetPartyInformationRejectReason ::= CHOICE
+{
+ noEquipmentAvailable NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetRejectReasonUser
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetRejectReasonUser ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceProfileRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServicesAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServicesAndStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetUserServiceInformationAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetUserServiceInformationAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H221NonStandard
+-- @prop dataType
+--
+-- @descr Gives non standard information about the standard protocol H.221.
+-- @
+--
+-- ---------------------------------
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255),
+ t35Extension INTEGER(0..255),
+ manufacturerCode INTEGER(0..65535),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H310Information
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.310.
+-- @
+--
+-- ---------------------------------
+
+H310Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H320Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.320.
+-- @
+--
+-- ---------------------------------
+
+H320Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H321Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.321.
+-- @
+--
+-- ---------------------------------
+
+H321Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H322Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.322.
+-- @
+--
+-- ---------------------------------
+
+H322Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.323.
+-- @
+--
+-- ---------------------------------
+
+H323Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ requestedCallReferenceAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ callRelatedDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ fixedTransportAddressDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ existingKeyNotValid NULL,
+ newKeyAlreadyExists NULL,
+ newKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAdditionalKeys
+--
+-- @prop dataType
+-- @descr Additional keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceAdditionalKeys ::= SEQUENCE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAllocateResourceRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceChangeKeysAndRelationsToUsersReject
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceChangeKeysAndRelationsToUsersReject ::= CHOICE
+{
+ firstKeyNotValid NULL,
+ secondKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are common for all objects of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttribute ::= CHOICE
+{
+ gatekeeperCallSignallingAddressData CHOICE
+ {
+ gatekeeperCallSignallingAddresses SEQUENCE OF TransportAddress,
+ undefined NULL,
+ ...
+ },
+ gatekeeperRASAddressInformation CHOICE
+ {
+ gatekeeperRASAddressData SEQUENCE
+ {
+ multicastRASAddress TransportAddress,
+ gatekeeperRASAddress TransportAddress,
+ ...
+ },
+ undefined NULL,
+ ...
+ },
+ q931Timer301Value Q931Timer301Value,
+ q931Timer303Value Q931Timer303Value,
+ rasMessageTimerValue RASMessageTimerValue,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are common for all objects
+-- of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttributeIdentifier ::= CHOICE
+{
+ gatekeeperCallSignallingAddresses NULL,
+ gatekeeperRASAddress NULL,
+ q931Timer301Value NULL,
+ q931Timer303Value NULL,
+ rasMessageTimerValue NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceCreateCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ noCallReferenceAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCreateRejectReason ::= CHOICE
+{
+ keyAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceDeallocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceGetFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ noFixedTransportAddressDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrRemoveCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrRemoveCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ noCallRelatedDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetCommonRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetCommonRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetInstanceRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetInstanceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are specific for a h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttribute ::= CHOICE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRasAddresses SEQUENCE OF TransportAddress,
+ registrationStatus RegistrationStatus,
+ gatekeeperCallSignallingAddress TransportAddress,
+ maximumTotalBandwidthForInterface Bandwidth,
+ preStringsToRemoveInDestinationAddress SEQUENCE OF PreStringToRemoveInDestinationAddress,
+ relationToH2250CallSignalling Pid,
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are specific for a
+-- h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttributeIdentifier ::= CHOICE
+{
+ endpointCallSignallingAddresses NULL,
+ endpointRASAddresses NULL,
+ registrationStatus NULL,
+ gatekeeperCallSignallingAddress NULL,
+ maximumTotalBandwidthForInterface NULL,
+ preStringsToRemoveInDestinationAddress NULL,
+ relationToH2250CallSignalling NULL,
+ relationToUser NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKey
+--
+-- @prop dataType
+-- @descr Allowed keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceKey ::= CHOICE
+{
+ endpointIdentifier EndpointIdentifier,
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKeyEndpointIdentifier
+--
+-- @descr Allowed keys for an instance of the type H.323Interface.
+--
+-- ---------------------------------
+
+H323InterfaceKeyEndpointIdentifier ::= SEQUENCE
+{
+ endpointIdentifier EndpointIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceReduceBandwidthRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceReduceBandwidthRejectReason ::= CHOICE
+{
+ bandwidthNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ newBandwidthHigherThanAllocatedBandwidth NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveCallReferenceRejectReason ::= CHOICE
+{
+ callReferenceNotStored NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveFixedTransportAddressDataRejectReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceRemoveFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ keysNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H324Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.324.
+-- @
+--
+-- ---------------------------------
+
+H324Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+HighLayerCompatibility ::= SEQUENCE
+{
+ ...
+}
+-- ---------------------------------
+--
+-- InterfaceRegistrationInformation
+-- @prop dataType
+--
+-- @descr This parameter specifies the current registration status of an
+-- endpoints registration request.
+-- @
+--
+-- ---------------------------------
+
+InterfaceRegistrationInformation ::= SEQUENCE
+{
+ isInterfaceRegistered BOOLEAN,
+ relationToH323User EndpointIdentifier OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LANAttribute
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute value.
+-- @
+--
+-- ---------------------------------
+
+LANAttribute ::= CHOICE
+{
+ maximumTotalBandwidth MaximumTotalBandwidth,
+ maximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ numberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ typeOfFlowControl TypeOfFlowControl,
+ typeOfLAN TypeOfLAN,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- LANAttributeIdentifier
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute identifier.
+-- @
+--
+-- ---------------------------------
+
+LANAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumNumberOfAllowedConnections NULL,
+ numberOfTimesLANWasCrowded NULL,
+ typeOfFlowControl NULL,
+ typeOfLAN NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Layer1ProtUserInfo ::= CHOICE
+ {
+ g711u-law NULL,
+ g711a-law NULL,
+ h323VidephoneCall NULL, -- the meaning of "5" in H323
+ h221Andh242 NULL, -- the meaning of "5" in Q931
+ ...
+ }-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Location ::= CHOICE
+ {
+ user NULL,
+ localPrivateNetwork NULL,
+ localPublicNetwork NULL,
+ transitNetwork NULL,
+ remotePublicNetwork NULL,
+ remotePrivateNetwork NULL,
+ internationalNetwork NULL,
+ beyondInterworkingPoint NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- LocationRejectReason
+-- @prop dataType
+--
+-- @descr
+-- @
+-- ---------------------------------
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LogicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Identifier of the logical connection point.
+-- @
+--
+-- ---------------------------------
+
+LogicalConnectionPointIdentifier ::= INTEGER (0..65535)
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @descr origin Q931
+-- @
+
+ LowLayerCompatibility ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- MaximumNumberOfAllowedConnections
+--
+-- @prop dataType
+-- @descr States the maximum number of allowed connections.
+-- @
+--
+-- ---------------------------------
+
+MaximumNumberOfAllowedConnections ::= CHOICE
+{
+ maximumNumberOfAllowedConnectionsValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- MaximumTotalBandwidth
+-- @prop dataType
+-- @descr States the maximum total bandwidth.
+-- @
+-- ---------------------------------
+
+MaximumTotalBandwidth ::= CHOICE
+{
+ maximumTotalBandwidthValue Bandwidth,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- McuInformation
+-- @prop dataType
+--
+-- @descr Gives detailed information about the endpoint type, MCU.
+-- @
+-- ---------------------------------
+
+McuInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardIdentifier
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardMessage
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+-- ---------------------------------
+--
+-- NonStandardParameter
+--
+-- @prop dataType
+-- @
+-- ---------------------------------
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING,
+ ...
+}
+
+
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Number ::= SEQUENCE
+ {
+ type NumberType,
+ indicator NumberingPlan,
+ number IA5String (FROM ("0123456789#*")),
+ ...
+ }
+
+-- ---------------------------------
+--
+-- NumberOfTimesLANWasCrowded
+-- @prop dataType
+--
+-- @descr States the number of times the Lan has been crowded,
+-- i.e. the endpoints has released the initiated call due to
+-- heavy load in the LAN.
+-- @
+--
+-- ---------------------------------
+
+NumberOfTimesLANWasCrowded ::= CHOICE
+{
+ numberOfTimesLANWasCrowdedValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberType ::= CHOICE
+ {
+ unknown NULL,
+ international NULL,
+ national NULL,
+ network NULL,
+ local NULL,
+ abbreviated NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberingPlan ::= CHOICE
+ {
+ unknown NULL,
+ e164 NULL,
+ data NULL,
+ telex NULL,
+ national NULL,
+ private NULL,
+ ...
+ }
+
+
+
+-- ---------------------------------
+--
+-- ObjectIdentifier
+--
+-- @prop dataType
+-- @descr An identifier to a certain instance of an object.
+-- @
+--
+-- ---------------------------------
+
+ObjectIdentifier ::= OCTET STRING
+
+
+
+-- ---------------------------------
+--
+-- PhysicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Contains data that identifies a specific equipment instance.
+-- @
+--
+-- ---------------------------------
+
+PhysicalConnectionPointIdentifier ::= CHOICE
+{
+ equipmentAN EquipmentAddressAN, -- Equipment connected to the Access Node.
+ equipmentLAN EquipmentAddressLAN, -- Equipment connected to the LAN.
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Pid
+-- @prop dataType
+--
+-- @descr A process identifier.
+-- @
+--
+-- ---------------------------------
+
+Pid ::= ObjectIdentifier
+
+
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr A pre-string that shall be removed when sending the destination address.
+--
+-- @
+--
+-- ---------------------------------
+
+PreStringToRemoveInDestinationAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789,")),
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ ProgressIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- ProtocolIdentifier
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+
+
+-- ---------------------------------
+--
+-- Q931Timer301Value
+-- @prop dataType
+--
+-- @descr States the Q931 timer 301 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer301Value ::= INTEGER ( 180000.. 360000 )
+
+
+
+-- ---------------------------------
+--
+-- Q931Timer303Value
+--
+-- @prop dataType
+-- @descr States the Q931 timer 303 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer303Value ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- Q954Details
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- QseriesOptions
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+QseriesOptions ::=SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RASMessageTimerValue
+--
+-- @prop dataType
+-- @descr States the RAS message timer value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+RASMessageTimerValue ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- RTPSession
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInformation,
+ rtcpAddress TransportChannelInformation,
+ cname PrintableString,
+ ssrc INTEGER (1.. 134217727), -- change from 4294967295 for erl 4.2
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationRejectReason
+--
+-- @prop dataType
+-- @descr Specifies the registration reject reason that are valid
+-- in the H.225.0 message RegistartionReject
+-- @ --
+-- ---------------------------------
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL,
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRasAddress NULL,
+ duplicateAlias UserIdentifierInformation,
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationStatus
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RegistrationStatus ::= CHOICE
+{
+ notRegistered NULL,
+ registered NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RelationToEquipment
+--
+-- @prop dataType
+-- @descr Relation to the architecture component Equipment.
+-- @
+--
+-- ---------------------------------
+
+RelationToEquipment ::= SEQUENCE
+{
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RelationToUser
+--
+-- @prop dataType
+-- @descr Relation to the architecture component User.
+-- @
+--
+-- ---------------------------------
+
+RelationToUser ::= BMPString (SIZE(1..128))
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL,
+ gatekeeperResources NULL,
+ unreachableDestination NULL,
+ destinationRejection NULL,
+ invalidRevision NULL,
+ noPermission NULL,
+ unreachableGatekeeper NULL,
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL,
+ inConf NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteUUIE
+-- @prop dataType
+--
+-- @
+-- ---------------------------------
+
+ReleaseCompleteUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ releaseCompleteReason ReleaseCompleteReason OPTIONAL, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ReleaseInformation
+--
+-- @prop dataType
+-- @descr This data type is used to transfer the reason for the
+-- rejection or release.
+-- @
+--
+-- ---------------------------------
+
+ReleaseInformation ::= CHOICE
+{
+ forcedDrop DetailedReasonAtom,
+ normalDrop NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RemoveAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryNotFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveEquipmentRepresentationRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ equipmentRepresentationDoesNotExist NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceAndStatusRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the service and its categories that
+-- shall be added to a service profile.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceIdentifierRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+RemoveServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ serviceIdentifierDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+ RepeatIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- RequestSeqNum
+--
+-- @prop dataType
+-- @descr
+-- @
+-- ---------------------------------
+
+RequestSeqNum ::= INTEGER (1..65535)
+
+
+
+-- ---------------------------------
+--
+-- RequestedUserAndLinkedUserAreIdentical
+--
+-- @prop dataType
+-- @descr This parameter indicates if the requested user and the user
+-- linked to the requested endpoint are identical, not identical
+-- or if this is undefined.
+-- @
+--
+-- ---------------------------------
+
+RequestedUserAndLinkedUserAreIdentical ::= CHOICE
+{
+ yes NULL,
+ no NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceAndStatus
+-- @prop dataType
+--
+-- @descr Information of a service and its state.
+-- @
+--
+-- ---------------------------------
+
+ServiceAndStatus ::= SEQUENCE
+{
+ typeOfService TypeOfService,
+ status StatusOfService,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionInformation
+--
+-- @prop dataType
+-- @descr Information related to the call setup rejection.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallSetupRejectionInformation ::= SEQUENCE
+{
+ terminationInitiatior TerminationInitiatior,
+ terminationReason ServiceCallSetupRejectionReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionReason
+--
+-- @prop dataType
+-- @descr Reason for rejection.
+-- @
+-- ---------------------------------
+
+ServiceCallSetupRejectionReason ::= CHOICE
+{
+ calledUserBusy NULL,
+ calledUserNotAvailable NULL,
+ destinationOutOfOrder NULL,
+ requestedServiceBarred NULL,
+ requestedServiceNotAvailable NULL,
+ requestedServiceNotSubscribed NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ unassignedUserIdentifier NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationInformation
+-- @prop dataType
+--
+-- @descr States information related to the termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationInformation ::= SEQUENCE
+{
+ terminationInitiation TerminationInitiatior,
+ terminationReason ServiceCallTerminationReason,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationReason
+--
+-- @prop dataType
+-- @descr Reason for termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationReason ::= CHOICE
+{
+ noAnswerFromCalledUser NULL,
+ normalTermination NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceData
+--
+-- @prop dataType
+-- @descr Contains the identified services and theirs categories
+-- @
+-- ---------------------------------
+
+ServiceData ::= CHOICE
+{
+ basicCall BasicCallCategories,
+ endpointRegistration EndpointRegistrationCategories,
+ endpointUnregistration EndpointUnregistrationCategories,
+ ...
+}
+
+-- @prop dataType
+-- @descr
+-- @
+--
+
+ ServiceIdentifier ::= INTEGER
+
+
+-- ---------------------------------
+--
+-- ServiceProfile
+--
+-- @prop dataType
+-- @descr Contains services and data related to the services.
+-- @
+-- ---------------------------------
+
+ServiceProfile ::= SEQUENCE
+{
+ serviceDataInformation SEQUENCE OF ServiceData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetEquipmentStatusRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+SetEquipmentStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- SetLANDataRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+SetLANDataRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetUserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+SetUserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetupUUIE
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+SetupUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ sourceH245Address TransportAddress OPTIONAL, -- h245Address
+ sourceUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- sourceAddress
+ sourceEndpointType EndpointType, -- sourceInfo
+ destinationUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destinationAddress
+ destinationCallSignallingAddress TransportAddress OPTIONAL, -- destCallSignalAddress
+ destinationExtraUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destExtraCallInfo
+ destinationExtraCallReference SEQUENCE OF CallReference OPTIONAL, -- destExtraCRV
+ activeMC BOOLEAN,
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ conferenceGoal ConferenceGoal,
+ callServices CallServices OPTIONAL,
+ callType CallType,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- StateOfEquipment
+--
+-- @prop dataType
+-- @descr States the state of the equipment.
+-- @
+--
+-- ---------------------------------
+
+StateOfEquipment ::= CHOICE
+{
+ blocked NULL, -- Equipment is blocked
+ busy NULL, -- Equipment is busy, no more calls possible for moment
+ available NULL, -- Equipment has reported itself as present and is ready for actions
+ unregistered NULL, -- Equipment is not present
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StateOfUser
+--
+-- @prop dataType
+-- @descr This parameter specifies the state of the user.
+-- @
+-- ---------------------------------
+
+StateOfUser ::= CHOICE
+{
+ absent NULL,
+ present NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StatusOfService
+--
+-- @prop dataType
+-- @descr States the state of the service.
+-- @
+--
+-- ---------------------------------
+
+StatusOfService ::= CHOICE
+{
+ acknowledge NULL,
+ active NULL,
+ initiatied NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Subaddress ::= SEQUENCE
+ {
+ type SubaddressType,
+ indicator BOOLEAN,
+ address SubaddressInformation,
+ ...
+ }
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressInformation ::= OCTET STRING (SIZE(1..23))
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressType ::= CHOICE
+ {
+ nsap NULL,
+ user NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- SupportedProtocols
+--
+-- @prop dataType
+-- @descr Gives detailed information about protocols that are
+-- supported by the stated endpoint.
+-- @
+-- ---------------------------------
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Information,
+ h320 H320Information,
+ h321 H321Information,
+ h322 H322Information,
+ h323 H323Information,
+ h324 H324Information,
+ voice VoiceInformation,
+ t120Only T120Information,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- T120Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol T.120
+-- @
+-- ---------------------------------
+
+T120Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminalInformation
+-- @prop dataType
+--
+-- @
+--
+-- ---------------------------------
+
+TerminalInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminationInitiatior
+--
+-- @prop dataType
+-- @descr States who initiated the termination.
+-- @
+--
+-- ---------------------------------
+
+TerminationInitiatior ::= CHOICE
+{
+ endpoint NULL,
+ serviceNode NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TimeSlot
+--
+-- @prop dataType
+-- @descr This parameter contains the identity of the time slot used
+-- for the connection.
+-- @
+--
+-- ---------------------------------
+
+TimeSlot ::= INTEGER
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferCapability ::= CHOICE
+ {
+ speech NULL,
+ unrestrictedDigital NULL,
+ restrictedDigital NULL,
+ audio3point1kHz NULL,
+ unrestrictedWithTonesAndAnnouncements NULL,
+ video NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferRate ::= CHOICE
+ {
+ packedMode NULL,
+ r64kbps NULL,
+ r2x64kbps NULL,
+ r384kbps NULL,
+ r1536kbps NULL,
+ r1920kbps NULL,
+ multirate NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- TransportAddress
+--
+-- @prop dataType
+-- @descr The transport address.
+-- @
+--
+-- ---------------------------------
+
+TransportAddress ::= CHOICE
+{
+ ipV4Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (4) ),
+ port INTEGER ( 0..65535 )
+ },
+
+ ipV6Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (16) ),
+ port INTEGER ( 0..65535 ),
+ ...
+ },
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TransportAddressInformation
+--
+-- @prop dataType
+-- @descr sequence of TransportAdress
+-- @
+-- ---------------------------------
+
+TransportAddressInformation ::= SEQUENCE OF TransportAddress
+
+
+-- ---------------------------------
+--
+-- TransportChannelInformation
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+TransportChannelInformation ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TypeOfEquipment
+--
+-- @prop dataType
+-- @descr Type of equipment.
+-- @
+--
+-- ---------------------------------
+
+TypeOfEquipment ::= CHOICE
+{
+ cordlessTerminal NULL,
+ h323Terminal NULL,
+ h323Gateway NULL,
+ isdnTerminal NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfFlowControl
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of flow control used in the LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfFlowControl ::= CHOICE
+{
+ isa NULL,
+ priorityOutputRouting NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfLAN
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfLAN ::= CHOICE
+{
+ ethernet NULL,
+ tokenRing NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfRegistration
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfRegistration ::= CHOICE
+{
+ changeOfUser NULL,
+ noChangeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfService
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfService ::= CHOICE
+{
+ basicCall NULL,
+ endpointRegistration NULL,
+ endpointUnregistration NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfUser
+--
+-- @prop dataType
+-- @descr Type of user.
+-- @
+--
+-- ---------------------------------
+
+TypeOfUser ::= CHOICE
+{
+ human NULL,
+ network NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UnknownMessageResponse
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnknownMessageResponse ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UnregistrationRejectReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnregistrationRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UserAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserAllocateResourceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ serviceIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ relationToEquipment SEQUENCE OF RelationToEquipment,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains User attribute identifiers.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumBandwidthPerService NULL,
+ relationToEquipment NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ userIdentifierInformation NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserCreateRejectReason ::= CHOICE
+{
+ userIdentifierAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserDeallocateResourceRejectReason
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ serviceIdentifierNotValid NULL,
+ userNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserIdentifier
+--
+-- @prop dataType
+-- @descr The identifier of the User.
+-- @
+--
+-- ---------------------------------
+
+UserIdentifier ::= CHOICE
+{
+ e164 E164Identifier,
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserIdentifierInformation
+--
+-- @prop dataType
+-- @descr sequence of UserIdentifier
+-- @
+--
+-- ---------------------------------
+
+UserIdentifierInformation ::= SEQUENCE OF UserIdentifier--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+UserInformation ::= OCTET STRING (SIZE(1..131))
+
+
+
+
+-- ---------------------------------
+--
+-- UserInformationUUIE
+--
+-- @prop dataType
+-- @ --
+-- ---------------------------------
+
+UserInformationUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserKey
+--
+-- @prop dataType
+-- @descr Unique key for a certain user.
+-- @
+-- ---------------------------------
+
+UserKey ::= CHOICE
+{
+ relationToUser RelationToUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformationIdentifier
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information identifiers.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ userRelatedInformationIdentifiers SEQUENCE OF UserRelatedInformationIdentifier,
+ equipmentRelatedInformationIdentifiers SEQUENCE OF EquipmentRelatedInformationIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies different types of data
+-- that are related to the user.
+-- @
+--
+-- ---------------------------------
+
+UserRelatedInformation ::= CHOICE
+{
+ numberOfEquipments INTEGER,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain user.
+--
+-- @
+-- ---------------------------------
+
+UserRelatedInformationIdentifier ::= CHOICE
+{
+ numberOfEquipments NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSetRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserSetRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSpecificInformation
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to the user.
+-- @
+--
+-- ---------------------------------
+
+UserSpecificInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- VendorIdentifier
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- VoiceInformation
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+VoiceInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Constraints.py b/lib/asn1/test/asn1_SUITE_data/Constraints.py
new file mode 100644
index 0000000000..b18c29bd89
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Constraints.py
@@ -0,0 +1,84 @@
+Constraints DEFINITIONS ::=
+BEGIN
+
+-- Single Value
+SingleValue ::= INTEGER (1)
+SingleValue2 ::= INTEGER (1..20)
+Range2to19 ::= INTEGER (1<..<20)
+Range10to20 ::= INTEGER (10..20)
+ContainedSubtype ::= INTEGER (INCLUDES Range10to20)
+FixedSize ::= OCTET STRING (SIZE(10))
+FixedSize2 ::= OCTET STRING (SIZE(10|20))
+VariableSize ::= OCTET STRING (SIZE(1..10))
+PemittedAlphabet ::= PrintableString (FROM ("a"|"yx"))
+AliasAddress ::=CHOICE
+{
+ e164 IA5String (SIZE (1..128) ^ FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)),
+ ...
+}
+Obj ::= OBJECT IDENTIFIER
+
+
+-- OTP-4559: a referenced type that has a permitted alphabet constraint
+-- Example from H323-MESSAGES ver (11/2000)
+TBCD-STRING ::= IA5String (FROM ("0123456789#*abc"))
+
+ANSI-41-UIM ::= SEQUENCE {
+ imsi [0] TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ esn [1] TBCD-STRING(SIZE (16)) OPTIONAL
+}
+
+-- OTP-4869: a BIT STRING constrained by SIZE(C) was encoded wrong
+-- when C was larger than 16. There was also an error when encodeing
+-- in compact_bit_string mode.
+
+IP ::= SEQUENCE {
+ perm SEQUENCE OF INTEGER (0..15),
+ key BIT STRING (SIZE (128)),
+ bool BOOLEAN OPTIONAL
+}
+
+-- add for OTP-3558 and OTP-4917
+Day ::= ENUMERATED{monday(0),tuesday(1),wednesday(2),thursday(3),friday(4),saturday(5),sunday(6)}
+
+Wednesday ::= Day(wednesday)
+
+
+Thing ::= INTEGER {fred (0),fred2 (1),fred3 (2)}
+
+
+AnotherThing ::= Thing (fred | fred2)
+
+I ::= INTEGER (0|15..269) -- OTP-5457
+
+-- OTP-5511
+
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 35
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+-- OTP-6763
+T ::= IA5String (SIZE (1|2, ..., SIZE (1|2|3))) -- Dubuisson 268
+T2 ::= IA5String (SIZE (1|2, ..., 3)) -- equal with T
+
+-- OTP-8046
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYYY-HH:MM
+
+
+-- OTP-6828
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING MyType),
+ ...
+}
+
+MoreCompact ::= OCTET STRING (CONTAINING MyType ENCODED BY {joint-iso-itu-t asn1 packed-encoding(3) basic(0) unaligned(1)})
+
+MyType ::= SEQUENCE {a INTEGER, b INTEGER}
+
+Document ::= OCTET STRING (ENCODED BY pdf)
+
+pdf OBJECT IDENTIFIER ::= {1,2,3,4,5}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Constructed.asn b/lib/asn1/test/asn1_SUITE_data/Constructed.asn
new file mode 100644
index 0000000000..09a66d0c0d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Constructed.asn
@@ -0,0 +1,23 @@
+
+
+
+Constructed DEFINITIONS ::=
+BEGIN
+
+S ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
+ b BOOLEAN
+ }
+
+I ::= [8] IMPLICIT INTEGER
+
+S2 ::= [UNIVERSAL 8] SEQUENCE { b BOOLEAN}
+
+C ::= CHOICE {
+ a S,
+ b S3
+}
+
+S3 ::= SEQUENCE {i INTEGER}
+
+S3ext ::= SEQUENCE {i INTEGER, ...}
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ContextSwitchingTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/ContextSwitchingTypes.asn1
new file mode 100644
index 0000000000..c8145bad63
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ContextSwitchingTypes.asn1
@@ -0,0 +1,53 @@
+ContextSwitchingTypes DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- EXTERNAL type
+
+T ::= EXTERNAL
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b T
+}
+
+int INTEGER ::= 12
+
+val1-T T ::= {indirect-reference int, encoding octet-aligned:'123'H}
+
+val2-T T ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+val3-T T ::= {identification context-negotiation:{presentation-context-id 12,
+ transfer-syntax {1 2 3}},
+ data-value '123'H}
+
+-- EMBEDDED PDV type
+
+EP ::= EMBEDDED PDV
+
+Seq2 ::= SEQUENCE {
+ a BOOLEAN,
+ b EP
+}
+
+val1-EP EP ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ data-value '12345'H}
+
+val2-EP EP ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+-- CHARACTER STRING type and value
+
+CS ::= CHARACTER STRING
+
+Seq3 ::= SEQUENCE {
+ a INTEGER,
+ b CS
+}
+
+val1-CS CS ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ string-value '12345'H}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/DERSpec.asn b/lib/asn1/test/asn1_SUITE_data/DERSpec.asn
new file mode 100644
index 0000000000..93e6180d42
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/DERSpec.asn
@@ -0,0 +1,38 @@
+DERSpec DEFINITIONS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+C ::= CHOICE {
+ version INTEGER,
+ message PrintableString
+}
+
+Set ::= SET {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+
+SetOf ::= SET OF C
+
+-- This type compiled with ber_bin, optimize, der
+-- will test the fix in OTP-4866
+Set2 ::= SET {
+ int INTEGER,
+ bool BOOLEAN}
+
+-- OTP-5602
+SO ::= SEQUENCE OF Seq2
+
+Seq2 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py b/lib/asn1/test/asn1_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
new file mode 100644
index 0000000000..a17fb001d3
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
@@ -0,0 +1,150 @@
+DS-EquipmentUser-CommonFunctionOrig-TransmissionPath DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS AllocateTransmissionPathRejectReason,
+ Bandwidth,
+ BandwidthReducedInformation,
+ CallType,
+ ConnectionIdentifier,
+ ConnectionInformation,
+ ConnectTransmissionPathRejectReason,
+ DeallocateTransmissionPathRejectReason,
+ DisconnectTransmissionPathRejectReason,
+ RelationToUser,
+ UserIdentifier FROM CommonDataTypes ;
+
+EquipmentUserCommonFunctionOrigTransmissionPathMessages ::= CHOICE
+{
+ allocateTransmissionPathEU AllocateTransmissionPathEU,
+ allocateTransmissionPathConfirmedUE AllocateTransmissionPathConfirmedUE, -- Reply
+ allocateTransmissionPathRejectedUE AllocateTransmissionPathRejectedUE, -- Reply
+ connectTransmissionPathEU ConnectTransmissionPathEU,
+ connectTransmissionPathConfirmedUE ConnectTransmissionPathConfirmedUE, -- Reply
+ connectTransmissionPathRejectedUE ConnectTransmissionPathRejectedUE, -- Reply
+ deallocateTransmissionPathEU DeallocateTransmissionPathEU,
+ deallocateTransmissionPathConfirmedUE DeallocateTransmissionPathConfirmedUE, -- Reply
+ deallocateTransmissionPathRejectedUE DeallocateTransmissionPathRejectedUE, -- Reply
+ disconnectTransmissionPathEU DisconnectTransmissionPathEU,
+ disconnectTransmissionPathConfirmedUE DisconnectTransmissionPathConfirmedUE, -- Reply
+ disconnectTransmissionPathRejectedUE DisconnectTransmissionPathRejectedUE, -- Reply
+ ...
+}
+
+
+
+-- ----------------------------------
+--
+-- Allocate transmission path
+--
+--
+-- ----------------------------------
+
+AllocateTransmissionPathEU ::= SEQUENCE
+{
+ callType CallType,
+ bandwidth Bandwidth,
+ destinationUserIdentifiers SEQUENCE OF UserIdentifier,
+ sourceConnectionInformation ConnectionInformation,
+ relationToSourceUser RelationToUser,
+ ...
+}
+
+
+--
+-- @param bandwidthReducedInformation Mandatory if bandwidth has been reduced.
+--
+--
+
+AllocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ bandwidthReducedInformation BandwidthReducedInformation OPTIONAL,
+ ...
+}
+
+
+AllocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ allocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Connect transmission path
+--
+-- ----------------------------------
+
+ConnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+ConnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+ConnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ connectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Deallocate transmission path
+--
+-- ----------------------------------
+
+DeallocateTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DeallocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DeallocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ deallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Disconnect transmission path
+--
+-- ----------------------------------
+
+DisconnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DisconnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DisconnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ disconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ ...
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Def.asn1 b/lib/asn1/test/asn1_SUITE_data/Def.asn1
new file mode 100644
index 0000000000..8dd5b383e3
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Def.asn1
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT FALSE,
+ bool2 [2] BOOLEAN DEFAULT FALSE,
+ bool3 [3] BOOLEAN DEFAULT FALSE
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT FALSE,
+ bool12 [12] BOOLEAN DEFAULT FALSE,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT FALSE,
+ bool31 [31] BOOLEAN DEFAULT FALSE,
+ bool32 [32] BOOLEAN DEFAULT FALSE,
+ bool33 [33] BOOLEAN DEFAULT FALSE
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Def.py b/lib/asn1/test/asn1_SUITE_data/Def.py
new file mode 100644
index 0000000000..ff08ed6386
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Def.py
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT false,
+ bool2 [2] BOOLEAN DEFAULT false,
+ bool3 [3] BOOLEAN DEFAULT false
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT false,
+ bool12 [12] BOOLEAN DEFAULT false,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT false,
+ bool31 [31] BOOLEAN DEFAULT false,
+ bool32 [32] BOOLEAN DEFAULT false,
+ bool33 [33] BOOLEAN DEFAULT false
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Default.asn b/lib/asn1/test/asn1_SUITE_data/Default.asn
new file mode 100644
index 0000000000..6604953c1f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Default.asn
@@ -0,0 +1,158 @@
+Default DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+SeqInts ::= SEQUENCE {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+SetInts ::= SET {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+
+SeqBS ::= SEQUENCE {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+SetBS ::= SET {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+onelist BIT STRING ::= '1001'B
+
+SeqOS ::= SEQUENCE {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+SetOS ::= SET {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+E ::= ENUMERATED {b1,b2,b3}
+
+SeqOI ::= SEQUENCE {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SetOI ::= SET {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SeqEnum ::= SEQUENCE {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+SetEnum ::= SET {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+ftam OBJECT IDENTIFIER ::= {iso standard 8571}
+
+F ::= E
+
+SeqIntBool ::= SEQUENCE {
+ a SEQUENCE{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SetIntBool ::= SET {
+ a SET{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SeqStrings ::= SEQUENCE {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+SetStrings ::= SET {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+S1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab S2} DEFAULT {aa 1, ab {a two, b TRUE}},
+ b S4 DEFAULT s4
+}
+
+S2 ::= SEQUENCE {
+ a INTEGER DEFAULT one,
+ b BOOLEAN OPTIONAL
+}
+
+S3 ::= SEQUENCE {
+ a SEQUENCE OF INTEGER DEFAULT {11,12,13},
+ b SEQUENCE OF C DEFAULT {a:11,b:TRUE,c:13},
+ c SO DEFAULT so,
+ d SEQUENCE OF S2 DEFAULT {{a 20,b TRUE},{a 30, b FALSE}}
+}
+
+S3set ::= SET {
+ a SET OF CHOICE {a BOOLEAN,b INTEGER,c S2} DEFAULT {c:{a 3,b TRUE},b:17,a:FALSE},
+ b SO DEFAULT so
+}
+
+S4 ::= SEQUENCE {
+ a S2 DEFAULT {},
+ b SEQUENCE {ba BOOLEAN,bb INTEGER} DEFAULT {ba TRUE,bb 0}
+}
+
+s4 S4 ::= {a {a 2,b TRUE}, b {ba TRUE, bb 5}}
+
+C ::= CHOICE{
+ a INTEGER,
+ b BOOLEAN,
+ c INTEGER
+}
+
+SO ::= SEQUENCE OF INTEGER
+
+so SEQUENCE OF INTEGER ::= {1,2,3,4}
+
+s S2 ::= {a 15,b FALSE}
+
+one INTEGER ::= 1
+two INTEGER ::= 2
+three INTEGER ::= 3
+four INTEGER ::= 4
+
+cr IA5String ::= {0,13}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/DirectoryAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/DirectoryAbstractService.asn
new file mode 100755
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/DoubleEllipses.asn b/lib/asn1/test/asn1_SUITE_data/DoubleEllipses.asn
new file mode 100644
index 0000000000..e90cf55d61
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/DoubleEllipses.asn
@@ -0,0 +1,99 @@
+DoubleEllipses DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SeqV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SeqAlt ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SeqAltV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+Set ::= SET {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SetV2 ::= SET
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SetAlt ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SetAltV2 ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/ELDAPv3.asn b/lib/asn1/test/asn1_SUITE_data/ELDAPv3.asn
new file mode 100644
index 0000000000..0cfac48c37
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ELDAPv3.asn
@@ -0,0 +1,291 @@
+-- LDAPv3 ASN.1 specification, taken from RFC 2251
+
+-- Lightweight-Directory-Access-Protocol-V3 DEFINITIONS
+ELDAPv3 DEFINITIONS
+IMPLICIT TAGS ::=
+
+BEGIN
+
+LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse },
+ controls [0] Controls OPTIONAL }
+
+MessageID ::= INTEGER (0 .. maxInt)
+
+maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+LDAPString ::= OCTET STRING
+
+LDAPOID ::= OCTET STRING
+
+LDAPDN ::= LDAPString
+
+RelativeLDAPDN ::= LDAPString
+
+AttributeType ::= LDAPString
+
+AttributeDescription ::= LDAPString
+
+
+
+
+-- Wahl, et. al. Standards Track [Page 44]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+AttributeDescriptionList ::= SEQUENCE OF
+ AttributeDescription
+
+AttributeValue ::= OCTET STRING
+
+AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+AssertionValue ::= OCTET STRING
+
+Attribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+MatchingRuleId ::= LDAPString
+
+LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongAuthRequired (8),
+ -- 9 reserved --
+ referral (10), -- new
+ adminLimitExceeded (11), -- new
+ unavailableCriticalExtension (12), -- new
+ confidentialityRequired (13), -- new
+ saslBindInProgress (14), -- new
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+
+-- Wahl, et. al. Standards Track [Page 45]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71), -- new
+ -- 72-79 unused --
+ other (80) },
+ -- 81-90 reserved for APIs --
+ matchedDN LDAPDN,
+ errorMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+Referral ::= SEQUENCE OF LDAPURL
+
+LDAPURL ::= LDAPString -- limited to characters permitted in URLs
+
+Controls ::= SEQUENCE OF Control
+
+Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials }
+
+SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+BindResponse ::= [APPLICATION 1] SEQUENCE {
+
+-- Wahl, et. al. Standards Track [Page 46]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+UnbindRequest ::= [APPLICATION 2] NULL
+
+SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2) },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeDescriptionList }
+
+Filter ::= CHOICE {
+ and [0] SET OF Filter,
+ or [1] SET OF Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion }
+
+SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ -- at least one must be present
+ substrings SEQUENCE OF CHOICE {
+ initial [0] LDAPString,
+ any [1] LDAPString,
+ final [2] LDAPString } }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+-- Wahl, et. al. Standards Track [Page 47]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+PartialAttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+SearchResultReference ::= [APPLICATION 19] SEQUENCE OF LDAPURL
+
+SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ modification SEQUENCE OF SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2) },
+ modification AttributeTypeAndValues } }
+
+AttributeTypeAndValues ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+AttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+AddResponse ::= [APPLICATION 9] LDAPResult
+
+DelRequest ::= [APPLICATION 10] LDAPDN
+
+DelResponse ::= [APPLICATION 11] LDAPResult
+
+ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+-- Wahl, et. al. Standards Track [Page 48]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+CompareResponse ::= [APPLICATION 15] LDAPResult
+
+AbandonRequest ::= [APPLICATION 16] MessageID
+
+ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ response [11] OCTET STRING OPTIONAL }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/EUTRA-InterNodeDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/EUTRA-InterNodeDefinitions.asn
new file mode 100644
index 0000000000..5e6313dc02
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EUTRA-InterNodeDefinitions.asn
@@ -0,0 +1,123 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+HandoverCommand ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverCommand-r8 HandoverCommand-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+HandoverPreparationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
+ as-Config AS-Config OPTIONAL, -- Cond HO
+ rrm-Config RRM-Config OPTIONAL,
+ as-Context AS-Context OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioAccessCapabilityInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation-r8
+ UERadioAccessCapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+AS-Config ::= SEQUENCE {
+ sourceMeasConfig MeasConfig,
+ sourceRadioResourceConfig RadioResourceConfigDedicated,
+ sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
+ sourceUE-Identity C-RNTI,
+ sourceMasterInformationBlock MasterInformationBlock,
+ sourceSystemInformationBlockType1 SystemInformationBlockType1,
+ sourceSystemInformationBlockType2 SystemInformationBlockType2,
+ antennaInfoCommon AntennaInfoCommon,
+ sourceDl-CarrierFreq ARFCN-ValueEUTRA,
+ ...
+}
+
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
+}
+
+
+ReestablishmentInfo ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellShortMAC-I ShortMAC-I,
+ additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
+ ...
+}
+
+AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
+
+AdditionalReestabInfo ::= SEQUENCE{
+ cellIdentity CellIdentity,
+ key-eNodeB-Star Key-eNodeB-Star,
+ shortMAC-I ShortMAC-I
+}
+
+Key-eNodeB-Star ::= BIT STRING (SIZE (256))
+
+
+RRM-Config ::= SEQUENCE {
+ ue-InactiveTime ENUMERATED {
+ s1, s2, s3, s5, s7, s10, s15, s20,
+ s25, s30, s40, s50, min1, min1s20c, min1s40,
+ min2, min2s30, min3, min3s30, min4, min5, min6,
+ min7, min8, min9, min10, min12, min14, min17, min20,
+ min24, min28, min33, min38, min44, min50, hr1,
+ hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
+ hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
+ day2hr12, day3, day4, day5, day7, day10, day14, day19,
+ day24, day30, dayMoreThan30} OPTIONAL,
+ ...
+}
+
+
+maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
+ -- at handover for re-establishment preparation
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/EUTRA-RRC-Definitions.asn b/lib/asn1/test/asn1_SUITE_data/EUTRA-RRC-Definitions.asn
new file mode 100644
index 0000000000..a451874ef0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EUTRA-RRC-Definitions.asn
@@ -0,0 +1,2640 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformationBlockType1 SystemInformationBlockType1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ paging Paging
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-CCCH-Message ::= SEQUENCE {
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishment RRCConnectionReestablishment,
+ rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject,
+ rrcConnectionReject RRCConnectionReject,
+ rrcConnectionSetup RRCConnectionSetup
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-DCCH-Message ::= SEQUENCE {
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000,
+ dlInformationTransfer DLInformationTransfer,
+ handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest,
+ mobilityFromEUTRACommand MobilityFromEUTRACommand,
+ rrcConnectionReconfiguration RRCConnectionReconfiguration,
+ rrcConnectionRelease RRCConnectionRelease,
+ securityModeCommand SecurityModeCommand,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ counterCheck CounterCheck,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-CCCH-Message ::= SEQUENCE {
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest,
+ rrcConnectionRequest RRCConnectionRequest
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-DCCH-Message ::= SEQUENCE {
+ message UL-DCCH-MessageType
+}
+
+UL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000,
+ measurementReport MeasurementReport,
+ rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete,
+ rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete,
+ rrcConnectionSetupComplete RRCConnectionSetupComplete,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ ueCapabilityInformation UECapabilityInformation,
+ ulHandoverPreparationTransfer ULHandoverPreparationTransfer,
+ ulInformationTransfer ULInformationTransfer,
+ counterCheckResponse CounterCheckResponse,
+ spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+CounterCheck ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ counterCheck-r8 CounterCheck-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheck-r8-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoList DRB-CountMSB-InfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+DRB-CountMSB-InfoList::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-Info ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ countMSB-Uplink INTEGER(0..33554431),
+ countMSB-Downlink INTEGER(0..33554431)
+}
+
+
+CounterCheckResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheckResponse-r8 CounterCheckResponse-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheckResponse-r8-IEs ::= SEQUENCE {
+ drb-CountInfoList DRB-CountInfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo
+
+DRB-CountInfo ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ count-Uplink INTEGER(0..4294967295),
+ count-Downlink INTEGER(0..4294967295)
+}
+
+
+CSFBParametersRequestCDMA2000 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CSFBParametersResponseCDMA2000 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE {
+ rand RAND-CDMA2000,
+ mobilityParameters MobilityParametersCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+DLInformationTransfer ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r8 DLInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+HandoverFromEUTRAPreparationRequest ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ handoverFromEUTRAPreparationRequest-r8
+ HandoverFromEUTRAPreparationRequest-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ phich-Config PHICH-Config,
+ systemFrameNumber BIT STRING (SIZE (8)),
+ spare BIT STRING (SIZE (10))
+}
+
+
+
+MeasurementReport ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ measurementReport-r8 MeasurementReport-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MeasurementReport-r8-IEs ::= SEQUENCE {
+ measResults MeasResults,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MobilityFromEUTRACommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+Handover ::= SEQUENCE {
+ targetRAT-Type ENUMERATED {
+ utra, geran, cdma2000-1XRTT, cdma2000-HRPD,
+ spare4, spare3, spare2, spare1, ...},
+ targetRAT-MessageContainer OCTET STRING,
+ nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO
+}
+
+CellChangeOrder ::= SEQUENCE {
+ t304 ENUMERATED {
+ ms100, ms200, ms500, ms1000,
+ ms2000, ms4000, ms8000, spare1},
+ targetRAT-Type CHOICE {
+ geran SEQUENCE {
+ physCellId PhysCellIdGERAN,
+ carrierFreq CarrierFreqGERAN,
+ networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP
+ },
+ ...
+ }
+}
+
+SI-OrPSI-GERAN ::= CHOICE {
+ si SystemInfoListGERAN,
+ psi SystemInfoListGERAN
+}
+
+SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
+ OCTET STRING (SIZE (1..23))
+
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need ON
+ systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
+ etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord
+
+PagingRecord ::= SEQUENCE {
+ ue-Identity PagingUE-Identity,
+ cn-Domain ENUMERATED {ps, cs},
+ ...
+}
+
+PagingUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ imsi IMSI,
+ ...
+}
+
+IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit
+
+IMSI-Digit::= INTEGER (0..9)
+
+
+RRCConnectionReconfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE {
+ measConfig MeasConfig OPTIONAL, -- Need ON
+ mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO
+ dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF
+ DedicatedInfoNAS OPTIONAL, -- Cond nonHO
+ radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA
+ securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigHO ::= SEQUENCE {
+ handoverType CHOICE {
+ intraLTE SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need OP
+ keyChangeIndicator BOOLEAN,
+ nextHopChainingCount NextHopChainingCount
+ },
+ interRAT SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ nas-SecurityParamToEUTRA OCTET STRING (SIZE(6))
+ }
+ },
+ ...
+}
+
+
+RRCConnectionReconfigurationComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReconfigurationComplete-r8
+ RRCConnectionReconfigurationComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishment ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishment-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nextHopChainingCount NextHopChainingCount,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r8
+ RRCConnectionReestablishmentComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentReject-r8
+ RRCConnectionReestablishmentReject-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentRequest-r8
+ RRCConnectionReestablishmentRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity ReestabUE-Identity,
+ reestablishmentCause ReestablishmentCause,
+ spare BIT STRING (SIZE (2))
+}
+
+ReestabUE-Identity ::= SEQUENCE {
+ c-RNTI C-RNTI,
+ physCellId PhysCellId,
+ shortMAC-I ShortMAC-I
+}
+
+ReestablishmentCause ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure,
+ otherFailure, spare1}
+
+
+RRCConnectionReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionReject-r8 RRCConnectionReject-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-r8-IEs ::= SEQUENCE {
+ waitTime INTEGER (1..16),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionRelease ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRelease-r8-IEs ::= SEQUENCE {
+ releaseCause ReleaseCause,
+ redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON
+ idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
+ other,spare2, spare1 }
+
+RedirectedCarrierInfo ::= CHOICE {
+ eutra ARFCN-ValueEUTRA,
+ geran CarrierFreqsGERAN,
+ utra-FDD ARFCN-ValueUTRA,
+ utra-TDD ARFCN-ValueUTRA,
+ cdma2000-HRPD CarrierFreqCDMA2000,
+ cdma2000-1xRTT CarrierFreqCDMA2000,
+ ...
+}
+
+IdleModeMobilityControlInfo ::= SEQUENCE {
+ freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON
+ freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON
+ freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON
+ freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON
+ bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON
+ bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON
+ t320 ENUMERATED {
+ min5, min10, min20, min30, min60, min120, min180,
+ spare1} OPTIONAL, -- Need OR
+ ...
+}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN
+
+FreqsPriorityGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD
+
+FreqPriorityUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD
+
+FreqPriorityUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD
+
+BandClassPriorityHRPD ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT
+
+BandClassPriority1XRTT ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+RRCConnectionRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+InitialUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ randomValue BIT STRING (SIZE (40))
+}
+
+EstablishmentCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, spare3, spare2, spare1}
+
+
+RRCConnectionSetup ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetup-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionSetupComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE {
+ selectedPLMN-Identity INTEGER (1..6),
+ registeredMME RegisteredMME OPTIONAL,
+ dedicatedInfoNAS DedicatedInfoNAS,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RegisteredMME ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ mmegi BIT STRING (SIZE (16)),
+ mmec MMEC
+}
+
+
+SecurityModeCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ securityModeCommand-r8 SecurityModeCommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeCommand-r8-IEs ::= SEQUENCE {
+ securityConfigSMC SecurityConfigSMC,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete-r8 SecurityModeComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure-r8 SecurityModeFailure-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInfo SEQUENCE {
+ plmn-IdentityList PLMN-IdentityList,
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred ENUMERATED {barred, notBarred},
+ intraFreqReselection ENUMERATED {allowed, notAllowed},
+ csg-Indication BOOLEAN,
+ csg-Identity BIT STRING (SIZE (27)) OPTIONAL -- Need OR
+ },
+ cellSelectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP
+ },
+ p-Max P-Max OPTIONAL, -- Need OP
+ freqBandIndicator INTEGER (1..64),
+ schedulingInfoList SchedulingInfoList,
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ si-WindowLength ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,
+ ms40},
+ systemInfoValueTag INTEGER (0..31),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo
+
+PLMN-IdentityInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse ENUMERATED {reserved, notReserved}
+}
+
+SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo
+
+SchedulingInfo ::= SEQUENCE {
+ si-Periodicity ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo SIB-MappingInfo
+}
+
+SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type
+
+SIB-Type ::= ENUMERATED {
+ sibType3, sibType4, sibType5, sibType6,
+ sibType7, sibType8, sibType9, sibType10,
+ sibType11, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1, ...}
+
+
+UECapabilityEnquiry ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRequest UE-CapabilityRequest,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type
+
+
+UECapabilityInformation ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULHandoverPreparationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ meid BIT STRING (SIZE (56)) OPTIONAL,
+ dedicatedInfo DedicatedInfoCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulInformationTransfer-r8 ULInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType2 ::= SEQUENCE {
+ ac-BarringInfo SEQUENCE {
+ ac-BarringForEmergency BOOLEAN,
+ ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ radioResourceConfigCommon RadioResourceConfigCommonSIB,
+ ue-TimersAndConstants UE-TimersAndConstants,
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ timeAlignmentTimerCommon TimeAlignmentTimer,
+ ...
+}
+
+AC-BarringConfig ::= SEQUENCE {
+ ac-BarringFactor ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ ac-BarringForSpecialAC BIT STRING (SIZE(5))
+}
+
+MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+MBSFN-SubframeConfig ::= SEQUENCE {
+ radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32},
+ radioframeAllocationOffset INTEGER (0..7),
+ subframeAllocation CHOICE {
+ oneFrame BIT STRING (SIZE(6)),
+ fourFrames BIT STRING (SIZE(24))
+ }
+}
+
+SystemInformationBlockType3 ::= SEQUENCE {
+ cellReselectionInfoCommon SEQUENCE {
+ q-Hyst ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ speedStateReselectionPars SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ q-HystSF SEQUENCE {
+ sf-Medium ENUMERATED {
+ dB-6, dB-4, dB-2, dB0},
+ sf-High ENUMERATED {
+ dB-6, dB-4, dB-2, dB0}
+ }
+ } OPTIONAL -- Need OP
+ },
+ cellReselectionServingFreqInfo SEQUENCE {
+ s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ threshServingLow ReselectionThreshold,
+ cellReselectionPriority CellReselectionPriority
+ },
+ intraFreqCellReselectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+ },
+ ...
+}
+
+
+SystemInformationBlockType4 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
+ csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
+ ...
+}
+
+IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
+
+IntraFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ ...
+}
+
+IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType5 ::= SEQUENCE {
+ interFreqCarrierFreqList InterFreqCarrierFreqList,
+ ...
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqInfo ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig NeighCellConfig,
+ q-OffsetFreq Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR
+ ...
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType6 ::= SEQUENCE {
+ carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR
+ carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR
+ t-ReselectionUTRA T-Reselection,
+ t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD
+
+CarrierFreqUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ q-QualMin INTEGER (-24..0),
+ ...
+}
+
+CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD
+
+CarrierFreqUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ ...
+}
+
+
+SystemInformationBlockType7 ::= SEQUENCE {
+ t-ReselectionGERAN T-Reselection,
+ t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
+ carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
+ ...
+}
+
+CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN
+
+CarrierFreqsInfoGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ commonInfo SEQUENCE {
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ ncc-Permitted BIT STRING (SIZE (8)),
+ q-RxLevMin INTEGER (0..45),
+ p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold
+ },
+ ...
+}
+
+
+SystemInformationBlockType8 ::= SEQUENCE {
+ systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR
+ parametersHRPD SEQUENCE {
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT SEQUENCE {
+ csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR
+ cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+CellReselectionParametersCDMA2000 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList NeighCellListCDMA2000,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
+
+NeighCellCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
+}
+
+NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
+
+NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList PhysCellIdListCDMA2000
+}
+
+PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000
+
+BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000
+
+BandClassInfoCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High INTEGER (0..63),
+ threshX-Low INTEGER (0..63),
+ ...
+}
+
+
+SystemInformationBlockType9 ::= SEQUENCE {
+ hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType10 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ warningSecurityInfo OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP
+ ...
+}
+
+
+SystemInformationBlockType11 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ ...
+}
+
+
+AntennaInfoCommon ::= SEQUENCE {
+ antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
+}
+
+AntennaInfoDedicated ::= SEQUENCE {
+ transmissionMode ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6,
+ tm7, spare1},
+ codebookSubsetRestriction CHOICE {
+ n2TxAntenna-tm3 BIT STRING (SIZE (2)),
+ n4TxAntenna-tm3 BIT STRING (SIZE (4)),
+ n2TxAntenna-tm4 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm4 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm5 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm5 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm6 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm6 BIT STRING (SIZE (16))
+ } OPTIONAL, -- Cond TM
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+
+CQI-ReportConfig ::= SEQUENCE {
+ cqi-ReportModeAperiodic ENUMERATED {
+ rm12, rm20, rm22, rm30, rm31,
+ spare3, spare2, spare1} OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
+}
+
+CQI-ReportPeriodic ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex INTEGER (0.. 1185),
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic CHOICE {
+ widebandCQI NULL,
+ subbandCQI SEQUENCE {
+ k INTEGER (1..4)
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN
+ }
+}
+
+
+DRB-Identity ::= INTEGER (1..32)
+
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {
+ kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
+ kBps256, infinity, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2, spare1},
+ bucketSizeDuration ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500, ms1000, spare2,
+ spare1},
+ logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond UL
+ ...
+}
+
+
+MAC-MainConfig ::= SEQUENCE {
+ ul-SCH-Config SEQUENCE {
+ maxHARQ-Tx ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n7, n8,
+ n10, n12, n16, n20, n24, n28,
+ spare2, spare1} OPTIONAL, -- Need ON
+ periodicBSR-Timer ENUMERATED {
+ sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1280, sf2560,
+ infinity, spare1} OPTIONAL, -- Need ON
+ retxBSR-Timer ENUMERATED {
+ sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240, spare2, spare1},
+ ttiBundling BOOLEAN
+ } OPTIONAL, -- Need ON
+ drx-Config DRX-Config OPTIONAL, -- Need ON
+ timeAlignmentTimerDedicated TimeAlignmentTimer,
+ phr-Config CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200,
+ sf500, sf1000, infinity},
+ prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100,
+ sf200, sf500, sf1000},
+ dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity}
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+DRX-Config ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ onDurationTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200, psf300, psf500, psf750,
+ psf1280, psf1920, psf2560, spare10,
+ spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ drx-RetransmissionTimer ENUMERATED {
+ psf1, psf2, psf4, psf6, psf8, psf16,
+ psf24, psf33},
+ longDRX-CycleStartOffset CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf1280 INTEGER(0..1279),
+ sf2048 INTEGER(0..2047),
+ sf2560 INTEGER(0..2559)
+ },
+ shortDRX SEQUENCE {
+ shortDRX-Cycle ENUMERATED {
+ sf2, sf5, sf8, sf10, sf16, sf20,
+ sf32, sf40, sf64, sf80, sf128, sf160,
+ sf256, sf320, sf512, sf640},
+ drxShortCycleTimer INTEGER (1..16)
+ } OPTIONAL -- Need OR
+ }
+}
+
+
+PDCP-Config ::= SEQUENCE {
+ discardTimer ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500,
+ ms750, ms1500, infinity
+ } OPTIONAL, -- Cond Setup
+ rlc-AM SEQUENCE {
+ statusReportRequired BOOLEAN
+ } OPTIONAL, -- Cond Rlc-AM
+ rlc-UM SEQUENCE {
+ pdcp-SN-Size ENUMERATED {len7bits, len12bits}
+ } OPTIONAL, -- Cond Rlc-UM
+ headerCompression CHOICE {
+ notUsed NULL,
+ rohc SEQUENCE {
+ maxCID INTEGER (1..16383) DEFAULT 15,
+ profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ ...
+ }
+ },
+ ...
+}
+
+
+PDSCH-ConfigCommon::= SEQUENCE {
+ referenceSignalPower INTEGER (-60..50),
+ p-b INTEGER (0..3)
+}
+
+PDSCH-ConfigDedicated::= SEQUENCE {
+ p-a ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3 }
+}
+
+
+PHICH-Config ::= SEQUENCE {
+ phich-Duration ENUMERATED {normal, extended},
+ phich-Resource ENUMERATED {oneSixth, half, one, two}
+}
+
+
+PhysicalConfigDedicated ::= SEQUENCE {
+ pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON
+ pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON
+ pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ antennaInfo CHOICE {
+ explicitValue AntennaInfoDedicated,
+ defaultValue NULL
+ } OPTIONAL, -- Need ON
+ schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
+ ...
+}
+
+
+P-Max ::= INTEGER (-30..33)
+
+
+PRACH-ConfigSIB ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo
+}
+
+PRACH-Config ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
+}
+
+PRACH-ConfigInfo ::= SEQUENCE {
+ prach-ConfigIndex INTEGER (0..63),
+ highSpeedFlag BOOLEAN,
+ zeroCorrelationZoneConfig INTEGER (0..15),
+ prach-FreqOffset INTEGER (0..94)
+}
+
+
+PresenceAntennaPort1 ::= BOOLEAN
+
+
+PUCCH-ConfigCommon ::= SEQUENCE {
+ deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3},
+ nRB-CQI INTEGER (0..98),
+ nCS-AN INTEGER (0..7),
+ n1PUCCH-AN INTEGER (0..2047)
+}
+
+PUCCH-ConfigDedicated ::= SEQUENCE {
+ ackNackRepetition CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ repetitionFactor ENUMERATED { n2, n4, n6, spare1},
+ n1PUCCH-AN-Rep INTEGER (0..2047)
+ }
+ },
+ tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD
+}
+
+
+PUSCH-ConfigCommon ::= SEQUENCE {
+ pusch-ConfigBasic SEQUENCE {
+ n-SB INTEGER (1..4),
+ hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame},
+ pusch-HoppingOffset INTEGER (0..98),
+ enable64QAM BOOLEAN
+ },
+ ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH
+}
+
+PUSCH-ConfigDedicated ::= SEQUENCE {
+ betaOffset-ACK-Index INTEGER (0..15),
+ betaOffset-RI-Index INTEGER (0..15),
+ betaOffset-CQI-Index INTEGER (0..15)
+}
+
+UL-ReferenceSignalsPUSCH ::= SEQUENCE {
+ groupHoppingEnabled BOOLEAN,
+ groupAssignmentPUSCH INTEGER (0..29),
+ sequenceHoppingEnabled BOOLEAN,
+ cyclicShift INTEGER (0..7)
+}
+
+
+RACH-ConfigCommon ::= SEQUENCE {
+ preambleInfo SEQUENCE {
+ numberOfRA-Preambles ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60, n64},
+ preamblesGroupAConfig SEQUENCE {
+ sizeOfRA-PreamblesGroupA ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60},
+ messageSizeGroupA ENUMERATED {b56, b144, b208, b256},
+ messagePowerOffsetGroupB ENUMERATED {
+ minusinfinity, dB0, dB5, dB8, dB10, dB12,
+ dB15, dB18},
+ ...
+ } OPTIONAL -- Need OP
+ },
+ powerRampingParameters SEQUENCE {
+ powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6},
+ preambleInitialReceivedTargetPower ENUMERATED {
+ dBm-120, dBm-118, dBm-116, dBm-114, dBm-112,
+ dBm-110, dBm-108, dBm-106, dBm-104, dBm-102,
+ dBm-100, dBm-98, dBm-96, dBm-94,
+ dBm-92, dBm-90}
+ },
+ ra-SupervisionInfo SEQUENCE {
+ preambleTransMax ENUMERATED {
+ n3, n4, n5, n6, n7, n8, n10, n20, n50,
+ n100, n200},
+ ra-ResponseWindowSize ENUMERATED {
+ sf2, sf3, sf4, sf5, sf6, sf7,
+ sf8, sf10},
+ mac-ContentionResolutionTimer ENUMERATED {
+ sf8, sf16, sf24, sf32, sf40, sf48,
+ sf56, sf64}
+ },
+ maxHARQ-Msg3Tx INTEGER (1..8),
+ ...
+}
+
+
+RACH-ConfigDedicated ::= SEQUENCE {
+ ra-PreambleIndex INTEGER (0..63),
+ ra-PRACH-MaskIndex INTEGER (0..15)
+}
+
+
+RadioResourceConfigCommonSIB ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon,
+ bcch-Config BCCH-Config,
+ pcch-Config PCCH-Config,
+ prach-Config PRACH-ConfigSIB,
+ pdsch-ConfigCommon PDSCH-ConfigCommon,
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ pucch-ConfigCommon PUCCH-ConfigCommon,
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon,
+ uplinkPowerControlCommon UplinkPowerControlCommon,
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+RadioResourceConfigCommon ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON
+ prach-Config PRACH-Config,
+ pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ phich-Config PHICH-Config OPTIONAL, -- Need ON
+ pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON
+ uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON
+ antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+BCCH-Config ::= SEQUENCE {
+ modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}
+}
+
+PCCH-Config ::= SEQUENCE {
+ defaultPagingCycle ENUMERATED {
+ rf32, rf64, rf128, rf256},
+ nB ENUMERATED {
+ fourT, twoT, oneT, halfT, quarterT, oneEighthT,
+ oneSixteenthT, oneThirtySecondT}
+}
+
+UL-CyclicPrefixLength ::= ENUMERATED {len1, len2}
+
+
+RadioResourceConfigDedicated ::= SEQUENCE {
+ srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn
+ drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA
+ drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON
+ mac-MainConfig CHOICE {
+ explicitValue MAC-MainConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond HO-toEUTRA2
+ sps-Config SPS-Config OPTIONAL, -- Need ON
+ physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON
+ ...
+}
+
+SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
+
+SRB-ToAddMod ::= SEQUENCE {
+ srb-Identity INTEGER (1..2),
+ rlc-Config CHOICE {
+ explicitValue RLC-Config,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ logicalChannelConfig CHOICE {
+ explicitValue LogicalChannelConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod
+
+DRB-ToAddMod ::= SEQUENCE {
+ eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity DRB-Identity,
+ pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP
+ rlc-Config RLC-Config OPTIONAL, -- Cond Setup
+ logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup
+ logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
+
+
+RLC-Config ::= CHOICE {
+ am SEQUENCE {
+ ul-AM-RLC UL-AM-RLC,
+ dl-AM-RLC DL-AM-RLC
+ },
+ um-Bi-Directional SEQUENCE {
+ ul-UM-RLC UL-UM-RLC,
+ dl-UM-RLC DL-UM-RLC
+ },
+ um-Uni-Directional-UL SEQUENCE {
+ ul-UM-RLC UL-UM-RLC
+ },
+ um-Uni-Directional-DL SEQUENCE {
+ dl-UM-RLC DL-UM-RLC
+ },
+ ...
+}
+
+UL-AM-RLC ::= SEQUENCE {
+ t-PollRetransmit T-PollRetransmit,
+ pollPDU PollPDU,
+ pollByte PollByte,
+ maxRetxThreshold ENUMERATED {
+ t1, t2, t3, t4, t6, t8, t16, t32}
+}
+
+DL-AM-RLC ::= SEQUENCE {
+ t-Reordering T-Reordering,
+ t-StatusProhibit T-StatusProhibit
+}
+
+UL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength
+}
+
+DL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength,
+ t-Reordering T-Reordering
+}
+
+SN-FieldLength ::= ENUMERATED {size5, size10}
+
+T-PollRetransmit ::= ENUMERATED {
+ ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1}
+
+PollPDU ::= ENUMERATED {
+ p4, p8, p16, p32, p64, p128, p256, pInfinity}
+
+PollByte ::= ENUMERATED {
+ kB25, kB50, kB75, kB100, kB125, kB250, kB375,
+ kB500, kB750, kB1000, kB1250, kB1500, kB2000,
+ kB3000, kBinfinity, spare1}
+
+T-Reordering ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms110,
+ ms120, ms130, ms140, ms150, ms160, ms170,
+ ms180, ms190, ms200, spare1}
+
+T-StatusProhibit ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare8, spare7,
+ spare6, spare5, spare4, spare3, spare2,
+ spare1}
+
+
+SchedulingRequestConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex INTEGER (0..2047),
+ sr-ConfigIndex INTEGER (0..155),
+ dsr-TransMax ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+
+SoundingRS-UL-ConfigCommon ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7},
+ srs-SubframeConfig ENUMERATED {
+ sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7,
+ sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15},
+ ackNackSRS-SimultaneousTransmission BOOLEAN,
+ srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD
+ }
+}
+
+SoundingRS-UL-ConfigDedicated ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition INTEGER (0..23),
+ duration BOOLEAN,
+ srs-ConfigIndex INTEGER (0..1023),
+ transmissionComb INTEGER (0..1),
+ cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+ }
+}
+
+
+
+SPS-Config ::= SEQUENCE {
+ semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON
+ sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON
+}
+
+SPS-ConfigDL ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalDL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ numberOfConfSPS-Processes INTEGER (1..8),
+ n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList,
+ ...
+ }
+}
+
+SPS-ConfigUL ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalUL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ implicitReleaseAfter ENUMERATED {e2, e3, e4, e8},
+ p0-Persistent SEQUENCE {
+ p0-NominalPUSCH-Persistent INTEGER (-126..24),
+ p0-UE-PUSCH-Persistent INTEGER (-8..7)
+ } OPTIONAL, -- Need OP
+ twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD
+ ...
+ }
+}
+
+N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+
+TDD-Config ::= SEQUENCE {
+ subframeAssignment ENUMERATED {
+ sa0, sa1, sa2, sa3, sa4, sa5, sa6},
+ specialSubframePatterns ENUMERATED {
+ ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7,
+ ssp8}
+}
+
+
+TimeAlignmentTimer ::= ENUMERATED {
+ sf500, sf750, sf1280, sf1920, sf2560, sf5120,
+ sf10240, infinity}
+
+TPC-PDCCH-Config::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-RNTI BIT STRING (SIZE (16)),
+ tpc-Index TPC-Index
+ }
+}
+
+TPC-Index ::= CHOICE {
+ indexOfFormat3 INTEGER (1..15),
+ indexOfFormat3A INTEGER (1..31)
+}
+
+
+UplinkPowerControlCommon ::= SEQUENCE {
+ p0-NominalPUSCH INTEGER (-126..24),
+ alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1},
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaPreambleMsg3 INTEGER (-1..6)
+}
+
+UplinkPowerControlDedicated ::= SEQUENCE {
+ p0-UE-PUSCH INTEGER (-8..7),
+ deltaMCS-Enabled ENUMERATED {en0, en1},
+ accumulationEnabled BOOLEAN,
+ p0-UE-PUCCH INTEGER (-8..7),
+ pSRS-Offset INTEGER (0..15),
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+DeltaFList-PUCCH ::= SEQUENCE {
+ deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5},
+ deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2},
+ deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2}
+}
+
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+
+SecurityAlgorithmConfig ::= SEQUENCE {
+ cipheringAlgorithm ENUMERATED {
+ eea0, eea1, eea2, spare5, spare4, spare3,
+ spare2, spare1, ...},
+ integrityProtAlgorithm ENUMERATED {
+ reserved, eia1, eia2, spare5, spare4, spare3,
+ spare2, spare1, ...}
+}
+
+
+ShortMAC-I ::= BIT STRING (SIZE (16))
+
+
+AdditionalSpectrumEmission ::= INTEGER (1..32)
+
+
+ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
+
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+
+ARFCN-ValueGERAN ::= INTEGER (0..1023)
+
+
+ARFCN-ValueUTRA ::= INTEGER (0..16383)
+
+
+BandclassCDMA2000 ::= ENUMERATED {
+ bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8,
+ bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16,
+ bc17, spare14, spare13, spare12, spare11, spare10,
+ spare9, spare8, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1, ...}
+
+
+BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900}
+
+
+CarrierFreqCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ arfcn ARFCN-ValueCDMA2000
+}
+
+
+CarrierFreqGERAN ::= SEQUENCE {
+ arfcn ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN
+}
+
+
+CarrierFreqsGERAN ::= SEQUENCE {
+ startingARFCN ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN,
+ followingARFCNs CHOICE {
+ explicitListOfARFCNs ExplicitListOfARFCNs,
+ equallySpacedARFCNs SEQUENCE {
+ arfcn-Spacing INTEGER (1..8),
+ numberOfFollowingARFCNs INTEGER (0..31)
+ },
+ variableBitMapOfARFCNs OCTET STRING (SIZE (1..16))
+ }
+}
+
+ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN
+
+
+CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD}
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+
+CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex
+
+CellIndex ::= INTEGER (1..maxCellMeas)
+
+
+CellReselectionPriority ::= INTEGER (0..7)
+
+
+CSFB-RegistrationParam1XRTT ::= SEQUENCE {
+ sid BIT STRING (SIZE (15)),
+ nid BIT STRING (SIZE (16)),
+ multipleSID BOOLEAN,
+ multipleNID BOOLEAN,
+ homeReg BOOLEAN,
+ foreignSIDReg BOOLEAN,
+ foreignNIDReg BOOLEAN,
+ parameterReg BOOLEAN,
+ powerUpReg BOOLEAN,
+ registrationPeriod BIT STRING (SIZE (7)),
+ registrationZone BIT STRING (SIZE (12)),
+ totalZone BIT STRING (SIZE (3)),
+ zoneTimer BIT STRING (SIZE (3))
+}
+
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity
+}
+
+
+CellGlobalIdUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28))
+}
+
+
+CellGlobalIdGERAN ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16))
+}
+
+
+CellGlobalIdCDMA2000 ::= CHOICE {
+ cellGlobalId1XRTT BIT STRING (SIZE (47)),
+ cellGlobalIdHRPD BIT STRING (SIZE (128))
+}
+
+
+MobilityControlInfo ::= SEQUENCE {
+ targetPhysCellId PhysCellId,
+ carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA
+ t304 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, spare1},
+ newUE-Identity C-RNTI,
+ radioResourceConfigCommon RadioResourceConfigCommon,
+ rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierBandwidthEUTRA ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1},
+ ul-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL -- Need OP
+}
+
+CarrierFreqEUTRA ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD
+}
+
+
+MobilityParametersCDMA2000 ::= OCTET STRING
+
+
+MobilityStateParameters ::= SEQUENCE {
+ t-Evaluation ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ t-HystNormal ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ n-CellChangeMedium INTEGER (1..16),
+ n-CellChangeHigh INTEGER (1..16)
+}
+
+
+PhysCellId ::= INTEGER (0..503)
+
+
+PhysCellIdRange ::= SEQUENCE {
+ start PhysCellId,
+ range ENUMERATED {
+ n4, n8, n12, n16, n24, n32, n48, n64, n84,
+ n96, n128, n168, n252, n504, spare2,
+ spare1} OPTIONAL -- Need OP
+}
+
+
+PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset)
+
+
+PhysCellIdGERAN ::= SEQUENCE {
+ networkColourCode BIT STRING (SIZE (3)),
+ baseStationColourCode BIT STRING (SIZE (3))
+}
+
+
+PhysCellIdUTRA-FDD ::= INTEGER (0..511)
+
+
+PhysCellIdUTRA-TDD ::= INTEGER (0..127)
+
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL, -- Cond MCC
+ mnc MNC
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+ MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+
+
+PreRegistrationInfoHRPD ::= SEQUENCE {
+ preRegistrationAllowed BOOLEAN,
+ preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed
+ secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR
+}
+
+SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD
+
+PreRegistrationZoneIdHRPD ::= INTEGER (0..255)
+
+
+Q-RxLevMin ::= INTEGER (-70..-22)
+
+
+Q-OffsetRange ::= ENUMERATED {
+ dB-24, dB-22, dB-20, dB-18, dB-16, dB-14,
+ dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3,
+ dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5,
+ dB6, dB8, dB10, dB12, dB14, dB16, dB18,
+ dB20, dB22, dB24}
+
+
+Q-OffsetRangeInterRAT ::= INTEGER (-15..15)
+
+
+ReselectionThreshold ::= INTEGER (0..31)
+
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+
+SystemTimeInfoCDMA2000 ::= SEQUENCE {
+ cdma-EUTRA-Synchronisation BOOLEAN,
+ cdma-SystemTime CHOICE {
+ synchronousSystemTime BIT STRING (SIZE (39)),
+ asynchronousSystemTime BIT STRING (SIZE (49))
+ }
+}
+
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+
+
+T-Reselection ::= INTEGER (0..7)
+
+
+AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
+
+
+Hysteresis ::= INTEGER (0..30)
+
+
+MeasConfig ::= SEQUENCE {
+ -- Measurement objects
+ measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON
+ measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON
+ -- Reporting configurations
+ reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON
+ reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON
+ -- Measurement identities
+ measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON
+ measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL, -- Need ON
+ measGapConfig MeasGapConfig OPTIONAL, -- Need ON
+ s-Measure RSRP-Range OPTIONAL, -- Need ON
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
+
+MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
+
+ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
+
+
+MeasGapConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffset CHOICE {
+ gp0 INTEGER (0..39),
+ gp1 INTEGER (0..79),
+ ...
+ }
+ }
+}
+
+
+MeasId ::= INTEGER (1..maxMeasId)
+
+
+MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
+
+MeasIdToAddMod ::= SEQUENCE {
+ measId MeasId,
+ measObjectId MeasObjectId,
+ reportConfigId ReportConfigId
+}
+
+
+MeasObjectCDMA2000 ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ carrierFreq CarrierFreqCDMA2000,
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000
+
+CellsToAddModCDMA2000 ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdCDMA2000
+}
+
+
+MeasObjectEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ offsetFreq Q-OffsetRange DEFAULT dB0,
+ -- Neighbour cell list
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON
+ -- Black list
+ blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod
+
+CellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellId,
+ cellIndividualOffset Q-OffsetRange
+}
+
+BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod
+
+BlackCellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellIdRange PhysCellIdRange
+}
+
+
+MeasObjectGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B,
+ cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON
+ ...
+}
+
+
+MeasObjectId ::= INTEGER (1..maxObjectId)
+
+
+MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectEUTRA MeasObjectEUTRA,
+ measObjectUTRA MeasObjectUTRA,
+ measObjectGERAN MeasObjectGERAN,
+ measObjectCDMA2000 MeasObjectCDMA2000,
+ ...
+ }
+}
+
+
+MeasObjectUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CHOICE {
+ cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD,
+ cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD
+ } OPTIONAL, -- Need ON
+ cellForWhichToReportCGI CHOICE {
+ utra-FDD PhysCellIdUTRA-FDD,
+ utra-TDD PhysCellIdUTRA-TDD
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD
+
+CellsToAddModUTRA-FDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-FDD
+}
+
+CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD
+
+CellsToAddModUTRA-TDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-TDD
+}
+
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultServCell SEQUENCE {
+ rsrpResult RSRP-Range,
+ rsrqResult RSRQ-Range
+ },
+ measResultNeighCells CHOICE {
+ measResultListEUTRA MeasResultListEUTRA,
+ measResultListUTRA MeasResultListUTRA,
+ measResultListGERAN MeasResultListGERAN,
+ measResultsCDMA2000 MeasResultsCDMA2000,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA
+
+MeasResultUTRA ::= SEQUENCE {
+ physCellId CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdUTRA,
+ locationAreaCode BIT STRING (SIZE (16)) OPTIONAL,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ utra-RSCP INTEGER (-5..91) OPTIONAL,
+ utra-EcN0 INTEGER (0..49) OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN
+
+MeasResultGERAN ::= SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdGERAN,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rssi INTEGER (0..63),
+ ...
+ }
+}
+
+MeasResultsCDMA2000 ::= SEQUENCE {
+ preRegistrationStatusHRPD BOOLEAN,
+ measResultListCDMA2000 MeasResultListCDMA2000
+}
+
+MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000
+
+MeasResultCDMA2000 ::= SEQUENCE {
+ physCellId PhysCellIdCDMA2000,
+ cgi-Info CellGlobalIdCDMA2000 OPTIONAL,
+ measResult SEQUENCE {
+ pilotPnPhase INTEGER (0..32767) OPTIONAL,
+ pilotStrength INTEGER (0..63),
+ ...
+ }
+}
+
+PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
+ quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
+ quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
+ quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+QuantityConfigEUTRA ::= SEQUENCE {
+ filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
+ filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA ::= SEQUENCE {
+ measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
+ measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigGERAN ::= SEQUENCE {
+ measQuantityGERAN ENUMERATED {rssi},
+ filterCoefficient FilterCoefficient DEFAULT fc2
+}
+
+QuantityConfigCDMA2000 ::= SEQUENCE {
+ measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength}
+}
+
+
+ReportConfigEUTRA ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventA1 SEQUENCE {
+ a1-Threshold ThresholdEUTRA
+ },
+ eventA2 SEQUENCE {
+ a2-Threshold ThresholdEUTRA
+ },
+ eventA3 SEQUENCE {
+ a3-Offset INTEGER (-30..30),
+ reportOnLeave BOOLEAN
+ },
+ eventA4 SEQUENCE {
+ a4-Threshold ThresholdEUTRA
+ },
+ eventA5 SEQUENCE {
+ a5-Threshold1 ThresholdEUTRA,
+ a5-Threshold2 ThresholdEUTRA
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells, reportCGI}
+ }
+ },
+ triggerQuantity ENUMERATED {rsrp, rsrq},
+ reportQuantity ENUMERATED {sameAsTriggerQuantity, both},
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdEUTRA ::= CHOICE{
+ threshold-RSRP RSRP-Range,
+ threshold-RSRQ RSRQ-Range
+}
+
+
+ReportConfigId ::= INTEGER (1..maxReportConfigId)
+
+
+ReportConfigInterRAT ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventB1 SEQUENCE {
+ b1-Threshold CHOICE {
+ b1-ThresholdUTRA ThresholdUTRA,
+ b1-ThresholdGERAN ThresholdGERAN,
+ b1-ThresholdCDMA2000 ThresholdCDMA2000
+ }
+ },
+ eventB2 SEQUENCE {
+ b2-Threshold1 ThresholdEUTRA,
+ b2-Threshold2 CHOICE {
+ b2-Threshold2UTRA ThresholdUTRA,
+ b2-Threshold2GERAN ThresholdGERAN,
+ b2-Threshold2CDMA2000 ThresholdCDMA2000
+ }
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells,
+ reportStrongestCellsForSON,
+ reportCGI}
+ }
+ },
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdUTRA ::= CHOICE{
+ utra-RSCP INTEGER (-5..91),
+ utra-EcN0 INTEGER (0..49)
+}
+
+ThresholdGERAN ::= INTEGER (0..63)
+
+ThresholdCDMA2000 ::= INTEGER (0..63)
+
+
+ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod
+
+ReportConfigToAddMod ::= SEQUENCE {
+ reportConfigId ReportConfigId,
+ reportConfig CHOICE {
+ reportConfigEUTRA ReportConfigEUTRA,
+ reportConfigInterRAT ReportConfigInterRAT
+ }
+}
+
+
+
+ReportInterval ::= ENUMERATED {
+ ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240,
+ min1, min6, min12, min30, min60, spare3, spare2, spare1}
+
+
+RSRP-Range ::= INTEGER(0..97)
+
+
+RSRQ-Range ::= INTEGER(0..34)
+
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+
+DedicatedInfoCDMA2000 ::= OCTET STRING
+
+
+DedicatedInfoNAS ::= OCTET STRING
+
+
+FilterCoefficient ::= ENUMERATED {
+ fc0, fc1, fc2, fc3, fc4, fc5,
+ fc6, fc7, fc8, fc9, fc11, fc13,
+ fc15, fc17, fc19, spare1, ...}
+
+
+MMEC ::= BIT STRING (SIZE (8))
+
+
+NeighCellConfig ::= BIT STRING (SIZE (2))
+
+
+RAND-CDMA2000 ::= BIT STRING (SIZE (32))
+
+
+RAT-Type ::= ENUMERATED {
+ eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
+ spare3, spare2, spare1, ...}
+
+
+RRC-TransactionIdentifier ::= INTEGER (0..3)
+
+
+S-TMSI ::= SEQUENCE {
+ mmec MMEC,
+ m-TMSI BIT STRING (SIZE (32))
+}
+
+
+UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container
+
+UE-CapabilityRAT-Container ::= SEQUENCE {
+ rat-Type RAT-Type,
+ ueCapabilityRAT-Container OCTET STRING
+}
+
+
+UE-EUTRA-Capability ::= SEQUENCE {
+ accessStratumRelease AccessStratumRelease,
+ ue-Category INTEGER (1..5),
+ pdcp-Parameters PDCP-Parameters,
+ phyLayerParameters PhyLayerParameters,
+ rf-Parameters RF-Parameters,
+ measParameters MeasParameters,
+ featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-Parameters SEQUENCE {
+ utraFDD IRAT-ParametersUTRA-FDD OPTIONAL,
+ utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL,
+ utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL,
+ utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL,
+ geran IRAT-ParametersGERAN OPTIONAL,
+ cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL,
+ cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AccessStratumRelease ::= ENUMERATED {
+ rel8, spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1, ...}
+
+PDCP-Parameters ::= SEQUENCE {
+ supportedROHC-Profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ maxNumberROHC-ContextSessions ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16,
+ ...
+}
+
+PhyLayerParameters ::= SEQUENCE {
+ ue-TxAntennaSelectionSupported BOOLEAN,
+ ue-SpecificRefSigsSupported BOOLEAN
+}
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SupportedBandListEUTRA
+}
+
+SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA INTEGER (1..64),
+ halfDuplex BOOLEAN
+}
+
+MeasParameters ::= SEQUENCE {
+ bandListEUTRA BandListEUTRA
+}
+
+BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
+
+BandInfoEUTRA ::= SEQUENCE {
+ interFreqBandList InterFreqBandList,
+ interRAT-BandList InterRAT-BandList OPTIONAL
+}
+
+InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo
+
+InterFreqBandInfo ::= SEQUENCE {
+ interFreqNeedForGaps BOOLEAN
+}
+
+InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo
+
+InterRAT-BandInfo ::= SEQUENCE {
+ interRAT-NeedForGaps BOOLEAN
+}
+
+IRAT-ParametersUTRA-FDD ::= SEQUENCE {
+ supportedBandListUTRA-FDD SupportedBandListUTRA-FDD
+}
+
+SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD
+
+SupportedBandUTRA-FDD ::= ENUMERATED {
+ bandI, bandII, bandIII, bandIV, bandV, bandVI,
+ bandVII, bandVIII, bandIX, bandX, bandXI,
+ bandXII, bandXIII, bandXIV, bandXV, bandXVI, ...}
+
+IRAT-ParametersUTRA-TDD128 ::= SEQUENCE {
+ supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128
+}
+
+SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128
+
+SupportedBandUTRA-TDD128 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD384 ::= SEQUENCE {
+ supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384
+}
+
+SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384
+
+SupportedBandUTRA-TDD384 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD768 ::= SEQUENCE {
+ supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768
+}
+
+SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768
+
+SupportedBandUTRA-TDD768 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersGERAN ::= SEQUENCE {
+ supportedBandListGERAN SupportedBandListGERAN,
+ interRAT-PS-HO-ToGERAN BOOLEAN
+}
+
+SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN
+
+SupportedBandGERAN ::= ENUMERATED {
+ gsm450, gsm480, gsm710, gsm750, gsm810, gsm850,
+ gsm900P, gsm900E, gsm900R, gsm1800, gsm1900,
+ spare5, spare4, spare3, spare2, spare1, ...}
+
+IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE {
+ supportedBandListHRPD SupportedBandListHRPD,
+ tx-ConfigHRPD ENUMERATED {single, dual},
+ rx-ConfigHRPD ENUMERATED {single, dual}
+}
+
+SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE {
+ supportedBandList1XRTT SupportedBandList1XRTT,
+ tx-Config1XRTT ENUMERATED {single, dual},
+ rx-Config1XRTT ENUMERATED {single, dual}
+}
+
+SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+
+UE-TimersAndConstants ::= SEQUENCE {
+ t300 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t301 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+}
+
+
+maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
+maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
+maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells
+ -- listed in SIB type 4 and 5
+maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency
+ -- cells listed in SIB type 5
+maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency
+ -- cells listed in SIB type 4
+maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the neighbour
+ -- cell lists in a measurement object
+maxCellReport INTEGER ::= 8 -- Maximum number of reported cells
+maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier fequency
+maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier frequencies
+maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be
+ -- provided as part of NACC information
+maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups
+maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
+ -- different offset
+maxMCS-1 INTEGER ::= 16 -- Maximum number of PUCCH formats (MCS)
+maxMeasId INTEGER ::= 32
+maxObjectId INTEGER ::= 32
+maxPageRec INTEGER ::= 16 --
+maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
+maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
+maxReportConfigId INTEGER ::= 32
+maxSIB INTEGER ::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER ::= 31
+maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
+maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
+maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/EUTRA-UE-Variables.asn b/lib/asn1/test/asn1_SUITE_data/EUTRA-UE-Variables.asn
new file mode 100644
index 0000000000..414140a6fb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EUTRA-UE-Variables.asn
@@ -0,0 +1,49 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+VarMeasConfig ::= SEQUENCE {
+ -- Measurement identities
+ measIdList MeasIdToAddModList OPTIONAL,
+ -- Measurement objects
+ measObjectList MeasObjectToAddModList OPTIONAL,
+ -- Reporting configurations
+ reportConfigList ReportConfigToAddModList OPTIONAL,
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL,
+ s-Measure RSRP-Range OPTIONAL,
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL
+}
+
+
+VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
+
+VarMeasReport ::= SEQUENCE {
+ -- List of measurement that have been triggered
+ measId MeasId,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
+ numberOfReportsSent INTEGER
+}
+
+CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
+
+
+VarShortMAC-Input ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ physCellId PhysCellId,
+ c-RNTI C-RNTI
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-55.asn b/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-55.asn
new file mode 100644
index 0000000000..248e6963c9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-55.asn
@@ -0,0 +1,47 @@
+EUTRA-extract-55 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..5)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SystemInformationBlockType2 ::= INTEGER
+SystemInformationBlockType3 ::= INTEGER
+SystemInformationBlockType4 ::= INTEGER
+SystemInformationBlockType5 ::= INTEGER
+SystemInformationBlockType6 ::= INTEGER
+SystemInformationBlockType7 ::= INTEGER
+SystemInformationBlockType8 ::= INTEGER
+SystemInformationBlockType9 ::= INTEGER
+SystemInformationBlockType10 ::= INTEGER
+SystemInformationBlockType11 ::= INTEGER
+
+-- OTP-7763
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b1 BIT STRING (SIZE (8)),
+ b2 BIT STRING (SIZE (1)),
+ b CellIdentity,
+ c INTEGER,
+ d BOOLEAN
+}
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-7407.asn1 b/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-7407.asn1
new file mode 100644
index 0000000000..fb81c42251
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EUTRA-extract-7407.asn1
@@ -0,0 +1,109 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12) modified
+-- $Id$
+--
+EUTRA-extract-7407 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformation1 SystemInformation1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+maxSIB INTEGER ::= 1
+maxSI-Message INTEGER ::= 1
+
+SystemInformation-r8-IEs ::= SEQUENCE (SIZE (1..maxSIB)) OF SEQUENCE
+ { -- Size is FFS
+ sib-Type SIB-Type, -- FFS
+ sib-Info OCTET STRING, -- FFS
+ ...
+ }
+
+SIB-Type ::= ENUMERATED {
+ sibType1, -- FFS if SIB1 need explicit indication
+ sibType2, sibType3, sibType4, sibType5,
+ sibType6, sibType7, sibType8,
+ spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+
+SystemInformationMaster ::= MasterInformationBlock
+
+
+SystemInformation1 ::= SystemInformationBlockType1
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInformation SEQUENCE {
+ plmn-IdentityList SEQUENCE (SIZE (1..6)) OF SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse BOOLEAN
+ },
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred BOOLEAN,
+ intraFrequencyCellReselection BOOLEAN OPTIONAL, -- Cond CellBarred
+ cellReservationExtension BOOLEAN,
+ csg-Indication BOOLEAN
+ },
+ cellSelectionInfo SEQUENCE {
+ q-Rxlevmin INTEGER (-60..-28) -- value range FFS
+ }, -- need FFS
+ frequencyBandIndicator INTEGER (1..64),
+ schedulinInformation SEQUENCE (SIZE (1..maxSI-Message)) OF SEQUENCE {
+ si-MessageType SEQUENCE {}, -- FFS
+ si-Periodicity ENUMERATED {
+ ms80, ms160, ms320, ms640}, -- value range FFS
+ sib-MappingInfo SEQUENCE {} -- FFS
+ },
+ systemInformationValueTag INTEGER (0), -- value is 3..5 bits FFS
+ ...
+}
+
+PLMN-Identity ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+TrackingAreaCode ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+CellIdentity ::= SEQUENCE {
+ -- Enter the IEs here.
+}
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-SystemBandwidth BIT STRING (SIZE (4)),
+ numberOfTransmitAntennas BIT STRING (SIZE (4)),
+ phich-Configuration PHICH-Configuration,
+ systemFrameNumber BIT STRING (SIZE (8))
+}
+
+PHICH-Configuration ::= SEQUENCE {
+ phich-Duration ENUMERATED {short, long},
+ phich-Resource ENUMERATED {ffs} -- 2-bit field FFS
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Enum.py b/lib/asn1/test/asn1_SUITE_data/Enum.py
new file mode 100644
index 0000000000..3fb0ee3297
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Enum.py
@@ -0,0 +1,46 @@
+Enum DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+-- EXPORTS P1, P2;
+
+-- F.2.3.1
+-- Use an enumerated type to model the values of a variable
+-- with three or more states.
+-- Assign values starting with zero if their only
+-- constraint is distinctness.
+-- EXAMPLE
+
+DayOfTheWeek ::= ENUMERATED {sunday(0), monday(1), tuesday(2),
+ wednesday(3), thursday(4), friday(5), saturday(6)}
+
+firstDay DayOfTheWeek ::= sunday
+
+-- F.2.3.2
+-- Use an enumerated type to model the values of a variable that
+-- has just two states now,
+-- but that may have additional states in a future version of the protocol.
+-- EXAMPLE
+
+MaritalStatus ::= ENUMERATED {single(0), married(1)}
+
+-- in anticipation of
+
+MaritalStatus2 ::= ENUMERATED {single(0), married(1), widowed(2)}
+
+
+E1 ::= ENUMERATED {blue,green,yellow}
+
+E2 ::= ENUMERATED {monday(0),thuesday(1),wednesday(2),thursday(3),friday(4)}
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+
+S ::= SEQUENCE {
+ e1 ENUMERATED {hej,hopp},
+ e2 [2] EXPLICIT ENUMERATED {san,sa}
+ }
+
+enumVal E3 ::= monday
+--enumWrongVal E3 ::= sunday
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/EnumExt.asn1 b/lib/asn1/test/asn1_SUITE_data/EnumExt.asn1
new file mode 100644
index 0000000000..9ad1f6299e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EnumExt.asn1
@@ -0,0 +1,28 @@
+EnumExt DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+Ext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...
+}
+
+Ext1 ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...,
+ orange(7)
+}
+
+Noext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2)
+}
+
+Globalstate ::= ENUMERATED {def(1),com(2),preop(3),oper(4),noop(5),fail(6)}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/EnumerationBadExtension.asn1 b/lib/asn1/test/asn1_SUITE_data/EnumerationBadExtension.asn1
new file mode 100644
index 0000000000..471f92d7b6
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/EnumerationBadExtension.asn1
@@ -0,0 +1,20 @@
+EnumerationBadExtension DEFINITIONS ::=
+BEGIN
+
+Enum1 ::= ENUMERATED {
+ first,
+ second}
+
+Enum2 ::= ENUMERATED {
+ first,
+ ...,
+ second}
+
+Enum3 ::= ENUMERATED {
+ first,
+ second,
+ ...}
+
+ENum3 ::= ENUMERATED {...,first,second}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ErrorClass.asn b/lib/asn1/test/asn1_SUITE_data/ErrorClass.asn
new file mode 100644
index 0000000000..ab0f25ae4f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ErrorClass.asn
@@ -0,0 +1,15 @@
+ErrorClass DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ERROR;
+
+
+ERROR ::= CLASS {
+ &errorCode INTEGER UNIQUE,
+ &ParameterType OPTIONAL
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Example.asn1 b/lib/asn1/test/asn1_SUITE_data/Example.asn1
new file mode 100644
index 0000000000..2639f63940
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Example.asn1
@@ -0,0 +1,20 @@
+Example DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c Typ}
+--ECLASS ::= CLASS {
+-- &num INTEGER UNIQUE,
+-- &Typo
+-- } WITH SYNTAX {
+-- &Typo DETERMINED BY &num
+-- }
+
+--v1 ECLASS ::= {INTEGER DETERMINED BY 12}
+
+--v2 INTEGER ::= 13
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Export1.asn b/lib/asn1/test/asn1_SUITE_data/Export1.asn
new file mode 100644
index 0000000000..78ead8f4d2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Export1.asn
@@ -0,0 +1,7 @@
+Export1 DEFINITIONS ::=
+BEGIN
+EXPORTS T
+
+T ::= Typ
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/External.asn1 b/lib/asn1/test/asn1_SUITE_data/External.asn1
new file mode 100644
index 0000000000..07b2c6aced
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/External.asn1
@@ -0,0 +1,132 @@
+External DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+XSeq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 XSeqIn
+}
+
+XSeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XSet1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 XSetIn
+}
+
+XSetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XBool ::= BOOLEAN
+XBoolImp ::= [22] BOOLEAN
+XBoolExp ::= [23] EXPLICIT BOOLEAN
+
+XCho ::= CHOICE
+{
+ boolCho [44] BOOLEAN,
+ intCho [45] INTEGER
+}
+
+
+XSetExt1 ::= SET
+{
+ ...
+}
+
+XSetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSetExt3 ::= SET
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSetExt4 ::= SET
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+XSeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+XSeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSeqExt3 ::= SEQUENCE
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSeqExt4 ::= SEQUENCE
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+
+XNT ::= OCTET STRING
+XImp ::= [1] OCTET STRING
+XExp ::= [2] EXPLICIT OCTET STRING
+
+XChoNT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XChoExp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSetNT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetImp ::= [1] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetExp ::= [2] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSeqNT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqImp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqExp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/From.py b/lib/asn1/test/asn1_SUITE_data/From.py
new file mode 100644
index 0000000000..882d0b20be
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/From.py
@@ -0,0 +1,15 @@
+From DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+AreaCode ::= SEQUENCE
+{
+
+ firstDigit IA5String
+ (FROM ( "2" | "3" ) ),
+ secondDigit IA5String
+ (FROM ( "3" | "4" ) )
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/H235-SECURITY-MESSAGES.asn b/lib/asn1/test/asn1_SUITE_data/H235-SECURITY-MESSAGES.asn
new file mode 100644
index 0000000000..3401f9599f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/H235-SECURITY-MESSAGES.asn
@@ -0,0 +1,170 @@
+H235-SECURITY-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+
+ChallengeString ::= OCTET STRING (SIZE(8..128))
+TimeStamp ::= INTEGER(1..4294967295) -- seconds since 00:00 1/1/1970 UTC
+RandomVal ::= INTEGER
+Password ::= BMPString (SIZE (1..128))
+Identifier ::= BMPString (SIZE (1..128))
+KeyMaterial ::= BIT STRING(SIZE(1..2048))
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier OBJECT IDENTIFIER,
+ data OCTET STRING
+}
+
+-- if local octet representations of these bit strings are used they shall
+-- utilize standard Network Octet ordering (e.g. Big Endian)
+DHset ::= SEQUENCE
+{
+ halfkey BIT STRING (SIZE(0..2048)), -- = g^x mod n
+ modSize BIT STRING (SIZE(0..2048)), -- n
+ generator BIT STRING (SIZE(0..2048)), -- g
+ ...
+}
+
+TypedCertificate ::= SEQUENCE
+{
+ type OBJECT IDENTIFIER,
+ certificate OCTET STRING,
+ ...
+}
+
+AuthenticationMechanism ::=CHOICE
+{
+ dhExch NULL, -- Diffe-Hellman
+ pwdSymEnc NULL, -- password with symmetric encryption
+ pwdHash NULL, -- password with hashing
+ certSign NULL, -- Certificate with signature
+ ipsec NULL, -- IPSEC based connection
+ tls NULL,
+ nonStandard NonStandardParameter, -- something else.
+ ...
+}
+
+ClearToken ::= SEQUENCE -- a `token' may contain multiple value types.
+{
+ timeStamp TimeStamp OPTIONAL,
+ password Password OPTIONAL,
+ dhkey DHset OPTIONAL,
+ challenge ChallengeString OPTIONAL,
+ random RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL,
+ generalID Identifier OPTIONAL,
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+--
+-- Start all the cryptographic parameterized types here....
+--
+
+
+SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ signature BIT STRING
+} ( CONSTRAINED BY { -- Verify or Sign Certificate -- } )
+
+
+ENCRYPTED { ToBeEncrypted } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ encryptedData OCTET STRING
+} ( CONSTRAINED BY { -- Encrypt or Decrypt -- ToBeEncrypted } )
+
+HASHED { ToBeHashed } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ hash BIT STRING
+} ( CONSTRAINED BY { -- Hash -- ToBeHashed } )
+
+IV8 ::= OCTET STRING (SIZE(8))
+
+-- signing algorithm used must select one of these types of parameters
+-- needed by receiving end of signature.
+
+Params ::= SEQUENCE {
+ ranInt INTEGER OPTIONAL, -- some integer value
+ iv8 IV8 OPTIONAL, -- 8 octet initialization vector
+ ...
+}
+
+EncodedGeneralToken ::= TYPE-IDENTIFIER.&Type (ClearToken -- general usage token -- )
+PwdCertToken ::= ClearToken (WITH COMPONENTS {..., timeStamp PRESENT, generalID PRESENT})
+EncodedPwdCertToken ::= TYPE-IDENTIFIER.&Type (PwdCertToken)
+
+CryptoToken::= CHOICE
+{
+
+ cryptoEncryptedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token ENCRYPTED { EncodedGeneralToken }
+ },
+ cryptoSignedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token SIGNED { EncodedGeneralToken }
+ },
+ cryptoHashedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ hashedVals ClearToken,
+ token HASHED { EncodedGeneralToken }
+ },
+ cryptoPwdEncr ENCRYPTED { EncodedPwdCertToken },
+ ...
+}
+
+-- These allow the passing of session keys within the H.245 OLC structure.
+-- They are encoded as standalone ASN.1 and based as an OCTET STRING within H.245
+H235Key ::=CHOICE -- this is used with the H.245 'h235Key' field
+{
+ secureChannel KeyMaterial,
+ sharedSecret ENCRYPTED {EncodedKeySyncMaterial},
+ certProtectedKey SIGNED { EncodedKeySignedMaterial },
+ ...
+}
+
+KeySignedMaterial ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ mrandom RandomVal, -- master's random value
+ srandom RandomVal OPTIONAL, -- slave's random value
+ timeStamp TimeStamp OPTIONAL, -- master's timestamp for unsolicted EU
+ encrptval ENCRYPTED {EncodedKeySyncMaterial }
+}
+EncodedKeySignedMaterial ::= TYPE-IDENTIFIER.&Type (KeySignedMaterial)
+
+KeySyncMaterial ::=SEQUENCE
+{
+ generalID Identifier,
+ keyMaterial KeyMaterial,
+ ...
+}
+EncodedKeySyncMaterial ::=TYPE-IDENTIFIER.&Type (KeySyncMaterial)
+
+H235CertificateSignature ::=SEQUENCE
+{
+ certificate TypedCertificate,
+ responseRandom RandomVal,
+ requesterRandom RandomVal OPTIONAL,
+ signature SIGNED { EncodedReturnSig },
+ ...
+}
+
+ReturnSig ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ responseRandom RandomVal,
+ requestRandom RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL -- requested certificate
+}
+
+EncodedReturnSig ::= TYPE-IDENTIFIER.&Type (ReturnSig)
+
+
+END -- End of H235-SECURITY-MESSAGES DEFINITIONS
diff --git a/lib/asn1/test/asn1_SUITE_data/H323-MESSAGES.asn b/lib/asn1/test/asn1_SUITE_data/H323-MESSAGES.asn
new file mode 100644
index 0000000000..ba6802f122
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/H323-MESSAGES.asn
@@ -0,0 +1,1341 @@
+H323-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+
+IMPORTS
+ SIGNED{},
+ ENCRYPTED{},
+ HASHED{},
+ ChallengeString,
+ TimeStamp,
+ RandomVal,
+ Password,
+ EncodedPwdCertToken,
+ ClearToken,
+ CryptoToken,
+ AuthenticationMechanism
+ FROM H235-SECURITY-MESSAGES;
+
+H323-UserInformation ::= SEQUENCE -- root for all Q.931 related ASN.1
+{
+ h323-uu-pdu H323-UU-PDU,
+ user-data SEQUENCE
+ {
+ protocol-discriminator INTEGER (0..255),
+ user-information OCTET STRING (SIZE(1..131)),
+ ...
+ } OPTIONAL,
+ ...
+}
+
+H323-UU-PDU ::= SEQUENCE
+{
+ h323-message-body CHOICE
+ {
+ setup Setup-UUIE,
+ callProceeding CallProceeding-UUIE,
+ connect Connect-UUIE,
+ alerting Alerting-UUIE,
+ userInformation UI-UUIE,
+ releaseComplete ReleaseComplete-UUIE,
+ facility Facility-UUIE,
+ ...,
+ progress Progress-UUIE,
+ empty NULL -- used when a FACILITY message is sent,
+-- but the Facility-UUIE is not to be invoked
+-- (possible when transporting supplementary
+-- services messages)
+ },
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ h4501SupplementaryService SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each sequence of octet string is defined as one
+ -- H4501SupplementaryService APDU as defined in
+ -- Table 3/H.450.1
+ h245Tunneling BOOLEAN,
+ -- if TRUE, tunneling of H.245 messages is enabled
+ h245Control SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each octet string may contain exactly
+ -- one H.245 PDU
+ nonStandardControl SEQUENCE OF NonStandardParameter OPTIONAL
+}
+
+Alerting-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+CallProceeding-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+Connect-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ destinationInfo EndpointType,
+ conferenceID ConferenceIdentifier,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+UI-UUIE ::=SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseComplete-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ reason ReleaseCompleteReason OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL, -- bandwidth taken away or ARQ denied
+ gatekeeperResources NULL, -- exhausted
+ unreachableDestination NULL, -- no transport path to the destination
+ destinationRejection NULL, -- rejected at destination
+ invalidRevision NULL,
+ noPermission NULL, -- called party's gatekeeper rejects
+ unreachableGatekeeper NULL, -- terminal cannot reach gatekeeper for ARQ
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL, -- call is dropping due to LAN crowding
+ inConf NULL, -- no address in AlternativeAddress
+ undefinedReason NULL,
+ ...,
+ facilityCallDeflection NULL, -- call was deflected using a Facility message
+ securityDenied NULL, -- incompatible security settings
+ calledPartyNotRegistered NULL, -- used by gatekeeper when endpoint has
+ -- preGrantedARQ to bypass ARQ/ACF
+ callerNotregistered NULL -- used by gatekeeper when endpoint has
+ -- preGrantedArq to bypass ARQ/ACF
+}
+
+Setup-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ sourceAddress SEQUENCE OF AliasAddress OPTIONAL,
+ sourceInfo EndpointType,
+ destinationAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destCallSignalAddress TransportAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL, -- Note(1)
+ destExtraCRV SEQUENCE OF CallReferenceValue OPTIONAL,-- Note(1)
+ activeMC BOOLEAN,
+ conferenceID ConferenceIdentifier,
+ conferenceGoal CHOICE
+ {
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...,
+ capability-negotiation NULL,
+ callIndependentSupplementaryService NULL
+ },
+ callServices QseriesOptions OPTIONAL,
+ callType CallType,
+ ...,
+ sourceCallSignalAddress TransportAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityCapability SEQUENCE OF H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ mediaWaitForConnect BOOLEAN,
+ canOverlapSend BOOLEAN
+}
+
+Facility-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeAddress TransportAddress OPTIONAL,
+ alternativeAliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ conferenceID ConferenceIdentifier OPTIONAL,
+ reason FacilityReason,
+ ...,
+ callIdentifier CallIdentifier,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ conferences SEQUENCE OF ConferenceList OPTIONAL,
+ h245Address TransportAddress OPTIONAL
+}
+
+ConferenceList ::= SEQUENCE
+{
+ conferenceID ConferenceIdentifier OPTIONAL,
+ conferenceAlias AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL, -- call must use gatekeeper model
+ -- gatekeeper is alternativeAddress
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...,
+ conferenceListChoice NULL,
+ startH245 NULL -- recipient should connect to h245Address
+}
+
+Progress-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+TransportAddress ::= CHOICE
+{
+ ipAddress SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535)
+ },
+ ipSourceRoute SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING(SIZE(4)),
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL,
+ ...
+ },
+ ...
+ },
+ ipxAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ port OCTET STRING (SIZE(2))
+ },
+ ip6Address SEQUENCE
+ {
+ ip OCTET STRING (SIZE(16)),
+ port INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter,
+ ...
+}
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInfo OPTIONAL,
+ gateway GatewayInfo OPTIONAL,
+ mcu McuInfo OPTIONAL, -- mc must be set as well
+ terminal TerminalInfo OPTIONAL,
+ mc BOOLEAN, -- shall not be set by itself
+ undefinedNode BOOLEAN,
+ ...
+}
+
+GatewayInfo ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Caps,
+ h320 H320Caps,
+ h321 H321Caps,
+ h322 H322Caps,
+ h323 H323Caps,
+ h324 H324Caps,
+ voice VoiceCaps,
+ t120-only T120OnlyCaps,
+ ...,
+ nonStandardProtocol NonStandardProtocol
+}
+
+H310Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H320Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H321Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H322Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H323Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H324Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+VoiceCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+T120OnlyCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+NonStandardProtocol ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix,
+ ...
+}
+
+McuInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+TerminalInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+GatekeeperInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per product
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+AliasAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)), -- Basic ISO/IEC 10646-1 (Unicode)
+ ...,
+ url-ID IA5String (SIZE(1..512)), -- URL style address
+ transportID TransportAddress,
+ email-ID IA5String (SIZE(1..512)), -- rfc822-compliant email address
+ partyNumber PartyNumber
+}
+
+PartyNumber ::= CHOICE
+{
+ publicNumber PublicPartyNumber,
+ -- the numbering plan is according to
+ -- Recommendations E.163 and E.164.
+ dataPartyNumber NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber NumberDigits,
+ -- not used, value reserved.
+ privateNumber PrivatePartyNumber,
+ nationalStandardPartyNumber NumberDigits,
+ -- not used, value reserved.
+ ...
+}
+
+PublicPartyNumber ::= SEQUENCE
+{
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits
+}
+
+PrivatePartyNumber ::= SEQUENCE
+{
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits
+}
+
+NumberDigits ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+PublicTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ -- if used number digits carry prefix indicating type
+ -- of number according to national recommendations.
+ internationalNumber NULL,
+ nationalNumber NULL,
+ networkSpecificNumber NULL,
+ -- not used, value reserved
+ subscriberNumber NULL,
+ abbreviatedNumber NULL,
+ -- valid only for called party number at the outgoing
+ -- access, network substitutes appropriate number.
+...
+}
+
+PrivateTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ level2RegionalNumber NULL,
+ level1RegionalNumber NULL,
+ pISNSpecificNumber NULL,
+ localNumber NULL,
+ abbreviatedNumber NULL,
+ ...
+}
+
+Endpoint ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ aliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ rasAddress SEQUENCE OF TransportAddress OPTIONAL,
+ endpointType EndpointType OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ priority INTEGER(0..127) OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ ...
+}
+
+AlternateGK ::= SEQUENCE
+{
+ rasAddress TransportAddress,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ needToRegister BOOLEAN,
+ priority INTEGER (0..127),
+ ...
+}
+
+AltGKInfo ::= SEQUENCE
+{
+ alternateGatekeeper SEQUENCE OF AlternateGK,
+ altGKisPermanent BOOLEAN,
+ ...
+}
+
+SecurityServiceMode ::= CHOICE
+{
+nonStandard NonStandardParameter,
+none NULL,
+default NULL,
+... -- can be extended with other specific modes
+}
+
+SecurityCapabilities ::= SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ encryption SecurityServiceMode,
+ authenticaton SecurityServiceMode,
+ integrity SecurityServiceMode,
+...
+}
+
+H245Security ::= CHOICE
+{
+ nonStandard NonStandardParameter,
+ noSecurity NULL,
+ tls SecurityCapabilities,
+ ipsec SecurityCapabilities,
+ ...
+}
+
+QseriesOptions ::= SEQUENCE
+{
+ q932Full BOOLEAN, -- if true, indicates full support for Q.932
+ q951Full BOOLEAN, -- if true, indicates full support for Q.951
+ q952Full BOOLEAN, -- if true, indicates full support for Q.952
+ q953Full BOOLEAN, -- if true, indicates full support for Q.953
+ q955Full BOOLEAN, -- if true, indicates full support for Q.955
+ q956Full BOOLEAN, -- if true, indicates full support for Q.956
+ q957Full BOOLEAN, -- if true, indicates full support for Q.957
+ q954Info Q954Details,
+ ...
+}
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+GloballyUniqueID ::= OCTET STRING (SIZE(16))
+ConferenceIdentifier ::= GloballyUniqueID
+RequestSeqNum ::= INTEGER (1..65535)
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+BandWidth ::= INTEGER (0.. 4294967295) -- in 100s of bits
+CallReferenceValue ::= INTEGER (0..65535)
+EndpointIdentifier ::= BMPString (SIZE(1..128))
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+ -- shall be set to
+ -- {itu-t (0) recommendation (0) h (8) 2250 version (0) 2}
+TimeToLive ::= INTEGER (1..4294967295) --in seconds
+
+CallIdentifier ::= SEQUENCE
+{
+ guid GloballyUniqueID,
+ ...
+}
+
+
+EncryptIntAlg ::= CHOICE
+{ -- core encryption algorithms for RAS message integrity
+ nonStandard NonStandardParameter,
+ isoAlgorithm OBJECT IDENTIFIER, -- defined in ISO/IEC 9979
+ ...
+}
+NonIsoIntegrityMechanism ::= CHOICE
+{ -- HMAC mechanism used, no truncation, tagging may be necessary!
+ hMAC-MD5 NULL,
+ hMAC-iso10118-2-s EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (short MAC)
+ hMAC-iso10118-2-l EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (long MAC)
+ hMAC-iso10118-3 OBJECT IDENTIFIER, -- according to ISO/IEC 10118-3 using
+ -- OID as hash function (OID is SHA-1, RIPE-MD160,
+ -- RIPE-MD128)
+ ...
+}
+
+IntegrityMechanism ::= CHOICE
+{ -- for RAS message integrity
+ nonStandard NonStandardParameter,
+ digSig NULL, -- indicates to apply a digital signature
+ iso9797 OBJECT IDENTIFIER, -- according to ISO/IEC 9797 using OID as
+ -- core encryption algorithm (X-CBC MAC)
+ nonIsoIM NonIsoIntegrityMechanism,
+ ...
+}
+
+ICV ::= SEQUENCE
+{
+ algorithmOID OBJECT IDENTIFIER, -- the algorithm used to compute the signature
+ icv BIT STRING -- the computed cryptographic integrity check value
+-- or signature
+}
+
+FastStartToken ::= ClearToken (WITH COMPONENTS {..., timeStamp, dhkey, generalID -- set to 'alias' -- })
+EncodedFastStartToken ::= TYPE-IDENTIFIER.&Type (FastStartToken)
+CryptoH323Token::= CHOICE
+{
+ cryptoEPPwdHash SEQUENCE
+{
+ alias AliasAddress, -- alias of entity generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to 'alias' -- }
+ },
+ cryptoGKPwdHash SEQUENCE
+{
+gatekeeperId GatekeeperIdentifier, -- GatekeeperID of GK generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- }
+ },
+ cryptoEPPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoGKPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoEPCert SIGNED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- },
+ cryptoGKCert SIGNED { EncodedPwdCertToken -- generalID set to alias -- },
+ cryptoFastStart SIGNED { EncodedFastStartToken },
+ nestedcryptoToken CryptoH323Token,
+ ...
+}
+
+
+DataRate ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ channelRate BandWidth,
+ channelMultiplier INTEGER (1..256) OPTIONAL,
+ ...
+}
+
+SupportedPrefix ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ prefix AliasAddress,
+ ...
+}
+
+
+RasMessage ::= CHOICE
+{
+ gatekeeperRequest GatekeeperRequest,
+ gatekeeperConfirm GatekeeperConfirm,
+ gatekeeperReject GatekeeperReject,
+ registrationRequest RegistrationRequest,
+ registrationConfirm RegistrationConfirm,
+ registrationReject RegistrationReject,
+ unregistrationRequest UnregistrationRequest,
+ unregistrationConfirm UnregistrationConfirm,
+ unregistrationReject UnregistrationReject,
+ admissionRequest AdmissionRequest,
+ admissionConfirm AdmissionConfirm,
+ admissionReject AdmissionReject,
+ bandwidthRequest BandwidthRequest,
+ bandwidthConfirm BandwidthConfirm,
+ bandwidthReject BandwidthReject,
+ disengageRequest DisengageRequest,
+ disengageConfirm DisengageConfirm,
+ disengageReject DisengageReject,
+ locationRequest LocationRequest,
+ locationConfirm LocationConfirm,
+ locationReject LocationReject,
+ infoRequest InfoRequest,
+ infoRequestResponse InfoRequestResponse,
+ nonStandardMessage NonStandardMessage,
+ unknownMessageResponse UnknownMessageResponse,
+ ...,
+ requestInProgress RequestInProgress,
+ resourcesAvailableIndicate ResourcesAvailableIndicate,
+ resourcesAvailableConfirm ResourcesAvailableConfirm,
+ infoRequestAck InfoRequestAck,
+ infoRequestNak InfoRequestNak
+}
+
+GatekeeperRequest ::= SEQUENCE --(GRQ)
+{
+
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rasAddress TransportAddress,
+ endpointType EndpointType,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ authenticationCapability SEQUENCE OF AuthenticationMechanism OPTIONAL,
+ algorithmOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperConfirm ::= SEQUENCE --(GCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rasAddress TransportAddress,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ authenticationMode AuthenticationMechanism OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ algorithmOID OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperReject ::= SEQUENCE --(GRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rejectReason GatekeeperRejectReason,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL, -- permission failure, not a resource failure
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+RegistrationRequest ::= SEQUENCE --(RRQ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ discoveryComplete BOOLEAN,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ rasAddress SEQUENCE OF TransportAddress,
+ terminalType EndpointType,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointVendor VendorIdentifier,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ keepAlive BOOLEAN,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+RegistrationConfirm ::= SEQUENCE --(RCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ preGrantedARQ SEQUENCE
+ {
+ makeCall BOOLEAN,
+ useGKCallSignalAddressToMakeCall BOOLEAN,
+ answerCall BOOLEAN,
+ useGKCallSignalAddressToAnswer BOOLEAN,
+ ...
+ } OPTIONAL
+}
+
+RegistrationReject ::= SEQUENCE --(RRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rejectReason RegistrationRejectReason,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL, -- registration permission has aged
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRASAddress NULL, -- supplied address is invalid
+ duplicateAlias SEQUENCE OF AliasAddress,
+ -- alias registered to another endpoint
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL, -- one or more of the transports
+ ...,
+ transportQOSNotSupported NULL, -- endpoint QoS not supported
+ resourceUnavailable NULL, -- gatekeeper resources exhausted
+ invalidAlias NULL, -- alias not consistent with gatekeeper rules
+ securityDenial NULL
+}
+
+UnregistrationRequest ::= SEQUENCE --(URQ)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ reason UnregRequestReason OPTIONAL
+}
+
+UnregRequestReason ::= CHOICE
+{
+ reregistrationRequired NULL,
+ ttlExpired NULL,
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+UnregistrationConfirm ::= SEQUENCE --(UCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregistrationReject ::= SEQUENCE --(URJ)
+{
+
+ requestSeqNum RequestSeqNum,
+ rejectReason UnregRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...,
+ permissionDenied NULL, -- requesting user not allowed to unregister
+ -- specified user
+ securityDenial NULL
+}
+
+AdmissionRequest ::= SEQUENCE --(ARQ)
+{
+ requestSeqNum RequestSeqNum,
+ callType CallType,
+ callModel CallModel OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL, --Note 1
+ destCallSignalAddress TransportAddress OPTIONAL, --Note 1
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ srcInfo SEQUENCE OF AliasAddress,
+ srcCallSignalAddress TransportAddress OPTIONAL,
+ bandWidth BandWidth,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ conferenceID ConferenceIdentifier,
+ activeMC BOOLEAN,
+ answerCall BOOLEAN, -- answering a call
+ ...,
+ canMapAlias BOOLEAN, -- can handle alias address
+ callIdentifier CallIdentifier,
+ srcAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ destAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL, -- Point to point
+ oneToN NULL, -- no interaction (FFS)
+ nToOne NULL, -- no interaction (FFS)
+ nToN NULL, -- interactive (multipoint)
+ ...
+}
+
+CallModel ::= CHOICE
+{
+ direct NULL,
+ gatekeeperRouted NULL,
+ ...
+}
+
+TransportQOS ::= CHOICE
+{
+ endpointControlled NULL,
+ gatekeeperControlled NULL,
+ noControl NULL,
+ ...
+}
+
+AdmissionConfirm ::= SEQUENCE --(ACF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ callModel CallModel,
+ destCallSignalAddress TransportAddress,
+ irrFrequency INTEGER (1..65535) OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ uuiesRequested UUIEsRequested
+}
+
+UUIEsRequested ::= SEQUENCE
+{
+ setup BOOLEAN,
+ callProceeding BOOLEAN,
+ connect BOOLEAN,
+ alerting BOOLEAN,
+ userInformation BOOLEAN,
+ releaseComplete BOOLEAN,
+ facility BOOLEAN,
+ progress BOOLEAN,
+ empty BOOLEAN,
+ ...
+}
+
+AdmissionReject ::= SEQUENCE --(ARJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason AdmissionRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL, -- can't translate address
+ invalidPermission NULL, -- permission has expired
+ requestDenied NULL, -- no bandwidth available
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...,
+ securityDenial NULL,
+ qosControlNotSupported NULL,
+ incompleteAddress NULL
+}
+
+BandwidthRequest ::= SEQUENCE --(BRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ callType CallType OPTIONAL,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+BandwidthConfirm ::= SEQUENCE --(BCF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandwidthReject ::= SEQUENCE --(BRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason BandRejectReason,
+ allowedBandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandRejectReason ::= CHOICE
+{
+ notBound NULL, -- discovery permission has aged
+ invalidConferenceID NULL, -- possible revision
+ invalidPermission NULL, -- true permission violation
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+LocationRequest ::= SEQUENCE --(LRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ destinationInfo SEQUENCE OF AliasAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress,
+ ...,
+ sourceInfo SEQUENCE OF AliasAddress OPTIONAL,
+ canMapAlias BOOLEAN, -- can handle alias address
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationConfirm ::= SEQUENCE --(LCF)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress TransportAddress,
+ rasAddress TransportAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationReject ::= SEQUENCE --(LRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason LocationRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL, -- exclusion by administrator or feature
+ requestDenied NULL, -- can't find location
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+DisengageRequest ::= SEQUENCE --(DRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ disengageReason DisengageReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL, -- gatekeeper is forcing the drop
+ normalDrop NULL, -- associated with normal drop
+ undefinedReason NULL,
+ ...
+}
+
+DisengageConfirm ::= SEQUENCE --(DCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageReject ::= SEQUENCE --(DRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason DisengageRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ requestToDropOther NULL, -- can't request drop for others
+ ...,
+ securityDenial NULL
+}
+
+InfoRequest ::= SEQUENCE --(IRQ)
+{
+ requestSeqNum RequestSeqNum,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ uuiesRequested UUIEsRequested OPTIONAL
+}
+InfoRequestResponse ::= SEQUENCE --(IRR)
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ requestSeqNum RequestSeqNum,
+ endpointType EndpointType,
+ endpointIdentifier EndpointIdentifier,
+ rasAddress TransportAddress,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ perCallInfo SEQUENCE OF SEQUENCE
+ {
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReferenceValue CallReferenceValue,
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInfo OPTIONAL,
+ h245 TransportChannelInfo,
+ callSignaling TransportChannelInfo,
+ callType CallType,
+ bandWidth BandWidth,
+ callModel CallModel,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ substituteConfIDs SEQUENCE OF ConferenceIdentifier,
+ pdu SEQUENCE OF SEQUENCE
+ {
+ h323pdu H323-UU-PDU,
+ sent BOOLEAN -- TRUE is sent, FALSE is received
+ } OPTIONAL
+ } OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ needResponse BOOLEAN
+}
+
+TransportChannelInfo ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInfo,
+ rtcpAddress TransportChannelInfo,
+ cname PrintableString,
+ ssrc INTEGER (1..4294967295),
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+InfoRequestAck ::= SEQUENCE --(IACK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNak ::= SEQUENCE --(INAK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ nakReason InfoRequestNakReason,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNakReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnknownMessageResponse ::= SEQUENCE -- (XRS)
+{
+ requestSeqNum RequestSeqNum,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RequestInProgress ::= SEQUENCE -- (RIP)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ delay INTEGER(1..65535),
+ ...
+}
+
+ResourcesAvailableIndicate ::= SEQUENCE --(RAI)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ protocols SEQUENCE OF SupportedProtocols,
+ almostOutOfResources BOOLEAN,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+ResourcesAvailableConfirm ::= SEQUENCE --(RAC)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+END -- of ASN.1
diff --git a/lib/asn1/test/asn1_SUITE_data/IMP.asn1 b/lib/asn1/test/asn1_SUITE_data/IMP.asn1
new file mode 100644
index 0000000000..8d7546fa15
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/IMP.asn1
@@ -0,0 +1,7 @@
+IMP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+T ::= INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/IN-CS-1-Datatypes.asn b/lib/asn1/test/asn1_SUITE_data/IN-CS-1-Datatypes.asn
new file mode 100644
index 0000000000..ff0361f5c5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/IN-CS-1-Datatypes.asn
@@ -0,0 +1,1630 @@
+-- Module IN-CS-1-Datatypes (Q.1218:10/1995)
+-- Example of addition of an extension named 'Some Network Specific Indicator' of type
+-- BOOLEAN, with criticality 'abort' and to be identified as extension number 1.
+-- Example of definition using the above macro:
+--
+-- SomeNetworkSpecificIndicator ::= EXTENSION {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY abort
+-- IDENTIFIED BY 1
+-- }
+--
+--
+-- Example of transfer syntax, using the ExtensionField datatype as specified in the module
+-- below. Assuming the value of the extension is set to TRUE, the extensions parameter
+-- becomes a Sequence of type INTEGER ::= 1, criticality ENUMERATED ::= 1 and value [1]
+-- EXPLICIT BOOLEAN ::= TRUE.
+--
+-- Use of Q.1400 defined Extension is ffs.
+-- In addition the extension mechanism marker is used to identify the future minor additions to INAP.
+IN-CS-1-Datatypes {itu-t recommendation q 1218 modules(0) cs-1-datatypes(2)
+ version1(0)}
+-- This module contains the type definitions for the IN CS-1 data types.
+-- Where a parameter of type CHOICE is tagged with a specific tag value, the tag is automatically
+-- replaced with an EXPLICIT tag of the same value.
+-- The following parameters map onto bearer protocol (i.e. Q.931, case 2 and ISUP) parameters:
+-- CallingPartySubaddress, CalledPartyNumber,
+-- Prefix (derived from dialled digits), DestinationRoutingAddress,
+-- DialledDigits, ISDNAccessRelatedInformation, CallingPartysCategory, LocationNumber,
+-- TravellingClassMark, AssistingSSPIPRoutingAddress, AlertingPattern (Q.931 only),
+-- ReleaseCause (and other Cause parameters), ServiceProfileIdentifier (Q.932 only),
+-- BearerCapability, CallingPartyNumber, HighLayerCompatibility, OriginalCalledPartyID,
+-- RedirectingPartyID, and RedirectionInformation.
+-- The procedures for mapping of parameters onto bearer protocol are ffs.
+-- The following SSF parameters do not map onto bearer protocol (i.e. Q.931, case 2 and ISUP)
+-- parameters and therefore are assumed to be local to the switching system: CallingPartyBusinessGroupID
+-- FacilityGroup, FacilityGroupMember, RouteList, LegID, IPSSPCapabilities, IPAvailable, CGEncountered,
+-- ForwardingCondition, CorrelationID, ApplicationTimer, TerminalType, MiscCallInfo, TriggerType and
+-- ServiceKey.
+-- Where possible, Administrations should specify the maximum size within their network of
+-- parameters specified in this Recommendation that are of an indeterminate length.
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- TYPE DEFINITIONS FOR IN CS-1 DATA TYPES FOLLOWS
+-- Argument data types
+InvokeIdType ::= INTEGER(-128..127)
+
+-- The ordering of parameters in the argument sequences has been arbitrary. Further study may be
+-- required to order arguments in a manner which will facilitate efficient encoding and decoding.
+ActivateServiceFilteringArg ::= SEQUENCE {
+ filteredCallTreatment [0] FilteredCallTreatment,
+ filteringCharacteristics [1] FilteringCharacteristics,
+ filteringTimeOut [2] FilteringTimeOut,
+ filteringCriteria [3] FilteringCriteria,
+ startTime [4] DateAndTime OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+AnalysedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ featureCode [13] FeatureCode OPTIONAL,
+ accessCode [14] AccessCode OPTIONAL,
+ carrier [15] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+AnalyseInformationArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [3] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [6] CallingPartysCategory OPTIONAL,
+ calledPartyNumber [7] CalledPartyNumber OPTIONAL,
+ chargeNumber [8] ChargeNumber OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ carrier [10] Carrier OPTIONAL,
+ ...
+}
+
+ApplyChargingArg ::= SEQUENCE {
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics,
+ partyToCharge [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The partyToCharge parameter indicates the party in the call to which the ApplyCharging operation
+-- should be applied. If it is not present, then it is applied to the A-party.
+ApplyChargingReportArg ::=
+ CallResult
+
+AssistRequestInstructionsArg ::= SEQUENCE {
+ correlationID [0] CorrelationID,
+ iPAvailable [1] IPAvailable OPTIONAL,
+ iPSSPCapabilities [2] IPSSPCapabilities OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
+-- Called Party Number supplied by the initiating SSF.
+CallGapArg ::= SEQUENCE {
+ gapCriteria [0] GapCriteria,
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional. If gapTreatment is not present, the SSF will use
+-- a default treatment depending on network operator implementation.
+CallInformationReportArg ::= SEQUENCE {
+ requestedInformationList [0] RequestedInformationList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CallInformationRequestArg ::= SEQUENCE {
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CancelArg ::= CHOICE {invokeID [0] InvokeID,
+ allRequests [1] NULL
+}
+
+-- The InvokeID has the same value as that which was used for the operation to be cancelled.
+CancelStatusReportRequestArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ extensions
+ [1] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+CollectedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ [11] ExtensionField{{SupportedExtensions}},
+ featureCode [12] FeatureCode OPTIONAL,
+ accessCode [13] AccessCode OPTIONAL,
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+CollectInformationArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ numberingPlan [1] NumberingPlan OPTIONAL,
+ originalCalledPartyID [2] OriginalCalledPartyID OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ dialledDigits [6] CalledPartyNumber OPTIONAL,
+ ...
+}
+
+ConnectArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ cutAndPaste [3] CutAndPaste OPTIONAL,
+ forwardingCondition [4] ForwardingCondition OPTIONAL,
+ iSDNAccessRelatedInformation [5] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ scfID [8] ScfID OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [11] Carrier OPTIONAL,
+ serviceInteractionIndicators [26] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [27] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- For alerting pattern, OPTIONAL denotes that this parameter only applies if SSF is the terminating
+-- local exchange for the subscriber.
+ConnectToResourceArg ::= SEQUENCE {
+ resourceAddress
+ CHOICE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID,
+ both
+ [2] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID},
+ none [3] NULL},
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+DpSpecificCommonParameters ::= SEQUENCE {
+ serviceAddressInformation [0] ServiceAddressInformation,
+ bearerCapability [1] BearerCapability OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [4] CallingPartysCategory OPTIONAL,
+ iPSSPCapabilities [5] IPSSPCapabilities OPTIONAL,
+ iPAvailable [6] IPAvailable OPTIONAL,
+ iSDNAccessRelatedInformation [7] ISDNAccessRelatedInformation OPTIONAL,
+ cGEncountered [8] CGEncountered OPTIONAL,
+ locationNumber [9] LocationNumber OPTIONAL,
+ serviceProfileIdentifier [10] ServiceProfileIdentifier OPTIONAL,
+ terminalType [11] TerminalType OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ [12] ExtensionField{{SupportedExtensions}},
+ chargeNumber [13] ChargeNumber OPTIONAL,
+ servingAreaID [14] ServingAreaID OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, and cGEncountered denotes network operator
+-- specific use. OPTIONAL for callingPartyNumber, and callingPartysCategory refer to clause 3 for
+-- the trigger detection point processing rules to specify when these parameters are included in the
+-- message. bearerCapability should be appropriately coded as speech.
+EstablishTemporaryConnectionArg ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [4] ExtensionField{{SupportedExtensions}},
+ carrier [5] Carrier OPTIONAL,
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+EventNotificationChargingArg ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ eventSpecificInformationCharging
+ [1] EventSpecificInformationCharging OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ monitorMode [30] MonitorMode DEFAULT notifyAndContinue,
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use.
+EventReportBCSMArg ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo DEFAULT {messageType request},
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+FurnishChargingInformationArg ::= FCIBillingChargingCharacteristics
+
+HoldCallInNetworkArg ::= CHOICE {
+ holdcause [0] HoldCause,
+ empty [1] NULL
+}
+
+-- holdcause is optional and denotes network operator specific use.
+InitialDPArg ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ callingPartySubaddress [6] CallingPartySubaddress OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL,
+ iPAvailable [9] IPAvailable OPTIONAL,
+ locationNumber [10] LocationNumber OPTIONAL,
+ miscCallInfo [11] MiscCallInfo OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL,
+ serviceProfileIdentifier [13] ServiceProfileIdentifier OPTIONAL,
+ terminalType [14] TerminalType OPTIONAL,
+ extensions
+ [15] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ triggerType [16] TriggerType OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ serviceInteractionIndicators [24] ServiceInteractionIndicators OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL,
+ forwardCallIndicators [26] ForwardCallIndicators OPTIONAL,
+ bearerCapability [27] BearerCapability OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, cGEncountered, and miscCallInfo denotes network
+-- operator specific use.
+-- OPTIONAL for dialledDigits, callingPartyNumber, and callingPartysCategory refer to clause 3 for the
+-- trigger detection point processing rules to specify when these parameters are included in the message.
+-- OPTIONAL for terminalType indicates that this parameter applies only at originating or terminating
+-- local exchanges if the SSF has this information.
+InitiateCallAttemptArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [29] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber OPTIONAL,
+ ...
+}
+
+MidCallArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [4] CallingPartySubaddress OPTIONAL,
+ featureRequestIndicator [5] FeatureRequestIndicator OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [7] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OCalledPartyBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [13] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ODisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ routeList [6] RouteList OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ connectTime [9] Integer4 OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ONoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ prefix [6] Digits OPTIONAL,
+ redirectingPartyID [7] RedirectingPartyID OPTIONAL,
+ redirectionInformation [8] RedirectionInformation OPTIONAL,
+ routeList [9] RouteList OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [12] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OriginationAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ travellingClassMark [6] TravellingClassMark OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+PlayAnnouncementArg ::= SEQUENCE {
+ informationToSend [0] InformationToSend,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+PromptAndCollectUserInformationArg ::= SEQUENCE {
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ReceivedInformationArg ::= CHOICE {
+ digitsResponse [0] Digits,
+ iA5Response [1] IA5String
+}
+
+ReleaseCallArg ::= Cause
+
+-- A default value of decimal 31 (normal unspecified) should be coded appropriately.
+RequestCurrentStatusReportArg ::=
+ ResourceID
+
+RequestCurrentStatusReportResultArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus,
+ resourceID [1] ResourceID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RequestEveryStatusChangeReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID,
+ correlationID [1] CorrelationID OPTIONAL,
+ monitorDuration [2] Duration OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestFirstStatusMatchReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ resourceStatus [1] ResourceStatus OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ monitorDuration [3] Duration OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ bearerCapability [5] BearerCapability OPTIONAL,
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestNotificationChargingEventArg ::=
+ SEQUENCE SIZE (1..numOfChargingEvents) OF ChargingEvent
+
+RequestReportBCSMEventArg ::= SEQUENCE {
+ bcsmEvents [0] SEQUENCE SIZE (1..numOfBCSMEvents) OF BCSMEvent,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- Indicates the BCSM related events for notification.
+-- For correlationID OPTIONAL denotes network operator optional.
+ResetTimerArg ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RouteSelectFailureArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ failureCause [6] Cause OPTIONAL,
+ originalCalledPartyID [7] OriginalCalledPartyID OPTIONAL,
+ prefix [8] Digits OPTIONAL,
+ redirectingPartyID [9] RedirectingPartyID OPTIONAL,
+ redirectionInformation [10] RedirectionInformation OPTIONAL,
+ routeList [11] RouteList OPTIONAL,
+ travellingClassMark [12] TravellingClassMark OPTIONAL,
+ extensions
+ [13] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing
+-- rules to specify when these parameters are included in the message.
+SelectFacilityArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ destinationNumberRoutingAddress [1] CalledPartyNumber OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SelectRouteArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ iSDNAccessRelatedInformation [3] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ routeList [5] RouteList OPTIONAL,
+ scfID [6] ScfID OPTIONAL,
+ travellingClassMark [7] TravellingClassMark OPTIONAL,
+ extensions
+ [8] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [9] Carrier OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SendChargingInformationArg ::= SEQUENCE {
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics,
+ partyToCharge [1] LegID,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ServiceFilteringResponseArg ::= SEQUENCE {
+ countersValue [0] CountersValue,
+ filteringCriteria [1] FilteringCriteria,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ responseCondition [3] ResponseCondition OPTIONAL,
+ ...
+}
+
+SpecializedResourceReportArg ::= NULL
+
+StatusReportArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus OPTIONAL,
+ correlationID [1] CorrelationID OPTIONAL,
+ resourceID [2] ResourceID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ reportCondition [4] ReportCondition OPTIONAL,
+ ...
+}
+
+-- For correlationID, OPTIONAL denotes network operator optional.
+-- resourceID is required when the SSF sends a report as an answer to a previous request when the
+-- correlationID was present.
+TAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ calledPartyBusinessGroupID [2] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [3] CalledPartySubaddress OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+TDisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ connectTime [7] Integer4 OPTIONAL,
+ ...
+}
+
+TermAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TNoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ [3] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The Definition of Common Data Types
+AccessCode ::= LocationNumber
+
+-- An access code from a business group dialling plan attendant access codes, access codes to escape
+-- to the public network, access code to access a private facility/network, and feature access codes.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Of local significance.
+AChBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minAChBillingChargingLength..maxAChBillingChargingLength))
+
+-- The AChBillingChargingCharacteristics parameter specifies the charging related information
+-- to be provided by the SSF and the conditions on which this information has to be reported
+-- back to the SCF with the ApplyChargingReport operation.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter
+-- values, costs, tariff change and time of charge, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+AdditionalCallingPartyNumber ::=
+ Digits
+
+-- Indicates the Additional Calling Party Number. Refer to Recommendation Q.763 for encoding.
+AlertingPattern ::= OCTET STRING(SIZE (3))
+
+-- Indicates a specific pattern that is used to alert a subscriber (e.g. distinctive ringing, tones, etc.).
+-- Only applies if SSF is the terminating local exchange for the subscriber. Refer to the Q.931
+-- Signal parameter for encoding.
+ApplicationTimer ::= INTEGER(0..2047)
+
+-- Used by the SCF to set a timer in the SSF. The timer is in seconds.
+AssistingSSPIPRoutingAddress ::=
+ Digits
+
+-- Indicates the destination address of the SRF for the assist procedure.
+BCSMEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL
+}
+
+-- Indicates the BCSM Event information for monitoring.
+BearerCapability ::= CHOICE {
+ bearerCap [0] OCTET STRING(SIZE (2..maxBearerCapabilityLength)),
+ tmr [1] OCTET STRING(SIZE (1))
+}
+
+-- Indicates the type of bearer capability connection to the user. For bearerCapability, either
+-- DSS 1 (Q.931) or the ISUP User Service Information (Q.763) encoding can be used. Refer
+-- to the Q.763 Transmission Medium Requirement parameter for tmr encoding.
+CalledPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the called party. The value of this octet string is network
+-- operator specific.
+CalledPartyNumber ::=
+ OCTET STRING(SIZE (minCalledPartyNumberLength..maxCalledPartyNumberLength))
+
+-- Indicates the Called Party Number. Refer to Recommendation Q.763 for encoding.
+CalledPartySubaddress ::= OCTET STRING
+
+-- Indicates the Called Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the calling party. The value of this octet string is network
+-- operator specific.
+CallingPartyNumber ::=
+ OCTET STRING(SIZE (minCallingPartyNumberLength..maxCallingPartyNumberLength))
+
+-- Indicates the Calling Party Number. Refer to Recommendation Q.763 for encoding.
+CallingPartySubaddress ::= OCTET STRING
+
+-- Indicates the Calling Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+
+-- Indicates the type of calling party (e.g. operator, payphone, ordinary subscriber).
+-- Refer to Recommendation Q.763 for encoding.
+CallResult ::= OCTET STRING(SIZE (minCallResultLength..maxCallResultLength))
+
+-- This parameter provides the SCF with the charging related information previously requested
+-- using the ApplyCharging operation. This shall include the partyToCharge parameter as
+-- received in the related ApplyCharging operation to correlate the result to the request.
+-- The remaining content is network operator specific.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter values,
+-- costs, tariff change and time of change, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+Carrier ::= OCTET STRING
+
+-- Contains the carrier selection and carrier ID fields.
+-- Carrier selection is one octet and is encoded as:
+-- 00000000 No indication
+-- 00000001 Selected carrier code pre subscribed and not input by calling party
+-- 00000010 Selected carrier identification code pre subscribed and input by calling party
+-- 00000011 Selected carrier identification code pre subscribed, no indication of whether input by calling party
+-- 00000100 Selected carrier identification code not pre subscribed and input by calling party
+-- 00000101
+-- to Spare
+-- 11111110
+-- 11111111 Reserved
+--
+-- Carrier ID has a one octet field indicating the number of digits followed by the digits encoded using BCD.
+-- Detailed coding is for further study. It is of local significance and carrying it through the ISUP is for further
+-- study.
+Cause ::= OCTET STRING(SIZE (minCauseLength..maxCauseLength))
+
+-- Indicates the cause for interface related information. Refer to the Q.763 Cause parameter for
+-- encoding.
+-- For the use of cause and location values refer to Recommendation Q.850.
+CGEncountered ::= ENUMERATED {
+ noCGencountered(0), manualCGencountered(1), scpOverload(2)}
+
+-- Indicates the type of automatic call gapping encountered, if any.
+ChargeNumber ::=
+ LocationNumber
+
+-- Information sent in either direction indicating the chargeable number for the call and consisting
+-- of the odd/even indicator, nature of address indicator, numbering plan indicator, and address signals.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- For example, the ChargeNumber may be a third party number to which a call is billed for the 3rd party
+-- billing service. In this case, the calling party may request operator assistance to charge the call to,
+-- for example, their home number.
+ChargingEvent ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL
+}
+
+-- This parameter indicates the charging event type and corresponding
+-- monitor mode and LedID.
+CollectedDigits ::= SEQUENCE {
+ minimumNbOfDigits [0] INTEGER(1..127) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER(1..127),
+ endOfReplyDigit [2] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ cancelDigit [3] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ startDigit [4] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ firstDigitTimeOut [5] INTEGER(1..127) OPTIONAL,
+ interDigitTimeOut [6] INTEGER(1..127) OPTIONAL,
+ errorTreatment [7] ErrorTreatment DEFAULT reportErrorToScf,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+}
+
+-- The use of voiceBack is network operator specific.
+-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been designated as OCTET STRING,
+-- and are to be encoded as BCD, one digit per octet only, contained
+-- in the four least significant bits of each OCTET. The usage is service dependent.
+CollectedInfo ::= CHOICE {
+ collectedDigits [0] CollectedDigits,
+ iA5Information [1] BOOLEAN
+}
+
+ControlType ::= ENUMERATED {
+ sCPOverloaded(0), manuallyInitiated(1), destinationOverload(2)
+ -- other values FFS
+ }
+
+CorrelationID ::= Digits
+
+-- used by SCF for correlation with a previous operation. Refer to clause 3 for a description of the
+-- procedures associated with this parameter.
+CounterAndValue ::= SEQUENCE {
+ counterID [0] CounterID,
+ counterValue [1] Integer4
+}
+
+CounterID ::= INTEGER(0..99)
+
+-- Indicates the counters to be incremented.
+-- The counterIDs can be addressed by using the last digits of the dialled number.
+CountersValue ::= SEQUENCE SIZE (0..numOfCounters) OF CounterAndValue
+
+CutAndPaste ::= INTEGER(0..22)
+
+-- Indicates the number of digits to be deleted. Refer to 6.4.2.16/Q.1214 for additional information.
+DateAndTime ::= OCTET STRING(SIZE (6))
+
+-- Indicates, amongst others, the start time for activate service filtering. Coded as YYMMDDHHMMSS
+-- with each digit coded BCD.
+-- The first octet contains YY and the remaining items are sequenced following.
+-- For example, 1993 September 30th, 12:15:01 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- 2 1
+-- 5 1
+-- 1 0
+DestinationRoutingAddress ::= SEQUENCE SIZE (1..3) OF CalledPartyNumber
+
+-- Indicates the list of Called Party Numbers (primary and alternates).
+Digits ::= OCTET STRING(SIZE (minDigitsLength..maxDigitsLength))
+
+-- Indicates the address signalling digits. Refer to the Q.763 Generic Number and Generic Digits parameters
+-- for encoding. The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+-- Generic Digits are irrelevant to the INAP, the ASN.1 tags are sufficient to identify the parameter.
+-- The ISUP format does not allow to exclude these subfields, therefore the value is network operator specific.
+-- The following parameters should use Generic Number:
+-- CorrelationID for AssistRequestInstructions, AssistingSSPIPRoutingAddress for
+-- EstablishTemporaryConnection, calledAddressValue for all occurrences, callingAddressValue for all
+-- occurrences. The following parameters should use Generic Digits: prefix, all
+-- other CorrelationID occurrences, dialledNumber filtering criteria, callingLineID filtering criteria, lineID
+-- for ResourceID type, digitResponse for ReceivedInformationArg.
+DisplayInformation ::=
+ IA5String(SIZE (minDisplayInformationLength..maxDisplayInformationLength))
+
+-- Indicates the display information.
+DpSpecificCriteria ::= CHOICE {
+ numberOfDigits [0] NumberOfDigits,
+ applicationTimer [1] ApplicationTimer
+}
+
+-- The SCF may specify the number of digits to be collected by the SSF for the CollectedInfo event.
+-- When all digits are collected, the SSF reports the event to the SCF.
+-- The SCF may set a timer in the SSF for the No Answer event. If the user does not answer the call
+-- within the allotted time, the SSF reports the event to the SCF.
+Duration ::= INTEGER(-2..86400)
+
+-- Values are seconds.
+ErrorTreatment ::= ENUMERATED {reportErrorToScf(0), help(1), repeatPrompt(2)
+}
+
+-- reportErrorToScf means returning the "ImproperCallerResponse" error in the event of an error
+-- condition during collection of user info.
+EventSpecificInformationBCSM ::= CHOICE {
+ collectedInfoSpecificInfo
+ [0] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ analyzedInfoSpecificInfo
+ [1] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ routeSelectFailureSpecificInfo
+ [2] SEQUENCE {failureCause [0] Cause OPTIONAL,
+ ...},
+ oCalledPartyBusySpecificInfo
+ [3] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ oNoAnswerSpecificInfo
+ [4] SEQUENCE {-- no specific info defined
+ ...},
+ oAnswerSpecificInfo
+ [5] SEQUENCE {-- no specific info defined
+ ...},
+ oMidCallSpecificInfo
+ [6] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ oDisconnectSpecificInfo
+ [7] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...},
+ tBusySpecificInfo
+ [8] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ tNoAnswerSpecificInfo
+ [9] SEQUENCE {-- no specific info defined
+ ...},
+ tAnswerSpecificInfo
+ [10] SEQUENCE {-- no specific info defined
+ ...},
+ tMidCallSpecificInfo
+ [11] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ tDisconnectSpecificInfo
+ [12] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...}
+}
+
+-- Indicates the call related information specific to the event.
+-- The connectTime indicates the duration between the received answer indication from the called party side
+-- and the release of the connection for ODisconnect, OException, TDisconnect, or TException events.
+-- The unit for the connectTime is 100 milliseconds.
+EventSpecificInformationCharging ::=
+ OCTET STRING
+ (SIZE (minEventSpecificInformationChargingLength..
+ maxEventSpecificInformationChargingLength))
+
+-- defined by network operator.
+-- Indicates the charging related information specific to the event.
+-- An example data type definition for this parameter is given below:
+-- chargePulses [0] Integer4,
+-- chargeMessages [1] OCTET STRING (SIZE (min..max))
+EventTypeBCSM ::= ENUMERATED {
+ origAttemptAuthorized(1), collectedInfo(2), analysedInformation(3),
+ routeSelectFailure(4), oCalledPartyBusy(5), oNoAnswer(6), oAnswer(7),
+ oMidCall(8), oDisconnect(9), oAbandon(10), termAttemptAuthorized(12),
+ tBusy(13), tNoAnswer(14), tAnswer(15), tMidCall(16), tDisconnect(17),
+ tAbandon(18)}
+
+-- Indicates the BCSM detection point event. Refer to 4.2.2.2/Q.1214 for additional information on the
+-- events. Values origAttemptAuthorized and termAttemptAuthorized can only be used for TDPs.
+EventTypeCharging ::=
+ OCTET STRING(SIZE (minEventTypeChargingLength..maxEventTypeChargingLength))
+
+-- This parameter indicates the charging event type. Its content is network operator specific.
+--
+-- An example data type definition for this parameter is given below:
+-- EventTypeCharging ::= ENUMERATED {
+-- chargePulses (0),
+-- chargeMessages (1)
+-- }
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &criticality Criticality DEFAULT ignored
+}
+WITH SYNTAX {
+ [EXTENSION-SYNTAX &Type
+ [IF ABSENT &absent]]
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= INTEGER(0..MAX)
+
+Criticality ::= ENUMERATED {ignored(0), abort(1)}
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality Criticality DEFAULT ignored,
+ value [1] EXTENSION.&Type({ChosenFrom}{@type})
+}
+
+-- This parameter indicates an extension of an argument data type. Its content is network operator specific.
+SupportedExtensions EXTENSION ::=
+ {...}
+
+FacilityGroup ::= CHOICE {
+ trunkGroupID [0] INTEGER,
+ privateFacilityID [1] INTEGER,
+ huntGroup [2] OCTET STRING,
+ routeIndex [3] OCTET STRING
+}
+
+-- Indicates the particular group of facilities to route the call. huntGroup and routeIndex are encoded as
+-- network operator specific.
+FacilityGroupMember ::= INTEGER
+
+-- Indicates the specific member of a trunk group or multi-line hunt group.
+FCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minFCIBillingChargingLength..maxFCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- FCIBillingChargingCharacteristics ::= CHOICE {
+-- completeChargingrecord [0] OCTET STRING (SIZE (min..max)),
+-- correlationID [1] CorrelationID,
+-- scenario2Dot3 [2] SEQUENCE {
+-- chargeParty [0] LegID OPTIONAL,
+-- chargeLevel [1] OCTET STRING (SIZE (min..max))
+-- OPTIONAL,
+-- chargeItems [2] SET OF Attribute OPTIONAL
+-- }
+-- }
+-- Depending on the applied charging scenario, the following information elements can be included
+-- (refer to Q.1214 Appendix II):
+-- complete charging record (scenario 2.2)
+-- charge party (scenario 2.3)
+-- charge level (scenario 2.3)
+-- charge items (scenario 2.3)
+-- correlationID (scenario 2.4)
+FeatureCode ::=
+ LocationNumber
+
+-- The two-digit feature code preceded by "*" or "11".
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Used for stimulus signalling (Q.932).
+FeatureRequestIndicator ::= ENUMERATED {
+ hold(0), retrieve(1), featureActivation(2), spare1(3), sparen(127)}
+
+-- Indicates the feature activated (e.g. a switch-hook flash, feature activation). Spare values reserved
+-- for future use.
+FilteredCallTreatment ::= SEQUENCE {
+ sFBillingChargingCharacteristics [0] SFBillingChargingCharacteristics,
+ informationToSend [1] InformationToSend OPTIONAL,
+ maximumNumberOfCounters [2] MaximumNumberOfCounters OPTIONAL,
+ releaseCause [3] Cause OPTIONAL
+}
+
+-- If releaseCause is not present, the default value is the same as the ISUP cause value decimal 31.
+-- If informationToSend is present, the call will be released after the end of the announcement
+-- with the indicated or default releaseCause.
+-- If maximumNumberOfCounters is not present, ServiceFilteringResponse will be sent with
+-- CountersValue::= SEQUENCE SIZE (0) OF CountersAndValue.
+FilteringCharacteristics ::= CHOICE {
+ interval [0] INTEGER(-1..32000),
+ numberOfCalls [1] Integer4
+}
+
+-- Indicates the severity of the filtering and the point in time when the ServiceFilteringResponse is to be sent.
+-- If = interval, every interval of time the next call leads to an InitialDP and a ServiceFilteringResponse is
+-- sent to the SCF. The interval is specified in seconds.
+-- If = NumberOfCalls, every N calls the Nth call leads to an InitialDP and a ServiceFilteringResponse
+-- is sent to the SCF.
+-- If ActivateServiceFiltering implies several counters - filtering on several dialled numbers -,
+-- the numberOfCalls would include calls to all the dialled numbers.
+FilteringCriteria ::= CHOICE {
+ dialledNumber [0] Digits,
+ callingLineID [1] Digits,
+ serviceKey [2] ServiceKey,
+ addressAndService
+ [30] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ callingAddressValue [2] Digits OPTIONAL,
+ locationNumber [3] LocationNumber OPTIONAL
+ }
+}
+
+-- In case calledAddressValue is specified, the numbers to be filtered are from calledAddressValue
+-- up to and including calledAddressValue + maximumNumberOfCounters-1.
+-- The last two digits of calledAddressvalue can not exceed 100-maximumNumberOfCounters.
+FilteringTimeOut ::= CHOICE {
+ duration [0] Duration,
+ stopTime [1] DateAndTime
+}
+
+-- Indicates the maximum duration of the filtering. When the timer expires, a ServiceFilteringResponse
+-- is sent to the SCF.
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+
+-- Indicates the Forward Call Indicators. Refer to Recommendation Q.763 for encoding.
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+
+-- Indicates the condition that must be met to complete the connect.
+GapCriteria ::= CHOICE {
+ calledAddressValue [0] Digits,
+ gapOnService [2] GapOnService,
+ calledAddressAndService
+ [29] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey},
+ callingAddressAndService
+ [30] SEQUENCE {callingAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ locationNumber [2] LocationNumber OPTIONAL
+ }
+}
+
+-- Both calledAddressValue and callingAddressValue can be
+-- incomplete numbers, in the sense that a limited amount of digits can be given.
+--
+-- For the handling of numbers starting with the same digit string, refer to the detailed procedure
+-- of the CallGap operation in 3.3.
+GapOnService ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ dpCriteria [1] EventTypeBCSM OPTIONAL
+}
+
+--Recommendation Q.1218 (10/95)
+GapIndicators ::= SEQUENCE {
+ duration [0] Duration,
+ gapInterval [1] Interval
+}
+
+-- Indicates the gapping characteristics. No gapping when gapInterval equals 0, and gap all calls when
+-- gapInterval equals 1.
+GapTreatment ::= CHOICE {
+ informationToSend [0] InformationToSend,
+ releaseCause [1] Cause,
+ both
+ [2] SEQUENCE {informationToSend [0] InformationToSend,
+ releaseCause [1] Cause}
+}
+
+-- The default value for Cause is the same as in ISUP.
+HighLayerCompatibility ::= OCTET STRING(SIZE (highLayerCompatibilityLength))
+
+-- Indicates the teleservice. For encoding, DSS 1 (Q.931) is used.
+HoldCause ::= OCTET STRING -- defined by network operator.
+
+-- Indicates the cause for holding the call.
+InbandInfo ::= SEQUENCE {
+ messageID [0] MessageID,
+ numberOfRepetitions [1] INTEGER(1..127) OPTIONAL,
+ duration [2] INTEGER(0..32767) OPTIONAL,
+ interval [3] INTEGER(0..32767) OPTIONAL
+}
+
+-- Interval is the time in seconds between each repeated announcement. Duration is the total
+-- amount of time in seconds, including repetitions and intervals.
+-- The end of announcement is either the end of duration or numberOfRepetitions, whatever comes first.
+-- Duration with value 0 indicates infinite duration.
+InformationToSend ::= CHOICE {
+ inbandInfo [0] InbandInfo,
+ tone [1] Tone,
+ displayInformation [2] DisplayInformation
+}
+
+Integer4 ::= INTEGER(0..2147483647)
+
+Interval ::= INTEGER(-1..60000)
+
+-- Units are milliseconds. A -1 value denotes infinite.
+InvokeID ::=
+ InvokeIdType
+
+-- Operation invoke identifier.
+IPAvailable ::= OCTET STRING(SIZE (minIPAvailableLength..maxIPAvailableLength))
+
+-- defined by network operator.
+-- Indicates that the resource is available.
+IPRoutingAddress ::=
+ CalledPartyNumber
+
+-- Indicates the routing address for the IP.
+IPSSPCapabilities ::=
+ OCTET STRING(SIZE (minIPSSPCapabilitiesLength..maxIPSSPCapabilitiesLength))
+
+-- defined by network operator.
+-- Indicates the SRF resources available at the SSP.
+ISDNAccessRelatedInformation ::= OCTET STRING
+
+-- Indicates the destination user network interface related information. Refer to the Q.763 Access
+-- Transport parameter for encoding.
+LegID ::= CHOICE {sendingSideID [0] LegType,
+ receivingSideID [1] LegType
+}
+
+-- Indicates a reference to a specific party in a call. OPTIONAL denotes network operator specific use
+-- with a choice of unilateral ID assignment or bilateral ID assignment.
+-- OPTIONAL for LegID also denotes the following:
+-- - when only one party exists in the call, this parameter is not needed (as no ambiguity exists);
+-- - when more than one party exists in the call, one of the following alternatives applies:
+-- 1. LegID is present and indicates which party is concerned.
+-- 2. LegID is not present and a default value is assumed (e.g. calling party in the case of the
+-- ApplyCharging operation).
+-- Choice between these two alternatives is kept a network operator option.
+LegType ::= OCTET STRING(SIZE (1))
+
+leg1 LegType ::= '01'H
+
+leg2 LegType ::= '02'H
+
+LocationNumber ::=
+ OCTET STRING(SIZE (minLocationNumberLength..maxLocationNumberLength))
+
+-- Indicates the Location Number for the calling party. Refer to Recommendation Q.763 (White book) for encoding.
+MaximumNumberOfCounters ::= INTEGER(1..numOfCounters)
+
+MessageID ::= CHOICE {
+ elementaryMessageID [0] Integer4,
+ text
+ [1] SEQUENCE {messageContent
+ [0] IA5String
+ (SIZE (minMessageContentLength..
+ maxMessageContentLength)),
+ attributes
+ [1] OCTET STRING
+ (SIZE (minAttributesLength..maxAttributesLength))
+ OPTIONAL},
+ elementaryMessageIDs [29] SEQUENCE SIZE (1..numOfMessageIDs) OF Integer4,
+ variableMessage
+ [30] SEQUENCE {elementaryMessageID [0] Integer4,
+ variableParts
+ [1] SEQUENCE SIZE (1..5) OF VariablePart}
+}
+
+-- OPTIONAL denotes network operator specific use.
+MiscCallInfo ::= SEQUENCE {
+ messageType [0] ENUMERATED {request(0), notification(1)},
+ dpAssignment
+ [1] ENUMERATED {individualLine(0), groupBased(1), officeBased(2)} OPTIONAL
+}
+
+-- Indicates detection point related information.
+MonitorMode ::= ENUMERATED {
+ interrupted(0), notifyAndContinue(1), transparent(2)}
+
+-- Indicates the event is relayed and/or processed by the SSP.
+-- If this parameter is used in the context of charging events, the following definitions apply for the
+-- handling of charging events:
+-- Interrupted means that the SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, does not process the event but discard it.
+-- NotifyAndContinue means that SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, and continues processing the event or signal without waiting for SCF
+-- instructions. Transparent means that the SSF does not notify the SCF of the event. This value is used to
+-- end the monitoring of a previously requested charging event. Previously requested charging events are
+-- monitored until ended by a transparent monitor mode, or until the end of the connection configuration.
+-- For the use of this parameter in the context of BCSM events refer to 3.3.39.
+NumberingPlan ::= OCTET STRING(SIZE (1))
+
+-- Indicates the numbering plan for collecting the user information. Refer to the Q.763 Numbering Plan.
+-- Indicator field for encoding.
+NumberOfDigits ::= INTEGER(1..255)
+
+-- Indicates the number of digits to be collected
+OriginalCalledPartyID ::=
+ OCTET STRING
+ (SIZE (minOriginalCalledPartyIDLength..maxOriginalCalledPartyIDLength))
+
+-- Indicates the original called number. Refer to the Q.763 Original Called Number for encoding.
+RedirectingPartyID ::=
+ OCTET STRING(SIZE (minRedirectingPartyIDLength..maxRedirectingPartyIDLength))
+
+-- Indicates redirecting number. Refer to the Q.763 Redirecting number for encoding.
+RedirectionInformation ::= OCTET STRING(SIZE (2))
+
+-- Indicates redirection information. Refer to the Q.763 Redirection Information for encoding.
+ReportCondition ::= ENUMERATED {statusReport(0), timerExpired(1), canceled(2)
+}
+
+-- ReportCondition specifies the cause of sending "StatusReport" operation to the SCF.
+RequestedInformationList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation
+
+RequestedInformationTypeList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+RequestedInformation ::= SEQUENCE {
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue
+}
+
+RequestedInformationType ::= ENUMERATED {
+ callAttemptElapsedTime(0), callStopTime(1), callConnectedElapsedTime(2),
+ calledAddress(3), releaseCause(30)}
+
+RequestedInformationValue ::= CHOICE {
+ callAttemptElapsedTimeValue [0] INTEGER(0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ calledAddressValue [3] Digits,
+ releaseCauseValue [30] Cause
+}
+
+-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the
+-- callConnectedElapsedTimeValue is 100 milliseconds.
+ResourceID ::= CHOICE {
+ lineID [0] Digits,
+ facilityGroupID [1] FacilityGroup,
+ facilityGroupMemberID [2] INTEGER,
+ trunkGroupID [3] INTEGER
+}
+
+-- Indicates a logical identifier for the physical termination resource.
+ResourceStatus ::= ENUMERATED {busy(0), idle(1)}
+
+ResponseCondition ::= ENUMERATED {intermediateResponse(0), lastResponse(1)
+
+-- additional values are for further study.
+}
+
+-- ResponseCondition is used to identify the reason why ServiceFilteringResponse operation is sent.
+-- intermediateresponse identifies that service filtering is running and the interval time is expired and
+-- a call is received, or that service filtering is running and the threshold value is reached.
+-- lastResponse identifies that the duration time is expired and service filtering has been finished or
+-- that the stop time is met and service filtering has been finished.
+RouteList ::=
+ SEQUENCE SIZE (1..3) OF
+ OCTET STRING(SIZE (minRouteListLength..maxRouteListLength))
+
+-- Indicates a list of trunk groups or a route index. See Recommendation Q.1214 for additional information on this item.
+ScfID ::= OCTET STRING(SIZE (minScfIDLength..maxScfIDLength))
+
+-- defined by network operator.
+-- Indicates the SCF identifier.
+SCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSCIBillingChargingLength..maxSCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- SCIBillingChargingCharacteristics ::= CHOICE {
+-- chargeLevel [0] OCTET STRING (SIZE (min..max),
+-- chargePulses [1] Integer4,
+-- chargeMessages [2] OCTET STRING (SIZE (min..max)
+-- }
+-- Depending on the applied charging scenario the following information elements
+-- can be included (refer to Appendix II/Q.1214):
+-- chargeLevel (scenario 3.2)
+-- chargePulses (scenario 3.2)
+-- chargeMessages (scenario 3.2)
+ServiceAddressInformation ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ miscCallInfo [1] MiscCallInfo,
+ triggerType [2] TriggerType OPTIONAL
+}
+
+-- Information that represents the result of trigger analysis and allows the SCF to choose the appropriate
+-- service logic.
+ServiceInteractionIndicators ::=
+ OCTET STRING
+ (SIZE (minServiceInteractionIndicatorsLength..
+ maxServiceInteractionIndicatorsLength))
+
+-- Indicators which are exchanged between SSP and SCP to resolve interactions between IN based services
+-- and network based services, respectively between different IN based services.
+-- The contents are network specific and identified as a subject for further study with respect to INAP.
+-- The following example is listed to illustrate the use of this parameter:
+-- CallToBeDiverted Allowed/NotAllowed Indicator
+-- If the CallToBeDiverted indicator is set to NotAllowed, the destination exchange shall not allow any
+-- divertion on the subjected call. By this, each service can pass the applicable indicators to inform the
+-- destination exchange of how specific services are to be handled.
+ServiceKey ::=
+ Integer4
+
+-- Information that allows the SCF to choose the appropriate service logic.
+ServiceProfileIdentifier ::= OCTET STRING
+
+-- Indicates a particular ISDN terminal. Refer to Recommendation Q.932 for encoding.
+ServingAreaID ::=
+ LocationNumber
+
+-- Identifies the local serving area where a network provider operates. Uses the LocationNumber
+-- format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Defined by the network operator.
+SFBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSFBillingChargingLength..maxSFBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics for filtered calls.
+-- Its content is network operator specific.
+TerminalType ::= ENUMERATED {
+ unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16)
+}
+
+-- Identifies the terminal type so that the SCF can specify, to the SRF, the appropriate type of capability
+-- (voice recognition, DTMF, display capability, etc.). Since present signalling systems do not convey
+-- terminal type, this parameter applies only at originating or terminating local exchanges.
+TimerID ::= ENUMERATED {tssf(0)
+ -- others ffs
+ }
+
+-- Indicates the timer to be reset.
+TimerValue ::= Integer4
+
+-- Indicates the timer value (in seconds).
+Tone ::= SEQUENCE {toneID [0] Integer4,
+ duration [1] Integer4 OPTIONAL
+}
+
+-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration.
+TravellingClassMark ::=
+ LocationNumber
+
+-- Indicates travelling class mark information.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Maximum 2 digits.
+TriggerType ::= ENUMERATED {
+ featureActivation(0), verticalServiceCode(1), customizedAccess(2),
+ customizedIntercom(3), emergencyService(12), aFR(13), sharedIOTrunk(14),
+ offHookDelay(17), channelSetupPRI(18), tNoAnswer(25), tBusy(26),
+ oCalledPartyBusy(27), oNoAnswer(29), originationAttemptAuthorized(30),
+ oAnswer(31), oDisconnect(32), termAttemptAuthorized(33), tAnswer(34),
+ tDisconnect(35)
+ -- Private (ffs)
+ }
+
+-- The type of trigger which caused call suspension
+-- 4-11: Reserved; 15,16: Reserved; 19-24: Reserved
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources(0), componentFailure(1),
+ basicCallProcessingException(2), resourceStatusFailure(3), endUserFailure(4)
+}
+
+-- Indicates the network resource that failed.
+VariablePart ::= CHOICE {
+ integer [0] Integer4,
+ number [1] Digits, -- Generic digits
+ time [2] OCTET STRING(SIZE (2)), -- HH:MM, BCD coded
+ date [3] OCTET STRING(SIZE (3)), -- YYMMDD, BCD coded
+ price [4] OCTET STRING(SIZE (4))
+}
+
+-- Indicates the variable part of the message.
+-- BCD coded variable parts are encoded as described in the examples below.
+-- For example, time = 12:15 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 2 1
+-- 5 1
+-- date = 1993 September 30th would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- The Definition of range of constants Follows
+highLayerCompatibilityLength INTEGER ::=
+ 2
+
+minAChBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxAChBillingChargingLength INTEGER ::= 1 -- network specific
+
+minAttributesLength INTEGER ::= 0 -- network specific
+
+maxAttributesLength INTEGER ::= 1 -- network specific
+
+maxBearerCapabilityLength INTEGER ::= 2 -- network specific
+
+minCalledPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCalledPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallingPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCallingPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallResultLength INTEGER ::= 0 -- network specific
+
+maxCallResultLength INTEGER ::= 1 -- network specific
+
+minCauseLength INTEGER ::= 2
+
+maxCauseLength INTEGER ::= 2 -- network specific
+
+minDigitsLength INTEGER ::= 0 -- network specific
+
+maxDigitsLength INTEGER ::= 1 -- network specific
+
+minDisplayInformationLength INTEGER ::= 0 -- network specific
+
+maxDisplayInformationLength INTEGER ::= 1 -- network specific
+
+minEventSpecificInformationChargingLength INTEGER ::= 0 -- network specific
+
+maxEventSpecificInformationChargingLength INTEGER ::= 1 -- network specific
+
+minEventTypeChargingLength INTEGER ::= 0 -- network specific
+
+maxEventTypeChargingLength INTEGER ::= 1 -- network specific
+
+minFCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxFCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minIPAvailableLength INTEGER ::= 0 -- network specific
+
+maxIPAvailableLength INTEGER ::= 1 -- network specific
+
+minIPSSPCapabilitiesLength INTEGER ::= 0 -- network specific
+
+maxIPSSPCapabilitiesLength INTEGER ::= 1 -- network specific
+
+minLocationNumberLength INTEGER ::= 0 -- network specific
+
+maxLocationNumberLength INTEGER ::= 1 -- network specific
+
+minMessageContentLength INTEGER ::= 0 -- network specific
+
+maxMessageContentLength INTEGER ::= 1 -- network specific
+
+minOriginalCalledPartyIDLength INTEGER ::= 0 -- network specific
+
+maxOriginalCalledPartyIDLength INTEGER ::= 1 -- network specific
+
+minRedirectingPartyIDLength INTEGER ::= 0 -- network specific
+
+maxRedirectingPartyIDLength INTEGER ::= 1 -- network specific
+
+minRouteListLength INTEGER ::= 0 -- network specific
+
+maxRouteListLength INTEGER ::= 1 -- network specific
+
+minScfIDLength INTEGER ::= 0 -- network specific
+
+maxScfIDLength INTEGER ::= 1 -- network specific
+
+minSCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minServiceInteractionIndicatorsLength INTEGER ::= 0 -- network specific
+
+maxServiceInteractionIndicatorsLength INTEGER ::= 1 -- network specific
+
+minSFBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSFBillingChargingLength INTEGER ::= 1 -- network specific
+
+numOfBCSMEvents INTEGER ::= 1 -- network specific
+
+numOfChargingEvents INTEGER ::= 1 -- network specific
+
+numOfCounters INTEGER ::= 100
+
+numOfExtensions INTEGER ::= 1 -- network specific
+
+numOfInfoItems INTEGER ::= 5
+
+numOfMessageIDs INTEGER ::= 1 -- network specific
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/INAPv2extract.asn b/lib/asn1/test/asn1_SUITE_data/INAPv2extract.asn
new file mode 100644
index 0000000000..8eaecbd0a7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/INAPv2extract.asn
@@ -0,0 +1,112 @@
+INAPv2extract DEFINITIONS
+
+EXPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXTENSION ::= CLASS {
+ &ExtensionType ,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code
+}
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+CriticalityType ::= ENUMERATED {ignore(0), abort(1)}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+--3b parameteriserad object set
+SupportedExtensions{PARAMETERS-BOUND:bound} EXTENSION ::=
+{firstExtension |
+ boundedExtension {bound}, --4a instans av parameteriserat object
+ ...
+}
+
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY local:1
+}
+
+--4b parameteriserat object
+boundedExtension{PARAMETERS-BOUND:bound} EXTENSION ::= {
+ EXTENSION-SYNTAX BoundedExtensionSyntax {bound} --5a instans av parameteriserad typ
+ CRITICALITY ignore
+ IDENTIFIED BY local:2
+}
+
+--1b parameteriserad typ
+InitialDPArg{PARAMETERS-BOUND:bound} ::= SEQUENCE {
+ dialledDigits [1] CalledPartyNumber{bound} OPTIONAL, --2a instans av parameteriserad typ
+ extensions [15] SEQUENCE SIZE (1..bound.&numOfExtensions) OF ExtensionField{ {SupportedExtensions {bound}}} OPTIONAL --3a instans av parameteriserad objectset
+}
+
+ExtensionField{EXTENSION:SupportedExtensions} ::= SEQUENCE {
+ type EXTENSION.&id({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType({SupportedExtensions}{@type})
+}
+
+--2b parameteriserad typ
+CalledPartyNumber{PARAMETERS-BOUND:bound} ::=
+ OCTET STRING
+ (SIZE (bound.&minCalledPartyNumberLength..bound.&maxCalledPartyNumberLength))
+
+--5b parameteriserad typ
+BoundedExtensionSyntax{PARAMETERS-BOUND:bound} ::= SEQUENCE { --5
+ digits OCTET STRING(SIZE (bound.&minDigitsLength..bound.&maxDigitsLength))
+}
+
+PARAMETERS-BOUND ::= CLASS {
+ &minAChBillingChargingLength INTEGER,
+ &maxAChBillingChargingLength INTEGER,
+ &minAttributesLength INTEGER,
+ &maxAttributesLength INTEGER,
+ &minBackwardGVNSLength INTEGER,
+ &minDigitsLength INTEGER,
+ &maxDigitsLength INTEGER,
+ &minCalledPartyNumberLength INTEGER,
+ &maxCalledPartyNumberLength INTEGER,
+ &numOfExtensions INTEGER
+}
+WITH SYNTAX {
+ MINIMUM-FOR-ACH-BILLING-CHARGING &minAChBillingChargingLength
+ MAXIMUM-FOR-ACH-BILLING-CHARGING &maxAChBillingChargingLength
+ MINIMUM-FOR-ATTRIBUTES &minAttributesLength
+ MAXIMUM-FOR-ATTRIBUTES &maxAttributesLength
+ MINIMUM-FOR-BACKWARD-GVNS &minBackwardGVNSLength
+ MINIMUM-FOR-DIGITS &minDigitsLength
+ MAXIMUM-FOR-DIGITS &maxDigitsLength
+ MINIMUM-FOR-CALLED-PARTY-NUMBER &minCalledPartyNumberLength
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER &maxCalledPartyNumberLength
+ NUM-OF-EXTENSIONS &numOfExtensions
+ }
+
+--1a instans av parameteriserad typ
+ActivityTest2 ::= InitialDPArg{networkSpecificBoundSet}
+
+networkSpecificBoundSet PARAMETERS-BOUND ::= {
+ MINIMUM-FOR-ACH-BILLING-CHARGING 1 -- example value
+ MAXIMUM-FOR-ACH-BILLING-CHARGING 5 -- example value
+ MINIMUM-FOR-ATTRIBUTES 1 -- example value
+ MAXIMUM-FOR-ATTRIBUTES 5 -- example value
+ MINIMUM-FOR-BACKWARD-GVNS 1
+ MINIMUM-FOR-DIGITS 1
+ MAXIMUM-FOR-DIGITS 5
+ MINIMUM-FOR-CALLED-PARTY-NUMBER 1 -- example value
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER 5 -- example value
+ NUM-OF-EXTENSIONS 1 -- example value
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/INSTANCEOF.asn1 b/lib/asn1/test/asn1_SUITE_data/INSTANCEOF.asn1
new file mode 100644
index 0000000000..8c4f3a8f7e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/INSTANCEOF.asn1
@@ -0,0 +1,34 @@
+INSTANCEOF DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ lastName [3] INSTANCE OF OTHER-NAME ({TI})
+}
+
+Names ::= SEQUENCE {
+ firstName [0] INSTANCE OF OTHER-NAME,
+ secondName [1] PrintableString,
+ thirdName [2] INSTANCE OF OTHER-NAME ({TI})
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+TI OTHER-NAME ::= {{INTEGER IDENTIFIED BY {2 4}} |
+ {Seq IDENTIFIED BY {2 3 4}} |
+ {SEQUENCE{a INTEGER,b ENUMERATED{a,b,c}} IDENTIFIED BY {2 3 4 5}} }
+
+Int ::= INTEGER
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/IllegalExport.asn1 b/lib/asn1/test/asn1_SUITE_data/IllegalExport.asn1
new file mode 100644
index 0000000000..1b5e42ad3c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/IllegalExport.asn1
@@ -0,0 +1,7 @@
+IllegalExport DEFINITIONS ::=
+BEGIN
+EXPORTS T, KalleAnka;
+
+T ::= INTEGER
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Import.py b/lib/asn1/test/asn1_SUITE_data/Import.py
new file mode 100644
index 0000000000..91841c1c9f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Import.py
@@ -0,0 +1,14 @@
+Import DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+--IMPORTS
+-- OPERATION, ERROR FROM Remote-Operations-Notation
+-- {joint-iso-ccitt(2) remote-operations(4) notation(0)};
+-- {joint-iso-ccitt remote-operations notation};
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/ImportsFrom.asn1 b/lib/asn1/test/asn1_SUITE_data/ImportsFrom.asn1
new file mode 100644
index 0000000000..896a35d627
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ImportsFrom.asn1
@@ -0,0 +1,17 @@
+ImportsFrom DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+Type1, Type2, Type3
+FROM RemoteFile1 objid
+val1, val2, val3
+FROM RemoteFile2;
+
+objid OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) remote-operations(4) notation(0)}
+
+LocalType ::= INTEGER
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/InfClass.asn b/lib/asn1/test/asn1_SUITE_data/InfClass.asn
new file mode 100644
index 0000000000..ecc6764402
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/InfClass.asn
@@ -0,0 +1,56 @@
+InfClass DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ERROR
+FROM ErrorClass;
+
+FUNCTION ::= CLASS {
+ &ArgumentType,
+ &ResultType DEFAULT NULL,
+ &error ERROR OPTIONAL,
+ &code INTEGER UNIQUE
+ }
+
+OTHER-FUNCTION ::= CLASS {
+ &code INTEGER UNIQUE,
+ &Alphabet DEFAULT NULL,
+ &ArgumentType,
+ &SupportedArguments &ArgumentType OPTIONAL,
+ &ResultType DEFAULT NULL,
+ &result-if-error &ResultType DEFAULT NULL,
+ &associated-function OTHER-FUNCTION OPTIONAL,
+ &NumberSet INTEGER,
+ &ObjectSet OTHER-FUNCTION
+ }
+
+ObjSet1 FUNCTION ::= { ... }
+
+val1 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 3
+ }
+
+val2 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 2
+ }
+
+int1 INTEGER ::= 3
+
+ObjSet2 FUNCTION ::= {
+ val1 | val2 }
+
+
+-- added for OTP-4591
+
+Seq ::= SEQUENCE {
+ arg FUNCTION.&ArgumentType ({ObjSet2}{@val1}),
+ res FUNCTION.&ResultType ({ObjSet2}{@val1}),
+ val1 FUNCTION.&code ({ObjSet2})
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/InfObj.asn b/lib/asn1/test/asn1_SUITE_data/InfObj.asn
new file mode 100644
index 0000000000..0a437e12df
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/InfObj.asn
@@ -0,0 +1,153 @@
+InfObj DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome OPTIONAL,
+ &FixTypeValSet PrintableString OPTIONAL,
+ &VarTypeValSet &InitiatingMessage OPTIONAL,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE OPTIONAL,
+ &InfObjectSet CLASS2 OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+ [VARTYPEVALUE &vartypvalue]
+ [FIXT &FixTypeValSet]
+ [VART &VarTypeValSet]
+ [INFOOBJECT &infoObject]
+ [INFOOBJECTSET &InfObjectSet]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/InfObj2.asn b/lib/asn1/test/asn1_SUITE_data/InfObj2.asn
new file mode 100644
index 0000000000..faba7371a4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/InfObj2.asn
@@ -0,0 +1,156 @@
+InfObj2 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome,
+ &FixTypeValSet PrintableString,
+ &VarTypeValSet &InitiatingMessage,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE,
+ &InfObjectSet CLASS2,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage [0] InitiatingMessage,
+ substrings [1] SEQUENCE {
+ type RANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] RANAP-ELEMENTARY-PROCEDURE.&Outcome({
+ RANAP-ELEMENTARY-PROCEDURES}{@substrings.type}),
+ final [1] RANAP-ELEMENTARY-PROCEDURE.&Outcome({RANAP-ELEMENTARY-PROCEDURES}{@substrings.type})
+ }
+ },
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+ }
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/InformationFramework.asn b/lib/asn1/test/asn1_SUITE_data/InformationFramework.asn
new file mode 100755
index 0000000000..ef236e98a9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id -- OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Int.py b/lib/asn1/test/asn1_SUITE_data/Int.py
new file mode 100644
index 0000000000..dd218b8dbd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Int.py
@@ -0,0 +1,12 @@
+Int DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Int ::= INTEGER
+Int2 ::= INTEGER (1..10)
+
+-- OTP-5457
+int11 INTEGER ::= 11
+int11-2 INTEGER ::= int11 --correct should not cause crash or warning
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/LDAP.asn1 b/lib/asn1/test/asn1_SUITE_data/LDAP.asn1
new file mode 100755
index 0000000000..4d845942e1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/LDAP.asn1
@@ -0,0 +1,283 @@
+ --Lightweight-Directory-Access-Protocol-V3 {1 3 6 1 1 18}
+ -- Copyright (C) The Internet Society (2006). This version of
+ -- this ASN.1 module is part of RFC 4511; see the RFC itself
+ -- for full legal notices.
+ LDAP
+ DEFINITIONS
+ IMPLICIT TAGS
+ EXTENSIBILITY IMPLIED
+ ::=
+
+ BEGIN
+
+ LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse,
+ ...,
+ intermediateResponse IntermediateResponse },
+ controls [0] Controls OPTIONAL }
+
+ MessageID ::= INTEGER (0 .. maxInt)
+
+ maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+ LDAPString ::= OCTET STRING -- UTF-8 encoded,
+ -- [ISO10646] characters
+
+ LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
+ -- [RFC4512]
+
+
+ LDAPDN ::= LDAPString -- Constrained to <distinguishedName>
+ -- [RFC4514]
+
+ RelativeLDAPDN ::= LDAPString -- Constrained to <name-component>
+ -- [RFC4514]
+
+ AttributeDescription ::= LDAPString
+ -- Constrained to <attributedescription>
+ -- [RFC4512]
+
+ AttributeValue ::= OCTET STRING
+
+ AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+ AssertionValue ::= OCTET STRING
+
+ PartialAttribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF value AttributeValue }
+
+ Attribute ::= PartialAttribute(WITH COMPONENTS {
+ ...,
+ vals (SIZE(1..MAX))})
+
+ MatchingRuleId ::= LDAPString
+
+ LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongerAuthRequired (8),
+ -- 9 reserved --
+ referral (10),
+ adminLimitExceeded (11),
+ unavailableCriticalExtension (12),
+ confidentialityRequired (13),
+ saslBindInProgress (14),
+
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71),
+ -- 72-79 unused --
+ other (80),
+ ... },
+ matchedDN LDAPDN,
+ diagnosticMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+ Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
+
+ URI ::= LDAPString -- limited to characters permitted in
+ -- URIs
+
+ Controls ::= SEQUENCE OF control Control
+
+ Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+
+ BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+ AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials,
+ ... }
+
+ SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+ BindResponse ::= [APPLICATION 1] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+ UnbindRequest ::= [APPLICATION 2] NULL
+
+ SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2),
+ ... },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeSelection }
+
+ AttributeSelection ::= SEQUENCE OF selector LDAPString
+ -- The LDAPString is constrained to
+ -- <attributeSelector> in Section 4.5.1.8
+
+ Filter ::= CHOICE {
+ and [0] SET SIZE (1..MAX) OF filter Filter,
+ or [1] SET SIZE (1..MAX) OF filter Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion,
+ ... }
+
+ SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
+ initial [0] AssertionValue, -- can occur at most once
+ any [1] AssertionValue,
+ final [2] AssertionValue } -- can occur at most once
+ }
+
+ MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+ SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+ PartialAttributeList ::= SEQUENCE OF
+ partialAttribute PartialAttribute
+
+ SearchResultReference ::= [APPLICATION 19] SEQUENCE
+ SIZE (1..MAX) OF uri URI
+
+ SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ changes SEQUENCE OF change SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2),
+ ... },
+ modification PartialAttribute } }
+
+ ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+ AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+ AttributeList ::= SEQUENCE OF attribute Attribute
+
+ AddResponse ::= [APPLICATION 9] LDAPResult
+
+ DelRequest ::= [APPLICATION 10] LDAPDN
+
+ DelResponse ::= [APPLICATION 11] LDAPResult
+
+ ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+ CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+ CompareResponse ::= [APPLICATION 15] LDAPResult
+
+ AbandonRequest ::= [APPLICATION 16] MessageID
+
+ ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ responseValue [11] OCTET STRING OPTIONAL }
+
+ IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
+ responseName [0] LDAPOID OPTIONAL,
+ responseValue [1] OCTET STRING OPTIONAL }
+
+ END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/M1.asn b/lib/asn1/test/asn1_SUITE_data/M1.asn
new file mode 100644
index 0000000000..f0575fb25f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/M1.asn
@@ -0,0 +1,24 @@
+M1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type6
+ FROM M2
+ ;
+
+Type1 ::= INTEGER (1..3)
+
+Type2 ::= ENUMERATED {one,two}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN
+}
+
+Type5 ::= OCTET STRING
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/M2.asn b/lib/asn1/test/asn1_SUITE_data/M2.asn
new file mode 100644
index 0000000000..22d7fed6f1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/M2.asn
@@ -0,0 +1,29 @@
+M2 DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type5
+ FROM M1
+ ;
+
+Type1 ::= INTEGER (1..8)
+
+Type2 ::= ENUMERATED {one,two,three}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN,
+ c Type2,
+ d Type5
+}
+
+Type6 ::= SET {
+ a Type1,
+ b Type5
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_SUITE_data/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..2a90c4265a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,37 @@
+MAP-ExtensionDataTypes {
+ ccitt identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version6 (6)}
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+EXPORTS
+ PrivateExtension,
+ ExtensionContainer;
+-- IOC for private MAP extensions
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+-- data types
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+maxNumOfPrivateExtensions INTEGER ::= 10
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+PCS-Extensions ::= SEQUENCE {
+ ...}
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/MAP-commonDataTypes.py b/lib/asn1/test/asn1_SUITE_data/MAP-commonDataTypes.py
new file mode 100644
index 0000000000..694abefa6a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MAP-commonDataTypes.py
@@ -0,0 +1,31 @@
+MAP-commonDataTypes
+ { iso (1) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) }
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ TBCD-STRING,
+ AddressString,
+ ISDN-AddressString,
+ LMSI,
+ IMSI,
+ TMSI,
+-- IMSIBCD,
+ SubscriberID;
+
+
+ TBCD-STRING ::= OCTET STRING (SIZE(3..8))
+ AddressString ::= OCTET STRING (SIZE(1..20))
+ ISDN-AddressString ::= AddressString
+ LMSI ::= OCTET STRING (SIZE(4))
+ -- IMSIBCD ::= BCD-STRING
+ IMSI ::= TBCD-STRING
+ TMSI ::= OCTET STRING (SIZE(1..4))
+ SubscriberID ::= CHOICE{
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+
+END -- of MAP-commonDataTypes
+
diff --git a/lib/asn1/test/asn1_SUITE_data/MAP-insertSubscriberData-def.py b/lib/asn1/test/asn1_SUITE_data/MAP-insertSubscriberData-def.py
new file mode 100644
index 0000000000..298319b0ed
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MAP-insertSubscriberData-def.py
@@ -0,0 +1,102 @@
+MAP-insertSubscriberData-def
+ { ccitt (0) identified-organization( 4) etsi( 0) mobileDomain(0)
+ gsm-Network( 1) modules( 3) map-Protocol( 4) version2(2) }
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS
+InsertSubsDataArg, InsertSubsDatRes;
+IMPORTS
+IMSI, ISDN-AddressString, LMSI FROM MAP-commonDataTypes;
+
+InsertSubsDataArg ::= SEQUENCE{
+ imsi [0] IMPLICIT IMSI OPTIONAL,
+ msisdn [1] IMPLICIT ISDN-AddressString OPTIONAL,
+ category [2] IMPLICIT OCTET STRING (SIZE(1)) OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ teleServiceList [6] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ provisionedSS [7] IMPLICIT SEQUENCE OF SS-Information OPTIONAL
+ }
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfoInfo [1] IMPLICIT CallBarringInfoInfo,
+ ss-Data [3] IMPLICIT SS-Data }
+
+SS-Data ::= SEQUENCE {
+ ss-Code OCTET STRING (SIZE(1)),
+ ss-Status [4] IMPLICIT OCTET STRING (SIZE(1))
+ }
+
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList
+ }
+
+CallBarringInfoInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeatureList ::= SEQUENCE OF CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [2] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL
+ }
+
+InsertSubsDatRes ::=
+ SEQUENCE {
+ teleServiceList [1] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ bearerServiceList [2] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ ss-List [3] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ odb-GeneralData [4] IMPLICIT BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5) } (SIZE(6)) OPTIONAL,
+ regionalSubscriptionResponse [5] IMPLICIT ENUMERATED{
+ msc-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodeConflict (2),
+ regionalSubscNotSupported (3) } OPTIONAL
+ }
+
+
+ForwardingFeatureList ::= SEQUENCE OF ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT INTEGER(5..30) OPTIONAL
+ }
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT OCTET STRING(SIZE(1)),
+ teleService [3] IMPLICIT OCTET STRING(SIZE(1))
+ }
+
+
+BasicServiceGroupList ::= SEQUENCE OF
+ BasicServiceCode
+
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)
+ }
+
+END -- of MAP-insertSubscriberData-def
+
diff --git a/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..71b765f71d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,975 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE OF TransactionAck
+
+TransactionAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ error ErrorDescriptor,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= SEQUENCE
+{
+ terminationID TerminationID,
+ terminationAuditResult TerminationAudit
+}
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN OPTIONAL,
+ reserveGroup BOOLEAN OPTIONAL,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+-- Request ALL Value: 4294967295 (0xFFFFFFFF)
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm,
+ nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value OPTIONAL
+}
+
+NonStandardData ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ experimental IA5String(SIZE(8)),
+ -- first two characters should be "X-" or "X+"
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{
+ t35CountryCode1 INTEGER(0..255),
+ t35CountryCode2 INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= SEQUENCE OF OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config b/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
new file mode 100644
index 0000000000..b7dba3c95c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
@@ -0,0 +1,7 @@
+{exclusive_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_exclusive,['MegacoMessage',[{authHeader,undecoded},{mess,[{mId,undecoded},{messageBody,undecoded}]}]]},
+ {decode_Message_version,['Message',[{mId,undecoded},{messageBody,undecoded}]]}]}}.
+{selective_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_selective,['MegacoMessage',mess,version]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/MS.set.asn b/lib/asn1/test/asn1_SUITE_data/MS.set.asn
new file mode 100644
index 0000000000..bcc74b2a96
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MS.set.asn
@@ -0,0 +1,2 @@
+M1.asn
+M2.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn b/lib/asn1/test/asn1_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
new file mode 100644
index 0000000000..afbc7dc5ef
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
@@ -0,0 +1,3084 @@
+MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+
+-- ===================================================================================
+-- Top level Messages
+-- ===================================================================================
+
+MultimediaSystemControlMessage ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage,
+ indication IndicationMessage,
+ ...
+}
+
+-- A RequestMessage results in action and requires an immediate response
+
+RequestMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDetermination MasterSlaveDetermination,
+
+ terminalCapabilitySet TerminalCapabilitySet,
+
+ openLogicalChannel OpenLogicalChannel,
+ closeLogicalChannel CloseLogicalChannel,
+
+ requestChannelClose RequestChannelClose,
+
+ multiplexEntrySend MultiplexEntrySend,
+
+ requestMultiplexEntry RequestMultiplexEntry,
+
+ requestMode RequestMode,
+
+ roundTripDelayRequest RoundTripDelayRequest,
+
+ maintenanceLoopRequest MaintenanceLoopRequest,
+
+ ...,
+ communicationModeRequest CommunicationModeRequest,
+ conferenceRequest ConferenceRequest
+}
+
+-- A ResponseMessage is the response to a request Message
+
+ResponseMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDeterminationAck MasterSlaveDeterminationAck,
+ masterSlaveDeterminationReject MasterSlaveDeterminationReject,
+
+ terminalCapabilitySetAck TerminalCapabilitySetAck,
+ terminalCapabilitySetReject TerminalCapabilitySetReject,
+
+ openLogicalChannelAck OpenLogicalChannelAck,
+ openLogicalChannelReject OpenLogicalChannelReject,
+ closeLogicalChannelAck CloseLogicalChannelAck,
+
+ requestChannelCloseAck RequestChannelCloseAck,
+ requestChannelCloseReject RequestChannelCloseReject,
+
+ multiplexEntrySendAck MultiplexEntrySendAck,
+ multiplexEntrySendReject MultiplexEntrySendReject,
+
+ requestMultiplexEntryAck RequestMultiplexEntryAck,
+ requestMultiplexEntryReject RequestMultiplexEntryReject,
+
+ requestModeAck RequestModeAck,
+ requestModeReject RequestModeReject,
+
+ roundTripDelayResponse RoundTripDelayResponse,
+
+ maintenanceLoopAck MaintenanceLoopAck,
+ maintenanceLoopReject MaintenanceLoopReject,
+
+ ...,
+ communicationModeResponse CommunicationModeResponse,
+
+ conferenceResponse ConferenceResponse
+
+
+}
+
+-- A CommandMessage requires action, but no explicit response
+
+CommandMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ maintenanceLoopOffCommand MaintenanceLoopOffCommand,
+
+ sendTerminalCapabilitySet SendTerminalCapabilitySet,
+
+ encryptionCommand EncryptionCommand,
+
+ flowControlCommand FlowControlCommand,
+
+ endSessionCommand EndSessionCommand,
+
+ miscellaneousCommand MiscellaneousCommand,
+
+ ...,
+ communicationModeCommand CommunicationModeCommand,
+
+ conferenceCommand ConferenceCommand,
+
+ h223MultiplexReconfiguration H223MultiplexReconfiguration
+
+}
+
+-- An IndicationMessage is information that does not require action or response
+
+IndicationMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ functionNotUnderstood FunctionNotUnderstood,
+
+ masterSlaveDeterminationRelease MasterSlaveDeterminationRelease,
+
+ terminalCapabilitySetRelease TerminalCapabilitySetRelease,
+
+ openLogicalChannelConfirm OpenLogicalChannelConfirm,
+
+ requestChannelCloseRelease RequestChannelCloseRelease,
+
+ multiplexEntrySendRelease MultiplexEntrySendRelease,
+
+ requestMultiplexEntryRelease RequestMultiplexEntryRelease,
+
+ requestModeRelease RequestModeRelease,
+
+ miscellaneousIndication MiscellaneousIndication,
+
+ jitterIndication JitterIndication,
+
+ h223SkewIndication H223SkewIndication,
+
+ newATMVCIndication NewATMVCIndication,
+
+ userInput UserInputIndication,
+ ...,
+ h2250MaximumSkewIndication H2250MaximumSkewIndication,
+
+ mcLocationIndication MCLocationIndication,
+
+ conferenceIndication ConferenceIndication,
+
+ vendorIdentification VendorIdentification,
+
+ functionNotSupported FunctionNotSupported
+
+}
+
+-- SequenceNumber is defined here as it is used in a number of Messages
+SequenceNumber ::=INTEGER (0..255)
+
+-- ===================================================================================
+-- Non standard Message definitions
+-- ===================================================================================
+
+NonStandardMessage ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+NonStandardParameter ::=SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard SEQUENCE
+ {
+ t35CountryCode INTEGER (0..255), -- country, per T.35
+ t35Extension INTEGER (0..255), -- assigned nationally
+ manufacturerCode INTEGER (0..65535) -- assigned nationally
+ }
+}
+
+-- ===================================================================================
+-- Master-slave determination definitions
+-- ===================================================================================
+
+MasterSlaveDetermination ::=SEQUENCE
+{
+ terminalType INTEGER (0..255),
+ statusDeterminationNumber INTEGER (0..16777215),
+ ...
+}
+
+MasterSlaveDeterminationAck ::=SEQUENCE
+{
+ decision CHOICE
+ {
+ master NULL,
+ slave NULL
+ },
+ ...
+}
+
+MasterSlaveDeterminationReject ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ identicalNumbers NULL,
+ ...
+ },
+ ...
+}
+
+MasterSlaveDeterminationRelease ::=SEQUENCE
+{
+ ...
+}
+
+ -- ===================================================================================
+-- Capability exchange definitions
+-- ===================================================================================
+
+TerminalCapabilitySet ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+
+ protocolIdentifier OBJECT IDENTIFIER,
+ -- shall be set to the value
+ -- {itu-t (0) recommendation (0) h (8) 245 version (0) 3}
+
+
+ multiplexCapability MultiplexCapability OPTIONAL,
+
+ capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL,
+
+ capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL,
+
+ ...
+}
+
+CapabilityTableEntry ::=SEQUENCE
+{
+ capabilityTableEntryNumber CapabilityTableEntryNumber,
+ capability Capability OPTIONAL
+}
+
+CapabilityDescriptor ::=SEQUENCE
+{
+ capabilityDescriptorNumber CapabilityDescriptorNumber,
+ simultaneousCapabilities SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL
+}
+
+AlternativeCapabilitySet ::=SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber
+
+CapabilityTableEntryNumber ::=INTEGER (1..65535)
+
+CapabilityDescriptorNumber ::=INTEGER (0..255)
+
+TerminalCapabilitySetAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+TerminalCapabilitySetReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ undefinedTableEntryUsed NULL,
+ descriptorCapacityExceeded NULL,
+ tableEntryCapacityExceeded CHOICE
+ {
+ highestEntryNumberProcessed CapabilityTableEntryNumber,
+ noneProcessed NULL
+ },
+ ...
+ },
+ ...
+}
+
+TerminalCapabilitySetRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: top level capability description
+-- ===================================================================================
+
+Capability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ receiveVideoCapability VideoCapability,
+ transmitVideoCapability VideoCapability,
+ receiveAndTransmitVideoCapability VideoCapability,
+
+ receiveAudioCapability AudioCapability,
+ transmitAudioCapability AudioCapability,
+ receiveAndTransmitAudioCapability AudioCapability,
+
+ receiveDataApplicationCapability DataApplicationCapability,
+ transmitDataApplicationCapability DataApplicationCapability,
+ receiveAndTransmitDataApplicationCapability DataApplicationCapability,
+
+ h233EncryptionTransmitCapability BOOLEAN,
+ h233EncryptionReceiveCapability SEQUENCE
+ {
+ h233IVResponseTime INTEGER (0..255), -- units milliseconds
+ ...
+ },
+ ...,
+ conferenceCapability ConferenceCapability,
+ h235SecurityCapability H235SecurityCapability,
+ maxPendingReplacementFor INTEGER (0..255),
+ receiveUserInputCapability UserInputCapability,
+ transmitUserInputCapability UserInputCapability,
+ receiveAndTransmitUserInputCapability UserInputCapability
+
+}
+
+H235SecurityCapability ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaCapability CapabilityTableEntryNumber,
+ -- Note: the mediaCapability shall refer to Capability Table Entries that do contain a transmit,
+ -- receive, or receiveAndTransmit AudioCapability, VideoCapability,
+ -- DataApplicationCapability, or similar capability indicated by a NonStandardParameter only
+
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Multiplex capabilities
+-- ===================================================================================
+
+MultiplexCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ v76Capability V76Capability,
+ ...,
+ h2250Capability H2250Capability
+
+}
+
+H222Capability ::= SEQUENCE
+{
+ numberOfVCs INTEGER (1..256),
+ vcCapability SET OF VCCapability,
+ ...
+}
+
+VCCapability ::=SEQUENCE
+{
+ aal1 SEQUENCE
+ {
+ nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ } OPTIONAL,
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ } OPTIONAL,
+ transportStream BOOLEAN,
+ programStream BOOLEAN,
+ availableBitRates SEQUENCE
+ {
+ type CHOICE
+ {
+ singleBitRate INTEGER (1..65535), -- units 64 kbit/s
+ rangeOfBitRates SEQUENCE
+ {
+ lowerBitRate INTEGER (1..65535), -- units 64 kbit/s
+ higherBitRate INTEGER (1..65535) -- units 64 kbit/s
+ }
+ },
+ ...
+ },
+ ...
+}
+
+H223Capability ::=SEQUENCE
+{
+ transportWithI-frames BOOLEAN, -- I-frame transport of H.245
+
+ videoWithAL1 BOOLEAN,
+ videoWithAL2 BOOLEAN,
+ videoWithAL3 BOOLEAN,
+ audioWithAL1 BOOLEAN,
+ audioWithAL2 BOOLEAN,
+ audioWithAL3 BOOLEAN,
+ dataWithAL1 BOOLEAN,
+ dataWithAL2 BOOLEAN,
+ dataWithAL3 BOOLEAN,
+
+ maximumAl2SDUSize INTEGER (0..65535), -- units octets
+ maximumAl3SDUSize INTEGER (0..65535), -- units octets
+
+ maximumDelayJitter INTEGER (0..1023), -- units milliseconds
+
+ h223MultiplexTableCapability CHOICE
+ {
+ basic NULL,
+ enhanced SEQUENCE
+ {
+ maximumNestingDepth INTEGER (1..15),
+ maximumElementListSize INTEGER (2..255),
+ maximumSubElementListSize INTEGER (2..255),
+ ...
+ }
+ },
+ ...,
+ maxMUXPDUSizeCapability BOOLEAN,
+ nsrpSupport BOOLEAN,
+ mobileOperationTransmitCapability SEQUENCE
+ {
+ modeChangeCapability BOOLEAN,
+ h223AnnexA BOOLEAN,
+ h223AnnexADoubleFlag BOOLEAN,
+ h223AnnexB BOOLEAN,
+ h223AnnexBwithHeader BOOLEAN,
+ ...
+ } OPTIONAL,
+ h223AnnexCCapability H223AnnexCCapability OPTIONAL
+
+}
+
+H223AnnexCCapability ::= SEQUENCE
+{
+ videoWithAL1M BOOLEAN,
+ videoWithAL2M BOOLEAN,
+ videoWithAL3M BOOLEAN,
+ audioWithAL1M BOOLEAN,
+ audioWithAL2M BOOLEAN,
+ audioWithAL3M BOOLEAN,
+ dataWithAL1M BOOLEAN,
+ dataWithAL2M BOOLEAN,
+ dataWithAL3M BOOLEAN,
+ alpduInterleaving BOOLEAN,
+
+ maximumAL1MPDUSize INTEGER (0..65535), -- units octets
+ maximumAL2MSDUSize INTEGER (0..65535), -- units octets
+ maximumAL3MSDUSize INTEGER (0..65535), -- units octets
+ ...
+}
+
+V76Capability ::=SEQUENCE
+{
+ suspendResumeCapabilitywAddress BOOLEAN,
+ suspendResumeCapabilitywoAddress BOOLEAN,
+ rejCapability BOOLEAN,
+ sREJCapability BOOLEAN,
+ mREJCapability BOOLEAN,
+ crc8bitCapability BOOLEAN,
+ crc16bitCapability BOOLEAN,
+ crc32bitCapability BOOLEAN,
+ uihCapability BOOLEAN,
+ numOfDLCS INTEGER (2..8191),
+ twoOctetAddressFieldCapability BOOLEAN,
+ loopBackTestCapability BOOLEAN,
+ n401Capability INTEGER (1..4095),
+ maxWindowSizeCapability INTEGER (1..127),
+ v75Capability V75Capability,
+ ...
+}
+
+V75Capability ::=SEQUENCE
+{
+ audioHeader BOOLEAN,
+ ...
+}
+
+H2250Capability ::=SEQUENCE
+{
+ maximumAudioDelayJitter INTEGER(0..1023), -- units in milliseconds
+ receiveMultipointCapability MultipointCapability,
+ transmitMultipointCapability MultipointCapability,
+ receiveAndTransmitMultipointCapability MultipointCapability,
+ mcCapability SEQUENCE
+ {
+ centralizedConferenceMC BOOLEAN,
+ decentralizedConferenceMC BOOLEAN,
+ ...
+ },
+ rtcpVideoControlCapability BOOLEAN, -- FIR and NACK
+ mediaPacketizationCapability MediaPacketizationCapability,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncodingCapability SEQUENCE SIZE(1..256) OF RedundancyEncodingCapability OPTIONAL,
+ logicalChannelSwitchingCapability BOOLEAN,
+ t120DynamicPortCapability BOOLEAN
+
+}
+
+MediaPacketizationCapability ::=SEQUENCE
+{
+ h261aVideoPacketization BOOLEAN,
+ ...,
+ rtpPayloadType SEQUENCE SIZE(1..256) OF RTPPayloadType OPTIONAL
+}
+
+RSVPParameters ::=SEQUENCE
+{
+ qosMode QOSMode OPTIONAL,
+ tokenRate INTEGER (1..4294967295) OPTIONAL,
+ -- rate in bytes/sec
+ bucketSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ peakRate INTEGER (1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/sec
+ minPoliced INTEGER (1..4294967295) OPTIONAL, --
+ maxPktSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ ...
+}
+
+QOSMode ::=CHOICE
+{
+ guaranteedQOS NULL,
+ controlledLoad NULL,
+ ...
+}
+
+-- Ed. Replace with ITU-T ATM Transfer Capability Types
+ATMParameters ::=SEQUENCE
+{
+ maxNTUSize INTEGER(0..65535), --units in octets
+ atmUBR BOOLEAN, --unspecified bit rate
+ atmrtVBR BOOLEAN, --real time variable bit rate
+ atmnrtVBR BOOLEAN, --non real time variable bit rate
+ atmABR BOOLEAN, --available bit rate
+ atmCBR BOOLEAN, --constant bit rate
+ ...
+}
+
+QOSCapability ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ rsvpParameters RSVPParameters OPTIONAL,
+ atmParameters ATMParameters OPTIONAL,
+ ...
+}
+
+MediaTransportType ::=CHOICE
+{
+ ip-UDP NULL,
+ ip-TCP NULL,
+ atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional
+ atm-AAL5-BIDIR NULL, -- virtual circuits used as bidirectional
+ ...
+}
+
+MediaChannelCapability ::=SEQUENCE
+{
+ mediaTransport MediaTransportType OPTIONAL,
+ ...
+}
+
+TransportCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ qOSCapabilities SEQUENCE SIZE(1..256) OF QOSCapability OPTIONAL,
+ mediaChannelCapabilities SEQUENCE SIZE(1..256) OF MediaChannelCapability OPTIONAL,
+ ...
+}
+
+RedundancyEncodingCapability ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primaryEncoding CapabilityTableEntryNumber,
+ secondaryEncoding SEQUENCE SIZE(1..256) OF CapabilityTableEntryNumber OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMethod ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ rtpAudioRedundancyEncoding NULL,
+ ...,
+ rtpH263VideoRedundancyEncoding RTPH263VideoRedundancyEncoding
+}
+
+RTPH263VideoRedundancyEncoding ::= SEQUENCE
+{
+ numberOfThreads INTEGER (1..16),
+ framesBetweenSyncPoints INTEGER (1..256),
+ frameToThreadMapping CHOICE
+ {
+ roundrobin NULL,
+ custom SEQUENCE SIZE(1..256) OF
+ RTPH263VideoRedundancyFrameMapping,
+-- empty SEQUENCE for capability negotiation
+-- meaningful contents only OpenLogicalChannel
+ ...
+ },
+ containedThreads SEQUENCE SIZE(1..256) OF INTEGER (0..15) OPTIONAL,
+ -- only used for opening of logical channels
+ ...
+}
+
+RTPH263VideoRedundancyFrameMapping ::= SEQUENCE
+{
+ threadNumber INTEGER (0..15),
+ frameSequence SEQUENCE SIZE(1..256) OF INTEGER (0..255),
+ ...
+}
+
+MultipointCapability ::=SEQUENCE
+{
+ multicastCapability BOOLEAN,
+ multiUniCastConference BOOLEAN,
+ mediaDistributionCapability SEQUENCE OF MediaDistributionCapability,
+ ...
+}
+
+MediaDistributionCapability ::=SEQUENCE
+{
+ centralizedControl BOOLEAN,
+ distributedControl BOOLEAN, -- for further study in H.323
+ centralizedAudio BOOLEAN,
+ distributedAudio BOOLEAN,
+ centralizedVideo BOOLEAN,
+ distributedVideo BOOLEAN,
+ centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ distributedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ -- for further study in H.323
+ ...
+}
+
+
+
+-- ===================================================================================
+-- Capability exchange definitions: Video capabilities
+-- ===================================================================================
+
+VideoCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter ,
+ h261VideoCapability H261VideoCapability,
+ h262VideoCapability H262VideoCapability,
+ h263VideoCapability H263VideoCapability,
+ is11172VideoCapability IS11172VideoCapability,
+ ...
+}
+
+H261VideoCapability ::=SEQUENCE
+{
+ qcifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ temporalSpatialTradeOffCapability BOOLEAN,
+ maxBitRate INTEGER (1..19200), -- units of 100 bit/s
+ stillImageTransmission BOOLEAN, -- Annex D of H.261
+ ...
+}
+
+H262VideoCapability ::=SEQUENCE
+{
+ profileAndLevel-SPatML BOOLEAN,
+ profileAndLevel-MPatLL BOOLEAN,
+ profileAndLevel-MPatML BOOLEAN,
+ profileAndLevel-MPatH-14 BOOLEAN,
+ profileAndLevel-MPatHL BOOLEAN,
+ profileAndLevel-SNRatLL BOOLEAN,
+ profileAndLevel-SNRatML BOOLEAN,
+ profileAndLevel-SpatialatH-14 BOOLEAN,
+ profileAndLevel-HPatML BOOLEAN,
+ profileAndLevel-HPatH-14 BOOLEAN,
+ profileAndLevel-HPatHL BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER (0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoCapability ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ hrd-B INTEGER (0..524287) OPTIONAL, -- units 128 bits
+ bppMaxKb INTEGER (0..65535) OPTIONAL, -- units 1024 bits
+ ...,
+
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units seconds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+
+}
+
+EnhancementLayerInfo ::=SEQUENCE
+{
+ baseBitRateConstrained BOOLEAN,
+ snrEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ spatialEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ bPictureEnhancement SET SIZE(1..14) OF BEnhancementParameters OPTIONAL,
+ ...
+}
+
+BEnhancementParameters ::=SEQUENCE
+{
+ enhancementOptions EnhancementOptions,
+ numberOfBPictures INTEGER (1..64),
+ ...
+}
+
+EnhancementOptions ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units econds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+ h263Options H263Options OPTIONAL,
+ ...
+}
+
+H263Options ::= SEQUENCE
+{
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+
+ unlimitedMotionVectors BOOLEAN,
+
+ fullPictureFreeze BOOLEAN,
+ partialPictureFreezeAndRelease BOOLEAN,
+ resizingPartPicFreezeAndRelease BOOLEAN,
+ fullPictureSnapshot BOOLEAN,
+ partialPictureSnapshot BOOLEAN,
+ videoSegmentTagging BOOLEAN,
+ progressiveRefinement BOOLEAN,
+
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+
+ independentSegmentDecoding BOOLEAN,
+
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+
+ transparencyParameters TransparencyParameters OPTIONAL,
+ separateVideoBackChannel BOOLEAN,
+ refPictureSelection RefPictureSelection OPTIONAL,
+ customPictureClockFrequency SET SIZE (1..16) OF CustomPictureClockFrequency OPTIONAL,
+ customPictureFormat SET SIZE (1..16) OF CustomPictureFormat OPTIONAL,
+ modeCombos SET SIZE (1..16) OF H263VideoModeCombos OPTIONAL,
+ ...
+}
+
+TransparencyParameters ::= SEQUENCE
+{
+ presentationOrder INTEGER(1..256),
+ offset-x INTEGER(-262144..262143), -- 1/8 pixels
+ offset-y INTEGER(-262144..262143), -- 1/8 pixels
+ scale-x INTEGER(1..255),
+ scale-y INTEGER(1..255),
+ ...
+}
+
+RefPictureSelection ::=SEQUENCE
+{
+ additionalPictureMemory SEQUENCE
+ {
+ sqcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ qcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif4AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif16AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ bigCpfAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ ...
+ } OPTIONAL,
+ videoMux BOOLEAN,
+ videoBackChannelSend CHOICE
+ {
+ none NULL,
+ ackMessageOnly NULL,
+ nackMessageOnly NULL,
+ ackOrNackMessageOnly NULL,
+ ackAndNackMessage NULL,
+ ...
+ },
+ ...
+}
+
+CustomPictureClockFrequency ::=SEQUENCE
+{
+ clockConversionCode INTEGER(1000..1001),
+ clockDivisor INTEGER(1..127),
+ sqcifMPI INTEGER (1..2048) OPTIONAL,
+ qcifMPI INTEGER (1..2048) OPTIONAL,
+ cifMPI INTEGER (1..2048) OPTIONAL,
+ cif4MPI INTEGER (1..2048) OPTIONAL,
+ cif16MPI INTEGER (1..2048) OPTIONAL,
+ ...
+}
+
+CustomPictureFormat ::=SEQUENCE
+{
+ maxCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ maxCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ mPI SEQUENCE
+ {
+ standardMPI INTEGER (1..31) OPTIONAL,
+ customPCF SET SIZE (1..16) OF SEQUENCE
+ {
+ clockConversionCode INTEGER (1000..1001),
+ clockDivisor INTEGER (1..127),
+ customMPI INTEGER (1..2048),
+ ...
+ } OPTIONAL,
+ ...
+ },
+
+ pixelAspectInformation CHOICE
+ {
+ anyPixelAspectRatio BOOLEAN,
+ pixelAspectCode SET SIZE (1..14) OF INTEGER(1..14),
+ extendedPAR SET SIZE (1..256) OF SEQUENCE
+ {
+ width INTEGER(1..255),
+ height INTEGER(1..255),
+ ...
+ },
+ ...
+ } ,
+ ...
+}
+
+H263VideoModeCombos ::= SEQUENCE
+{
+ h263VideoUncoupledModes H263ModeComboFlags,
+ h263VideoCoupledModes SET SIZE (1..16) OF H263ModeComboFlags,
+ ...
+}
+
+H263ModeComboFlags ::= SEQUENCE
+{
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ unlimitedMotionVectors BOOLEAN,
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+ referencePicSelect BOOLEAN,
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+ independentSegmentDecoding BOOLEAN,
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ ...
+}
+
+IS11172VideoCapability ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER (0..15) OPTIONAL,
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Audio capabilities
+-- ===================================================================================
+
+-- For an H.222 multiplex, the integers indicate the size of the STD buffer in units of 256 octets
+-- For an H.223 multiplex, the integers indicate the maximum number of audio frames per AL-SDU
+-- For an H.225.0 multiplex, the integers indicate the maximum number of audio frames per packet
+
+AudioCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k INTEGER (1..256),
+ g711Alaw56k INTEGER (1..256),
+ g711Ulaw64k INTEGER (1..256),
+ g711Ulaw56k INTEGER (1..256),
+
+ g722-64k INTEGER (1..256),
+ g722-56k INTEGER (1..256),
+ g722-48k INTEGER (1..256),
+
+ g7231 SEQUENCE
+ {
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN
+ },
+
+ g728 INTEGER (1..256),
+ g729 INTEGER (1..256),
+ g729AnnexA INTEGER (1..256),
+ is11172AudioCapability IS11172AudioCapability,
+ is13818AudioCapability IS13818AudioCapability,
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCCapability G7231AnnexCCapability,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+}
+
+G7231AnnexCCapability ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ } OPTIONAL,
+ ...
+}
+
+IS11172AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+
+ bitRate INTEGER (1..448), -- units kbit/s
+ ...
+}
+
+IS13818AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling16k BOOLEAN,
+ audioSampling22k05 BOOLEAN,
+ audioSampling24k BOOLEAN,
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+ threeChannels2-1 BOOLEAN,
+ threeChannels3-0 BOOLEAN,
+ fourChannels2-0-2-0 BOOLEAN,
+ fourChannels2-2 BOOLEAN,
+ fourChannels3-1 BOOLEAN,
+ fiveChannels3-0-2-0 BOOLEAN,
+ fiveChannels3-2 BOOLEAN,
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), -- units kbit/s
+ ...
+}
+
+GSMAudioCapability ::= SEQUENCE
+{
+ audioUnitSize INTEGER (1..256),
+ comfortNoise BOOLEAN,
+ scrambled BOOLEAN,
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Data capabilities
+-- ===================================================================================
+
+DataApplicationCapability ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 SEQUENCE
+ {
+ t84Protocol DataProtocolCapability,
+ t84Profile T84Profile
+ },
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ maxBitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+DataProtocolCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ v14buffered NULL,
+ v42lapm NULL, -- may negotiate to V.42bis
+ hdlcFrameTunnelling NULL,
+ h310SeparateVCStack NULL,
+ h310SingleVCStack NULL,
+ transparent NULL,
+ ...,
+ segmentationAndReassembly NULL,
+ hdlcFrameTunnelingwSAR NULL,
+ v120 NULL, -- as in H.230
+ separateLANStack NULL,
+ v76wCompression CHOICE
+ {
+ transmitCompression CompressionType,
+ receiveCompression CompressionType,
+ transmitAndReceiveCompression CompressionType,
+ ...
+ }
+}
+
+CompressionType ::=CHOICE
+{
+ v42bis V42bis,
+ ...
+}
+
+V42bis ::=SEQUENCE
+{
+ numberOfCodewords INTEGER (1..65536),
+ maximumStringLength INTEGER (1..256),
+ ...
+}
+
+T84Profile ::=CHOICE
+{
+ t84Unrestricted NULL,
+ t84Restricted SEQUENCE
+ {
+ qcif BOOLEAN,
+ cif BOOLEAN,
+ ccir601Seq BOOLEAN,
+ ccir601Prog BOOLEAN,
+ hdtvSeq BOOLEAN,
+ hdtvProg BOOLEAN,
+
+ g3FacsMH200x100 BOOLEAN,
+ g3FacsMH200x200 BOOLEAN,
+ g4FacsMMR200x100 BOOLEAN,
+ g4FacsMMR200x200 BOOLEAN,
+ jbig200x200Seq BOOLEAN,
+ jbig200x200Prog BOOLEAN,
+ jbig300x300Seq BOOLEAN,
+ jbig300x300Prog BOOLEAN,
+
+ digPhotoLow BOOLEAN,
+ digPhotoMedSeq BOOLEAN,
+ digPhotoMedProg BOOLEAN,
+ digPhotoHighSeq BOOLEAN,
+ digPhotoHighProg BOOLEAN,
+
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Encryption Capability Definitions:
+-- ===================================================================================
+
+EncryptionAuthenticationAndIntegrity ::=SEQUENCE
+{
+ encryptionCapability EncryptionCapability OPTIONAL,
+ authenticationCapability AuthenticationCapability OPTIONAL,
+ integrityCapability IntegrityCapability OPTIONAL,
+ ...
+}
+
+EncryptionCapability ::=SEQUENCE SIZE(1..256) OF MediaEncryptionAlgorithm
+
+MediaEncryptionAlgorithm ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ algorithm OBJECT IDENTIFIER, -- many defined in ISO/IEC 9979
+ ...
+}
+
+AuthenticationCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+IntegrityCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+-- ================================================================================
+-- Capability Exchange Definitions: UserInput
+-- ================================================================================
+
+UserInputCapability ::= CHOICE
+{
+ nonStandard SEQUENCE SIZE(1..16) OF NonStandardParameter,
+ basicString NULL, -- alphanumeric
+ iA5String NULL, -- alphanumeric
+ generalString NULL, -- alphanumeric
+ dtmf NULL, -- supports dtmf using signal and signalUpdate
+ hookflash NULL, -- supports hookflash using signal
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Conference
+-- ===================================================================================
+
+ConferenceCapability ::=SEQUENCE
+{
+ nonStandardData SEQUENCE OF NonStandardParameter OPTIONAL,
+ chairControlCapability BOOLEAN,
+ ...
+}
+ -- ===================================================================================
+-- Logical channel signalling definitions
+-- ===================================================================================
+
+-- "Forward" is used to refer to transmission in the direction from the terminal making the
+-- original request for a logical channel to the other terminal, and "reverse" is used to refer
+-- to the opposite direction of transmission, in the case of a bi-directional channel request.
+
+OpenLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ forwardLogicalChannelParameters SEQUENCE
+ {
+ portNumber INTEGER (0..65535) OPTIONAL,
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters,
+ none NULL -- for use with Separate Stack when
+ -- multiplexParameters are not required
+ -- or appropriate
+
+ },
+ ...,
+ forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ },
+
+ -- Used to specify the reverse channel for bi-directional open request
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ -- H.222 parameters are never present in reverse direction
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.222
+ ...,
+ reverseLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open responder to establish the stack
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+
+
+}
+
+LogicalChannelNumber ::=INTEGER (1..65535)
+
+NetworkAccessParameters ::=SEQUENCE
+{
+ distribution CHOICE
+ {
+ unicast NULL,
+ multicast NULL, -- For Further Study in T.120
+ ...
+ } OPTIONAL,
+
+ networkAddress CHOICE
+ {
+ q2931Address Q2931Address,
+ e164Address IA5String(SIZE(1..128)) (FROM ("0123456789#*,")),
+ localAreaAddress TransportAddress,
+ ...
+ },
+ associateConference BOOLEAN,
+ externalReference OCTET STRING(SIZE(1..255)) OPTIONAL,
+ ...,
+ t120SetupProcedure CHOICE
+ {
+
+ originateCall NULL,
+ waitForCall NULL,
+ issueQuery NULL,
+ ...
+ } OPTIONAL
+}
+
+Q2931Address ::=SEQUENCE
+{
+ address CHOICE
+ {
+ internationalNumber NumericString(SIZE(1..16)),
+ nsapAddress OCTET STRING (SIZE(1..20)),
+ ...
+ },
+ subaddress OCTET STRING (SIZE(1..20)) OPTIONAL,
+ ...
+}
+
+V75Parameters ::= SEQUENCE
+{
+ audioHeaderPresent BOOLEAN,
+ ...
+}
+
+
+DataType ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ nullData NULL,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ encryptionData EncryptionMode,
+ ...,
+ h235Control NonStandardParameter,
+ h235Media H235Media
+}
+
+H235Media ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+
+ ...
+}
+
+H222LogicalChannelParameters ::=SEQUENCE
+{
+ resourceID INTEGER (0..65535),
+ subChannelID INTEGER (0..8191),
+ pcr-pid INTEGER (0..8191) OPTIONAL,
+ programDescriptors OCTET STRING OPTIONAL,
+ streamDescriptors OCTET STRING OPTIONAL,
+ ...
+}
+
+H223LogicalChannelParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER (0..2),
+ sendBufferSize INTEGER (0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+H223AL1MParameters ::=SEQUENCE
+{
+ transferMode CHOICE
+ {
+ framed NULL,
+ unframed NULL,
+ ...
+ },
+ headerFEC CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ alsduSplitting BOOLEAN,
+ ...
+}
+
+H223AL2MParameters ::=SEQUENCE
+{
+ headerFEC CHOICE
+ {
+ sebch16-5 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+H223AL3MParameters ::=SEQUENCE
+{
+ headerFormat CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+
+H223AnnexCArqParameters ::=SEQUENCE
+{
+ numberOfRetransmissions CHOICE
+ {
+ finite INTEGER (0..16),
+ infinite NULL,
+ ...
+ },
+ sendBufferSize INTEGER (0..16777215), -- units octets
+ ...
+}
+
+V76LogicalChannelParameters ::=SEQUENCE
+{
+ hdlcParameters V76HDLCParameters,
+ suspendResume CHOICE
+ {
+ noSuspendResume NULL,
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+ },
+ uIH BOOLEAN,
+ mode CHOICE
+ {
+ eRM SEQUENCE
+ {
+ windowSize INTEGER (1..127) ,
+ recovery CHOICE
+ {
+ rej NULL,
+ sREJ NULL,
+ mSREJ NULL,
+ ...
+ },
+ ...
+ },
+ uNERM NULL,
+ ...
+ },
+ v75Parameters V75Parameters,
+ ...
+}
+
+
+
+V76HDLCParameters ::=SEQUENCE
+{
+ crcLength CRCLength,
+ n401 INTEGER (1..4095),
+ loopbackTestProcedure BOOLEAN,
+ ...
+}
+
+
+CRCLength ::=CHOICE
+{
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ ...
+}
+
+H2250LogicalChannelParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(0..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ silenceSuppression BOOLEAN OPTIONAL,
+ destination TerminalLabel OPTIONAL,
+
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL,
+ mediaPacketization CHOICE
+ {
+ h261aVideoPacketization NULL,
+ ...,
+ rtpPayloadType RTPPayloadType
+ } OPTIONAL,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ source TerminalLabel OPTIONAL
+}
+
+RTPPayloadType ::= SEQUENCE
+{
+ payloadDescriptor CHOICE
+ {
+ nonStandardIdentifier NonStandardParameter,
+ rfc-number INTEGER (1..32768, ...),
+ oid OBJECT IDENTIFIER,
+ ...
+ },
+ payloadType INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+RedundancyEncoding ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding DataType OPTIONAL, -- depends on method
+ ...
+}
+
+TransportAddress ::=CHOICE
+{
+ unicastAddress UnicastAddress,
+ multicastAddress MulticastAddress,
+ ...
+}
+
+UnicastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iPXAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ tsapIdentifier OCTET STRING (SIZE(2)),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ iPSourceRouteAddress SEQUENCE
+ {
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL
+ },
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING (SIZE(4)),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+MulticastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+EncryptionSync ::=SEQUENCE
+ -- used to supply new key and synchronization point
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ synchFlag INTEGER(0..255) , -- may need to be larger for H.324, etc
+ -- shall be the Dynamic Payload# for H.323
+ h235Key OCTET STRING (SIZE(1..65535)), -- H.235 encoded value
+ escrowentry SEQUENCE SIZE(1..256) OF EscrowData OPTIONAL,
+ ...
+}
+
+EscrowData ::=SEQUENCE
+{
+ escrowID OBJECT IDENTIFIER,
+ escrowValue BIT STRING (SIZE(1..65535)),
+ ...
+}
+
+OpenLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ reverseLogicalChannelNumber LogicalChannelNumber,
+ portNumber INTEGER (0..65535) OPTIONAL,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ -- H.223 parameters are never present in reverse direction
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.223
+ ...,
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open requester to establish the stack
+ forwardMultiplexAckParameters CHOICE
+ {
+ -- H.222 parameters are never present in the Ack
+ -- H.223 parameters are never present in the Ack
+ --V.76 parameters are never present in the Ack
+ h2250LogicalChannelAckParameters H2250LogicalChannelAckParameters,
+ ...
+ } OPTIONAL,
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+}
+
+OpenLogicalChannelReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ unsuitableReverseParameters NULL,
+ dataTypeNotSupported NULL,
+ dataTypeNotAvailable NULL,
+ unknownDataType NULL,
+ dataTypeALCombinationNotSupported NULL,
+ ...,
+ multicastChannelNotAllowed NULL,
+ insufficientBandwidth NULL,
+ separateStackEstablishmentFailed NULL,
+ invalidSessionID NULL,
+ masterSlaveConflict NULL,
+ waitForCommunicationMode NULL,
+ invalidDependentChannel NULL,
+ replacementForRejected NULL
+ },
+ ...
+}
+
+OpenLogicalChannelConfirm ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+H2250LogicalChannelAckParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP channel
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by the master or MC
+ ...,
+ flowControlToZero BOOLEAN
+}
+
+
+
+CloseLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ source CHOICE
+ {
+ user NULL,
+ lcse NULL
+ },
+ ...,
+ reason CHOICE
+ {
+ unknown NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+CloseLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelClose ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ qosCapability QOSCapability OPTIONAL,
+ reason CHOICE
+ {
+ unknown NULL,
+ normal NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+RequestChannelCloseAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelCloseReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ ...
+ },
+ ...
+}
+
+RequestChannelCloseRelease ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- H.223 multiplex table definitions
+-- ===================================================================================
+
+MultiplexEntrySend ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexEntryDescriptors SET SIZE (1..15) OF MultiplexEntryDescriptor,
+ ...
+}
+
+MultiplexEntryDescriptor ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ elementList SEQUENCE SIZE (1..256) OF MultiplexElement OPTIONAL
+}
+
+MultiplexElement ::=SEQUENCE
+{
+ type CHOICE
+ {
+ logicalChannelNumber INTEGER(0..65535),
+ subElementList SEQUENCE SIZE (2..255) OF MultiplexElement
+ },
+ repeatCount CHOICE
+ {
+ finite INTEGER (1..65535), -- repeats of type
+ untilClosingFlag NULL -- used for last element
+ }
+}
+
+MultiplexTableEntryNumber ::=INTEGER (1..15)
+
+MultiplexEntrySendAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+MultiplexEntrySendReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ rejectionDescriptions SET SIZE (1..15) OF MultiplexEntryRejectionDescriptions,
+ ...
+}
+
+MultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ descriptorTooComplex NULL,
+ ...
+ },
+ ...
+}
+
+MultiplexEntrySendRelease ::=SEQUENCE
+{
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntry ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryAck ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryReject ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ rejectionDescriptions SET SIZE (1..15) OF RequestMultiplexEntryRejectionDescriptions,
+ ...
+}
+
+RequestMultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ ...
+ },
+ ...
+}
+
+RequestMultiplexEntryRelease ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- Request mode definitions
+-- ===================================================================================
+
+-- RequestMode is a list, in order or preference, of modes that a terminal would like
+-- to have transmitted to it.
+
+RequestMode ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ requestedModes SEQUENCE SIZE (1..256) OF ModeDescription,
+ ...
+}
+
+RequestModeAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ response CHOICE
+ {
+ willTransmitMostPreferredMode NULL,
+ willTransmitLessPreferredMode NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ modeUnavailable NULL,
+ multipointConstraint NULL,
+ requestDenied NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Mode description
+-- ===================================================================================
+
+ModeDescription ::=SET SIZE (1..256) OF ModeElement
+
+ModeElement ::= SEQUENCE
+{
+ type CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ ...,
+ h235Mode H235Mode
+ },
+
+ h223ModeParameters H223ModeParameters OPTIONAL,
+ ...,
+ v76ModeParameters V76ModeParameters OPTIONAL,
+ h2250ModeParameters H2250ModeParameters OPTIONAL
+
+
+}
+
+H235Mode ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaMode CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ ...
+ },
+ ...
+}
+
+H223ModeParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER(0..2),
+ sendBufferSize INTEGER(0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+V76ModeParameters ::=CHOICE
+{
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+}
+
+H2250ModeParameters ::=SEQUENCE
+{
+ redundancyEncodingMode RedundancyEncodingMode OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMode ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding CHOICE
+ {
+ nonStandard NonStandardParameter,
+ audioData AudioMode,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Video modes
+-- ===================================================================================
+
+VideoMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h261VideoMode H261VideoMode,
+ h262VideoMode H262VideoMode,
+ h263VideoMode H263VideoMode,
+ is11172VideoMode IS11172VideoMode,
+ ...
+}
+
+H261VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ qcif NULL,
+ cif NULL
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ stillImageTransmission BOOLEAN,
+ ...
+}
+
+H262VideoMode ::=SEQUENCE
+{
+ profileAndLevel CHOICE
+ {
+ profileAndLevel-SPatML NULL,
+ profileAndLevel-MPatLL NULL,
+ profileAndLevel-MPatML NULL,
+ profileAndLevel-MPatH-14 NULL,
+ profileAndLevel-MPatHL NULL,
+ profileAndLevel-SNRatLL NULL,
+ profileAndLevel-SNRatML NULL,
+ profileAndLevel-SpatialatH-14 NULL,
+ profileAndLevel-HPatML NULL,
+ profileAndLevel-HPatH-14 NULL,
+ profileAndLevel-HPatHL NULL,
+ ...
+ },
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ sqcif NULL,
+ qcif NULL,
+ cif NULL,
+ cif4 NULL,
+ cif16 NULL,
+ ...
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ ...,
+
+ errorCompensation BOOLEAN,
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+}
+
+IS11172VideoMode ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER(0..15) OPTIONAL,
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Audio modes
+-- ===================================================================================
+
+AudioMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k NULL,
+ g711Alaw56k NULL,
+ g711Ulaw64k NULL,
+ g711Ulaw56k NULL,
+
+ g722-64k NULL,
+ g722-56k NULL,
+ g722-48k NULL,
+
+ g728 NULL,
+ g729 NULL,
+ g729AnnexA NULL,
+
+ g7231 CHOICE
+ {
+ noSilenceSuppressionLowRate NULL,
+ noSilenceSuppressionHighRate NULL,
+ silenceSuppressionLowRate NULL,
+ silenceSuppressionHighRate NULL
+ },
+
+ is11172AudioMode IS11172AudioMode,
+ is13818AudioMode IS13818AudioMode,
+
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCMode G7231AnnexCMode,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+
+}
+
+IS11172AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL
+ },
+
+ bitRate INTEGER (1..448), --units kbit/s
+ ...
+}
+
+IS13818AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling16k NULL,
+ audioSampling22k05 NULL,
+ audioSampling24k NULL,
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL,
+ threeChannels2-1 NULL,
+ threeChannels3-0 NULL,
+ fourChannels2-0-2-0 NULL,
+ fourChannels2-2 NULL,
+ fourChannels3-1 NULL,
+ fiveChannels3-0-2-0 NULL,
+ fiveChannels3-2 NULL
+ },
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), --units kbit/s
+ ...
+}
+
+G7231AnnexCMode ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Data modes
+-- ===================================================================================
+
+DataMode ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 DataProtocolCapability,
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ bitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Encryption modes
+-- ===================================================================================
+
+EncryptionMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h233Encryption NULL,
+ ...
+}
+
+ -- ===================================================================================
+-- Round Trip Delay definitions
+-- ===================================================================================
+
+RoundTripDelayRequest ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+RoundTripDelayResponse ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+-- ===================================================================================
+-- Maintenance Loop definitions
+-- ===================================================================================
+
+MaintenanceLoopRequest ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopAck ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopReject ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ cause CHOICE
+ {
+ canNotPerformLoop NULL,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopOffCommand ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Communication Mode definitions
+-- ===================================================================================
+
+CommunicationModeCommand ::=SEQUENCE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeRequest ::=SEQUENCE
+{
+ ...
+}
+
+CommunicationModeResponse ::=CHOICE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeTableEntry ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+
+ terminalLabel TerminalLabel OPTIONAL, -- if not present,
+ -- it refers to all participants
+ -- in the conference
+ sessionDescription BMPString (SIZE(1..128)) ,
+ -- Basic ISO/IEC 10646-1 (Unicode)
+ dataType CHOICE
+ {
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ ...,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ sessionDependency INTEGER (1..255) OPTIONAL,
+ destination TerminalLabel OPTIONAL
+}
+
+-- ===================================================================================
+-- Conference Request definitions
+-- ===================================================================================
+
+ConferenceRequest ::=CHOICE
+{
+
+ terminalListRequest NULL, -- same as H.230 TCU (term->MC)
+
+ makeMeChair NULL, -- same as H.230 CCA (term->MC)
+ cancelMakeMeChair NULL, -- same as H.230 CIS (term->MC)
+
+ dropTerminal TerminalLabel, -- same as H.230 CCD(term->MC)
+
+ requestTerminalID TerminalLabel, -- sames as TCP (term->MC)
+
+ enterH243Password NULL, -- same as H.230 TCS1(MC->term)
+ enterH243TerminalID NULL, -- same as H.230 TCS2/TCI
+ -- (MC->term)
+ enterH243ConferenceID NULL, -- same as H.230 TCS3 (MC->term)
+ ...,
+ enterExtensionAddress NULL, -- same as H.230 TCS4 (GW->term)
+ requestChairTokenOwner NULL, -- same as H.230 TCA (term->MC)
+ requestTerminalCertificate SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certSelectionCriteria CertSelectionCriteria OPTIONAL,
+ sRandom INTEGER (1..4294967295) OPTIONAL,
+ -- this is the requester's challenge
+ ...
+ },
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ makeTerminalBroadcaster TerminalLabel, -- similar to H.230 VCB
+ sendThisSource TerminalLabel, -- similar to H.230 VCS
+ requestAllTerminalIDs NULL,
+ remoteMCRequest RemoteMCRequest
+}
+
+CertSelectionCriteria ::=SEQUENCE SIZE (1..16) OF Criteria
+
+Criteria ::=SEQUENCE
+{
+ field OBJECT IDENTIFIER, -- may include certificate type
+ value OCTET STRING (SIZE(1..65535)),
+ ...
+}
+
+TerminalLabel ::=SEQUENCE
+{
+ mcuNumber McuNumber,
+ terminalNumber TerminalNumber,
+ ...
+}
+
+McuNumber ::=INTEGER(0..192)
+TerminalNumber ::=INTEGER(0..192)
+
+-- ===================================================================================
+-- Conference Response definitions
+-- ===================================================================================
+
+ConferenceResponse ::=CHOICE
+{
+ mCTerminalIDResponse SEQUENCE -- response to TCP(same as TIP)
+ { -- sent by MC only
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+
+ terminalIDResponse SEQUENCE -- response to TCS2 or TCI
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ terminalID TerminalID,
+ ...
+ },
+
+ conferenceIDResponse SEQUENCE -- response to TCS3
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ conferenceID ConferenceID,
+ ...
+ },
+
+ passwordResponse SEQUENCE -- response to TCS1
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ password Password,
+ ...
+ },
+
+ terminalListResponse SET SIZE (1..256) OF TerminalLabel,
+
+ videoCommandReject NULL, -- same as H.230 VCR
+ terminalDropReject NULL, -- same as H.230 CIR
+
+ makeMeChairResponse CHOICE -- same as H.230 CCR
+ {
+ grantedChairToken NULL, -- same as H.230 CIT
+ deniedChairToken NULL, -- same as H.230 CCR
+ ...
+ },
+ ...,
+ extensionAddressResponse SEQUENCE -- response to TCS4
+ {
+ extensionAddress TerminalID, -- same as IIS (term->GW)
+ ...
+ },
+ chairTokenOwnerResponse SEQUENCE -- response to TCA(same as TIR) sent by MC only
+ {
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+ terminalCertificateResponse SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certificateResponse OCTET STRING (SIZE(1..65535)) OPTIONAL,
+ ...
+ },
+ broadcastMyLogicalChannelResponse CHOICE
+ {
+ grantedBroadcastMyLogicalChannel NULL,
+ deniedBroadcastMyLogicalChannel NULL,
+ ...
+ },
+ makeTerminalBroadcasterResponse CHOICE
+ {
+ grantedMakeTerminalBroadcaster NULL,
+ deniedMakeTerminalBroadcaster NULL,
+ ...
+ },
+ sendThisSourceResponse CHOICE
+ {
+ grantedSendThisSource NULL,
+ deniedSendThisSource NULL,
+ ...
+ },
+ requestAllTerminalIDsResponse RequestAllTerminalIDsResponse,
+ remoteMCResponse RemoteMCResponse
+}
+
+TerminalID ::=OCTET STRING (SIZE(1..128)) -- as per H.230
+ConferenceID ::=OCTET STRING (SIZE(1..32))
+Password ::=OCTET STRING (SIZE(1..32))
+
+RequestAllTerminalIDsResponse ::=SEQUENCE
+{
+ terminalInformation SEQUENCE OF TerminalInformation,
+ ...
+}
+
+TerminalInformation ::=SEQUENCE
+{
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+}
+
+-- ===================================================================================
+-- Remote MC Request definitions
+-- ===================================================================================
+
+ RemoteMCRequest ::=CHOICE
+ {
+ masterActivate NULL,
+ slaveActivate NULL,
+ deActivate NULL,
+ ...
+ }
+
+ RemoteMCResponse ::=CHOICE
+ {
+ accept NULL,
+ reject CHOICE
+ {
+ unspecified NULL,
+ functionNotSupported NULL,
+ ...
+ },
+ ...
+ }
+
+-- ===================================================================================
+-- Command Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Command Message : Send Terminal Capability Set
+-- ===================================================================================
+
+SendTerminalCapabilitySet ::=CHOICE
+{
+ specificRequest SEQUENCE
+ {
+ multiplexCapability BOOLEAN,
+
+ capabilityTableEntryNumbers SET SIZE (1..65535) OF CapabilityTableEntryNumber OPTIONAL,
+
+ capabilityDescriptorNumbers SET SIZE (1..256) OF CapabilityDescriptorNumber OPTIONAL,
+ ...
+ },
+ genericRequest NULL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Encryption
+-- ===================================================================================
+
+EncryptionCommand ::=CHOICE
+{
+ encryptionSE OCTET STRING, -- per H.233, but no error protection
+ encryptionIVRequest NULL, -- requests new IV
+ encryptionAlgorithmID SEQUENCE
+ {
+ h233AlgorithmIdentifier SequenceNumber,
+ associatedAlgorithm NonStandardParameter
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Flow Control
+-- ===================================================================================
+
+FlowControlCommand ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ restriction CHOICE
+ {
+ maximumBitRate INTEGER (0..16777215), -- units 100 bit/s
+ noRestriction NULL
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Change or End Session
+-- ===================================================================================
+
+EndSessionCommand ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ disconnect NULL,
+
+ gstnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v8bis NULL,
+ v34DSVD NULL,
+ v34DuplexFAX NULL,
+ v34H324 NULL,
+ ...
+ },
+
+ ...,
+ isdnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v140 NULL,
+ terminalOnHold NULL,
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Command Message : Conference Commands
+-- ===================================================================================
+
+ConferenceCommand ::=CHOICE
+{
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 Cancel-MCV
+
+ makeTerminalBroadcaster TerminalLabel, -- same as H.230 VCB
+ cancelMakeTerminalBroadcaster NULL, -- same as H.230 Cancel-VCB
+
+ sendThisSource TerminalLabel, -- same as H.230 VCS
+ cancelSendThisSource NULL, -- same as H.230 cancel VCS
+
+ dropConference NULL, -- same as H.230 CCK
+ ...,
+ substituteConferenceIDCommand SubstituteConferenceIDCommand
+}
+
+SubstituteConferenceIDCommand ::=SEQUENCE
+{
+ conferenceIdentifier OCTET STRING (SIZE(16)),
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Miscellaneous H.230-like commands
+-- ===================================================================================
+
+MiscellaneousCommand ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ equaliseDelay NULL, -- same as H.230 ACE
+ zeroDelay NULL, -- same as H.230 ACZ
+ multipointModeCommand NULL,
+ cancelMultipointModeCommand NULL,
+ videoFreezePicture NULL,
+ videoFastUpdatePicture NULL,
+
+ videoFastUpdateGOB SEQUENCE
+ {
+ firstGOB INTEGER (0..17),
+ numberOfGOBs INTEGER (1..18)
+ },
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- commands a trade-off value
+
+ videoSendSyncEveryGOB NULL,
+ videoSendSyncEveryGOBCancel NULL,
+
+ ...,
+ videoFastUpdateMB SEQUENCE
+ {
+ firstGOB INTEGER (0..255) OPTIONAL,
+ firstMB INTEGER (1..8192) OPTIONAL,
+ numberOfMBs INTEGER (1..8192),
+ ...
+ },
+ maxH223MUXPDUsize INTEGER(1..65535), -- units octets
+ encryptionUpdate EncryptionSync,
+ encryptionUpdateRequest EncryptionUpdateRequest,
+ switchReceiveMediaOff NULL,
+ switchReceiveMediaOn NULL,
+
+ progressiveRefinementStart SEQUENCE
+ {
+ repeatCount CHOICE
+ {
+ doOneProgression NULL,
+ doContinuousProgressions NULL,
+ doOneIndependentProgression NULL,
+ doContinuousIndependentProgressions NULL,
+ ...
+ },
+ ...
+ },
+ progressiveRefinementAbortOne NULL,
+ progressiveRefinementAbortContinuous NULL
+
+ },
+
+ ...
+}
+
+KeyProtectionMethod ::=SEQUENCE -- specify how the new key is to be protected
+{
+ secureChannel BOOLEAN,
+ sharedSecret BOOLEAN,
+ certProtectedKey BOOLEAN,
+ ...
+}
+
+EncryptionUpdateRequest ::=SEQUENCE
+{
+ keyProtectionMethod KeyProtectionMethod OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : H.223 Multiplex Reconfiguration
+-- ===================================================================================
+
+H223MultiplexReconfiguration ::=CHOICE
+{
+ h223ModeChange CHOICE
+ {
+ toLevel0 NULL,
+ toLevel1 NULL,
+ toLevel2 NULL,
+ toLevel2withOptionalHeader NULL,
+ ...
+ },
+
+ h223AnnexADoubleFlag CHOICE
+ {
+ start NULL,
+ stop NULL,
+ ...
+ },
+
+ ...
+}
+ -- ===================================================================================
+-- Indication Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Indication Message : Function not understood
+-- ===================================================================================
+
+-- This is used to return a request, response or command that is not understood
+
+FunctionNotUnderstood ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage
+}
+
+-- ===================================================================================
+-- Indication Message : Function not Supported
+-- ===================================================================================
+
+-- This is used to return a complete request, response or command that is not recognized
+
+FunctionNotSupported ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ syntaxError NULL,
+ semanticError NULL,
+ unknownFunction NULL,
+ ...
+ },
+ returnedFunction OCTET STRING OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Conference
+-- ===================================================================================
+
+ConferenceIndication ::=CHOICE
+{
+ sbeNumber INTEGER (0..9), -- same as H.230 SBE Number
+
+ terminalNumberAssign TerminalLabel, -- same as H.230 TIA
+
+ terminalJoinedConference TerminalLabel, -- same as H.230 TIN
+
+ terminalLeftConference TerminalLabel, -- same as H.230 TID
+
+ seenByAtLeastOneOther NULL, -- same as H.230 MIV
+ cancelSeenByAtLeastOneOther NULL, -- same as H.230 cancel MIV
+
+ seenByAll NULL, -- like H.230 MIV
+ cancelSeenByAll NULL, -- like H.230 MIV
+
+ terminalYouAreSeeing TerminalLabel, -- same as H.230 VIN
+
+ requestForFloor NULL, -- same as H.230 TIF
+
+ ...,
+ withdrawChairToken NULL, -- same as H.230 CCR
+ -- MC-> chair
+ floorRequested TerminalLabel -- same as H.230 TIF
+ -- MC-> chair
+}
+
+
+-- ===================================================================================
+-- Indication Message : Miscellaneous H.230-like indication
+-- ===================================================================================
+
+MiscellaneousIndication ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ logicalChannelActive NULL, -- same as H.230 AIA and VIA
+ logicalChannelInactive NULL, -- same as H.230 AIM and VIS
+
+ multipointConference NULL,
+ cancelMultipointConference NULL,
+
+ multipointZeroComm NULL, -- same as H.230 MIZ
+ cancelMultipointZeroComm NULL, -- same as H.230 cancel MIZ
+
+ multipointSecondaryStatus NULL, -- same as H.230 MIS
+ cancelMultipointSecondaryStatus NULL, -- same as H.230 cancel MIS
+
+ videoIndicateReadyToActivate NULL, -- same as H.230 VIR
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- indicates current trade-off
+
+ ...,
+ videoNotDecodedMBs SEQUENCE
+ {
+ firstMB INTEGER (1..8192),
+ numberOfMBs INTEGER (1..8192),
+ temporalReference INTEGER (0..255),
+ ...
+ },
+ transportCapability TransportCapability
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Jitter Indication
+-- ===================================================================================
+
+JitterIndication ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ estimatedReceivedJitterMantissa INTEGER (0..3),
+ estimatedReceivedJitterExponent INTEGER (0..7),
+ skippedFrameCount INTEGER (0..15) OPTIONAL,
+ additionalDecoderBuffer INTEGER (0..262143) OPTIONAL, -- 262143 is 2^18 - 1
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.223 logical channel skew
+-- ===================================================================================
+
+H223SkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ skew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.225.0 maximum logical channel skew
+-- ===================================================================================
+
+H2250MaximumSkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ maximumSkew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : MC Location Indication
+-- ===================================================================================
+
+MCLocationIndication ::=SEQUENCE
+{
+ signalAddress TransportAddress, -- this is the H.323 Call Signalling
+ -- address of the entity which
+ -- contains the MC
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Vendor Identification
+-- ===================================================================================
+
+ VendorIdentification ::=SEQUENCE
+ {
+ vendor NonStandardIdentifier,
+ productNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per productNumber
+ ...
+ }
+
+
+-- ===================================================================================
+-- Indication Message : New ATM virtual channel indication
+-- ===================================================================================
+
+NewATMVCIndication ::=SEQUENCE
+{
+ resourceID INTEGER(0..65535),
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ aal CHOICE
+ {
+ aal1 SEQUENCE
+ {
+ clockRecovery CHOICE
+ {
+ nullClockRecovery NULL,
+ srtsClockRecovery NULL,
+ adaptiveClockRecovery NULL,
+ ...
+ },
+ errorCorrection CHOICE
+ {
+ nullErrorCorrection NULL,
+ longInterleaver NULL,
+ shortInterleaver NULL,
+ errorCorrectionOnly NULL,
+ ...
+ },
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ },
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ },
+ ...
+ },
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...,
+ reverseParameters SEQUENCE
+ {
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Indication Message : user input
+-- ===================================================================================
+
+UserInputIndication ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ alphanumeric GeneralString,
+ ...,
+ userInputSupportIndication CHOICE
+ {
+ nonStandard NonStandardParameter,
+ basicString NULL,
+ iA5String NULL,
+ generalString NULL,
+ ...
+ },
+ signal SEQUENCE
+ {
+ signalType IA5String (SIZE (1) ^ FROM ("0123456789#*ABCD!")),
+-- signalType IA5String (SIZE (1)) (FROM ("0123456789#*ABCD!")),
+ duration INTEGER (1..65535) OPTIONAL, -- milliseconds
+ rtp SEQUENCE
+ {
+ timestamp INTEGER (0..4294967295) OPTIONAL,
+ expirationTime INTEGER (0..4294967295) OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ },
+ signalUpdate SEQUENCE
+ {
+ duration INTEGER (1..65535), -- milliseconds
+ rtp SEQUENCE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ }
+}
+
+
+END
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/MissingEnd.asn1 b/lib/asn1/test/asn1_SUITE_data/MissingEnd.asn1
new file mode 100644
index 0000000000..66912ef693
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MissingEnd.asn1
@@ -0,0 +1,5 @@
+MissingEnd DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod.set.asn b/lib/asn1/test/asn1_SUITE_data/Mod.set.asn
new file mode 100644
index 0000000000..5dcd8706ae
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod.set.asn
@@ -0,0 +1,5 @@
+Mod1.asn
+Mod2.asn
+Mod3.asn
+Mod4.asn
+Mod5.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod1.asn b/lib/asn1/test/asn1_SUITE_data/Mod1.asn
new file mode 100644
index 0000000000..cb29997985
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod1.asn
@@ -0,0 +1,18 @@
+Mod1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Co,Reg
+ FROM Mod5
+ Name
+ FROM Mod4;
+
+
+L ::= SEQUENCE {
+ country Co,
+ region Reg,
+ name Name
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod2.asn b/lib/asn1/test/asn1_SUITE_data/Mod2.asn
new file mode 100644
index 0000000000..cc22c6f13c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod2.asn
@@ -0,0 +1,43 @@
+Mod2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Stat,Country
+ FROM Mod3
+ L
+ FROM Mod1
+ Time,LocName,ThingName,Name
+ FROM Mod4;
+
+T ::= SEQUENCE {
+ unit ENUMERATED{celsius,fahrenheit,kelvin},
+ degree INTEGER,
+ location L,
+ time Time,
+ statistics Stat
+}
+
+OtherName ::= SEQUENCE {
+ locationName LocName,
+ thingName ThingName
+}
+
+FirstName ::= CHOICE {
+ firstname PrintableString,
+ nickname PrintableString
+}
+
+FamilyName ::= SEQUENCE{
+ prefix ENUMERATED{none,von,af},
+ secondname PrintableString
+}
+
+Lang ::= SEQUENCE{
+ l PrintableString}
+
+Inhabitant ::= SEQUENCE {
+ name Name,
+ country Country}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod3.asn b/lib/asn1/test/asn1_SUITE_data/Mod3.asn
new file mode 100644
index 0000000000..8069bedcf9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod3.asn
@@ -0,0 +1,33 @@
+Mod3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Name
+ FROM Mod4
+ Lang, Inhabitant,FirstName,FamilyName
+ FROM Mod2
+ TS, RFS, WS, HS
+ FROM Mod5;
+
+Stat ::= SEQUENCE {
+ tempstat TS,
+ rainfallstat RFS,
+ windstat WS,
+ humiditystat HS
+}
+
+Country ::= SEQUENCE{
+ name Name,
+ language Lang
+}
+
+RegionName ::= Name
+Inhabitants ::= SEQUENCE OF Inhabitant
+
+PersonName ::= SEQUENCE {
+ name1 FirstName,
+ name2 FamilyName
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod4.asn b/lib/asn1/test/asn1_SUITE_data/Mod4.asn
new file mode 100644
index 0000000000..4a1aaff9dc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod4.asn
@@ -0,0 +1,33 @@
+Mod4 DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+IMPORTS
+ PersonName
+ FROM Mod3
+ OtherName,FirstName,FamilyName
+ FROM Mod2;
+
+Time ::= SEQUENCE {
+ year OCTET STRING(SIZE(4)),
+ month OCTET STRING(SIZE(2)),
+ hour INTEGER,
+ minute INTEGER
+}
+
+Name ::= CHOICE {
+ person PersonName,
+ othername OtherName
+}
+
+
+
+LocName ::= SEQUENCE {
+ region ENUMERATED{gotaland,svealand,norrland},
+ name PrintableString
+}
+
+ThingName ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mod5.asn b/lib/asn1/test/asn1_SUITE_data/Mod5.asn
new file mode 100644
index 0000000000..71b483d0e0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mod5.asn
@@ -0,0 +1,37 @@
+Mod5 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Country,RegionName,Inhabitants
+ FROM Mod3;
+TS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+RFS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+WS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+HS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+Co ::= Country
+
+Reg ::= SEQUENCE {
+ name RegionName,
+ inhabitants Inhabitants
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-4.asn
new file mode 100644
index 0000000000..81c07a2dab
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-4.asn
@@ -0,0 +1,675 @@
+-- module(Mvrasn-11-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- .... ....... ........ ........................................
+-- PA2 990112 eedkbu Insertion of all Data types relevant for
+-- DSD operation.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes
+;
+
+IMPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+FROM Mvrasn-14-4
+
+ SS-Code
+FROM Mvrasn-15-4
+
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info
+FROM Mvrasn-18-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+-- location registration types
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Indentity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Indentity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GSN-Address ::= OCTET STRING (SIZE (4..16))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+
+-- =========================================================
+-- EEDKBU:
+--
+-- the line:
+--
+-- "COMPONENTS OF SubscriberData,
+--
+-- has been removed due to insufficiencies of the used ASN.1-ERLANG
+-- compiler. Instead of this line the complete definition of
+-- "Subscriberdata" has been inserted.
+--
+-- This results in the same behaviour of the deocder/encoder but
+-- means only a replication of the ASN.1 definiton here.
+--
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL,
+
+-- =========================================================
+
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present
+ -- only in the first sequence if the seqmentation is used
+
+-- =========================================================
+--
+-- EEDKBU: This data type 'NetworkAccessMode' has been included manually
+-- as it was not in the ASN.1 definitions in 09.02 6.1.0.
+-- This definition has been taken from the CR xxx.
+--
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+--
+-- =========================================================
+
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ...}
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be
+ -- present in the first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+APN ::= IA5String (SIZE (1..63))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (4..16))
+-- Octets are coded according to TS GSM 09.60
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: 0 (unused)
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE
+ (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) OF
+ ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL}
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL
+ }
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 2:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- all other SS codes shall be ignored
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL
+ }
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-Criteria [3] O-BcsmCamelTDP-Criteria OPTIONAL
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ... }
+-- exception handling:
+-- For O-BcsmCamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- O-BcsmCamelTDPDatasequence.
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ ... }
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+-- The receiving entity shall not check the format of a number in
+-- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE
+-- (1..maxNumOfCamelDestinationNumberLengths) OF
+ (1..maxISDN-AddressLength) OF
+-- INTEGER(1..maxISDN-AddressLength)
+ INTEGER(1..maxNumOfSS)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueCall"
+-- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+-- value 1 = CAMEL phase 1,
+-- value 2 = CAMEL phase 2:
+-- reception of values greater than 2 shall be treated as CAMEL phase 2
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) } (SIZE (1..16))
+
+-- VBS/VGCS types
+
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-6.asn
new file mode 100644
index 0000000000..d826c1398f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-11-6.asn
@@ -0,0 +1,1776 @@
+-- module(Mvrasn-11-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010201 etord First draft, based on GSM 29.002 v. 3.5.2.
+-- PA2 010813 etord Updated according to GSM 29.002 v. 3.8.0.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ EquipmentStatus,
+ Kc,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+GeographicalInformation,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ SubscriberState,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ -- error in spec detected by our compiler SendRoutingInfoForGprsArg,
+ -- SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM Mvrasn-14-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+
+ AddressString,
+ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status
+
+FROM Mvrasn-18-6
+
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- if segmentation is used, numberOfRequestedVectors shall be present in
+ -- the first segment and shall not be present in subsequent segments. If received
+ -- in a subsequent segment it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the previous VLR shall not send the result
+ -- within a TC-CONTINUE message.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI must be present if SendIdentificationRes is not segmented.
+ -- If the TC-Continue segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendIdentificationRes.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- Refers to the Target RNC-ID in the Target ID in 3G TS 25.413, where the encoding is
+ -- defined.
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (5..10))
+ -- Octets are coded according the Channel Type information element in GSM 08.08
+
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (17..maxNumOfIntegrityInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (17..maxNumOfEncryptionInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the HLR shall not send the result within
+ -- a TC-CONTINUE message.
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ -- if present, the HLR may send an immediate response with the available authentication
+ -- vectors (see � 8.5.2 for more information).
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- security management types
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...}
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL }
+ -- qos-Subscribed shall be discarded if ext-QoS-Subscribed is received and supported
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS GSM 03.03
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS GSM 09.60
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3G TS 24.008 Quality of Service Octets
+ -- 6-13.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3G TS 32.015.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 03.03
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS GSM 08.08
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser is expected only for
+ -- SS-code = callunrelated or SS-code = callrelated
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList is expected only for SS-code = callunrelated
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList is expected only for SS-code = plmn operator
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+ ...}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ sms-csi (5),
+ m-csi (6),
+ gprs-csi(7)} (SIZE(8..32))
+-- exception handling:
+-- bits 8 to 31 shall be ignored if received
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL}
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, dp-AnalysedInfoCriteriaList and camelCapabilityHandling shall be
+-- present in the first segment
+
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths)
+OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3:
+ -- reception of values greater than 3 shall be treated as CAMEL phase 3.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) ,
+ phase3 (2) } (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when SMS-CSI is sent to VLR/SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ... }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- SMS-CAMEL-TDP-Data sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following M-Code values are defined in CAMEL Phase 3:
+--
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- If any other MM-code is received in M-CSI, then that MM-code shall be
+-- ignored.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is
+ --- allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP�s are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL }
+-- currentLocation shall not be present if locationInformation
+-- is not present in the RequestedInfo parameter
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in GSM 03.32.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in GSM 03.32 is allowed to be used
+-- The internal structure according to GSM 03.32 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in CCITT Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...}
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter,
+ notificationToCSE [4] NULL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-4.asn
new file mode 100644
index 0000000000..d545a746ec
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-14-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-14-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+;
+
+IMPORTS
+
+ SS-Code
+FROM Mvrasn-15-4
+
+;
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-6.asn
new file mode 100644
index 0000000000..3b4a827776
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-14-6.asn
@@ -0,0 +1,352 @@
+-- module(Mvrasn-14-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-14-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM Mvrasn-18-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ SS-Code
+FROM Mvrasn-15-6
+;
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS GSM 03.38
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS GSM 03.38.
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-4.asn
new file mode 100644
index 0000000000..fed9f38d1a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-4.asn
@@ -0,0 +1,42 @@
+-- module(Mvrasn-15-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-15-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-6.asn
new file mode 100644
index 0000000000..b9813e8481
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-15-6.asn
@@ -0,0 +1,202 @@
+-- module(Mvrasn-15-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-15-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callrelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call
+ -- is established from the target MS
+callunrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-17-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-17-4.asn
new file mode 100644
index 0000000000..29f3a0ff3b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-17-4.asn
@@ -0,0 +1,100 @@
+-- module(Mvrasn-17-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Error data types".
+--
+-- ASN.1 module: "MAP-ER-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-17-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ UnknownSubscriberParam,
+ UnidentifiedSubParam
+
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ NetworkResource
+FROM Mvrasn-18-4
+
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...}
+ -- if unknown values are received in
+ -- unknownSubscriberDiagnostic they shall be discarded
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-4.asn
new file mode 100644
index 0000000000..f14ad46c5f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-4.asn
@@ -0,0 +1,215 @@
+-- module(Mvrasn-18-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-18-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+-- ExternalSignalInfo,
+ LMSI,
+
+ -- data types for numbering and identification
+ IMSI,
+ NetworkResource,
+ NAEA-PreferredCI,
+
+ -- data types for subscriber management
+ Ext-BasicServiceCode,
+ EMLPP-Info
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+;
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+
+-- data types for subscriber management
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-6.asn
new file mode 100644
index 0000000000..901fc0e057
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-18-6.asn
@@ -0,0 +1,515 @@
+-- module(Mvrasn-18-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-18-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ gsm-0806 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS GSM 03.03.
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS GSM 03.03.
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+ -- octets 6 and 7 Cell Identity (CI) according to TS GSM 04.08
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between �000� and �999� may
+ -- be encoded as 3 digits using �000� to �999� or as 4 digits using
+ -- �0000� to �0999�. Carrier codes between �1000� and �9999� are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3G TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3G TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3G TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value �0� indicates that the MS is currently in contact with the
+-- network
+-- value �32767� indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-4.asn
new file mode 100644
index 0000000000..3cb60d7131
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-4.asn
@@ -0,0 +1,53 @@
+-- module(Mvrasn-19-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-19-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allShortMessageServices Ext-TeleserviceCode ::= '00100000'B
+shortMessageMT-PP Ext-TeleserviceCode ::= '00100001'B
+shortMessageMO-PP Ext-TeleserviceCode ::= '00100010'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-6.asn
new file mode 100644
index 0000000000..4a7c550deb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-19-6.asn
@@ -0,0 +1,109 @@
+-- module(Mvrasn-19-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+
+Mvrasn-19-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS GSM 02.30:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-4.asn
new file mode 100644
index 0000000000..8b74c07b5a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-4.asn
@@ -0,0 +1,54 @@
+-- module(Mvrasn-20-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-20-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-6.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-6.asn
new file mode 100644
index 0000000000..6b56cb211f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-20-6.asn
@@ -0,0 +1,147 @@
+-- module(Mvrasn-20-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-20-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS GSM 02.30:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-21-4.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-21-4.asn
new file mode 100644
index 0000000000..44e77a559d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-21-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-21-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Extension data types".
+--
+-- ASN.1 module: "MAP-ExtensionDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft including changes due to
+-- incompatibilities of the ASN.1-ERLANG
+-- compiler from OTP.
+-- Based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- This module was changed compared to the original in the ETSI
+-- standard GSM 09.02 v. 6.1.0. The reason for this change was an
+-- incompatibility of the used ASN.1-ERLANG compiler from OTP.
+--
+-- In GSM 09.02 v. 6.1.0 the data type 'ExtensionContainer' is partly
+-- defined by the ASN.1 type 'CLASS', but the ASN.1-ERLANG compiler is
+-- not able to handle such a 'CLASS' construct correctly. Therefore, and
+-- since the content of a received 'ExtensionContainer' is not of further
+-- interest at this stage of the project, the data type 'ExtensionContainer'
+-- has been changed here.
+--
+-- The new definition of 'ExtensionContainer' is simply an ASN.1 'Extension'
+-- ('...'). This definition allows to receive any kind of information
+-- within the 'ExtensionContainer' without causing a crash of the
+-- decoder when handling the respective message.
+--
+-- =============================================================================
+
+Mvrasn-21-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ ExtensionContainer;
+
+ExtensionContainer ::= SEQUENCE {
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-Constants-1.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-Constants-1.asn
new file mode 100644
index 0000000000..7eaacdd335
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-Constants-1.asn
@@ -0,0 +1,85 @@
+-- module(Mvrasn-Constants-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Constants".
+--
+-- ASN.1 module: "MAP-Constants"
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981015 eedkbu First draft. Based on GSM 09.02 v. 3.11.0)
+-- ..............................................................
+
+
+Mvrasn-Constants-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+maxNumberOfTeleServices,
+maxNumberOfBearerServices,
+maxNumberOfSupplServices,
+
+maxNumberOfCUG,
+maxNumberOfForwardingFeatures,
+maxNumberOfCallBarringFeatures,
+maxNumberOfHlrId,
+maxAddressLength,
+maxNumberOfSentParameters
+
+;
+
+-- value assignment
+
+maxNumberOfTeleServices INTEGER ::= 20
+maxNumberOfBearerServices INTEGER ::= 50
+maxNumberOfSupplServices INTEGER ::= 30
+
+maxNumberOfCUG INTEGER ::= 10
+maxNumberOfForwardingFeatures INTEGER ::= 13
+maxNumberOfCallBarringFeatures INTEGER ::= 13
+maxNumberOfHlrId INTEGER ::= 50
+maxAddressLength INTEGER ::= 20
+
+
+maxNumberOfSentParameters INTEGER ::= 10
+-- this named value should correspond to the maximum of
+-- the maxNumberOfCUG and the maximum number of authentication
+-- set which may be returned by a HLR plus 1.
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn-DataTypes-1.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn-DataTypes-1.asn
new file mode 100644
index 0000000000..56b11852ae
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn-DataTypes-1.asn
@@ -0,0 +1,454 @@
+-- module(Mvrasn-DataTypes-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Data Types".
+--
+-- ASN.1 module: "MAP-DataTypes".
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0.
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 3.11.0.
+-- ..............................................................
+-- PA2 990114 etord Included Reset operation
+-- ..............................................................
+
+Mvrasn-DataTypes-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+-- imports upper boundaries for data types
+
+ maxNumberOfTeleServices,
+ maxNumberOfBearerServices,
+ maxNumberOfSupplServices,
+ maxNumberOfCUG,
+ maxNumberOfForwardingFeatures,
+ maxNumberOfCallBarringFeatures,
+ maxNumberOfHlrId,
+ maxAddressLength,
+ maxNumberOfSentParameters
+FROM Mvrasn-Constants-1
+
+;
+
+
+-- =========================================================
+--
+-- NOTE:
+--
+-- The data type "SendParameterArg" and "ResetArg" are not given in the
+-- original GSM 09.02 v. 3.11.0 standard, but have been
+-- introduced here for two reasons:
+--
+-- 1. In the OPERATION MACRO "SendParameters" is a PARAMETER (=ARGument) and
+-- a RESULT defined. The ASN.1 en/decoder is not able to handle
+-- the MACRO definition. Therefore, the new data type has been
+-- introduced
+--
+-- 2. To align the documentation of the ASN.1 data types in
+-- GSM 09.02 v. 3.11.0 with those of GSM 09.02 v. 6.1.0.
+--
+-- =========================================================
+
+SendParametersArg ::= SEQUENCE {
+ subscriberId SubscriberId,
+ requestParameters RequestParameters
+ }
+
+ResetArg ::= SEQUENCE {
+ networkResource NetworkResource,
+ originatingEntityNumber IsdnAddressString,
+ hlrId HlrList OPTIONAL
+ }
+
+
+-- common data types
+
+SentParameters ::= SEQUENCE
+ SIZE(1..maxNumberOfSentParameters)
+ OF SentParameter
+
+
+TBCD-STRING ::= OCTET STRING
+ -- digits 0 through 9, two digits per octet,
+ -- each digit encoded 0000 to 1001,
+ -- 1111 used as filler when there is an odd number of digit.
+
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- see internal description in section 6.4.1
+
+IsdnAddressString ::= AddressString (SIZE (1..10))
+
+IMSI ::= TBCD-STRING (SIZE (2..8))
+ -- MCC, MNC, MSIN concatenated in this order
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMPLICIT IMSI,
+ tmsi [1] IMPLICIT TMSI}
+
+
+-- data types for numbering and identification
+
+HlrId ::= IMSI
+ -- leading digits of IMSI
+
+HlrList ::= SEQUENCE
+ SIZE(1.. maxNumberOfHlrId)
+ OF HlrId
+
+
+-- data types for subscriber management
+
+--
+Category ::= OCTET STRING (SIZE (1))
+ -- internal structure defined in CCITT Rec Q.763
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/1
+ -- BIT 8 Transparency indicator (if applicable)
+ -- 0 transparent
+ -- 1 non transparent
+
+ -- BIT 7654 Bearer service group
+ -- 0001 3.1 kHz ex PLMN
+ -- 0010 Circuit data asynchronous
+ -- 0011 Circuit data synchronous
+ -- 0100 PAD access c.d.a
+ -- 0101 Packet data synchrounous
+ -- 0110 Alternate speech/c.d.a
+ -- 0111 Alternate speech c.d.s
+ -- 1000 Speech followed by data c.d.a
+ -- 1001 Speech followed by data c.d.s
+ -- 1111 12.6 kb/s unrestricted digital
+
+ -- BIT 321 Rate (when applicable)
+ -- 000 Any
+ -- 001 300-300 b/s
+ -- 010 1200-1200 b/s
+ -- 011 1200-75 b/s
+ -- 100 2400-2400 b/s
+ -- 101 4800-4800 b/s
+ -- 110 9600-9600 b/s
+
+
+ -- Bits 321 = 000 can be used to refer to all
+ -- the bearer services of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- bearer services.
+ -- For the codes referring to a group or all bearer services
+ -- the Transparency Indicator is not applicable and has to be set to "0"
+
+
+BearerServiceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfBearerServices)
+ OF BearerServiceCode
+
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/2
+ -- Bit 8-5 encode the teleservice group
+
+ -- Bit 4-1 = 0000 can be used to refer to all the
+ -- teleservices of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- teleservices
+
+TeleserviceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfTeleServices)
+ OF TeleserviceCode
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT BearerServiceCode,
+ teleservice [3] IMPLICIT TeleserviceCode}
+
+--
+SubscriberStatus ::= ENUMERATED{
+ serviceGranted (0),
+ operatorOGCallBarring (1)}
+
+ -- Data types for supplementary services
+
+SS-Code ::= OCTET STRING (SIZE(1))
+ -- Internal structure according to
+ -- table 6.4/3
+ -- Bit 8-5
+ -- 0001 Number Identification services
+ -- 0010 Forwarding services
+ -- 0011 Call offering services
+ -- 0100 Call completion services
+ -- 0101 Multi-party services
+ -- 0110 Community of interest services
+ -- 0111 Charging services
+ -- 1000 Additional information transfer services
+ -- 1001 Call restriction services
+ -- Bit 4-1 = 0000 can be use to refer to
+ -- a group of supplementary services
+ -- eg, "00100000" can be used to refer to all
+ -- forwarding services
+ -- "00101000" can be used to refer to all
+ -- conditional forwarding services
+ -- "00000000" can be used to refer to all
+ -- supplementary services
+
+SS-Status ::= OCTET STRING (SIZE (1))
+ -- Bit 8-4 Unused
+ -- Bit 3 Provision indicator
+ -- 0 : Not provisioned
+ -- 1 : Provisioned
+ -- Bit 2 Registration indicator (if applicable)
+ -- 0 : Not Registered
+ -- 1 : Registered
+ -- Bit 1 Activation indicator (If applicable)
+ -- 0 : Not Active
+ -- 1 : Active
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfo [1] IMPLICIT CallBarringInfo,
+ cug-Information [2] IMPLICIT CUG-Information,
+ ss-Data [3] IMPLICIT SS-Data}
+
+SS-InfoList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfSupplServices)
+ OF SS-Information
+
+
+--
+SS-Data ::= SEQUENCE{
+ ss-Code SS-Code,
+ ss-Status [4] IMPLICIT SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL}
+
+SS-SubscriptionOption ::= CHOICE{
+ perCallBasis [5] IMPLICIT BOOLEAN,
+ notificationToHeldRetrievedParty [6] IMPLICIT BOOLEAN,
+ userToUserServiceIndicator [7] IMPLICIT UserToUserServiceIndicator,
+ maximumConfereesNumber [8] IMPLICIT MaximumConfereesNumber,
+ huntGroupAccessSelectionOrder [9] IMPLICIT HuntGroupAccessSelectionOrder}
+
+
+
+ForwardingOptions ::= OCTET STRING (SIZE(1))
+ -- Bit 8-7 Notification to forwarding party
+ -- 00 No notification
+ -- 01 notification with calling number identity
+ -- 10 notification without calling number identity
+ -- Bit 6-5 Notification to calling party
+ -- 00 No notification
+ -- 01 Notification with forwarded-to number
+ -- 10 Notification without forwarded-to number
+
+
+UserToUserServiceIndicator ::= OCTET STRING (SIZE(1))
+ -- Bit 8 : service 1
+ -- Bit 7 : service 2
+ -- Bit 6 : service 3
+ -- Bit 5-1 : Reserved
+ -- Bit 8 to 6 coded "1" if the service
+ -- is available to the subscriber
+
+
+MaximumConfereesNumber ::= INTEGER (1..10)
+
+
+
+HuntGroupAccessSelectionOrder ::= ENUMERATED{
+ random (0),
+ sequential (1)}
+
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+
+CUG-Facilities ::= OCTET STRING (SIZE (1))
+ -- Bit 8-3 000000 (Unused)
+ -- Bit 2-1
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Index ::= OCTET STRING (SIZE (1))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Options ::= OCTET STRING (SIZE (1))
+ -- BIT 8-4 00000 (Unused)
+ -- BIT 3 preferential CUG indicator
+ -- 0 no preferential
+ -- 1 preferential CUG
+ -- BIT 2 barring of incoming calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+ -- BIT 1 barring of outgoing calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+
+CUG-Feature ::= SEQUENCE {
+ cug-interlock CUG-Interlock,
+ cug-Index CUG-Index,
+ cug-Options CUG-Options,
+ ss-Status SS-Status}
+
+
+CUG-FeatureList ::= SEQUENCE SIZE (
+ 1..maxNumberOfCUG) OF CUG-Feature
+
+
+-- =========================================================
+--
+-- EEDKBU:
+--
+-- The original CUG-Information data type has been:
+--
+-- ------------------
+--
+-- CUG-Information ::= SEQUENCE{
+-- cug-Facilities CUG-Facilities,
+-- CHOICE{
+-- cug-Feature [0] IMPLICIT CUG-Feature,
+-- cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+--
+-- ------------------
+--
+-- This is incorrect ASN.1 notation! The CHOICE has also to be a named
+-- type. Therefore, the definition was changed and can be seen below:
+--
+-- =========================================================
+
+
+CUG-Information ::= SEQUENCE{
+ cug-Facilities CUG-Facilities,
+ cug-FeatureChoice CHOICE{
+ cug-Feature [0] IMPLICIT CUG-Feature,
+ cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+
+--
+ForwardingInfo ::= SEQUENCE{
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList}
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status,
+ forwardedToNumber [5] IMPLICIT IsdnAddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT NoReplyConditionTime OPTIONAL}
+
+ForwardingFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfForwardingFeatures)
+ OF ForwardingFeature
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeature ::= SEQUENCE{
+ basicServiceCode BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status }
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfCallBarringFeatures)
+OF CallBarringFeature
+
+SubscriberData ::= SEQUENCE{
+ msIsdn [1] IMPLICIT IsdnAddressString OPTIONAL,
+ category [2] IMPLICIT Category OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT BearerServiceList OPTIONAL,
+ teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL,
+ provisonedSupplServices [7] IMPLICIT SS-InfoList OPTIONAL}
+
+-- Data types for security procedures
+
+AuthenticationSet ::= SEQUENCE {
+ rand Rand,
+ sres Sres,
+ kc Kc}
+
+
+Rand ::= OCTET STRING (SIZE (16))
+
+Sres ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+Ki ::= OCTET STRING (SIZE (16))
+
+
+-- Data types for fault recovery, call tracing
+
+NetworkResource ::= ENUMERATED {
+ pLMN (0),
+ hLR (1),
+ vLR (2),
+ previous-VLR (3),
+ controlling-MSC (4),
+ vMSC (5),
+ eIR (6),
+ radioSubSystem (7)}
+
+
+-- other data types
+
+RequestParameter ::= ENUMERATED{
+ request-IMSI (0),
+ request-AuthenticationSet (1),
+ request-SubscriberData (2),
+ request-CUG-Information (3),
+ request-Ki (4)}
+
+RequestParameters ::= SEQUENCE SIZE (1..2) OF RequestParameter
+
+SentParameter ::= CHOICE{
+ imsi [0] IMPLICIT IMSI,
+ authenticationSet [1] IMPLICIT AuthenticationSet,
+ subscriberData [2] IMPLICIT SubscriberData,
+ cug-information [3] IMPLICIT CUG-Information,
+ ki [4] IMPLICIT Ki}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn.set.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn.set.asn
new file mode 100644
index 0000000000..8a61da0160
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-11-6.asn
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn4.set.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn4.set.asn
new file mode 100644
index 0000000000..76e8147d12
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn4.set.asn
@@ -0,0 +1,10 @@
+Mvrasn-Constants-1.asn
+Mvrasn-DataTypes-1.asn
+Mvrasn-21-4.asn
+Mvrasn-20-4.asn
+Mvrasn-19-4.asn
+Mvrasn-18-4.asn
+Mvrasn-17-4.asn
+Mvrasn-15-4.asn
+Mvrasn-14-4.asn
+Mvrasn-11-4.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/Mvrasn6.set.asn b/lib/asn1/test/asn1_SUITE_data/Mvrasn6.set.asn
new file mode 100644
index 0000000000..2a3f54ca9a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Mvrasn6.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
+Mvrasn-11-6.asn
diff --git a/lib/asn1/test/asn1_SUITE_data/MyMerge.set.asn b/lib/asn1/test/asn1_SUITE_data/MyMerge.set.asn
new file mode 100644
index 0000000000..32c562b43f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/MyMerge.set.asn
@@ -0,0 +1,2 @@
+MySO
+IMP
diff --git a/lib/asn1/test/asn1_SUITE_data/NoImport.asn b/lib/asn1/test/asn1_SUITE_data/NoImport.asn
new file mode 100644
index 0000000000..2ab09d91fd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/NoImport.asn
@@ -0,0 +1,14 @@
+NoImport DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Typ
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a Typ,
+ b INTEGER}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Nortel.asn b/lib/asn1/test/asn1_SUITE_data/Nortel.asn
new file mode 100755
index 0000000000..a27c78a0b5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Nortel.asn
@@ -0,0 +1,592 @@
+Nortel DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS Nortel;
+
+--IMPORTS
+
+-- IMSI, IMEI
+-- FROM MAP-commonDataTypes { iso (1) identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) };
+
+--
+-- Note that the syntax of AE-title to be used is from
+-- CCITT Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+--
+------------------------------------------------------------------------------
+--
+-- CALL AND EVENT RECORDS
+--
+------------------------------------------------------------------------------
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS GSM 04.08
+--
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+MessageReference ::= OCTET STRING
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+CalledNumber ::= BCDDirectoryNumber
+
+DMI-EXTENSION ::= DMI-TYPE-IDENTIFIER
+
+DMI-TYPE-IDENTIFIER ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+} WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+
+-- ManagementExtension ::= OCTET STRING
+
+ ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+ }
+
+ManagementExtensionSet DMI-EXTENSION ::= {...}
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1)
+ }
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+BCDDirectoryNumber ::= OCTET STRING
+ -- This type contains the binary coded decimal representation of
+ -- a directory number e.g. calling/called/connected/translated number.
+ -- The encoding of the octet string is in accordance with the
+ -- the elements "Calling party BCD number", "Called party BCD number"
+ -- and "Connected number" defined in TS GSM 04.08.
+ -- This encoding includes type of number and number plan information
+ -- together with a BCD encoded digit string.
+ -- It may also contain both a presentation and screening indicator
+ -- (octet 3a).
+ -- For the avoidance of doubt, this field does not include
+ -- octets 1 and 2, the element name and length, as this would be
+ -- redundant.
+
+
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS GSM 04.08
+ gsm0902MapErrorValue [1] INTEGER,
+ -- Note: The value to be stored here corresponds to
+ -- the local values defined in the MAP-Errors and
+ -- MAP-DialogueInformation modules, for full details
+ -- see TS GSM 09.02.
+ ccittQ767Cause [2] INTEGER,
+ -- See CCITT Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension
+ -- To be defined by manufacturer
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS GSM 04.08
+ --
+
+CallEventRecord ::= CHOICE
+{
+-- Record values 0..16 are 3G curcuit switch specifick
+--
+-- sgsnPDPRecord [20] SGSNPDPRecord,
+ ggsnPDPRecord [21] GGSNPDPRecord
+-- sgsnMMRecord [22] SGSNMMRecord,
+-- sgsnSMORecord [23] SGSNSMORecord,
+-- sgsnSMTRecord [24] SGSNSMTRecord
+}
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration in seconds.
+ -- For successful calls this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+
+TimeStamp ::= OCTET STRING (SIZE(9))
+ --
+ -- The contents of this field are a compact form of the UTCTime format
+ -- containing local time plus an offset to universal time. Binary coded
+ -- decimal encoding is employed for the digits to reduce the storage and
+ -- transmission overhead
+ -- e.g. YYMMDDhhmmssShhmm
+ -- where
+ -- YY = Year 00 to 99 BCD encoded
+ -- MM = Month 01 to 12 BCD encoded
+ -- DD = Day 01 to 31 BCD encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ -- ss = second 00 to 59 BCD encoded
+ -- S = Sign 0 = "+", "-" ASCII encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ --
+
+MSISDN ::= ISDN-AddressString
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+GGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI,
+ pdpType [8] PDPType,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics OPTIONAL
+}
+
+-- sgsnPLMNIdentifier [27] PLMN-Id
+
+
+
+
+------------------------------------------------------------------------------
+--
+-- OBJECT IDENTIFIERS
+--
+------------------------------------------------------------------------------
+
+gsm1205InformationModel OBJECT IDENTIFIER ::=
+ { ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Operation-Maintenance (3) gsm-12-05 (5) informationModel (0) }
+
+gsm1205ASN1Module OBJECT IDENTIFIER ::=
+ { gsm1205InformationModel asn1Module(2) }
+
+------------------------------------------------------------------------------
+--
+-- COMMON DATA TYPES
+--
+------------------------------------------------------------------------------
+
+AccessPointNameNI ::= IA5String (SIZE(1..63))
+ --
+ -- Network Identifier part of APN in "dot" representation
+ -- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
+ -- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR.
+
+AccessPointNameOI ::= IA5String (SIZE(1..37))
+ --
+ -- Operator Identifier part of APN in "dot" representation
+ -- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
+ -- and is presented in this form in the CDR.
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- in GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- cause codes 0 to 15 are defined in TS 32.005 as 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2)
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- used in PDP context record only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp
+}
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Descriptions for the bits of the flag set:
+ --
+ -- Bit 1: H (Hot billing) := '00000001'B
+ -- Bit 2: F (Flat rate) := '00000010'B
+ -- Bit 3: P (Prepaid service) := '00000100'B
+ -- Bit 4: N (Normal billing) := '00001000'B
+ -- Bit 5: - (Reserved, set to 0) := '00010000'B
+ -- Bit 6: - (Reserved, set to 0) := '00100000'B
+ -- Bit 7: - (Reserved, set to 0) := '01000000'B
+ -- Bit 8: - (Reserved, set to 0) := '10000000'B
+ --
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+ETSIAddress ::= AddressString
+ --
+ --first octet for nature of address, and numbering plan indicator (3 for X.121)
+ --other octets TBCD
+ -- See TS 29.002
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formated data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078
+ --
+
+GSNAddress ::= IPAddress
+
+GSMQoSInformation ::=SEQUENCE
+{
+ reliability [0] QoSReliability,
+ delay [1] QoSDelay,
+ precedence [2] QoSPrecedence,
+ peakThroughput [3] QoSPeakThroughput,
+ meanThroughput [4] QoSMeanThroughput
+}
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] OCTET STRING (SIZE(4)),
+ iPBinV6Address [1] OCTET STRING (SIZE(16))
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LocalSequenceNumber ::= INTEGER (0..4294967295)
+ --
+ -- Sequence number of the record in this node
+ -- 0.. 4294967295 is equivalent to 0..2**32-1, unsigned integer in four octets
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ eTSIAddress [1] ETSIAddress
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ --OCTET 1: PDP Type Organization
+ --OCTET 2: PDP Type Number
+ -- See TS 29.060
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060
+ -- as follows:
+ -- OCTET 1 of PLMN-Id = OCTET 2 of RAI
+ -- OCTET 2 of PLMN-Id = OCTET 3 of RAI
+ -- OCTET 3 of PLMN-Id = OCTET 4 of RAI
+
+
+QoSDelay ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ delayClass1 (1),
+ delayClass2 (2),
+ delayClass3 (3),
+ delayClass4 (4)
+}
+
+QoSInformation ::= CHOICE
+{
+ gsmQosInformation [0] GSMQoSInformation,
+ umtsQosInformation [1] OCTET STRING (SIZE (4..12))
+}
+-- When dealing with a pre R99 QoS profile the GSN may either choose the "GSMQoSInformation" or the
+-- "umtsQoSInformation" encoding. Dealing with R99 QoS profiles the GSN shall apply the
+-- "umtsQoSInformation" encoding. The umtsQosInformation octet string is a 1:1 copy of the contents
+-- (starting with octet 4) of the "Quality of service Profile" information element specified in
+-- 3GPP TS 29.060 [22] for R99 and GSM TS 09.60 for pre R99 cases.
+--}
+
+QoSMeanThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ subscribedMeanThroughput (0), -- MS to network direction
+ -- Network to MS direction needs not to be covered since value (0) = "reserved"
+ mean100octetPh (1),
+ mean200octetPh (2),
+ mean500octetPh (3),
+ mean1000octetPh (4),
+ mean2000octetPh (5),
+ mean5000octetPh (6),
+ mean10000octetPh (7),
+ mean20000octetPh (8),
+ mean50000octetPh (9),
+ mean100000octetPh (10),
+ mean200000octetPh (11),
+ mean500000octetPh (12),
+ mean1000000octetPh (13),
+ mean2000000octetPh (14),
+ mean5000000octetPh (15),
+ mean10000000octetPh (16),
+ mean20000000octetPh (17),
+ mean50000000octetPh (18),
+ reserved (30),
+ bestEffort (31)
+}
+
+QoSPeakThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ upTo1000octetPs (1),
+ upTo2000octetPs (2),
+ upTo4000octetPs (3),
+ upTo8000octetPs (4),
+ upTo16000octetPs (5),
+ upTo32000octetPs (6),
+ upTo64000octetPs (7),
+ upTo128000octetPs (8),
+ upTo256000octetPs (9)
+}
+
+QoSPrecedence ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ highPriority (1),
+ normalPriority (2),
+ lowPriority (3)
+}
+
+QoSReliability ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecifiedReliability (0),
+ acknowledgedGTP (1),
+ unackGTPAcknowLLC (2),
+ unackGTPLLCAcknowRLC (3),
+ unackGTPLLCRLC (4),
+ unacknowUnprotectedData (5)
+}
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008
+ --
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002
+ --
+
+NumberOfDPEncountered ::= INTEGER
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+SystemType ::= ENUMERATED
+{
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+CallEventRecordType ::= INTEGER
+{
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15),
+ mtTraceRecord (16),
+ termCAMELRecord (17),
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22)
+
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Null.py b/lib/asn1/test/asn1_SUITE_data/Null.py
new file mode 100644
index 0000000000..23e5f38140
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Null.py
@@ -0,0 +1,22 @@
+Null DEFINITIONS ::=
+BEGIN
+
+-- F.2.9 Null
+-- Use a null type to indicate the effective absence of a component
+-- of a sequence.
+-- EXAMPLE
+
+PatientIdentifier ::= SEQUENCE {
+ name VisibleString,
+ roomNumber CHOICE {
+ room INTEGER,
+ outPatient NULL -- if an out-patient --
+ }
+}
+
+lastPatient PatientIdentifier ::= {
+ name "Jane Doe",
+ roomNumber outPatient : NULL
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..35a54aaac5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,950 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+OLD-MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ terminationAuditResult TerminationAudit
+}
+
+
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList OPTIONAL,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ },
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN,
+ reserveGroup BOOLEAN,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm
+-- nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value
+}
+
+-- NonStandardData ::= SEQUENCE
+-- {
+-- nonStandardIdentifier NonStandardIdentifier,
+-- data OCTET STRING
+-- }
+--
+-- NonStandardIdentifier ::= CHOICE
+-- {
+-- object OBJECT IDENTIFIER,
+-- h221NonStandard H221NonStandard,
+-- experimental IA5String(SIZE(8)),
+-- first two characters should be "X-" or "X+"
+-- ...
+-- }
+--
+-- H221NonStandard ::= SEQUENCE
+-- {
+-- t35CountryCode1 INTEGER(0..255),
+-- t35CountryCode2 INTEGER(0..255), country, as per T.35
+-- t35Extension INTEGER(0..255), assigned nationally
+-- manufacturerCode INTEGER(0..65535), assigned nationally
+-- ...
+-- }
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.asn1config b/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.asn1config
new file mode 100644
index 0000000000..8d96aaecf1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'OTP-PKIX',
+ [{decode_TBSCert_exclusive,['CertificatePKIX1Explicit88',[{tbsCertificate,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.set.asn b/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.set.asn
new file mode 100644
index 0000000000..1b198d3b91
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/OTP-PKIX.set.asn
@@ -0,0 +1,5 @@
+SSL-PKIX.asn1
+PKIX1Explicit88.asn1
+PKIX1Implicit88.asn1
+PKIXAttributeCertificate.asn1
+PKIX1Algorithms88.asn1
diff --git a/lib/asn1/test/asn1_SUITE_data/ObjIdValues.asn1 b/lib/asn1/test/asn1_SUITE_data/ObjIdValues.asn1
new file mode 100644
index 0000000000..9368e8dceb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ObjIdValues.asn1
@@ -0,0 +1,66 @@
+
+ObjIdValues
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+ObjIdType ::= OBJECT IDENTIFIER
+
+mobileDomainId OBJECT IDENTIFIER ::=
+ {ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)}
+mobileDomainId-Alt1 OBJECT IDENTIFIER ::=
+ {ccitt identified-organization etsi (0) mobileDomain (0)}
+mobileDomainId-Alt2 OBJECT IDENTIFIER ::=
+ {0 4 0 0}
+
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+CommonComponentId ::= INTEGER (0..9)
+
+as-Id CommonComponentId ::= 1
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+{gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+-- test for OTP-4354
+-- But it only caused a warning
+objid OBJECT IDENTIFIER ::= {mobileDomainId-Alt2 as-Id}
+
+itu-t-a OBJECT IDENTIFIER ::= {itu-t recommendation a}
+itu-t-b OBJECT IDENTIFIER ::= {itu-t recommendation b}
+itu-t-c OBJECT IDENTIFIER ::= {itu-t recommendation c}
+itu-t-d OBJECT IDENTIFIER ::= {itu-t recommendation d}
+itu-t-e OBJECT IDENTIFIER ::= {itu-t recommendation e}
+itu-t-f OBJECT IDENTIFIER ::= {itu-t recommendation f}
+itu-t-g OBJECT IDENTIFIER ::= {itu-t recommendation g}
+itu-t-h OBJECT IDENTIFIER ::= {itu-t recommendation h}
+itu-t-i OBJECT IDENTIFIER ::= {itu-t recommendation i}
+itu-t-j OBJECT IDENTIFIER ::= {itu-t recommendation j}
+itu-t-k OBJECT IDENTIFIER ::= {itu-t recommendation k}
+itu-t-l OBJECT IDENTIFIER ::= {itu-t recommendation l}
+itu-t-m OBJECT IDENTIFIER ::= {itu-t recommendation m}
+itu-t-n OBJECT IDENTIFIER ::= {itu-t recommendation n}
+itu-t-o OBJECT IDENTIFIER ::= {itu-t recommendation o}
+itu-t-p OBJECT IDENTIFIER ::= {itu-t recommendation p}
+itu-t-q OBJECT IDENTIFIER ::= {itu-t recommendation q}
+itu-t-r OBJECT IDENTIFIER ::= {itu-t recommendation r}
+itu-t-t OBJECT IDENTIFIER ::= {itu-t recommendation t}
+itu-t-u OBJECT IDENTIFIER ::= {itu-t recommendation u}
+itu-t-v OBJECT IDENTIFIER ::= {itu-t recommendation v}
+itu-t-w OBJECT IDENTIFIER ::= {itu-t recommendation w}
+itu-t-x OBJECT IDENTIFIER ::= {itu-t recommendation x}
+itu-t-y OBJECT IDENTIFIER ::= {itu-t recommendation y}
+itu-t-z OBJECT IDENTIFIER ::= {itu-t recommendation z}
+ccitt-q OBJECT IDENTIFIER ::= {ccitt question}
+ccitt-a OBJECT IDENTIFIER ::= {ccitt administration}
+ccitt-n OBJECT IDENTIFIER ::= {ccitt network-operator}
+iso-i OBJECT IDENTIFIER ::= {iso identified-organization}
+joint-iso OBJECT IDENTIFIER ::= {joint-iso-ccitt}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Objects.asn b/lib/asn1/test/asn1_SUITE_data/Objects.asn
new file mode 100644
index 0000000000..f911acbbe9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Objects.asn
@@ -0,0 +1,61 @@
+Objects DEFINITIONS ::=
+BEGIN
+
+OPERATION ::= CLASS
+ {
+ &ArgumentType OPTIONAL,
+ &ResultType OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &resultReturned BOOLEAN DEFAULT TRUE,
+ &operationCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType]
+ [RESULT &ResultType]
+ [RETURN RESULT &resultReturned]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ CODE &operationCode
+ }
+
+ERROR ::= CLASS
+ {
+ &ParameterType OPTIONAL,
+ &errorCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [PARAMETER &ParameterType]
+ CODE &errorCode
+ }
+
+My-Operations OPERATION ::= { operationA | operationB }
+
+operationA OPERATION ::= {
+ ARGUMENT INTEGER
+ ERRORS { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } }
+ CODE 1
+}
+
+operationB OPERATION ::= {
+ ARGUMENT IA5String
+ RESULT BOOLEAN
+ ERRORS { { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+ CODE 2
+}
+
+My-OperationErrors ERROR ::= { My-Operations.&Errors }
+
+My-OperationAERror ERROR ::= {operationA.&Errors}
+-- Equals:
+-- My-OperationErrors ERROR ::= { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } | { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+
+My-OperationErrorCodes INTEGER ::= { My-Operations.&Errors.&errorCode }
+-- Equals:
+-- My-OperationErrorCodes INTEGER ::= { 1000 | 1001 | 1002 | 1003 }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Octetstr.py b/lib/asn1/test/asn1_SUITE_data/Octetstr.py
new file mode 100644
index 0000000000..e971acf192
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Octetstr.py
@@ -0,0 +1,15 @@
+Octetstr DEFINITIONS ::=
+BEGIN
+
+-- F.2.6.1
+-- Use an octet string type to model binary data whose format and length are
+-- unspecified, or specified elsewhere, and whose length in bits is a
+-- multiple of eight.
+-- EXAMPLE
+
+G4FacsimileImage ::= OCTET STRING
+-- a sequence of octets conforming to
+-- Recommendations T.5 and T.6
+image G4FacsimileImage ::= '3FE2EBAD471005'H
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/One.py b/lib/asn1/test/asn1_SUITE_data/One.py
new file mode 100644
index 0000000000..89083fbd66
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/One.py
@@ -0,0 +1,52 @@
+One DEFINITIONS ::=
+
+BEGIN
+EXPORTS Boo,Foo,Bar;
+--IMPORTS
+--Fooo , Abba FROM Bobby
+--Robbe FROM Tst;
+
+Boo ::= [1] INTEGER (0..200)
+
+Foo ::= One.Boo
+
+Bar ::= SEQUENCE {
+ ff One.Foo,
+ aa One.Boo }
+
+
+ S ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ INTEGER, -- defined by authentication protocol
+ authData
+ Boo
+ }
+
+
+--S::= Jojo
+--T ::= S
+--U ::= T
+--Jojo ::= [PRIVATE 21] SET {
+-- Boo ,x
+-- d SEQUENCE {
+-- [0] INTEGER OPTIONAL,
+-- [1] INTEGER DEFAULT 55 },
+-- g [2] INTEGER (0..10) }
+--
+--J ::= [PRIVATE 22] EXPLICIT SEQUENCE {
+-- y SEQUENCE {
+-- one INTEGER,
+-- two INTEGER },
+-- x INTEGER (1..3),
+-- a Boo OPTIONAL,
+-- b INTEGER }
+--
+--Noo ::= [PRIVATE 23] SEQUENCE {
+-- [0] Jojo,
+-- [1] J }
+
+
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/OpenType.asn1 b/lib/asn1/test/asn1_SUITE_data/OpenType.asn1
new file mode 100644
index 0000000000..8016f3663c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/OpenType.asn1
@@ -0,0 +1,12 @@
+OpenType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Stype ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+Ot ::= TYPE-IDENTIFIER.&Type (Stype)
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/OpenTypeImplicitTag.asn b/lib/asn1/test/asn1_SUITE_data/OpenTypeImplicitTag.asn
new file mode 100644
index 0000000000..ee25b5cf3c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/OpenTypeImplicitTag.asn
@@ -0,0 +1,19 @@
+OpenTypeImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a [1] A OPTIONAL,
+ b [2] ANY OPTIONAL,
+ c [3] INTEGER,
+ d [4] C.&Type OPTIONAL
+}
+
+C ::= CLASS {
+ &Type,
+ &id INTEGER
+}
+
+A ::= ANY
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Opt.asn1 b/lib/asn1/test/asn1_SUITE_data/Opt.asn1
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Opt.asn1
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Opt.py b/lib/asn1/test/asn1_SUITE_data/Opt.py
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Opt.py
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/P-Record.asn1config b/lib/asn1/test/asn1_SUITE_data/P-Record.asn1config
new file mode 100644
index 0000000000..45405da8bf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-Record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'P-Record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/P-Record.asn1db b/lib/asn1/test/asn1_SUITE_data/P-Record.asn1db
new file mode 100644
index 0000000000..13e1162c64
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-Record.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/P-Record.erl b/lib/asn1/test/asn1_SUITE_data/P-Record.erl
new file mode 100644
index 0000000000..9fc6f50d64
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-Record.erl
@@ -0,0 +1,244 @@
+%% Generated by the Erlang ASN.1 BER-compiler version, utilizing bit-syntax:1.3.1.4
+%% Purpose: encoder and decoder to the types in mod P-Record
+
+-module('P-Record').
+-include("P-Record.hrl").
+-define('RT_PER',asn1rt_per_bin).
+-export([encoding_rule/0]).
+-export([
+'enc_PersonnelRecord'/1,
+'enc_ChildInformation'/1,
+'enc_Name'/1,
+'enc_EmployeeNumber'/1,
+'enc_Date'/1
+]).
+
+-export([
+'dec_PersonnelRecord'/2,
+'dec_ChildInformation'/2,
+'dec_Name'/2,
+'dec_EmployeeNumber'/2,
+'dec_Date'/2
+]).
+
+-export([
+'v'/0
+]).
+
+
+
+-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).
+
+encoding_rule() ->
+ per_bin.
+
+encode(Type,Data) ->
+case catch ?RT_PER:complete(encode_disp(Type,Data)) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {Bytes,Len} ->
+ {ok,Bytes};
+ X ->
+ {ok,X}
+end.
+
+decode(Type,Data) ->
+case catch decode_disp(Type,Data) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {X,_Rest} ->
+ {ok,X};
+ {X,_Rest,_Len} ->
+ {ok,X}
+end.
+
+encode_disp('PersonnelRecord',Data) -> 'enc_PersonnelRecord'(Data);
+encode_disp('ChildInformation',Data) -> 'enc_ChildInformation'(Data);
+encode_disp('Name',Data) -> 'enc_Name'(Data);
+encode_disp('EmployeeNumber',Data) -> 'enc_EmployeeNumber'(Data);
+encode_disp('Date',Data) -> 'enc_Date'(Data);
+encode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+decode_disp('PersonnelRecord',Data) -> 'dec_PersonnelRecord'(Data,mandatory);
+decode_disp('ChildInformation',Data) -> 'dec_ChildInformation'(Data,mandatory);
+decode_disp('Name',Data) -> 'dec_Name'(Data,mandatory);
+decode_disp('EmployeeNumber',Data) -> 'dec_EmployeeNumber'(Data,mandatory);
+decode_disp('Date',Data) -> 'dec_Date'(Data,mandatory);
+decode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+
+
+
+'enc_PersonnelRecord'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{children,6}],Val),
+[
+?RT_PER:setoptionals(Opt),
+
+%% attribute number 1 with type Externaltypereference6P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,title)),
+
+%% attribute number 3 with type INTEGER
+?RT_PER:encode_integer([],?RT_PER:cindex(4,Val1,number)),
+
+%% attribute number 4 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(5,Val1,dateOfHire)),
+
+%% attribute number 5 with type Externaltypereference10P-RecordName
+'enc_Name'(?RT_PER:cindex(6,Val1,nameOfSpouse)),
+case ?RT_PER:cindex(7,Val1,children) of
+asn1_DEFAULT -> [];
+_ ->
+
+%% attribute number 6 with type SEQUENCE OF
+'enc_PersonnelRecord_children'(?RT_PER:cindex(7,Val1,children))
+end].
+
+'enc_PersonnelRecord_children'({'PersonnelRecord_children',Val}) ->
+'enc_PersonnelRecord_children'(Val);
+
+'enc_PersonnelRecord_children'(Val) ->
+[
+
+ ?RT_PER:encode_length(undefined,length(Val)),
+ 'enc_PersonnelRecord_children_components'(Val, [])
+].
+'enc_PersonnelRecord_children_components'([], Acc) -> lists:reverse(Acc);
+
+'enc_PersonnelRecord_children_components'([H|T], Acc) ->
+'enc_PersonnelRecord_children_components'(T, ['enc_ChildInformation'(H)
+
+ | Acc]).
+
+'dec_PersonnelRecord_children'(Bytes,Telltype) ->
+
+{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),
+'dec_PersonnelRecord_children_components'(Num, Bytes1, Telltype, []).
+'dec_PersonnelRecord_children_components'(0, Bytes, Telltype, Acc) ->
+ {lists:reverse(Acc), Bytes};
+'dec_PersonnelRecord_children_components'(Num, Bytes, Telltype, Acc) ->
+ {Term,Remain} = 'P-Record':'dec_ChildInformation'(Bytes,Telltype),
+ 'dec_PersonnelRecord_children_components'(Num-1, Remain, Telltype, [Term|Acc]).
+
+
+'dec_PersonnelRecord'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,1),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = 'dec_Name'(Bytes1,telltype),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+
+%% attribute number 3 with type INTEGER
+{Term3,Bytes4} = ?RT_PER:decode_integer(Bytes3,[]),
+
+%% attribute number 4 with type VisibleString
+{Term4,Bytes5} = ?RT_PER:decode_VisibleString(Bytes4,[]),
+
+%% attribute number 5 with type Name
+{Term5,Bytes6} = 'dec_Name'(Bytes5,telltype),
+
+%% attribute number 6 with type SEQUENCE OF
+{Term6,Bytes7} = case element(1,Opt) of
+1 ->'dec_PersonnelRecord_children'(Bytes6, Telltype);
+0 ->{[],Bytes6}
+
+end,
+{{'PersonnelRecord',Term1,Term2,Term3,Term4,Term5,Term6},Bytes7}.
+
+'enc_ChildInformation'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{name,1},{dateOfBirth,2}],Val),
+[
+?RT_PER:setoptionals(Opt),
+case ?RT_PER:cindex(2,Val1,name) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 1 with type Externaltypereference15P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name))
+end,
+case ?RT_PER:cindex(3,Val1,dateOfBirth) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,dateOfBirth))
+end].
+
+
+'dec_ChildInformation'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,2),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = case element(1,Opt) of
+1 ->'dec_Name'(Bytes1,telltype);
+0 ->{asn1_NOVALUE,Bytes1}
+
+end,
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = case element(2,Opt) of
+1 ->?RT_PER:decode_VisibleString(Bytes2,[]);
+0 ->{asn1_NOVALUE,Bytes2}
+
+end,
+{{'ChildInformation',Term1,Term2},Bytes3}.
+
+'enc_Name'(Val) ->
+Val1 = ?RT_PER:list_to_record('Name', Val),
+[
+
+%% attribute number 1 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(2,Val1,givenName)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,initial)),
+
+%% attribute number 3 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(4,Val1,familyName))].
+
+
+'dec_Name'(Bytes,Telltype) ->
+
+%% attribute number 1 with type VisibleString
+{Term1,Bytes1} = ?RT_PER:decode_VisibleString(Bytes,[]),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes2} = ?RT_PER:decode_VisibleString(Bytes1,[]),
+
+%% attribute number 3 with type VisibleString
+{Term3,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+{{'Name',Term1,Term2,Term3},Bytes3}.
+
+
+'enc_EmployeeNumber'({'EmployeeNumber',Val}) ->
+'enc_EmployeeNumber'(Val);
+
+'enc_EmployeeNumber'(Val) ->
+?RT_PER:encode_integer([],Val).
+
+
+'dec_EmployeeNumber'(Bytes,Telltype) ->
+?RT_PER:decode_integer(Bytes,[]).
+
+
+'enc_Date'({'Date',Val}) ->
+'enc_Date'(Val);
+
+'enc_Date'(Val) ->
+?RT_PER:encode_VisibleString([],Val).
+
+
+'dec_Date'(Bytes,Telltype) ->
+?RT_PER:decode_VisibleString(Bytes,[]).
+
+'v'() ->
+{'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}.
+
diff --git a/lib/asn1/test/asn1_SUITE_data/P-Record.hrl b/lib/asn1/test/asn1_SUITE_data/P-Record.hrl
new file mode 100644
index 0000000000..92aa1a44e2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-Record.hrl
@@ -0,0 +1,17 @@
+%% Generated by the Erlang ASN.1 compiler version:1.3.1.4
+%% Purpose: Erlang record definitions for each named and unnamed
+%% SEQUENCE and SET, and macro definitions for each value
+%% definition,in module P-Record
+
+
+
+-record('PersonnelRecord',{
+name, title, number, dateOfHire, nameOfSpouse, children = asn1_DEFAULT}).
+
+-record('ChildInformation',{
+name = asn1_NOVALUE, dateOfBirth = asn1_NOVALUE}).
+
+-record('Name',{
+givenName, initial, familyName}).
+
+-define('v', {'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}).
diff --git a/lib/asn1/test/asn1_SUITE_data/P-Record.py b/lib/asn1/test/asn1_SUITE_data/P-Record.py
new file mode 100644
index 0000000000..f1db09ac6c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-Record.py
@@ -0,0 +1,59 @@
+P-Record DEFINITIONS ::=
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] SET
+{ name Name,
+ title VisibleString,
+ number EmployeeNumber,
+ dateOfHire Date,
+ nameOfSpouse [1] Name,
+ children SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET
+{ name Name,
+ dateOfBirth Date
+}
+
+Name ::= [APPLICATION 1] SEQUENCE
+{ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] INTEGER
+Date ::= [APPLICATION 3] VisibleString -- YYYY MMDD
+
+v PersonnelRecord ::=
+{
+ name {
+ givenName "John",
+ initial "P",
+ familyName "Smith"
+ },
+ title "Director",
+ number 51,
+ dateOfHire "19710917",
+ nameOfSpouse {
+ givenName "Mary",
+ initial "T",
+ familyName "Smith"
+ },
+ children {
+ {name {
+ givenName "Ralph",
+ initial "T",
+ familyName "Smith"
+ } ,
+ dateOfBirth "19571111"},
+ {name {
+ givenName "Susan",
+ initial "B",
+ familyName "Jones"
+ } ,
+ dateOfBirth "19590717" }
+ }
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/P-RecordA1.asn b/lib/asn1/test/asn1_SUITE_data/P-RecordA1.asn
new file mode 100644
index 0000000000..33ba690e1e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-RecordA1.asn
@@ -0,0 +1,29 @@
+P-RecordA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString -- YYYYMMDD
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/P-RecordA2.asn b/lib/asn1/test/asn1_SUITE_data/P-RecordA2.asn
new file mode 100644
index 0000000000..50ae419399
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-RecordA2.asn
@@ -0,0 +1,33 @@
+P-RecordA2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/P-RecordA3.asn b/lib/asn1/test/asn1_SUITE_data/P-RecordA3.asn
new file mode 100644
index 0000000000..74023140e4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P-RecordA3.asn
@@ -0,0 +1,40 @@
+P-RecordA3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE (SIZE(2, ...)) OF ChildInformation OPTIONAL,
+ ...
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date,
+ ...,
+ sex [1] IMPLICIT ENUMERATED {
+ male(1),
+ female(2),
+ unknown(3)
+ } OPTIONAL
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString,
+ ...
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER (0..9999, ...)
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8, ..., 9..20)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64, ...))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/P.py b/lib/asn1/test/asn1_SUITE_data/P.py
new file mode 100644
index 0000000000..1431ae07b9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/P.py
@@ -0,0 +1,19 @@
+P DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS P1, P2;
+
+P1 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+
+P2 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL,
+ nr BOOLEAN
+ }
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/PDUs.py b/lib/asn1/test/asn1_SUITE_data/PDUs.py
new file mode 100644
index 0000000000..907348193f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PDUs.py
@@ -0,0 +1,325 @@
+PDUs DEFINITIONS ::=
+
+-- Search for 'org' to find changes for erlang.
+
+-- SnmpMgmtCom and PDUs only for dbg.
+
+
+BEGIN
+EXPORTS SnmpPrivMsg, SnmpAuthMsg, SnmpMgmtCom, PDUs;
+
+-- From RFC 1442
+
+ -- names of objects
+
+ ObjectName ::=
+ OBJECT IDENTIFIER
+
+
+ -- syntax of objects
+
+ ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ applicationWide
+ ApplicationSyntax
+ }
+
+
+ -- built-in ASN.1 types
+
+ SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integerValue
+ INTEGER,
+
+ stringValue
+ OCTET STRING,
+
+ objectIDValue
+ OBJECT IDENTIFIER,
+
+ -- only the enumerated form is allowed
+ bitValue
+ BIT STRING
+ }
+
+
+ -- indistinguishable from INTEGER, but never needs more than
+ -- 32Bits for a two's complement representation
+ Integer32 ::=
+ [UNIVERSAL 2]
+ IMPLICIT INTEGER (-2147483648..2147483647)
+
+
+ -- applicationWide types
+
+ ApplicationSyntax ::=
+ CHOICE {
+ ipAddressValue
+ IpAddress,
+
+ counterValue
+ Counter32,
+
+ gaugeValue
+ Gauge32,
+
+ timeticksValue
+ TimeTicks,
+
+ arbitraryValue
+ Opaque,
+
+ nsapAddressValue
+ NsapAddress,
+
+ bigCounterValue
+ Counter64,
+
+ unsignedIntegerValue
+ UInteger32
+ }
+
+ -- in networkByte order
+ -- (this is a tagged type for historical reasons)
+ IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+
+
+
+
+ -- this wraps
+ Counter32 ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- this doesn't wrap
+ Gauge32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- hundredths of seconds since an epoch
+ TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- for backwardCompatibility only
+ Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+ -- for OSI NSAP addresses
+ -- (this is a tagged type for historical reasons)
+ NsapAddress ::=
+ [APPLICATION 5]
+-- org: IMPLICIT OCTET STRING (SIZE (1 | 4..21))
+ IMPLICIT OCTET STRING
+
+ -- for counters that wrap in less than one hour with only 32 bits
+ Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+ -- an unsigned 32Bit quantity
+ UInteger32 ::=
+ [APPLICATION 7]
+ IMPLICIT INTEGER (0..4294967295)
+
+
+-- From RFC 1445
+
+ SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
+ privDst
+ OBJECT IDENTIFIER,
+ privData
+ [1] IMPLICIT OCTET STRING
+ }
+
+ SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ ANY, -- defined by authentication protocol
+ authData
+ SnmpMgmtCom
+ }
+
+ SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
+ dstParty
+ OBJECT IDENTIFIER,
+ srcParty
+ OBJECT IDENTIFIER,
+ context
+ OBJECT IDENTIFIER,
+ pdu
+ PDUs
+ }
+
+
+-- From RFC 1448
+
+ -- org: no tag at all. we need a tag to test 'PDUs'.
+ PDUs ::= [PRIVATE 1]
+ -- remove tag when 'PDUs' only is used in another type.
+ CHOICE {
+ getRequest
+ GetRequestPdu,
+
+ getNextRequest
+ GetNextRequestPdu,
+
+ getBulkRequest
+ GetBulkRequestPdu,
+
+ response
+ ResponsePdu,
+
+ setRequest
+ SetRequestPdu,
+
+ informRequest
+ InformRequestPdu,
+
+ snmpV2Trap
+ SNMPv2TrapPdu
+ }
+
+ -- PDUs
+
+ GetRequestPdu ::=
+ [0]
+ IMPLICIT PDU
+
+ GetNextRequestPdu ::=
+ [1]
+ IMPLICIT PDU
+
+ ResponsePdu ::=
+ [2]
+ IMPLICIT PDU
+
+ SetRequestPdu ::=
+ [3]
+ IMPLICIT PDU
+
+ -- [4] is obsolete
+
+ GetBulkRequestPdu ::=
+ [5]
+ IMPLICIT BulkPDU
+
+ InformRequestPdu ::=
+ [6]
+ IMPLICIT PDU
+
+ SNMPv2TrapPdu ::=
+ [7]
+ IMPLICIT PDU
+
+
+ maxBindings
+ INTEGER ::= 2147483647
+
+ PDU ::=
+ SEQUENCE {
+ requestId
+ Integer32,
+
+ errorStatus -- sometimes ignored
+ INTEGER {
+ noError(0),
+ tooBig(1),
+ noSuchName(2), -- for proxy compatibility
+ badValue(3), -- for proxy compatibility
+ readOnly(4), -- for proxy compatibility
+ genErr(5),
+ noAccess(6),
+ wrongType(7),
+ wrongLength(8),
+ wrongEncoding(9),
+ wrongValue(10),
+ noCreation(11),
+ inconsistentValue(12),
+ resourceUnavailable(13),
+ commitFailed(14),
+ undoFailed(15),
+ authorizationError(16),
+ notWritable(17),
+ inconsistentName(18)
+ },
+
+ errorIndex -- sometimes ignored
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are sometimes ignored
+ VarBindList
+ }
+
+
+ BulkPDU ::= -- MUST be identical in
+ SEQUENCE { -- structure to PDU
+ requestId
+ Integer32,
+
+ nonRepeaters
+ INTEGER (0..maxBindings),
+
+ maxRepetitions
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are ignored
+ VarBindList
+ }
+
+
+ VarBind ::=
+ SEQUENCE {
+ name
+ ObjectName,
+
+ data CHOICE {
+ value
+ ObjectSyntax,
+
+ unSpecified -- in retrieval requests
+ NULL,
+
+ -- exceptions in responses
+ noSuchObject[0]
+ IMPLICIT NULL,
+
+ noSuchInstance[1]
+ IMPLICIT NULL,
+
+ endOfMibView[2]
+ IMPLICIT NULL
+ }
+ }
+
+
+ -- variableBinding list
+
+ VarBindList ::=
+ SEQUENCE OF VarBind
+
+-- org:
+-- VarBindList ::=
+-- SEQUENCE (SIZE (0..maxBindings)) OF
+-- VarBind
+
+END
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIX1Algorithms88.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIX1Algorithms88.asn1
new file mode 100644
index 0000000000..e78de69b0e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIX1Algorithms88.asn1
@@ -0,0 +1,274 @@
+ PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) }
+
+ DEFINITIONS EXPLICIT TAGS ::= BEGIN
+
+ -- EXPORTS All;
+
+ -- IMPORTS NONE;
+
+ --
+ -- One-way Hash Functions
+ --
+
+ md2 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 2 }
+
+ md5 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 5 }
+
+ id-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) oiw(14) secsig(3)
+ algorithms(2) 26 }
+
+ --
+ -- DSA Keys and Signatures
+ --
+
+ -- OID for DSA public key
+
+ id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+ -- encoding for DSA public key
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- OID for DSA signature generated with SHA-1 hash
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+ -- encoding for DSA signature generated with SHA-1 hash
+
+ Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- arc for RSA public key and RSA signature OIDs
+
+ pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+ -- OID for RSA public keys
+
+ rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+ -- OID for RSA signature generated with MD2 hash
+
+ md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+ -- OID for RSA signature generated with MD5 hash
+
+ md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+ -- OID for RSA signature generated with SHA-1 hash
+
+ sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+ -- encoding for RSA public key
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046)
+ number-type(2) 1 }
+
+ -- encoding for DSA public key
+
+ DHPublicKey ::= INTEGER -- public key, y = g^x mod p
+
+ DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+ --
+ -- KEA Keys
+ --
+
+ id-keyExchangeAlgorithm OBJECT IDENTIFIER ::=
+ { 2 16 840 1 101 2 1 1 22 }
+
+ KEA-Parms-Id ::= OCTET STRING
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ ansi-X9-62 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) 10045 }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY fieldType }
+
+ -- Arc for ECDSA signature OIDS
+
+ id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
+
+ -- OID for ECDSA signatures with SHA-1
+
+ ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
+
+ -- OID for an elliptic curve signature
+ -- format for the value of an ECDSA signature value
+
+ ECDSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ -- recognized field type OIDs are defined in the following arc
+
+ id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1) }
+
+ -- where fieldType is prime-field, the parameters are of type Prime-p
+
+ prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
+
+ Prime-p ::= INTEGER -- Finite field F(p), where p is an odd prime
+
+ -- where fieldType is characteristic-two-field, the parameters are
+ -- of type Characteristic-two
+
+ characteristic-two-field OBJECT IDENTIFIER ::= { id-fieldType 2 }
+
+ Characteristic-two ::= SEQUENCE {
+ m INTEGER, -- Field size 2^m
+ basis OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY basis }
+
+ -- recognized basis type OIDs are defined in the following arc
+
+ id-characteristic-two-basis OBJECT IDENTIFIER ::= {
+ characteristic-two-field basisType(3) }
+
+ -- gnbasis is identified by OID gnBasis and indicates
+ -- parameters are NULL
+
+ gnBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 1 }
+
+ -- parameters for this basis are NULL
+
+ -- trinomial basis is identified by OID tpBasis and indicates
+ -- parameters of type Pentanomial
+
+ tpBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 2 }
+
+ -- Trinomial basis representation of F2^m
+ -- Integer k for reduction polynomial xm + xk + 1
+
+ Trinomial ::= INTEGER
+
+ -- for pentanomial basis is identified by OID ppBasis and indicates
+ -- parameters of type Pentanomial
+
+ ppBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 3 }
+
+ -- Pentanomial basis representation of F2^m
+ -- reduction polynomial integers k1, k2, k3
+ -- f(x) = x**m + x**k3 + x**k2 + x**k1 + 1
+
+ Pentanomial ::= SEQUENCE {
+ k1 INTEGER,
+ k2 INTEGER,
+ k3 INTEGER }
+
+ -- The object identifiers gnBasis, tpBasis and ppBasis name
+ -- three kinds of basis for characteristic-two finite fields
+
+ FieldElement ::= OCTET STRING -- Finite field element
+
+ ECPoint ::= OCTET STRING -- Elliptic curve point
+
+ -- Elliptic Curve parameters may be specified explicitly,
+ -- specified implicitly through a "named curve", or
+ -- inherited from the CA
+
+ EcpkParameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve OBJECT IDENTIFIER,
+ implicitlyCA NULL }
+
+ ECParameters ::= SEQUENCE { -- Elliptic curve parameters
+ version ECPVer,
+ fieldID FieldID,
+ curve Curve,
+ base ECPoint, -- Base point G
+ order INTEGER, -- Order n of the base point
+ cofactor INTEGER OPTIONAL } -- The integer h = #E(Fq)/n
+
+ ECPVer ::= INTEGER {ecpVer1(1)}
+
+ Curve ::= SEQUENCE {
+ a FieldElement, -- Elliptic curve coefficient a
+ b FieldElement, -- Elliptic curve coefficient b
+ seed BIT STRING OPTIONAL }
+
+ id-publicKeyType OBJECT IDENTIFIER ::= { ansi-X9-62 keyType(2) }
+
+ id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
+
+ -- Named Elliptic Curves in ANSI X9.62.
+
+ ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
+
+ c-TwoCurve OBJECT IDENTIFIER ::= {
+ ellipticCurve characteristicTwo(0) }
+
+ c2pnb163v1 OBJECT IDENTIFIER ::= { c-TwoCurve 1 }
+ c2pnb163v2 OBJECT IDENTIFIER ::= { c-TwoCurve 2 }
+ c2pnb163v3 OBJECT IDENTIFIER ::= { c-TwoCurve 3 }
+ c2pnb176w1 OBJECT IDENTIFIER ::= { c-TwoCurve 4 }
+ c2tnb191v1 OBJECT IDENTIFIER ::= { c-TwoCurve 5 }
+ c2tnb191v2 OBJECT IDENTIFIER ::= { c-TwoCurve 6 }
+ c2tnb191v3 OBJECT IDENTIFIER ::= { c-TwoCurve 7 }
+ c2onb191v4 OBJECT IDENTIFIER ::= { c-TwoCurve 8 }
+ c2onb191v5 OBJECT IDENTIFIER ::= { c-TwoCurve 9 }
+ c2pnb208w1 OBJECT IDENTIFIER ::= { c-TwoCurve 10 }
+ c2tnb239v1 OBJECT IDENTIFIER ::= { c-TwoCurve 11 }
+ c2tnb239v2 OBJECT IDENTIFIER ::= { c-TwoCurve 12 }
+ c2tnb239v3 OBJECT IDENTIFIER ::= { c-TwoCurve 13 }
+ c2onb239v4 OBJECT IDENTIFIER ::= { c-TwoCurve 14 }
+ c2onb239v5 OBJECT IDENTIFIER ::= { c-TwoCurve 15 }
+ c2pnb272w1 OBJECT IDENTIFIER ::= { c-TwoCurve 16 }
+ c2pnb304w1 OBJECT IDENTIFIER ::= { c-TwoCurve 17 }
+ c2tnb359v1 OBJECT IDENTIFIER ::= { c-TwoCurve 18 }
+ c2pnb368w1 OBJECT IDENTIFIER ::= { c-TwoCurve 19 }
+ c2tnb431r1 OBJECT IDENTIFIER ::= { c-TwoCurve 20 }
+
+ primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
+
+ prime192v1 OBJECT IDENTIFIER ::= { primeCurve 1 }
+ prime192v2 OBJECT IDENTIFIER ::= { primeCurve 2 }
+ prime192v3 OBJECT IDENTIFIER ::= { primeCurve 3 }
+ prime239v1 OBJECT IDENTIFIER ::= { primeCurve 4 }
+ prime239v2 OBJECT IDENTIFIER ::= { primeCurve 5 }
+ prime239v3 OBJECT IDENTIFIER ::= { primeCurve 6 }
+ prime256v1 OBJECT IDENTIFIER ::= { primeCurve 7 }
+
+ END
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit88.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit88.asn1
new file mode 100644
index 0000000000..7874679a38
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit88.asn1
@@ -0,0 +1,619 @@
+PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+-- IMPORTS NONE --
+
+-- UNIVERSAL Types defined in 1993 and 1998 ASN.1
+-- and required by this specification
+
+-- UniversalString ::= [UNIVERSAL 28] IMPLICIT OCTET STRING
+ -- UniversalString is defined in ASN.1:1993
+
+-- BMPString ::= [UNIVERSAL 30] IMPLICIT OCTET STRING
+ -- BMPString is the subtype of UniversalString and models
+ -- the Basic Multilingual Plane of ISO/IEC/ITU 10646-1
+
+--UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+ -- The content of this type conforms to RFC 2279.
+
+-- PKIX specific OIDs
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for private certificate extensions
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ -- arc for policy qualifier types
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+ -- arc for extended key purpose OIDS
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ -- arc for access descriptors
+
+-- policyQualifierIds for Internet policy qualifiers
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- access descriptor definitions
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 }
+id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 }
+
+-- attribute data types
+
+Attribute ::= SEQUENCE {
+ type AttributeType,
+ values SET OF AttributeValue }
+ -- at least one value is required
+
+AttributeType ::= OBJECT IDENTIFIER
+
+AttributeValue ::= ANY
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type AttributeType,
+ value AttributeValue }
+
+-- suggested naming attributes: Definition of the following
+-- information object set may be augmented to meet local
+-- requirements. Note that deleting members of the set may
+-- prevent interoperability with conforming implementations.
+-- presented in pairs: the AttributeType followed by the
+-- type definition for the corresponding AttributeValue
+--Arc for standard naming attributes
+id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
+
+-- Naming attributes of type X520name
+
+id-at-name AttributeType ::= { id-at 41 }
+id-at-surname AttributeType ::= { id-at 4 }
+id-at-givenName AttributeType ::= { id-at 42 }
+id-at-initials AttributeType ::= { id-at 43 }
+id-at-generationQualifier AttributeType ::= { id-at 44 }
+
+X520name ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-name)),
+ printableString PrintableString (SIZE (1..ub-name)),
+ universalString UniversalString (SIZE (1..ub-name)),
+ utf8String UTF8String (SIZE (1..ub-name)),
+ bmpString BMPString (SIZE (1..ub-name)) }
+
+-- Naming attributes of type X520CommonName
+
+id-at-commonName AttributeType ::= { id-at 3 }
+
+X520CommonName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-common-name)),
+ printableString PrintableString (SIZE (1..ub-common-name)),
+ universalString UniversalString (SIZE (1..ub-common-name)),
+ utf8String UTF8String (SIZE (1..ub-common-name)),
+ bmpString BMPString (SIZE (1..ub-common-name)) }
+
+-- Naming attributes of type X520LocalityName
+
+id-at-localityName AttributeType ::= { id-at 7 }
+
+X520LocalityName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-locality-name)),
+ printableString PrintableString (SIZE (1..ub-locality-name)),
+ universalString UniversalString (SIZE (1..ub-locality-name)),
+ utf8String UTF8String (SIZE (1..ub-locality-name)),
+ bmpString BMPString (SIZE (1..ub-locality-name)) }
+
+-- Naming attributes of type X520StateOrProvinceName
+
+id-at-stateOrProvinceName AttributeType ::= { id-at 8 }
+
+X520StateOrProvinceName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-state-name)),
+ printableString PrintableString (SIZE (1..ub-state-name)),
+ universalString UniversalString (SIZE (1..ub-state-name)),
+ utf8String UTF8String (SIZE (1..ub-state-name)),
+ bmpString BMPString (SIZE(1..ub-state-name)) }
+
+-- Naming attributes of type X520OrganizationName
+
+id-at-organizationName AttributeType ::= { id-at 10 }
+
+X520OrganizationName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organization-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organization-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organization-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organization-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organization-name)) }
+
+-- Naming attributes of type X520OrganizationalUnitName
+
+id-at-organizationalUnitName AttributeType ::= { id-at 11 }
+
+X520OrganizationalUnitName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organizational-unit-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organizational-unit-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organizational-unit-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organizational-unit-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organizational-unit-name)) }
+
+-- Naming attributes of type X520Title
+
+id-at-title AttributeType ::= { id-at 12 }
+
+X520Title ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-title)),
+ printableString PrintableString (SIZE (1..ub-title)),
+ universalString UniversalString (SIZE (1..ub-title)),
+ utf8String UTF8String (SIZE (1..ub-title)),
+ bmpString BMPString (SIZE (1..ub-title)) }
+
+-- Naming attributes of type X520dnQualifier
+
+id-at-dnQualifier AttributeType ::= { id-at 46 }
+
+X520dnQualifier ::= PrintableString
+
+-- Naming attributes of type X520countryName (digraph from IS 3166)
+
+id-at-countryName AttributeType ::= { id-at 6 }
+
+X520countryName ::= PrintableString (SIZE (2))
+
+-- Naming attributes of type X520SerialNumber
+
+id-at-serialNumber AttributeType ::= { id-at 5 }
+
+X520SerialNumber ::= PrintableString (SIZE (1..ub-serial-number))
+
+-- Naming attributes of type X520Pseudonym
+
+id-at-pseudonym AttributeType ::= { id-at 65 }
+
+X520Pseudonym ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-pseudonym)),
+ printableString PrintableString (SIZE (1..ub-pseudonym)),
+ universalString UniversalString (SIZE (1..ub-pseudonym)),
+ utf8String UTF8String (SIZE (1..ub-pseudonym)),
+ bmpString BMPString (SIZE (1..ub-pseudonym)) }
+
+-- Naming attributes of type DomainComponent (from RFC 2247)
+
+id-domainComponent AttributeType ::=
+ { 0 9 2342 19200300 100 1 25 }
+
+DomainComponent ::= IA5String
+
+-- Legacy attributes
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+id-emailAddress AttributeType ::= { pkcs-9 1 }
+
+EmailAddress ::= IA5String (SIZE (1..ub-emailaddress-length))
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+-- Directory string type --
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+-- certificate and CRL specific structures begin here
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+UniqueIdentifier ::= BIT STRING
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING }
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+-- CRL structures
+
+CertificateList ::= SEQUENCE {
+ tbsCertList TBSCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertList ::= SEQUENCE {
+ version Version OPTIONAL,
+ -- if present, MUST be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, MUST be v2
+ } OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL }
+ -- if present, MUST be v2
+
+-- Version, Time, CertificateSerialNumber, and Extensions were
+-- defined earlier for use in the certificate structure
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+ -- contains a value of the type
+ -- registered for use with the
+ -- algorithm object identifier value
+
+-- X.400 address syntax starts here
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] IMPLICIT NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] IMPLICIT OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
+ OPTIONAL,
+ personal-name [5] IMPLICIT PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
+ OPTIONAL }
+ -- see also teletex-organizational-unit-names
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address -- see also extended-network-address
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE
+(1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+ -- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] IMPLICIT PrintableString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT PrintableString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+ -- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+ -- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
+ ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] IMPLICIT INTEGER
+ (0..ub-extension-attributes),
+ extension-attribute-value [1]
+ ANY DEFINED BY extension-attribute-type }
+
+-- Extension types and attribute values
+
+common-name INTEGER ::= 1
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name INTEGER ::= 2
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name INTEGER ::= 3
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name INTEGER ::= 4
+
+TeletexPersonalName ::= SET {
+ surname [0] IMPLICIT TeletexString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT TeletexString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT TeletexString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+
+teletex-organizational-unit-names INTEGER ::= 5
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name INTEGER ::= 7
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name INTEGER ::= 8
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE
+(ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code INTEGER ::= 9
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name INTEGER ::= 10
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number INTEGER ::= 11
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components INTEGER ::= 12
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name INTEGER ::= 13
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name INTEGER ::= 14
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components INTEGER ::= 15
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address INTEGER ::= 16
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
+ OF PrintableString (SIZE (1..ub-pds-parameter-length))
+ OPTIONAL,
+ teletex-string TeletexString
+ (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address INTEGER ::= 17
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address INTEGER ::= 18
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address INTEGER ::= 19
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name INTEGER ::= 20
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes INTEGER ::= 21
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address INTEGER ::= 22
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL },
+ psap-address [0] IMPLICIT PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
+
+terminal-type INTEGER ::= 23
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes INTEGER ::= 6
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds MUST be regarded as mandatory
+-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
+-- Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-serial-number INTEGER ::= 64
+ub-match INTEGER ::= 128
+ub-emailaddress-length INTEGER ::= 128
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-pseudonym INTEGER ::= 128
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on string types, such as TeletexString, are
+-- measured in characters. Excepting PrintableString or IA5String, a
+-- significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified
+-- upper bound, whichever is the larger, should be allowed for
+-- TeletexString. For UTF8String or UniversalString at least four
+-- times the upper bound should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit93.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit93.asn1
new file mode 100644
index 0000000000..714a682160
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIX1Explicit93.asn1
@@ -0,0 +1,779 @@
+PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ authorityKeyIdentifier, subjectKeyIdentifier, keyUsage,
+ extendedKeyUsage, privateKeyUsagePeriod, certificatePolicies,
+ policyMappings, subjectAltName, issuerAltName,
+ basicConstraints, nameConstraints, policyConstraints,
+ cRLDistributionPoints, subjectDirectoryAttributes,
+ cRLNumber, reasonCode, instructionCode, invalidityDate,
+ issuingDistributionPoint, certificateIssuer,
+ deltaCRLIndicator, authorityInfoAccess, id-ce
+ FROM PKIX1Implicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-implicit-93(4)} ;
+
+--
+ -- Locally defined OIDs --
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+-- arc for private certificate extensions
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for policy qualifier types
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+-- arc for extended key purpose OIDS
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+-- arc for access descriptors
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+
+-- policyQualifierIds for Internet policy qualifiers
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- based on excerpts from AuthenticationFramework
+-- {joint-iso-ccitt ds(5) modules(1) authenticationFramework(7) 2}
+
+ -- Public Key Certificate --
+
+Certificate ::= SIGNED { SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ extensions [3] Extensions OPTIONAL
+ --if present, version shall be v3--} }
+
+UniqueIdentifier ::= BIT STRING
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+SubjectPublicKeyInfo ::= SEQUENCE{
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING}
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal certificate extensions.
+
+ExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier |
+ keyUsage |
+ extendedKeyUsage |
+ privateKeyUsagePeriod |
+ certificatePolicies |
+ policyMappings |
+ subjectAltName |
+ issuerAltName |
+ basicConstraints |
+ nameConstraints |
+ policyConstraints |
+ cRLDistributionPoints |
+ subjectDirectoryAttributes |
+ authorityInfoAccess }
+
+EXTENSION ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType }
+WITH SYNTAX {
+ SYNTAX &ExtnType
+ IDENTIFIED BY &id }
+
+ -- Certificate Revocation List --
+
+CertificateList ::= SIGNED { SEQUENCE {
+ version Version OPTIONAL, -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions EntryExtensions OPTIONAL } OPTIONAL,
+ crlExtensions [0] CRLExtensions OPTIONAL }}
+
+CRLExtensions ::= SEQUENCE SIZE (1..MAX) OF CRLExtension
+
+CRLExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({CRLExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL extensions.
+
+CRLExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ issuerAltName |
+ cRLNumber |
+ deltaCRLIndicator |
+ issuingDistributionPoint }
+
+-- EXTENSION defined above for certificates
+
+EntryExtensions ::= SEQUENCE SIZE (1..MAX) OF EntryExtension
+
+EntryExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({EntryExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL entry extensions.
+
+EntryExtensionSet EXTENSION ::= { reasonCode |
+ instructionCode |
+ invalidityDate |
+ certificateIssuer }
+
+ -- information object classes used in the defintion --
+ -- of certificates and CRLs --
+
+-- Parameterized Type SIGNED --
+
+ SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+-- Definition of AlgorithmIdentifier
+-- ISO definition was:
+--
+-- AlgorithmIdentifier ::= SEQUENCE {
+-- algorithm ALGORITHM.&id({SupportedAlgorithms}),
+-- parameters ALGORITHM.&Type({SupportedAlgorithms}
+-- { @algorithm}) OPTIONAL }
+-- Definition of ALGORITHM
+-- ALGORITHM ::= TYPE-IDENTIFIER
+
+-- The following PKIX definition replaces the X.509 definition
+--
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM-ID.&id({SupportedAlgorithms}),
+ parameters ALGORITHM-ID.&Type({SupportedAlgorithms}
+ { @algorithm}) OPTIONAL }
+
+-- Definition of ALGORITHM-ID
+
+ ALGORITHM-ID ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL
+ }
+ WITH SYNTAX { OID &id [PARMS &Type] }
+
+-- The definition of SupportedAlgorithms may be modified as this
+-- document does not specify a mandatory algorithm set. In addition,
+-- the set is specified as extensible, since additional algorithms
+-- may be supported
+
+SupportedAlgorithms ALGORITHM-ID ::= { ..., -- extensible
+ rsaPublicKey |
+ rsaSHA-1 |
+ rsaMD5 |
+ rsaMD2 |
+ dssPublicKey |
+ dsaSHA-1 |
+ dhPublicKey }
+
+-- OIDs and parameter structures for ALGORITHM-IDs used
+-- in this specification
+
+rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }
+
+rsaSHA-1 ALGORITHM-ID ::= { OID sha1WithRSAEncryption PARMS NULL }
+
+rsaMD5 ALGORITHM-ID ::= { OID md5WithRSAEncryption PARMS NULL }
+
+rsaMD2 ALGORITHM-ID ::= { OID md2WithRSAEncryption PARMS NULL }
+
+dssPublicKey ALGORITHM-ID ::= { OID id-dsa PARMS Dss-Parms }
+
+dsaSHA-1 ALGORITHM-ID ::= { OID id-dsa-with-sha1 }
+
+dhPublicKey ALGORITHM-ID ::= {OID dhpublicnumber PARMS DomainParameters}
+
+-- algorithm identifiers and parameter structures
+
+pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
+
+DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- The ASN.1 in this section supports the Name type
+ -- and the directoryAttribute extension
+
+-- attribute data types --
+
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type
+ ({SupportedAttributes}{@type})}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ value ATTRIBUTE.&Type ({SupportedAttributes}{@type})}
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+ID ::= OBJECT IDENTIFIER
+
+-- ATTRIBUTE information object class specification
+-- Note: This has been greatly simplified for PKIX !!
+
+ATTRIBUTE ::= CLASS {
+ &Type,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ WITH SYNTAX &Type ID &id }
+
+-- suggested naming attributes
+-- Definition of the following information object set may be
+-- augmented to meet local requirements. Note that deleting
+-- members of the set may prevent interoperability with
+-- conforming implementations.
+
+SupportedAttributes ATTRIBUTE ::= {
+ name | commonName | surname | givenName | initials |
+ generationQualifier | dnQualifier | countryName |
+ localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | pkcs9email }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString { ub-name }
+ ID id-at-name }
+
+commonName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName }
+
+surname ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName }
+
+initials ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials }
+
+generationQualifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier}
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ ID id-at-dnQualifier }
+
+
+countryName ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString (SIZE (2))
+ -- IS 3166 codes only
+ ID id-at-countryName }
+
+localityName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName }
+
+stateOrProvinceName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName }
+
+organizationName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName }
+
+organizationalUnitName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName }
+
+title ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title }
+
+ -- Legacy attributes
+
+pkcs9email ATTRIBUTE ::= {
+ WITH SYNTAX PHGString
+ ID emailAddress }
+
+PHGString ::= IA5String (SIZE(1..ub-emailaddress-length))
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+emailAddress OBJECT IDENTIFIER ::= { pkcs-9 1 }
+
+ -- object identifiers for Name type and directory attribute support
+
+-- Object identifier assignments --
+
+id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
+
+-- Attributes --
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+-- Directory string type, used extensively in Name types --
+
+DirectoryString { INTEGER:maxSize } ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE(1..maxSize)),
+ utf8String UTF8String (SIZE(1..maxSize))
+ }
+
+ -- End of ASN.1 for Name type and directory attribute support --
+
+ -- The ASN.1 in this section supports X.400 style names --
+ -- for implementations that use the x400Address component --
+ -- of GeneralName. --
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- The OR-address is semantically absent from the OR-name if the
+-- built-in-standard-attribute sequence is empty and the
+-- built-in-domain-defined-attributes and extension-attributes are
+-- both omitted.
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names -- }
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address
+-- see also extended-network-address
+
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+-- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString (SIZE (1..ub-surname-length)),
+ given-name [1] PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] PrintableString
+ (SIZE (1..ub-generation-qualifier-length)) OPTIONAL}
+-- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+-- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes)
+ OF ExtensionAttribute
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
+ ({ExtensionAttributeTable}),
+ extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable} {@extension-attribute-type}) }
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER (0..ub-extension-attributes) UNIQUE,
+ &Type }
+WITH SYNTAX {&Type IDENTIFIED BY &id}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= {
+ common-name |
+ teletex-common-name |
+ teletex-organization-name |
+ teletex-personal-name |
+ teletex-organizational-unit-names |
+ teletex-domain-defined-attributes |
+ pds-name |
+ physical-delivery-country-name |
+ postal-code |
+ physical-delivery-office-name |
+ physical-delivery-office-number |
+ extension-OR-address-components |
+ physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ unformatted-postal-address |
+ street-address |
+ post-office-box-address |
+ poste-restante-address |
+ unique-postal-name |
+ local-postal-attributes |
+ extended-network-address |
+ terminal-type }
+
+-- Extension Standard Attributes
+
+common-name EXTENSION-ATTRIBUTE ::= {CommonName IDENTIFIED BY 1}
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::=
+ {TeletexCommonName IDENTIFIED BY 2}
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationName IDENTIFIED BY 3}
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::=
+ {TeletexPersonalName IDENTIFIED BY 4}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString (SIZE (1..ub-surname-length)),
+ given-name [1] TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] TeletexString (SIZE
+ (1..ub-generation-qualifier-length)) OPTIONAL }
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationalUnitNames IDENTIFIED BY 5}
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName IDENTIFIED BY 7}
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryCountryName IDENTIFIED BY 8}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode IDENTIFIED BY 9}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeName IDENTIFIED BY 10}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeNumber IDENTIFIED BY 11}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionORAddressComponents IDENTIFIED BY 12}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryPersonalName IDENTIFIED BY 13}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOrganizationName IDENTIFIED BY 14}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionPhysicalDeliveryAddressComponents IDENTIFIED BY 15}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::=
+ {UnformattedPostalAddress IDENTIFIED BY 16}
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString (SIZE
+ (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address EXTENSION-ATTRIBUTE ::=
+ {StreetAddress IDENTIFIED BY 17}
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::=
+ {PostOfficeBoxAddress IDENTIFIED BY 18}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::=
+ {PosteRestanteAddress IDENTIFIED BY 19}
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::=
+ {UniquePostalName IDENTIFIED BY 20}
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::=
+ {LocalPostalAttributes IDENTIFIED BY 21}
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address EXTENSION-ATTRIBUTE ::=
+ {ExtendedNetworkAddress IDENTIFIED BY 22}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] NumericString
+ (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL},
+ psap-address [0] PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING}
+
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::=
+ {TeletexDomainDefinedAttributes IDENTIFIED BY 6}
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds
+-- shall be regarded as mandatory
+-- from Annex B of ITU-T X.411
+-- Reference Definition of MTS Parameter Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-match INTEGER ::= 128
+
+ub-emailaddress-length INTEGER ::= 128
+
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on TeletexString are measured in characters.
+-- A significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified upper
+-- bound, whichever is the larger, should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit88.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit88.asn1
new file mode 100644
index 0000000000..47362e9061
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit88.asn1
@@ -0,0 +1,349 @@
+PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-kp, id-qt-unotice, id-qt-cps,
+ -- delete following line if "new" types are supported --
+ -- BMPString,
+ -- UTF8String, end "new" types
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, Attribute, DirectoryString
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit(18) };
+
+
+-- ISO arc for standard certificate and CRL extensions
+
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+-- authority key identifier OID and syntax
+
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ -- authorityCertIssuer and authorityCertSerialNumber MUST both
+ -- be present or both be absent
+
+KeyIdentifier ::= OCTET STRING
+
+-- subject key identifier OID and syntax
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+-- key usage extension OID and syntax
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+-- private key usage period extension OID and syntax
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ -- either notBefore or notAfter MUST be present
+
+-- certificate policies extension OID and syntax
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
+
+anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
+
+CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+-- Implementations that recognize additional policy qualifiers MUST
+-- augment the following definition for PolicyQualifierId
+
+PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+-- CPS pointer qualifier
+
+CPSuri ::= IA5String
+
+-- user notice qualifier
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+-- policy mapping extension OID and syntax
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
+
+PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- subject alternative name extension OID and syntax
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
+
+SubjectAltName ::= GeneralNames
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] AnotherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
+-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
+
+AnotherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+-- issuer alternative name extension OID and syntax
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
+
+IssuerAltName ::= GeneralNames
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
+
+SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- basic constraints extension OID and syntax
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
+
+BasicConstraints ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+-- name constraints extension OID and syntax
+
+id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
+
+NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+-- policy constraints extension OID and syntax
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
+
+PolicyConstraints ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- CRL distribution points extension OID and syntax
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ privilegeWithdrawn (7),
+ aACompromise (8) }
+
+-- extended key usage extension OID and syntax
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- permit unspecified key uses
+
+anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
+
+-- extended key purpose OIDs
+
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
+
+-- inhibit any policy OID and syntax
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
+
+InhibitAnyPolicy ::= SkipCerts
+
+-- freshest (delta)CRL extension OID and syntax
+
+id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
+
+FreshestCRL ::= CRLDistributionPoints
+
+-- authority info access
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+-- subject info access
+
+id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
+
+SubjectInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+-- CRL number extension OID and syntax
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+-- issuing distribution point extension OID and syntax
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
+
+IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
+
+BaseCRLNumber ::= CRLNumber
+
+-- CRL reasons extension OID and syntax
+
+id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10) }
+
+-- certificate issuer CRL entry extension OID and syntax
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
+
+CertificateIssuer ::= GeneralNames
+
+-- hold instruction extension OID and syntax
+
+id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
+
+HoldInstructionCode ::= OBJECT IDENTIFIER
+
+-- ANSI x9 holdinstructions
+
+-- ANSI x9 arc holdinstruction arc
+
+holdInstruction OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+
+id-holdinstruction-none OBJECT IDENTIFIER ::=
+ {holdInstruction 1} -- deprecated
+
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
+ {holdInstruction 2}
+
+id-holdinstruction-reject OBJECT IDENTIFIER ::=
+ {holdInstruction 3}
+
+-- invalidity date CRL entry extension OID and syntax
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
+
+InvalidityDate ::= GeneralizedTime
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit93.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit93.asn1
new file mode 100644
index 0000000000..c90b5eb199
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIX1Implicit93.asn1
@@ -0,0 +1,357 @@
+PKIX1Implicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit-93(4)}
+
+DEFINITIONS IMPLICIT TAGS::=
+
+BEGIN
+
+--EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-qt, id-kp, id-ad, id-qt-unotice,
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, CertificateList,
+ AlgorithmIdentifier, ub-name, DirectoryString,
+ Attribute, EXTENSION
+ FROM PKIX1Explicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit-93(3)};
+
+-- Key and policy information extensions --
+
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ ( WITH COMPONENTS {..., authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT} |
+ WITH COMPONENTS {..., authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT} )
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {
+ SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+extendedKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage }
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- PKIX-defined extended key purpose OIDs
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-ipsecEndSystem OBJECT IDENTIFIER ::= { id-kp 5 }
+id-kp-ipsecTunnel OBJECT IDENTIFIER ::= { id-kp 6 }
+id-kp-ipsecUser OBJECT IDENTIFIER ::= { id-kp 7 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY { id-ce-privateKeyUsagePeriod } }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ ( WITH COMPONENTS {..., notBefore PRESENT} |
+ WITH COMPONENTS {..., notAfter PRESENT} )
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies }
+
+CertificatePoliciesSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id
+ ({SupportedPolicyQualifiers}),
+ qualifier CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}
+ {@policyQualifierId})OPTIONAL }
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::= { noticeToUser |
+ pointerToCPS }
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL }
+WITH SYNTAX {
+ POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier] }
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings }
+
+PolicyMappingsSyntax ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- Certificate subject and certificate issuer attributes extensions --
+
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName }
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString {ub-name} OPTIONAL,
+ partyName [1] DirectoryString {ub-name} }
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName }
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes }
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions --
+
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints }
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraints }
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints }
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- Basic CRL extensions --
+
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8) }
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode }
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+-- holdinstructions described in this specification, from ANSI x9
+
+-- ANSI x9 arc holdinstruction arc
+holdInstruction OBJECT IDENTIFIER ::= {
+ joint-iso-ccitt(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+id-holdinstruction-none OBJECT IDENTIFIER ::= {holdInstruction 1}
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::= {holdInstruction 2}
+id-holdinstruction-reject OBJECT IDENTIFIER ::= {holdInstruction 3}
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate }
+
+-- CRL distribution points and delta-CRL extensions --
+
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints }
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ caCompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6) }
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint }
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE }
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer }
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator }
+
+BaseCRLNumber ::= CRLNumber
+
+-- Object identifier assignments for ISO certificate extensions --
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+id-ce-nameConstraints OBJECT IDENTIFIER ::= {id-ce 30}
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 35}
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+-- PKIX 1 extensions
+
+authorityInfoAccess EXTENSION ::= {
+ SYNTAX AuthorityInfoAccessSyntax
+ IDENTIFIED BY id-pe-authorityInfoAccess }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+
+-- PKIX policy qualifier definitions
+
+noticeToUser CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-cps QUALIFIER-TYPE CPSuri}
+
+pointerToCPS CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-unotice QUALIFIER-TYPE UserNotice}
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+
+CPSuri ::= IA5String
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PKIXAttributeCertificate.asn1 b/lib/asn1/test/asn1_SUITE_data/PKIXAttributeCertificate.asn1
new file mode 100644
index 0000000000..2d0997fdfc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PKIXAttributeCertificate.asn1
@@ -0,0 +1,189 @@
+ PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-attribute-cert(12)}
+
+ DEFINITIONS IMPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
+ -- PKIX Certificate Extensions
+ Attribute, AlgorithmIdentifier, CertificateSerialNumber,
+ Extensions, UniqueIdentifier,
+ id-pkix, id-pe, id-kp, id-ad, id-at
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
+
+ GeneralName, GeneralNames, id-ce
+ FROM PKIX1Implicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
+
+ id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
+ id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
+ id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
+ id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
+
+ id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
+ id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
+ id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
+ id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
+ id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
+ -- { id-aca 5 } is reserved
+ id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
+
+ id-at-role OBJECT IDENTIFIER ::= { id-at 72}
+ id-at-clearance OBJECT IDENTIFIER ::=
+ { joint-iso-ccitt(2) ds(5) module(1)
+ selected-attribute-types(5) clearance (55) }
+
+ -- Uncomment this if using a 1988 level ASN.1 compiler
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+
+ AttributeCertificate ::= SEQUENCE {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+ AttributeCertificateInfo ::= SEQUENCE {
+ version AttCertVersion, -- version is v2
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= INTEGER { v2(1) }
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the
+ -- holder, for example, an executable
+ }
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- MUST NOT be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+ V2Form ::= SEQUENCE {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST
+ -- NOT be present in this profile
+ }
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+ }
+
+ AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+ IetfAttrSyntax ::= SEQUENCE {
+ policyAuthority[0] GeneralNames OPTIONAL,
+ values SEQUENCE OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+ SvceAuthInfo ::= SEQUENCE {
+ service GeneralName,
+ ident GeneralName,
+ authInfo OCTET STRING OPTIONAL
+ }
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+ Clearance ::= SEQUENCE {
+ policyId [0] OBJECT IDENTIFIER,
+ classList [1] ClassList DEFAULT {unclassified},
+ securityCategories
+ [2] SET OF SecurityCategory OPTIONAL
+ }
+
+ ClassList ::= BIT STRING {
+ unmarked (0),
+ unclassified (1),
+ restricted (2),
+ confidential (3),
+ secret (4),
+ topSecret (5)
+ }
+
+ SecurityCategory ::= SEQUENCE {
+ type [0] IMPLICIT OBJECT IDENTIFIER,
+ value [1] ANY DEFINED BY type
+ }
+
+ AAControls ::= SEQUENCE {
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL,
+ permittedAttrs [0] AttrSpec OPTIONAL,
+ excludedAttrs [1] AttrSpec OPTIONAL,
+ permitUnSpecified BOOLEAN DEFAULT TRUE
+ }
+
+ AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
+
+ ACClearAttrs ::= SEQUENCE {
+ acIssuer GeneralName,
+ acSerial INTEGER,
+ attrs SEQUENCE OF Attribute
+ }
+
+ ProxyInfo ::= SEQUENCE OF Targets
+
+ END
diff --git a/lib/asn1/test/asn1_SUITE_data/Param.asn1 b/lib/asn1/test/asn1_SUITE_data/Param.asn1
new file mode 100644
index 0000000000..b2987a7885
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Param.asn1
@@ -0,0 +1,93 @@
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+Param -- { object identifier to be allocated }--
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- A
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+RANAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..10)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+obj1 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-one
+ CRITICALITY ignore
+ EXTENSION INTEGER
+ PRESENCE optional
+}
+
+obj2 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-two
+ CRITICALITY ignore
+ EXTENSION BOOLEAN
+ PRESENCE optional
+}
+
+id-one INTEGER ::= 1
+id-two INTEGER ::= 2
+
+-- The following code for test of OTP-4242, ValueFromObject
+-- Similar use as in the Camel spec
+
+CONFIG-DATA ::= CLASS {
+ &minLevel INTEGER,
+ &maxLevel INTEGER
+}
+WITH SYNTAX {
+ MINLEVEL &minLevel
+ MAXLEVEL &maxLevel
+}
+
+config-data CONFIG-DATA ::= {MINLEVEL 1 MAXLEVEL 3}
+
+OS1 ::= OCTET STRING (SIZE (config-data.&minLevel .. config-data.&maxLevel))
+
+POS2 {CONFIG-DATA:obj} ::= OCTET STRING (SIZE(obj.&minLevel .. obj.&maxLevel))
+
+OS2 ::= POS2 {config-data}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1 b/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
new file mode 100644
index 0000000000..491bdf8956
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
@@ -0,0 +1,23 @@
+ParamBasic DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+General1{T,T:val} ::= SEQUENCE {
+ number INTEGER,
+ string T DEFAULT val
+}
+
+T11 ::= General1{PrintableString,"hej"}
+
+T12 ::= General1{BIT STRING,'1010'B}
+
+General2{T} ::= SEQUENCE {
+ number INTEGER,
+ string T
+}
+
+T21 ::= General2{PrintableString}
+
+T22 ::= General2{BIT STRING}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn b/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn
new file mode 100644
index 0000000000..aad3c4d833
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn
@@ -0,0 +1,19 @@
+PartialDecMyHTTP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+GetRequest ::= SEQUENCE {
+ header-only BOOLEAN,
+ lock BOOLEAN,
+ accept-types AcceptTypes,
+ url Url, ...
+}
+
+AcceptTypes ::= SET {
+ standards BIT STRING {html(0), plain-text(1), gif(2), jpeg(3)} (SIZE (4)) OPTIONAL,
+ others SEQUENCE OF VisibleString (SIZE (4)) OPTIONAL
+}
+
+Url ::= VisibleString (FROM ("a".."z"|"A".."Z"|"0".."9"| "./-_~%#"))
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn1config b/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn1config
new file mode 100644
index 0000000000..bafd7f46ac
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecMyHTTP.asn1config
@@ -0,0 +1,3 @@
+{exclusive_decode,{'PartialDecMyHTTP',
+ [{decode_GetRequest_incomplete,
+ ['GetRequest',[{'accept-types',[{others,parts}]}]]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn
new file mode 100644
index 0000000000..17844f12b9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn
@@ -0,0 +1,34 @@
+PartialDecSeq DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b [0] B DEFAULT {a 12, b TRUE}
+}
+
+C ::= [11] EXPLICIT D
+B ::= [12] C
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+F ::= CHOICE {
+ fa INTEGER,
+ fb E --161
+}
+
+E ::= SEQUENCE {
+ a INTEGER, -- matched
+ b SEQUENCE OF D, -- matched value of component a of first D in E_b
+ c BOOLEAN OPTIONAL,
+ d CHOICE {
+ da SEQUENCE OF A,
+ db INTEGER,
+ dc [3] SET {dca INTEGER,dcb BOOLEAN, dcc SEQUENCE{dcca INTEGER,dccb INTEGER}}
+ }
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn1config b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn1config
new file mode 100644
index 0000000000..19fa3c990e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq.asn1config
@@ -0,0 +1,22 @@
+{selective_decode,{'PartialDecSeq',
+ [{selected_decode_F1,['F',fb,b,[1],a]},
+ {selected_decode_F2,['F',fb,b]},
+ {selected_decode_F3,['F',fb,b,[1]]},
+ {selected_decode_F4,['F',fb,d,da,[1],b,a]},
+ {selected_decode_E1,['E',d,dc,dcc,dcca]}]}}.
+%% partial_incomplete_decode tuplen inneh�ller tv� element. Den
+%% f�rsta �r bara en nyckel den andra �r en tupel med modulnamnet i
+%% en tupel {module,Name} och det andra elementet �r en lista av tupler:
+%% D�r varje tupel beskriver en partiell ofullst�ndig dekod. F�rsta
+%% elementet i den tupeln �r namnet p� funktionen som ska g�ra den
+%% partiella dekodningen. Det andra elementet �r en lista av typnamn/
+%% komponentnamn som �r en sekvens (path) till de element som ej skall
+%% avkodas.
+{exclusive_decode,{'PartialDecSeq',
+ [{decode_F_fb_incomplete,['F',[{fb,[{b,parts},{d,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]},
+ {decode_F_fb_exclusive2,['F',[{fb,[{b,parts},{d,[{da,parts}]}]}]]}, {decode_F_fb_exclusive3,['F',[{fb,[{b,parts},{d,[{da,parts},{dc,[{dcc,undecoded}]}]}]}]]}]}}.
+{module_name,'Seq.asn1'}.
+{compile_options,[ber_bin,optimize,debug_info]}.
+{multifile_compile,['M1.asn','M2.asn']}.
+
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn
new file mode 100644
index 0000000000..2e77d250d2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn
@@ -0,0 +1,29 @@
+PartialDecSeq2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+B ::= CHOICE {
+ a INTEGER,
+ b SEQUENCE {aa INTEGER, ba INTEGER},
+ c S
+}
+
+S ::= SEQUENCE {
+ a BOOLEAN,
+ b BOOLEAN
+}
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b B DEFAULT b:{aa 13, ba 14},
+ c CHOICE {a INTEGER,b SEQUENCE{a BOOLEAN, b BOOLEAN}} DEFAULT b:{a TRUE, b FALSE}
+}
+
+C ::= D
+
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn1config b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn1config
new file mode 100644
index 0000000000..d9967d9958
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq2.asn1config
@@ -0,0 +1,4 @@
+%{partial_decode,{{module,'Seq2'},['F',fb,b,[1],a]}}.
+{exclusive_decode,{'PartialDecSeq2',
+ [{decode_A_c_b_incomplete,['A',[{c,[{a,undecoded},{b,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn
new file mode 100644
index 0000000000..3b530733ef
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn
@@ -0,0 +1,45 @@
+PartialDecSeq3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+S1 ::= SEQUENCE {
+ a INTEGER,
+ b S2 OPTIONAL,
+ c C1,
+ d SO1
+}
+
+S2 ::= SEQUENCE {
+ a BOOLEAN,
+ b INTEGER,
+ c SEQUENCE OF S3,
+ ...
+}
+
+C1 ::= CHOICE {
+ a SEQUENCE OF S3,
+ b SEQUENCE {a INTEGER, b BOOLEAN, c S4}
+}
+
+S3 ::= SEQUENCE {
+ first INTEGER,
+ second PrintableString,
+ third OCTET STRING (SIZE(2..100)),
+ fourth BIT STRING {one(0),two(1),three(2),four(3),five(4),six(5)}(SIZE(1..6)),
+ ...
+}
+
+S4 ::= SET {
+ name Name,
+ title VisibleString
+}
+
+Name ::= SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+SO1 ::= SEQUENCE (SIZE(2..6)) OF Name
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn1config b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn1config
new file mode 100644
index 0000000000..44d22aa1d4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PartialDecSeq3.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'PartialDecSeq3',
+ [{decode_S1_incomplete,['S1',[{b,[{c,parts}]},{c,[{a,parts}]},{d,parts}]]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/Pattern.asn b/lib/asn1/test/asn1_SUITE_data/Pattern.asn
new file mode 100644
index 0000000000..730b4ba32a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Pattern.asn
@@ -0,0 +1,8 @@
+Pattern DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYY-HH:MM
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/Person.py b/lib/asn1/test/asn1_SUITE_data/Person.py
new file mode 100644
index 0000000000..60c1e06391
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Person.py
@@ -0,0 +1,10 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Prim.asn1 b/lib/asn1/test/asn1_SUITE_data/Prim.asn1
new file mode 100644
index 0000000000..1a905988f5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Prim.asn1
@@ -0,0 +1,32 @@
+Prim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bool ::= BOOLEAN
+ BoolCon ::= [20] BOOLEAN
+ BoolPri ::= [PRIVATE 21] BOOLEAN
+ BoolApp ::= [APPLICATION 22] BOOLEAN
+ BoolExpCon ::= [30] EXPLICIT BOOLEAN
+ BoolExpPri ::= [PRIVATE 31] EXPLICIT BOOLEAN
+ BoolExpApp ::= [APPLICATION 32] EXPLICIT BOOLEAN
+
+ Int ::= INTEGER
+ IntCon ::= [40] INTEGER
+ IntPri ::= [PRIVATE 41] INTEGER
+ IntApp ::= [APPLICATION 42] INTEGER
+ IntExpCon ::= [50] EXPLICIT INTEGER
+ IntExpPri ::= [PRIVATE 51] EXPLICIT INTEGER
+ IntExpApp ::= [APPLICATION 52] EXPLICIT INTEGER
+
+ IntEnum ::= INTEGER {first(1),last(31)}
+
+ Enum ::= ENUMERATED {monday(1),tuesday(2),wednesday(3),thursday(4),
+ friday(5),saturday(6),sunday(7)}
+
+ ObjId ::= OBJECT IDENTIFIER
+
+ RelOid ::= RELATIVE-OID
+
+ Null ::= NULL
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/PrimExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/PrimExternal.asn1
new file mode 100644
index 0000000000..2db685896d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PrimExternal.asn1
@@ -0,0 +1,39 @@
+PrimExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XNT, XImp, XExp FROM External;
+
+
+
+NT ::= OCTET STRING
+Imp ::= [1] OCTET STRING
+Exp ::= [2] EXPLICIT OCTET STRING
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XNT
+XImpNT ::= [3] XNT
+XExpNT ::= [4] EXPLICIT XNT
+
+XNTImp ::= XImp
+XImpImp ::= [5] XImp
+XExpImp ::= [6] EXPLICIT XImp
+
+XNTExp ::= XExp
+XImpExp ::= [7] XExp
+XExpExp ::= [8] EXPLICIT XExp
+
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/PrimStrings.asn1 b/lib/asn1/test/asn1_SUITE_data/PrimStrings.asn1
new file mode 100644
index 0000000000..d287840f30
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/PrimStrings.asn1
@@ -0,0 +1,97 @@
+PrimStrings DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bs1 ::= BIT STRING
+ Bs2 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (7))
+ Bs3 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..7))
+ Bs4 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs5 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs6 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6)} (SIZE (16..32))
+ Bs7 ::= BIT STRING (SIZE (24))
+ BsPri ::= [PRIVATE 61] BIT STRING
+ BsExpPri ::= [PRIVATE 61] EXPLICIT BIT STRING
+ ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+ --TestS is to test OTP-4353. See also x691 15.3 and x680 21.7
+ TestS ::= BIT STRING {a(0),b(1)} (SIZE (3..8))
+
+ -- OTP-5932
+ BSMAX ::= BIT STRING (SIZE (5..MAX))
+
+ -- OTP-7602
+
+BS255 ::= BIT STRING (SIZE (255))
+
+BS256 ::= BIT STRING (SIZE (256))
+
+BS1024 ::= BIT STRING (SIZE (1024))
+
+
+
+ Os ::= OCTET STRING
+ OsCon ::= [60] OCTET STRING
+ OsPri ::= [PRIVATE 61] OCTET STRING
+ OsApp ::= [APPLICATION 62] OCTET STRING
+ OsExpCon ::= [60] EXPLICIT OCTET STRING
+ OsExpPri ::= [PRIVATE 61] EXPLICIT OCTET STRING
+ OsExpApp ::= [APPLICATION 62] EXPLICIT OCTET STRING
+
+ Ns ::= NumericString
+ NsCon ::= [70] NumericString
+ NsExpCon ::= [71] EXPLICIT NumericString
+
+ Ps ::= PrintableString
+
+ Ts ::= TeletexString
+
+ Vxs ::= VideotexString
+
+ Vis ::= VisibleString
+
+ IA5 ::= IA5String
+
+ Grs ::= GraphicString
+
+ ODesc ::= ObjectDescriptor
+
+ ODescSeq ::= SEQUENCE {
+ o ObjectDescriptor OPTIONAL,
+ i INTEGER
+ }
+
+ Ges ::= GeneralString
+
+ Us ::= UniversalString
+ UsCon ::= [70] UniversalString
+ UsExpCon ::= [71] EXPLICIT UniversalString
+
+ BMP ::= BMPString
+
+ Gt ::= GeneralizedTime
+
+ UTC ::= UTCTime
+
+ UTF ::= UTF8String
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-CommonDataTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-CommonDataTypes.asn1
new file mode 100644
index 0000000000..ff5357f000
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-CommonDataTypes.asn1
@@ -0,0 +1,45 @@
+-- RANAP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.5 Common Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+RANAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-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, outcome }
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-Constants.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-Constants.asn1
new file mode 100644
index 0000000000..c8df218b29
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-Constants.asn1
@@ -0,0 +1,355 @@
+-- RANAP-Constants.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.6 Constant Definitions
+--
+-- $Id$
+--
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+RANAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+id-RAB-ModifyRequest INTEGER ::= 29
+id-LocationRelatedData INTEGER ::= 30
+id-InformationTransfer INTEGER ::= 31
+id-UESpecificInformation INTEGER ::= 32
+id-UplinkInformationExchange INTEGER ::= 33
+id-DirectInformationTransfer INTEGER ::= 34
+id-MBMSSessionStart INTEGER ::= 35
+id-MBMSSessionUpdate INTEGER ::= 36
+id-MBMSSessionStop INTEGER ::= 37
+id-MBMSUELinking INTEGER ::= 38
+id-MBMSRegistration INTEGER ::= 39
+id-MBMSCNDe-Registration-Procedure INTEGER ::= 40
+id-MBMSRABEstablishmentIndication INTEGER ::= 41
+id-MBMSRABRelease INTEGER ::= 42
+id-enhancedRelocationComplete INTEGER ::= 43
+id-enhancedRelocationCompleteConfirm INTEGER ::= 44
+id-RANAPenhancedRelocation INTEGER ::= 45
+id-SRVCCPreparation INTEGER ::= 256
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 250
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfSRBs INTEGER ::= 8
+maxNrOfVol INTEGER ::= 2
+maxNrOfLevels INTEGER ::= 256
+maxNrOfAltValues INTEGER ::= 16
+maxNrOfPLMNsSN INTEGER ::= 32
+maxNrOfLAs INTEGER ::= 65536
+maxNrOfSNAs INTEGER ::= 65536
+maxNrOfUEsToBeTraced INTEGER ::= 64
+maxNrOfInterfaces INTEGER ::= 16
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+maxSet INTEGER ::= 9
+maxNrOfHSDSCHMACdFlows-1 INTEGER ::= 7
+maxnoofMulticastServicesPerUE INTEGER ::= 128
+maxnoofMulticastServicesPerRNC INTEGER ::= 512
+maxMBMSSA INTEGER ::= 256
+maxMBMSRA INTEGER ::= 65536
+maxNrOfEDCHMACdFlows-1 INTEGER ::= 7
+maxGANSSSet INTEGER ::= 9
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-Source-ToTarget-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-Target-ToSource-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+id-MessageStructure INTEGER ::= 88
+id-Alt-RAB-Parameters INTEGER ::= 89
+id-Ass-RAB-Parameters INTEGER ::= 90
+id-RAB-ModifyList INTEGER ::= 91
+id-RAB-ModifyItem INTEGER ::= 92
+id-TypeOfError INTEGER ::= 93
+id-BroadcastAssistanceDataDecipheringKeys INTEGER ::= 94
+id-LocationRelatedDataRequestType INTEGER ::= 95
+id-GlobalCN-ID INTEGER ::= 96
+id-LastKnownServiceArea INTEGER ::= 97
+id-SRB-TrCH-Mapping INTEGER ::= 98
+id-InterSystemInformation-TransparentContainer INTEGER ::= 99
+id-NewBSS-To-OldBSS-Information INTEGER ::= 100
+id-SourceRNC-PDCP-context-info INTEGER ::= 103
+id-InformationTransferID INTEGER ::= 104
+id-SNA-Access-Information INTEGER ::= 105
+id-ProvidedData INTEGER ::= 106
+id-GERAN-BSC-Container INTEGER ::= 107
+id-GERAN-Classmark INTEGER ::= 108
+id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item INTEGER ::= 109
+id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse INTEGER ::= 110
+id-VerticalAccuracyCode INTEGER ::= 111
+id-ResponseTime INTEGER ::= 112
+id-PositioningPriority INTEGER ::= 113
+id-ClientType INTEGER ::= 114
+id-LocationRelatedDataRequestTypeSpecificToGERANIuMode INTEGER ::= 115
+id-SignallingIndication INTEGER ::= 116
+id-hS-DSCH-MAC-d-Flow-ID INTEGER ::= 117
+id-UESBI-Iu INTEGER ::= 118
+id-PositionData INTEGER ::= 119
+id-PositionDataSpecificToGERANIuMode INTEGER ::= 120
+id-CellLoadInformationGroup INTEGER ::= 121
+id-AccuracyFulfilmentIndicator INTEGER ::= 122
+id-InformationTransferType INTEGER ::= 123
+id-TraceRecordingSessionInformation INTEGER ::= 124
+id-TracePropagationParameters INTEGER ::= 125
+id-InterSystemInformationTransferType INTEGER ::= 126
+id-SelectedPLMN-ID INTEGER ::= 127
+id-RedirectionCompleted INTEGER ::= 128
+id-RedirectionIndication INTEGER ::= 129
+id-NAS-SequenceNumber INTEGER ::= 130
+id-RejectCauseValue INTEGER ::= 131
+id-APN INTEGER ::= 132
+id-CNMBMSLinkingInformation INTEGER ::= 133
+id-DeltaRAListofIdleModeUEs INTEGER ::= 134
+id-FrequenceLayerConvergenceFlag INTEGER ::= 135
+id-InformationExchangeID INTEGER ::= 136
+id-InformationExchangeType INTEGER ::= 137
+id-InformationRequested INTEGER ::= 138
+id-InformationRequestType INTEGER ::= 139
+id-IPMulticastAddress INTEGER ::= 140
+id-JoinedMBMSBearerServicesList INTEGER ::= 141
+id-LeftMBMSBearerServicesList INTEGER ::= 142
+id-MBMSBearerServiceType INTEGER ::= 143
+id-MBMSCNDe-Registration INTEGER ::= 144
+id-MBMSServiceArea INTEGER ::= 145
+id-MBMSSessionDuration INTEGER ::= 146
+id-MBMSSessionIdentity INTEGER ::= 147
+id-PDP-TypeInformation INTEGER ::= 148
+id-RAB-Parameters INTEGER ::= 149
+id-RAListofIdleModeUEs INTEGER ::= 150
+id-MBMSRegistrationRequestType INTEGER ::= 151
+id-SessionUpdateID INTEGER ::= 152
+id-TMGI INTEGER ::= 153
+id-TransportLayerInformation INTEGER ::= 154
+id-UnsuccessfulLinkingList INTEGER ::= 155
+id-MBMSLinkingInformation INTEGER ::= 156
+id-MBMSSessionRepetitionNumber INTEGER ::= 157
+id-AlternativeRABConfiguration INTEGER ::= 158
+id-AlternativeRABConfigurationRequest INTEGER ::= 159
+id-E-DCH-MAC-d-Flow-ID INTEGER ::= 160
+id-SourceBSS-ToTargetBSS-TransparentContainer INTEGER ::= 161
+id-TargetBSS-ToSourceBSS-TransparentContainer INTEGER ::= 162
+id-TimeToMBMSDataTransfer INTEGER ::= 163
+id-IncludeVelocity INTEGER ::= 164
+id-VelocityEstimate INTEGER ::= 165
+id-RedirectAttemptFlag INTEGER ::= 166
+id-RAT-Type INTEGER ::= 167
+id-PeriodicLocationInfo INTEGER ::= 168
+id-MBMSCountingInformation INTEGER ::= 169
+id-170-not-to-be-used-for-IE-ids INTEGER ::= 170
+id-ExtendedRNC-ID INTEGER ::= 171
+id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf INTEGER ::= 172
+id-Alt-RAB-Parameter-ExtendedMaxBitrateInf INTEGER ::= 173
+id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 174
+id-Ass-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 175
+id-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 176
+id-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 177
+id-Requested-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 178
+id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 179
+id-LAofIdleModeUEs INTEGER ::= 180
+id-newLAListofIdleModeUEs INTEGER ::= 181
+id-LAListwithNoIdleModeUEsAnyMore INTEGER ::= 182
+id-183-not-to-be-used-for-IE-ids INTEGER ::= 183
+id-GANSS-PositioningDataSet INTEGER ::= 184
+id-RequestedGANSSAssistanceData INTEGER ::= 185
+id-BroadcastGANSSAssistanceDataDecipheringKeys INTEGER ::= 186
+id-d-RNTI-for-NoIuCSUP INTEGER ::= 187
+id-RAB-SetupList-EnhancedRelocCompleteReq INTEGER ::= 188
+id-RAB-SetupItem-EnhancedRelocCompleteReq INTEGER ::= 189
+id-RAB-SetupList-EnhancedRelocCompleteRes INTEGER ::= 190
+id-RAB-SetupItem-EnhancedRelocCompleteRes INTEGER ::= 191
+id-RAB-SetupList-EnhRelocInfoReq INTEGER ::= 192
+id-RAB-SetupItem-EnhRelocInfoReq INTEGER ::= 193
+id-RAB-SetupList-EnhRelocInfoRes INTEGER ::= 194
+id-RAB-SetupItem-EnhRelocInfoRes INTEGER ::= 195
+id-OldIuSigConId INTEGER ::= 196
+id-RAB-FailedList-EnhRelocInfoRes INTEGER ::= 197
+id-RAB-FailedItem-EnhRelocInfoRes INTEGER ::= 198
+id-Global-ENB-ID INTEGER ::= 199
+id-UE-History-Information INTEGER ::= 200
+id-MBMSSynchronisationInformation INTEGER ::= 201
+id-SubscriberProfileIDforRFP INTEGER ::= 202
+id-CSG-Id INTEGER ::= 203
+id-OldIuSigConIdCS INTEGER ::= 204
+id-OldIuSigConIdPS INTEGER ::= 205
+id-GlobalCN-IDCS INTEGER ::= 206
+id-GlobalCN-IDPS INTEGER ::= 207
+id-SourceExtendedRNC-ID INTEGER ::= 208
+id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes INTEGER ::= 209
+id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes INTEGER ::= 210
+id-SourceRNC-ID INTEGER ::= 211
+id-Relocation-TargetRNC-ID INTEGER ::= 212
+id-Relocation-TargetExtendedRNC-ID INTEGER ::= 213
+id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf INTEGER ::= 214
+id-Alt-RAB-Parameter-SupportedMaxBitrateInf INTEGER ::= 215
+id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 216
+id-Ass-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 217
+id-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 218
+id-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 219
+id-Requested-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 220
+id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 221
+id-Relocation-SourceRNC-ID INTEGER ::= 222
+id-Relocation-SourceExtendedRNC-ID INTEGER ::= 223
+id-EncryptionKey INTEGER ::= 224
+id-IntegrityProtectionKey INTEGER ::= 225
+id-SRVCC-HO-Indication INTEGER ::= 226
+id-SRVCC-Information INTEGER ::= 227
+id-SRVCC-Operation-Possible INTEGER ::= 228
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-Containers.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-Containers.asn1
new file mode 100644
index 0000000000..5168fa6917
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-Containers.asn1
@@ -0,0 +1,206 @@
+-- RANAP-Containers.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.7 Container Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+RANAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM RANAP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-IEs.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-IEs.asn1
new file mode 100644
index 0000000000..351dad436b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-IEs.asn1
@@ -0,0 +1,2081 @@
+-- RANAP-IEs.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.4 Information Element Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RANAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxNrOfPDPDirections,
+ maxNrOfPoints,
+ maxNrOfRABs,
+ maxNrOfSRBs,
+ maxNrOfSeparateTrafficDirections,
+ maxRAB-Subflows,
+ maxRAB-SubflowCombination,
+ maxNrOfLevels,
+ maxNrOfAltValues,
+ maxNrOfSNAs,
+ maxNrOfLAs,
+ maxNrOfPLMNsSN,
+ maxSet,
+ maxNrOfHSDSCHMACdFlows-1,
+ maxNrOfUEsToBeTraced,
+ maxNrOfInterfaces,
+ maxnoofMulticastServicesPerRNC,
+ maxMBMSSA,
+ maxMBMSRA,
+ maxnoofMulticastServicesPerUE,
+ maxNrOfEDCHMACdFlows-1,
+ maxGANSSSet,
+
+ id-CN-DomainIndicator,
+ id-MessageStructure,
+ id-SRB-TrCH-Mapping,
+ id-TypeOfError,
+ id-hS-DSCH-MAC-d-Flow-ID,
+ id-SignallingIndication,
+ id-CellLoadInformationGroup,
+ id-TraceRecordingSessionInformation,
+ id-MBMSLinkingInformation,
+ id-AlternativeRABConfiguration,
+ id-AlternativeRABConfigurationRequest,
+ id-E-DCH-MAC-d-Flow-ID,
+ id-RAC,
+ id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-ExtendedMaxBitrateInf,
+ id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-ExtendedMaxBitrateList,
+ id-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-LAofIdleModeUEs,
+ id-newLAListofIdleModeUEs,
+ id-LAListwithNoIdleModeUEsAnyMore,
+ id-ExtendedRNC-ID,
+ id-GANSS-PositioningDataSet,
+ id-d-RNTI-for-NoIuCSUP,
+ id-UE-History-Information,
+ id-SubscriberProfileIDforRFP,
+ id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-SupportedMaxBitrateInf,
+ id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-SupportedMaxBitrateList,
+ id-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList
+
+
+FROM RANAP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM RANAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ RANAP-PROTOCOL-EXTENSION
+FROM RANAP-Containers;
+
+-- A
+
+AccuracyFulfilmentIndicator ::= ENUMERATED{
+ requested-Accuracy-Fulfilled,
+ requested-Accuracy-Not-Fulfilled,
+ ...
+}
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Alt-RAB-Parameters ::= SEQUENCE {
+ altMaxBitrateInf Alt-RAB-Parameter-MaxBitrateInf OPTIONAL,
+ altGuaranteedBitRateInf Alt-RAB-Parameter-GuaranteedBitrateInf OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Alt-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to indicate an alternative RAB configuration --
+ { ID id-AlternativeRABConfiguration CRITICALITY ignore EXTENSION RAB-Parameters PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedMaxBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedMaxBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedGuaranteedBitrateInf PRESENCE optional },
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf ::= SEQUENCE {
+ altExtendedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altExtendedGuaranteedBitrates Alt-RAB-Parameter-ExtendedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedGuaranteedBitrateList
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Alt-RAB-Parameter-GuaranteedBitrateInf ::= SEQUENCE {
+ altGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altGuaranteedBitrates Alt-RAB-Parameter-GuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-GuaranteedBitrateList
+
+
+Alt-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf ::= SEQUENCE {
+ altSupportedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altSupportedGuaranteedBitrates Alt-RAB-Parameter-SupportedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+
+Alt-RAB-Parameter-ExtendedMaxBitrateInf ::= SEQUENCE {
+ altExtendedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altExtendedMaxBitrates Alt-RAB-Parameter-ExtendedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Alternative Maximum Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedMaxBitrateList
+
+Alt-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Alt-RAB-Parameter-MaxBitrateInf ::= SEQUENCE {
+ altMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altMaxBitrates Alt-RAB-Parameter-MaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-MaxBitrateList
+
+
+Alt-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf ::= SEQUENCE {
+ altSupportedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altSupportedMaxBitrates Alt-RAB-Parameter-SupportedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs} } OPTIONAL,
+...
+}
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+
+Alt-RAB-Parameter-SupportedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+AlternativeRABConfigurationRequest ::= ENUMERATED{
+ alternative-RAB-configuration-Requested,
+ ...
+}
+
+APN ::= OCTET STRING (SIZE (1..255))
+-- Reference: 23.003
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+Ass-RAB-Parameters ::= SEQUENCE {
+ assMaxBitrateInf Ass-RAB-Parameter-MaxBitrateList OPTIONAL,
+ assGuaranteedBitRateInf Ass-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Ass-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ass-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate an extended assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an extended assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedMaxBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Ass-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Ass-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+Ass-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+Ass-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+AuthorisedPLMNs ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ authorisedSNAsList AuthorisedSNAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {AuthorisedPLMNs-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+AuthorisedPLMNs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AuthorisedSNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+BroadcastAssistanceDataDecipheringKeys ::= SEQUENCE {
+ cipheringKeyFlag BIT STRING (SIZE (1)),
+ currentDecipheringKey BIT STRING (SIZE (56)),
+ nextDecipheringKey BIT STRING (SIZE (56)),
+ ...
+}
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...,
+ radioNetworkExtension CauseRadioNetworkExtension
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101),
+ abstract-syntax-error-falsely-constructed-message (102)
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ conflict-with-already-existing-integrity-protection-and-or-ciphering-information (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bit-rate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-request-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40),
+ resource-optimisation-relocation (41),
+ requested-information-not-available (42),
+ relocation-desirable-for-radio-reasons (43),
+ relocation-not-supported-in-target-RNC-or-target-system (44),
+ directed-retry (45),
+ radio-connection-with-UE-Lost (46),
+ rNC-unable-to-establish-all-RFCs (47),
+ deciphering-keys-not-available(48),
+ dedicated-assistance-data-not-available(49),
+ relocation-target-not-allowed (50),
+ location-reporting-congestion (51),
+ reduce-load-in-serving-cell (52),
+ no-radio-resources-available-in-target-cell (53),
+ gERAN-Iumode-failure (54),
+ access-restricted-due-to-shared-networks (55),
+ incoming-relocation-not-supported-due-to-PUESBINE-feature (56),
+ traffic-load-in-the-target-cell-higher-than-in-the-source-cell (57),
+ mBMS-no-multicast-service-for-this-UE(58),
+ mBMS-unknown-UE-ID(59),
+ successful-MBMS-session-start-no-data-bearer-necessary(60),
+ mBMS-superseded-due-to-NNSF(61),
+ mBMS-UE-linking-already-done(62),
+ mBMS-UE-de-linking-failure-no-existing-UE-linking(63),
+ tMGI-unknown(64)
+} (1..64)
+
+CauseRadioNetworkExtension ::= INTEGER {
+ iP-multicast-address-and-APN-not-valid(257),
+ mBMS-de-registration-rejected-due-to-implicit-registration(258),
+ mBMS-request-superseded(259),
+ mBMS-de-registration-during-session-not-allowed(260),
+ mBMS-no-data-bearer-necessary(261),
+ periodicLocationInformationNotAvailable(262),
+ gTP-Resources-Unavailable(263),
+ tMGI-inUse-overlapping-MBMS-service-area(264),
+ mBMS-no-cell-in-MBMS-service-area(265),
+ no-Iu-CS-UP-relocation(266),
+ successful-MBMS-Session-Start-IP-Multicast-Bearer-established(267),
+ cS-fallback-triggered(268)
+} (257..512)
+
+CauseNon-Standard ::= INTEGER (129..256)
+-- Cause value 256 shall not be used --
+
+CauseTransmissionNetwork ::= INTEGER {
+ signalling-transport-resource-failure (65),
+ iu-transport-connection-failed-to-establish (66)
+} (65..80)
+
+Cell-Capacity-Class-Value ::= INTEGER (1..100,...)
+
+CellLoadInformation ::= SEQUENCE {
+ cell-Capacity-Class-Value Cell-Capacity-Class-Value,
+ loadValue LoadValue,
+ rTLoadValue RTLoadValue OPTIONAL,
+ nRTLoadInformationValue NRTLoadInformationValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellLoadInformationGroup ::= SEQUENCE {
+ sourceCellID SourceCellID,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformationGroup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformationGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellType ::= ENUMERATED{
+ macro,
+ micro,
+ pico,
+ femto,
+ ...
+}
+
+ClientType ::= ENUMERATED {
+ emergency-Services,
+ value-Added-Services,
+ pLMN-Operator-Services,
+ lawful-Intercept-Services,
+ pLMN-Operator-Broadcast-Services,
+ pLMN-Operator-O-et-M,
+ pLMN-Operator-Anonymous-Statistics,
+ pLMN-Operator-Target-MS-Service-Support,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable reporting the message structure down to the erroneous IE --
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional } |
+-- Extension for Release 99 to enable reporting if a reported error is due to a not understood or a missing IE --
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-RAC CRITICALITY ignore EXTENSION RAC PRESENCE optional },
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+CN-ID ::= INTEGER (0..4095)
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DeltaRAListofIdleModeUEs ::= SEQUENCE {
+ newRAListofIdleModeUEs NewRAListofIdleModeUEs OPTIONAL,
+ rAListwithNoIdleModeUEsAnyMore RAListwithNoIdleModeUEsAnyMore OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DeltaRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+NewRAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+RAListwithNoIdleModeUEsAnyMore ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+DeltaRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-newLAListofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional }|
+ -- This IE shall be present if the New RA List of Idle Mode UEs IE is included. --
+{ ID id-LAListwithNoIdleModeUEsAnyMore CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be presentif the RA List with No Idle Mode UEs Any More IE is included. --
+ ...
+}
+
+ForwardingIndication::=ENUMERATED{
+ forwarding-admitted,
+ ...
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (6..9)
+
+DSCH-ID ::= INTEGER (0..255)
+
+
+-- E
+
+E-DCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfEDCHMACdFlows-1)
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ selectedTAI TAI,
+ ...
+}
+
+GlobalENB-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1), standard-UMTS-encryption-algorithm-UEA2 (2) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+EquipmentsToBeTraced ::= CHOICE {
+ iMEIlist IMEIList,
+ iMEISVlist IMEISVList,
+ iMEIgroup IMEIGroup,
+ iMEISVgroup IMEISVGroup,
+ ...
+}
+
+Event ::= ENUMERATED {
+ stop-change-of-service-area,
+ direct,
+ change-of-servicearea,
+ ...,
+ stop-direct,
+ periodic,
+ stop-periodic
+}
+
+ExtendedGuaranteedBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedMaxBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+FrequenceLayerConvergenceFlag ::= ENUMERATED {
+ no-FLC-flag,
+ ...
+}
+
+-- G
+
+GANSS-PositioningDataSet ::= SEQUENCE(SIZE(1..maxGANSSSet)) OF GANSS-PositioningMethodAndUsage
+
+GANSS-PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...,
+ pointWithUncertaintyEllipse GA-PointWithUnCertaintyEllipse,
+ pointWithAltitude GA-PointWithAltitude,
+ pointWithAltitudeAndUncertaintyEllipsoid GA-PointWithAltitudeAndUncertaintyEllipsoid,
+ ellipsoidArc GA-EllipsoidArc
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-AltitudeAndDirection ::= SEQUENCE {
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ ...
+}
+
+GA-EllipsoidArc ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ innerRadius INTEGER (0..65535),
+ uncertaintyRadius INTEGER (0..127),
+ offsetAngle INTEGER (0..179),
+ includedAngle INTEGER (0..179),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-EllipsoidArc-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-EllipsoidArc-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitude-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithUnCertaintyEllipse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-UncertaintyEllipse ::= SEQUENCE {
+ uncertaintySemi-major INTEGER (0..127),
+ uncertaintySemi-minor INTEGER (0..127),
+ orientationOfMajorAxis INTEGER (0..179), -- The values 90..179 shall not be used.
+ ...
+}
+
+GERAN-BSC-Container ::= OCTET STRING
+ -- GERAN BSC Container as defined in [11] --
+
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Cell-ID-ExtIEs} } OPTIONAL
+}
+
+GERAN-Cell-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERAN-Classmark ::= OCTET STRING
+ -- GERAN Classmark as defined in [11] --
+
+GlobalCN-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cN-ID CN-ID
+}
+
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+HS-DSCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfHSDSCHMACdFlows-1)
+
+-- I
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEIGroup ::= SEQUENCE {
+ iMEI IMEI,
+ iMEIMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEIGroup-ExtIEs} } OPTIONAL
+}
+
+IMEIGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEIList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEI
+
+IMEISV ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEISVGroup ::= SEQUENCE {
+ iMEISV IMEISV,
+ iMEISVMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEISVGroup-ExtIEs} } OPTIONAL
+}
+
+IMEISVGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEISVList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEISV
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IncludeVelocity ::= ENUMERATED {
+ requested
+}
+
+InformationExchangeID ::= INTEGER (0.. 1048575)
+
+InformationExchangeType ::= ENUMERATED {
+ transfer,
+ request,
+ ...
+}
+
+InformationRequested ::= CHOICE {
+ requestedMBMSIPMulticastAddressandAPNRequest RequestedMBMSIPMulticastAddressandAPNRequest,
+ requestedMulticastServiceList RequestedMulticastServiceList,
+ ...
+}
+
+
+InformationRequestType ::= CHOICE {
+ mBMSIPMulticastAddressandAPNRequest MBMSIPMulticastAddressandAPNRequest,
+ permanentNAS-UE-ID PermanentNAS-UE-ID,
+ ...
+}
+
+InformationTransferID ::= INTEGER (0.. 1048575)
+
+InformationTransferType ::= CHOICE {
+ rNCTraceInformation RNCTraceInformation,
+ ...
+}
+
+IntegrityProtectionAlgorithm ::= INTEGER {
+ standard-UMTS-integrity-algorithm-UIA1 (0), standard-UMTS-integrity-algorithm-UIA2 (1),
+ no-value (15)
+} (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+InterSystemInformationTransferType ::= CHOICE {
+ rIM-Transfer RIM-Transfer,
+ ...
+}
+
+InterSystemInformation-TransparentContainer ::= SEQUENCE {
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { InterSystemInformation-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterSystemInformation-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+IPMulticastAddress ::= OCTET STRING (SIZE (4..16))
+-- Reference: 23.003
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LA-LIST ::= SEQUENCE (SIZE (1..maxNrOfLAs)) OF
+ SEQUENCE {
+ lAC LAC,
+ listOF-SNAs ListOF-SNAs,
+ iE-Extensions ProtocolExtensionContainer { { LA-LIST-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LA-LIST-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastKnownServiceArea ::= SEQUENCE {
+ sAI SAI,
+ ageOfSAI INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { {LastKnownServiceArea-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastKnownServiceArea-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedUTRANCell-Item ::= SEQUENCE {
+ uTRAN-CellID UTRAN-CellID,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { {LastVisitedUTRANCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastVisitedUTRANCell-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ListOF-SNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+ListOfInterfacesToTrace ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF InterfacesToTraceItem
+
+InterfacesToTraceItem ::= SEQUENCE {
+ interface ENUMERATED {iu-cs, iu-ps, iur, iub, uu, ...},
+ iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterfacesToTraceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LoadValue ::= INTEGER (0..100)
+
+LocationRelatedDataRequestType ::= SEQUENCE {
+ requestedLocationRelatedDataType RequestedLocationRelatedDataType,
+ requestedGPSAssistanceData RequestedGPSAssistanceData OPTIONAL,
+ -- This IE shall be present if the Requested Location Related Data Type IE is set to �Dedicated Assistance Data for Assisted GPS� or
+ -- `Dedicated Assistance Data for Assisted GPS and GANSS�
+ ...
+}
+
+LocationRelatedDataRequestTypeSpecificToGERANIuMode ::= ENUMERATED {
+ decipheringKeysEOTD,
+ dedicatedMobileAssistedEOTDAssistanceData,
+ dedicatedMobileBasedEOTDAssistanceData,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MBMS-PTP-RAB-ID ::= BIT STRING (SIZE (8))
+
+MBMSBearerServiceType ::= ENUMERATED {
+ multicast,
+ broadcast,
+ ...
+}
+
+MBMSCNDe-Registration ::= ENUMERATED {
+ normalsessionstop,
+ deregister,
+ ...
+}
+
+
+MBMSCountingInformation ::= ENUMERATED {
+ counting,
+ notcounting,
+ ...
+}
+
+MBMSHCIndicator ::= ENUMERATED {
+ uncompressed-header,
+ compressed-header,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ TMGI
+
+MBMSLinkingInformation ::= ENUMERATED {
+ uE-has-joined-multicast-services,
+ ...
+}
+
+MBMSRegistrationRequestType ::= ENUMERATED {
+ register,
+ deregister,
+ ...
+}
+
+MBMSServiceArea ::= OCTET STRING
+
+MBMSSessionDuration ::= OCTET STRING (SIZE (3))
+
+
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+
+MBMSSessionRepetitionNumber ::= OCTET STRING (SIZE (1))
+
+
+-- N
+
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SequenceNumber ::= BIT STRING (SIZE (2))
+-- Reference: 24.008
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NewBSS-To-OldBSS-Information ::= OCTET STRING
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NRTLoadInformationValue ::= INTEGER (0..3)
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM [25]
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value shall not be used -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PeriodicLocationInfo ::= SEQUENCE {
+ reportingAmount INTEGER (1..8639999, ...),
+ reportingInterval INTEGER (1..8639999, ...),
+ iE-Extensions ProtocolExtensionContainer { { PeriodicLocationInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PeriodicLocationInfo-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+PLMNs-in-shared-network ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lA-LIST LA-LIST,
+ iE-Extensions ProtocolExtensionContainer { { PLMNs-in-shared-network-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PLMNs-in-shared-network-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PositioningDataDiscriminator ::= BIT STRING (SIZE(4))
+
+PositioningDataSet ::= SEQUENCE(SIZE(1..maxSet)) OF PositioningMethodAndUsage
+
+PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+PositioningPriority ::= ENUMERATED {
+ high-Priority,
+ normal-Priority,
+...
+}
+
+PositionData ::= SEQUENCE {
+ positioningDataDiscriminator PositioningDataDiscriminator,
+ positioningDataSet PositioningDataSet OPTIONAL,
+-- This IE shall be present if the PositioningDataDiscriminator IE is set to the value "0000" --
+ iE-Extensions ProtocolExtensionContainer { {PositionData-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PositionData-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-PositioningDataSet CRITICALITY ignore EXTENSION GANSS-PositioningDataSet PRESENCE optional },
+ ...
+}
+
+PositionDataSpecificToGERANIuMode ::= OCTET STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProvidedData ::= CHOICE {
+ shared-network-information Shared-Network-Information,
+ ...
+}
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+--This IE shall be ignored if Supported Guaranteed Bit rate is present--
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+--This IE shall be ignored if Supported Maximum Bit rate is present--
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Interactive" --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ relocationRequirement RelocationRequirement OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable indication that Interactive User Plane data is of a signalling nature --
+ { ID id-SignallingIndication CRITICALITY ignore EXTENSION SignallingIndication PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Guaranteed Bitrate --
+{ ID id-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Maximum Bitrate --
+{ ID id-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Maximum Bitrate --
+{ ID id-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Guaranteed Bitrate --
+{ ID id-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ iE-Extensions ProtocolExtensionContainer { { RAB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of RAB Subflow mapping onto Iur transport channel Ids for a given indicated domain --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional },
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAListofIdleModeUEs ::= CHOICE {
+ notEmptyRAListofIdleModeUEs NotEmptyRAListofIdleModeUEs,
+ emptyFullRAListofIdleModeUEs ENUMERATED {emptylist,fulllist,...},
+ ...
+}
+
+NotEmptyRAListofIdleModeUEs ::= SEQUENCE {
+ rAofIdleModeUEs RAofIdleModeUEs,
+ iE-Extensions ProtocolExtensionContainer { {NotEmptyRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+RAofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+NotEmptyRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-LAofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be present if the RA of Idle Mode UEs IE is included. --
+ ...
+}
+
+LAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ LAI
+
+RAT-Type ::= ENUMERATED {
+ utran,
+ geran,
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RedirectAttemptFlag ::= NULL
+
+RedirectionCompleted ::= ENUMERATED {
+ redirection-completed,
+ ...
+}
+
+RejectCauseValue ::= ENUMERATED {
+ pLMN-Not-Allowed,
+ location-Area-Not-Allowed,
+ roaming-Not-Allowed-In-This-Location-Area,
+ no-Suitable-Cell-In-Location-Area,
+ gPRS-Services-Not-Allowed-In-This-PLMN,
+ cS-PS-coordination-required,
+ ...
+}
+
+
+RelocationRequirement ::= ENUMERATED {
+ lossless,
+ none,
+ ...,
+ realtime
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-area,
+ ...
+}
+
+RequestedGPSAssistanceData ::= OCTET STRING (SIZE (1 .. 38 ))
+ -- gpsAssistanceData as defined in 24.080 --
+
+RequestedGANSSAssistanceData ::= OCTET STRING (SIZE (1 .. 201 ))
+ -- ganssAssistanceData as defined in 24.080 --
+
+RequestedLocationRelatedDataType ::= ENUMERATED {
+ decipheringKeysUEBasedOTDOA,
+ decipheringKeysAssistedGPS,
+ dedicatedAssistanceDataUEBasedOTDOA,
+ dedicatedAssistanceDataAssistedGPS,
+ ...,
+-- Release 7 extension elements --
+ decipheringKeysAssistedGANSS,
+ dedicatedAssistanceDataAssistedGANSS,
+ decipheringKeysAssistedGPSandGANSS,
+ dedicatedAssistanceDataAssistedGPSandGANSS
+}
+
+RequestedMBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ MBMSIPMulticastAddressandAPNlist
+
+MBMSIPMulticastAddressandAPNlist ::= SEQUENCE {
+ tMGI TMGI,
+ iPMulticastAddress IPMulticastAddress,
+ aPN APN,
+ iE-Extensions ProtocolExtensionContainer { {MBMSIPMulticastAddressandAPNlist-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNlist-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestedMulticastServiceList ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ TMGI
+
+Requested-RAB-Parameter-Values ::= SEQUENCE {
+ requestedMaxBitrates Requested-RAB-Parameter-MaxBitrateList OPTIONAL,
+ requestedGuaranteedBitrates Requested-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Requested-RAB-Parameter-Values-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Requested-RAB-Parameter-Values-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable RNC to request the execution of an alternative RAB configuration --
+ { ID id-AlternativeRABConfigurationRequest CRITICALITY ignore EXTENSION AlternativeRABConfigurationRequest PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Requested-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Requested-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Requested-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+Requested-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResponseTime ::= ENUMERATED {
+ lowdelay,
+ delaytolerant,
+...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIM-Transfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RIM-Transfer-ExtIEs} } OPTIONAL
+}
+
+RIM-Transfer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMRoutingAddress ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+
+RNCTraceInformation::= SEQUENCE {
+ traceReference TraceReference,
+ traceActivationIndicator ENUMERATED {activated,deactivated},
+ equipmentsToBeTraced EquipmentsToBeTraced OPTIONAL,
+ -- This IE shall be present if the Trace Activation Indicator IE is set to "Activated".
+ iE-Extensions ProtocolExtensionContainer { { RNCTraceInformation-ExtIEs} } OPTIONAL
+}
+
+RNCTraceInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RRC-Container ::= OCTET STRING
+
+RTLoadValue ::= INTEGER (0..100)
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ sapi-0,
+ sapi-3,
+ ...
+}
+
+SessionUpdateID ::= INTEGER (0.. 1048575)
+
+Shared-Network-Information ::= SEQUENCE {
+ pLMNs-in-shared-network PLMNs-in-shared-network,
+ iE-Extensions ProtocolExtensionContainer { {Shared-Network-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Shared-Network-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignallingIndication ::= ENUMERATED {
+ signalling,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE shall be present if the Delivery Of Erroneous SDU IE is set to "Yes" or "No" --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNA-Access-Information ::= SEQUENCE {
+ authorisedPLMNs AuthorisedPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SNA-Access-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SNA-Access-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNAC ::= INTEGER (0..65535)
+
+Service-Handover ::= ENUMERATED {
+ handover-to-GSM-should-be-performed,
+ handover-to-GSM-should-not-be-performed,
+ handover-to-GSM-shall-not-be-performed,
+ ...
+}
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Source RNC to
+-- Target RNC Transparent Container or the Source eNB to Target eNB Transparent Container IE as
+-- defined in [49]
+
+SourceeNodeB-ToTargeteNodeB-TransparentContainer ::= OCTET STRING
+
+
+SourceCellID ::= CHOICE {
+ sourceUTRANCellID SourceUTRANCellID,
+ sourceGERANCellID CGI,
+ ...
+}
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID,
+ sAI SAI,
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL,
+ cipheringKey EncryptionKey OPTIONAL,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL,
+ d-RNTI D-RNTI OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE not involved in relocation of SRNS" --,
+ targetCellId TargetCellId OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE involved in relocation of SRNS" --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of SRB mapping onto Iur transport channel Ids --
+ { ID id-SRB-TrCH-Mapping CRITICALITY reject EXTENSION SRB-TrCH-Mapping PRESENCE optional }|
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-CellLoadInformationGroup CRITICALITY ignore EXTENSION CellLoadInformationGroup PRESENCE optional}|
+-- Extension for Release 6 to provide Trace Recording Session Information to the Target RNC --
+ {ID id-TraceRecordingSessionInformation CRITICALITY ignore EXTENSION TraceRecordingSessionInformation PRESENCE optional}|
+-- Extension for Release 6 to indicate to the Target RNC that the UE has activated Multicast Service --
+ {ID id-MBMSLinkingInformation CRITICALITY ignore EXTENSION MBMSLinkingInformation PRESENCE optional}|
+ {ID id-d-RNTI-for-NoIuCSUP CRITICALITY reject EXTENSION D-RNTI PRESENCE optional}|
+ {ID id-UE-History-Information CRITICALITY ignore EXTENSION UE-History-Information PRESENCE optional}|
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SupportedRAB-ParameterBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF SupportedBitrate
+
+SupportedBitrate ::= INTEGER (1..1000000000, ...)
+-- Unit is bits per sec
+
+SourceUTRANCellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ iE-Extensions ProtocolExtensionContainer { {SourceUTRANCellID-ExtIEs} } OPTIONAL
+}
+
+SourceUTRANCellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRB-ID ::= INTEGER (1..32)
+
+SRB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfSRBs)) OF
+ SRB-TrCH-MappingItem
+
+SRB-TrCH-MappingItem ::= SEQUENCE {
+ sRB-ID SRB-ID,
+ trCH-ID TrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { SRB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SRB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-HO-Indication ::= ENUMERATED {
+ ps-and-cs,
+ cs-only,
+ ...
+}
+
+SRVCC-Information ::= SEQUENCE {
+ nonce BIT STRING (SIZE (128)),
+ iE-Extensions ProtocolExtensionContainer { { SRVCC-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SRVCC-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-Operation-Possible ::= ENUMERATED {
+ srvcc-possible,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+TAC ::= OCTET STRING (SIZE (2))
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
+}
+
+TAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Target RNC to
+-- Source RNC Transparent Container or the Target eNB to Source eNB Transparent Container IE as
+-- defined in [49]
+
+TargeteNodeB-ToSourceeNodeB-TransparentContainer ::= OCTET STRING
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+
+ ...,
+ targeteNB-ID Global-ENB-ID
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TimeToMBMSDataTransfer ::= OCTET STRING(SIZE(1))
+
+
+TMGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ serviceID OCTET STRING (SIZE (3)),
+ iE-Extensions ProtocolExtensionContainer { {TMGI-ExtIEs} } OPTIONAL
+}
+
+TMGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ ...
+}
+
+TracePropagationParameters ::= SEQUENCE {
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ traceDepth TraceDepth,
+ listOfInterfacesToTrace ListOfInterfacesToTrace OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TracePropagationParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TracePropagationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionInformation ::= SEQUENCE {
+ traceReference TraceReference,
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ iE-Extensions ProtocolExtensionContainer { { TraceRecordingSessionInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceRecordingSessionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionReference ::= INTEGER (0..65535)
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL,
+ dSCH-ID DSCH-ID OPTIONAL,
+ uSCH-ID USCH-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TrCH-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TrCH-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable transfer of HS-DSCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-hS-DSCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION HS-DSCH-MAC-d-Flow-ID PRESENCE optional}|
+-- Extension for Release 6 to enable transfer of E-DCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-E-DCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION E-DCH-MAC-d-Flow-ID PRESENCE optional},
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+
+UE-History-Information ::= OCTET STRING
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...,
+ imeisv IMEISV
+
+}
+
+UESBI-Iu ::= SEQUENCE {
+ uESBI-IuA UESBI-IuA OPTIONAL,
+ uESBI-IuB UESBI-IuB OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UESBI-Iu-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UESBI-Iu-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.994 --
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.995 --
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+UTRAN-CellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cellID TargetCellId,
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-CellID-ExtIEs} } OPTIONAL
+}
+
+UTRAN-CellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- V
+
+VelocityEstimate ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVeritcalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty,
+ ...
+}
+
+HorizontalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ uncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocityWithUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocityWithUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ horizontalUncertaintySpeed INTEGER (0..255),
+ verticalUncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocityAndUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalSpeedAndBearing ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047)
+}
+
+VerticalVelocity ::= SEQUENCE {
+ veritcalSpeed INTEGER (0..255),
+ veritcalSpeedDirection VerticalSpeedDirection
+}
+
+VerticalSpeedDirection ::= ENUMERATED {
+ upward,
+ downward
+}
+
+VerticalAccuracyCode ::= INTEGER (0..127)
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Contents.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Contents.asn1
new file mode 100644
index 0000000000..c83f60f13e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Contents.asn1
@@ -0,0 +1,3383 @@
+-- RANAP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.3 PDU Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+RANAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ AccuracyFulfilmentIndicator,
+ APN,
+ BroadcastAssistanceDataDecipheringKeys,
+ LocationRelatedDataRequestType,
+ LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ DataVolumeReference,
+ CellLoadInformation,
+ AreaIdentity,
+ CN-DomainIndicator,
+ Cause,
+ ClientType,
+ CriticalityDiagnostics,
+ ChosenEncryptionAlgorithm,
+ ChosenIntegrityProtectionAlgorithm,
+ ClassmarkInformation2,
+ ClassmarkInformation3,
+ CSG-Id,
+ DL-GTP-PDU-SequenceNumber,
+ DL-N-PDU-SequenceNumber,
+ DataVolumeReportingIndication,
+ DeltaRAListofIdleModeUEs,
+ DRX-CycleLengthCoefficient,
+ EncryptionInformation,
+ EncryptionKey,
+ ExtendedRNC-ID,
+ FrequenceLayerConvergenceFlag,
+ GERAN-BSC-Container,
+ GERAN-Classmark,
+ Global-ENB-ID,
+ GlobalCN-ID,
+ GlobalRNC-ID,
+ GTP-TEI,
+ IncludeVelocity,
+ InformationExchangeID,
+ InformationExchangeType,
+ InformationRequested,
+ InformationRequestType,
+ InformationTransferID,
+ InformationTransferType,
+ InterSystemInformationTransferType,
+ IntegrityProtectionInformation,
+ IntegrityProtectionKey,
+ InterSystemInformation-TransparentContainer,
+ IPMulticastAddress,
+ IuSignallingConnectionIdentifier,
+ IuTransportAssociation,
+ KeyStatus,
+ L3-Information,
+ LAI,
+ LastKnownServiceArea,
+ MBMS-PTP-RAB-ID,
+ MBMSBearerServiceType,
+ MBMSCountingInformation,
+ MBMSCNDe-Registration,
+ MBMSHCIndicator,
+ MBMSRegistrationRequestType,
+ MBMSServiceArea,
+ MBMSSessionDuration,
+ MBMSSessionIdentity,
+ MBMSSessionRepetitionNumber,
+ NAS-PDU,
+ NAS-SequenceNumber,
+ NAS-SynchronisationIndicator,
+ NewBSS-To-OldBSS-Information,
+ NonSearchingIndication,
+ NumberOfSteps,
+ OMC-ID,
+ OldBSS-ToNewBSS-Information,
+ PagingAreaID,
+ PagingCause,
+ PDP-TypeInformation,
+ PermanentNAS-UE-ID,
+ PLMNidentity,
+ PositionData,
+ PositionDataSpecificToGERANIuMode,
+ PositioningPriority,
+ ProvidedData,
+ RAB-ID,
+ RAB-Parameters,
+ RAC,
+ RAListofIdleModeUEs,
+ RAT-Type,
+ RedirectAttemptFlag,
+ RedirectionCompleted,
+ RejectCauseValue,
+ RelocationType,
+ RequestedGANSSAssistanceData,
+ RequestType,
+ Requested-RAB-Parameter-Values,
+ ResponseTime,
+ RRC-Container,
+ SAI,
+ SAPI,
+ Service-Handover,
+ SessionUpdateID,
+ SNA-Access-Information,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceID,
+ Source-ToTarget-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SRVCC-HO-Indication,
+ SRVCC-Information,
+ SRVCC-Operation-Possible,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargetID,
+ Target-ToSource-TransparentContainer,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TemporaryUE-ID,
+ TimeToMBMSDataTransfer,
+ TMGI,
+ TracePropagationParameters,
+ TraceReference,
+ TraceType,
+ UnsuccessfullyTransmittedDataVolume,
+ TransportLayerAddress,
+ TriggerID,
+ UE-ID,
+ UESBI-Iu,
+ UL-GTP-PDU-SequenceNumber,
+ UL-N-PDU-SequenceNumber,
+ UP-ModeVersions,
+ UserPlaneMode,
+ VelocityEstimate,
+ VerticalAccuracyCode,
+ Alt-RAB-Parameters,
+ Ass-RAB-Parameters,
+ PeriodicLocationInfo,
+ SubscriberProfileIDforRFP
+FROM RANAP-IEs
+
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Container{},
+ RANAP-PRIVATE-IES,
+ RANAP-PROTOCOL-EXTENSION,
+ RANAP-PROTOCOL-IES,
+ RANAP-PROTOCOL-IES-PAIR
+FROM RANAP-Containers
+
+ maxNrOfDTs,
+ maxNrOfErrors,
+ maxNrOfIuSigConIds,
+ maxNrOfRABs,
+ maxNrOfVol,
+ maxnoofMulticastServicesPerUE,
+
+ id-AccuracyFulfilmentIndicator,
+ id-APN,
+ id-AreaIdentity,
+ id-Alt-RAB-Parameters,
+ id-Ass-RAB-Parameters,
+ id-BroadcastAssistanceDataDecipheringKeys,
+ id-LocationRelatedDataRequestType,
+ id-CN-DomainIndicator,
+ id-Cause,
+ id-ChosenEncryptionAlgorithm,
+ id-ChosenIntegrityProtectionAlgorithm,
+ id-ClassmarkInformation2,
+ id-ClassmarkInformation3,
+ id-ClientType,
+ id-CNMBMSLinkingInformation,
+ id-CriticalityDiagnostics,
+ id-CSG-Id,
+ id-DeltaRAListofIdleModeUEs,
+ id-DRX-CycleLengthCoefficient,
+ id-DirectTransferInformationItem-RANAP-RelocInf,
+ id-DirectTransferInformationList-RANAP-RelocInf,
+ id-DL-GTP-PDU-SequenceNumber,
+ id-EncryptionInformation,
+ id-EncryptionKey,
+ id-ExtendedRNC-ID,
+ id-FrequenceLayerConvergenceFlag,
+ id-GERAN-BSC-Container,
+ id-GERAN-Classmark,
+ id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item,
+ id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse,
+ id-Global-ENB-ID,
+ id-GlobalCN-ID,
+ id-GlobalCN-IDCS,
+ id-GlobalCN-IDPS,
+ id-GlobalRNC-ID,
+ id-IncludeVelocity,
+ id-InformationExchangeID,
+ id-InformationExchangeType,
+ id-InformationRequested,
+ id-InformationRequestType,
+ id-InformationTransferID,
+ id-InformationTransferType,
+ id-IntegrityProtectionInformation,
+ id-IntegrityProtectionKey,
+ id-InterSystemInformationTransferType,
+ id-InterSystemInformation-TransparentContainer,
+ id-IPMulticastAddress,
+ id-IuSigConId,
+ id-OldIuSigConId,
+ id-OldIuSigConIdCS,
+ id-OldIuSigConIdPS,
+ id-IuSigConIdItem,
+ id-IuSigConIdList,
+ id-IuTransportAssociation,
+ id-JoinedMBMSBearerServicesList,
+ id-KeyStatus,
+ id-L3-Information,
+ id-LAI,
+ id-LastKnownServiceArea,
+ id-LeftMBMSBearerServicesList,
+ id-LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ id-MBMSBearerServiceType,
+ id-MBMSCountingInformation,
+ id-MBMSCNDe-Registration,
+ id-MBMSRegistrationRequestType,
+ id-MBMSSynchronisationInformation,
+ id-MBMSServiceArea,
+ id-MBMSSessionDuration,
+ id-MBMSSessionIdentity,
+ id-MBMSSessionRepetitionNumber,
+ id-NAS-PDU,
+ id-NAS-SequenceNumber,
+ id-NewBSS-To-OldBSS-Information,
+ id-NonSearchingIndication,
+ id-NumberOfSteps,
+ id-OMC-ID,
+ id-OldBSS-ToNewBSS-Information,
+ id-PagingAreaID,
+ id-PagingCause,
+ id-PDP-TypeInformation,
+ id-PermanentNAS-UE-ID,
+ id-PositionData,
+ id-PositionDataSpecificToGERANIuMode,
+ id-PositioningPriority,
+ id-ProvidedData,
+ id-RAB-ContextItem,
+ id-RAB-ContextList,
+ id-RAB-ContextFailedtoTransferItem,
+ id-RAB-ContextFailedtoTransferList,
+ id-RAB-ContextItem-RANAP-RelocInf,
+ id-RAB-ContextList-RANAP-RelocInf,
+ id-RAB-DataForwardingItem,
+ id-RAB-DataForwardingItem-SRNS-CtxReq,
+ id-RAB-DataForwardingList,
+ id-RAB-DataForwardingList-SRNS-CtxReq,
+ id-RAB-DataVolumeReportItem,
+ id-RAB-DataVolumeReportList,
+ id-RAB-DataVolumeReportRequestItem,
+ id-RAB-DataVolumeReportRequestList,
+ id-RAB-FailedItem,
+ id-RAB-FailedList,
+ id-RAB-FailedList-EnhRelocInfoRes,
+ id-RAB-FailedItem-EnhRelocInfoRes,
+ id-RAB-FailedtoReportItem,
+ id-RAB-FailedtoReportList,
+ id-RAB-ID,
+ id-RAB-ModifyList,
+ id-RAB-ModifyItem,
+ id-RAB-Parameters,
+ id-RAB-QueuedItem,
+ id-RAB-QueuedList,
+ id-RAB-ReleaseFailedList,
+ id-RAB-ReleaseItem,
+ id-RAB-ReleasedItem-IuRelComp,
+ id-RAB-ReleaseList,
+ id-RAB-ReleasedItem,
+ id-RAB-ReleasedList,
+ id-RAB-ReleasedList-IuRelComp,
+ id-RAB-RelocationReleaseItem,
+ id-RAB-RelocationReleaseList,
+ id-RAB-SetupItem-RelocReq,
+ id-RAB-SetupItem-RelocReqAck,
+ id-RAB-SetupList-RelocReq,
+ id-RAB-SetupList-RelocReqAck,
+ id-RAB-SetupList-EnhRelocInfoReq,
+ id-RAB-SetupItem-EnhRelocInfoReq,
+ id-RAB-SetupList-EnhRelocInfoRes,
+ id-RAB-SetupItem-EnhRelocInfoRes,
+ id-RAB-SetupList-EnhancedRelocCompleteReq,
+ id-RAB-SetupItem-EnhancedRelocCompleteReq,
+ id-RAB-SetupList-EnhancedRelocCompleteRes,
+ id-RAB-SetupItem-EnhancedRelocCompleteRes,
+ id-RAB-SetupOrModifiedItem,
+ id-RAB-SetupOrModifiedList,
+ id-RAB-SetupOrModifyItem,
+ id-RAB-SetupOrModifyList,
+ id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes,
+ id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes,
+ id-RAC,
+ id-RAListofIdleModeUEs,
+ id-RAT-Type,
+ id-RedirectAttemptFlag,
+ id-RedirectionCompleted,
+ id-RedirectionIndication,
+ id-RejectCauseValue,
+ id-RelocationType,
+ id-Relocation-SourceRNC-ID,
+ id-Relocation-SourceExtendedRNC-ID,
+ id-Relocation-TargetRNC-ID,
+ id-Relocation-TargetExtendedRNC-ID,
+ id-RequestedGANSSAssistanceData,
+ id-RequestType,
+ id-ResponseTime,
+ id-SAI,
+ id-SAPI,
+ id-SelectedPLMN-ID,
+ id-SessionUpdateID,
+ id-SNA-Access-Information,
+ id-SourceBSS-ToTargetBSS-TransparentContainer,
+ id-SourceRNC-ID,
+ id-SourceExtendedRNC-ID,
+ id-SourceID,
+ id-Source-ToTarget-TransparentContainer,
+ id-SourceRNC-PDCP-context-info,
+ id-SRVCC-HO-Indication,
+ id-SRVCC-Information,
+ id-SRVCC-Operation-Possible,
+ id-TargetBSS-ToSourceBSS-TransparentContainer,
+ id-TargetID,
+ id-Target-ToSource-TransparentContainer,
+ id-TemporaryUE-ID,
+ id-TimeToMBMSDataTransfer,
+ id-TMGI,
+ id-TracePropagationParameters,
+ id-TraceReference,
+ id-TraceType,
+ id-TransportLayerAddress,
+ id-TransportLayerInformation,
+ id-TriggerID,
+ id-UE-ID,
+ id-UESBI-Iu,
+ id-UL-GTP-PDU-SequenceNumber,
+ id-UnsuccessfulLinkingList,
+ id-VelocityEstimate,
+ id-VerticalAccuracyCode,
+ id-PeriodicLocationInfo,
+ id-BroadcastGANSSAssistanceDataDecipheringKeys,
+ id-SubscriberProfileIDforRFP
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE shall always be present although its presence is optional --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY reject TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY reject TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a RNC-ID IE or eNB-ID -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE optional } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-SourceBSS-ToTargetBSS-TransparentContainer CRITICALITY ignore EXTENSION SourceBSS-ToTargetBSS-TransparentContainer PRESENCE optional }|
+-- Extension for Release 8 for SRVCC operation --
+ { ID id-SRVCC-HO-Indication CRITICALITY reject EXTENSION SRVCC-HO-Indication PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE optional } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-TargetBSS-ToSourceBSS-TransparentContainer CRITICALITY ignore EXTENSION TargetBSS-ToSourceBSS-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE optional } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional} |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional },
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY reject EXTENSION GlobalCN-ID PRESENCE optional} |
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional} |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to convey the selected PLMN id in network sharing mobility scenarios --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 6 to enable MBMS UE linking at relocation --
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore EXTENSION CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+CNMBMSLinkingInformation ::= SEQUENCE {
+ joinedMBMSBearerService-IEs JoinedMBMSBearerService-IEs,
+ iE-Extensions ProtocolExtensionContainer { {CNMBMSLinkingInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNMBMSLinkingInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ mBMS-PTP-RAB-ID MBMS-PTP-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {JoinedMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+JoinedMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE optional } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY reject TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- The SGSN may include the IE, when available to indicate the RAT from which the context request originates, to correct measurement points in SRNC. --
+ {ID id-RAT-Type CRITICALITY ignore EXTENSION RAT-Type PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE optional } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY reject TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY reject TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY reject TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY reject TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Request
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteRequestExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-OldIuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-Relocation-SourceRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-SourceExtendedRNC-ID CRITICALITY ignore TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-Relocation-TargetRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-TargetExtendedRNC-ID CRITICALITY reject TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupList-EnhancedRelocCompleteReq PRESENCE optional }
+, ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhancedRelocCompleteReq-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddressReq1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationReq1 IuTransportAssociation OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Response
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteResponseExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-SetupList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-SetupItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteRes CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddressRes1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationRes1 IuTransportAssociation OPTIONAL,
+ rab2beReleasedList RAB-ToBeReleasedList-EnhancedRelocCompleteRes OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ToBeReleasedList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Failure
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteFailureExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Confirm
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional } |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to indicate the selected plmn in GWCN configuration for network sharing non-supporting UEs --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ -- This information is mandatory for UTRAN, optional for GERAN Iu mode --
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable signalling based activation for Subscriber and Equipment Trace over Iu interface --
+ { ID id-TracePropagationParameters CRITICALITY ignore EXTENSION TracePropagationParameters PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ -- This information is optional for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-VerticalAccuracyCode CRITICALITY ignore EXTENSION VerticalAccuracyCode PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ResponseTime CRITICALITY ignore EXTENSION ResponseTime PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-PositioningPriority CRITICALITY ignore EXTENSION PositioningPriority PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ClientType CRITICALITY ignore EXTENSION ClientType PRESENCE optional } |
+-- Extension for Release 7 to allow the request of velocity over Iu --
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional } |
+-- Extension for Release 7 to allow periodic reporting over Iu --
+ { ID id-PeriodicLocationInfo CRITICALITY ignore EXTENSION PeriodicLocationInfo PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional } ,
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable report of Last Known Service Area with its Age over Iu --
+ { ID id-LastKnownServiceArea CRITICALITY ignore EXTENSION LastKnownServiceArea PRESENCE optional} |
+-- Extension for Release 5 to pass the positioning methods that have been used --
+ { ID id-PositionData CRITICALITY ignore EXTENSION PositionData PRESENCE optional}|
+-- Extension for Release 5 to pass the positioning methods that have been used for GERAN Iu mode --
+ { ID id-PositionDataSpecificToGERANIuMode CRITICALITY ignore EXTENSION PositionDataSpecificToGERANIuMode PRESENCE optional }|
+ -- This extension is optional for GERAN Iu mode only, not applicable for UTRAN --
+-- Extension for Release 6 to indicate whether the returned position estimate satisfies the requested accuracy or not --
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore EXTENSION AccuracyFulfilmentIndicator PRESENCE optional}|
+-- Extension for Release 7 to provide a velocity estimate --
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE shall be present if the CN Domain Indicator IE is set to "PS domain" -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to convey the selected PLMN id in shared networks --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore EXTENSION PermanentNAS-UE-ID PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-NAS-SequenceNumber CRITICALITY ignore EXTENSION NAS-SequenceNumber PRESENCE optional } |
+-- Extension for Release 6 to indicate rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectAttemptFlag CRITICALITY ignore EXTENSION RedirectAttemptFlag PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional } |
+-- Extension for Release 8 to support CSG --
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE optional } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE optional } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE optional } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE optional },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectionIndication CRITICALITY ignore EXTENSION RedirectionIndication PRESENCE optional }|
+-- Extension for Release 6 to indicate the MOCN rerouting is completed --
+ { ID id-RedirectionCompleted CRITICALITY ignore EXTENSION RedirectionCompleted PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+RedirectionIndication ::= ProtocolIE-Container { {RedirectionIndication-IEs} }
+
+RedirectionIndication-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-RejectCauseValue CRITICALITY ignore TYPE RejectCauseValue PRESENCE mandatory}|
+ { ID id-NAS-SequenceNumber CRITICALITY ignore TYPE NAS-SequenceNumber PRESENCE optional}|
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable the indication to the RNC which CN domain is suffering the signalling traffic overload --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional } |
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE optional } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation OPTIONAL,
+ transportLayerInformation TransportLayerInformation OPTIONAL,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {TransportLayerInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional } ,
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE optional } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE optional } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE optional } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional },
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse CRITICALITY ignore EXTENSION GERAN-Iumode-RAB-FailedList-RABAssgntResponse PRESENCE optional} ,
+ ...
+}
+
+GERAN-Iumode-RAB-FailedList-RABAssgntResponse ::= RAB-IE-ContainerList { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs} }
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item CRITICALITY ignore TYPE GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item PRESENCE mandatory },
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ gERAN-Classmark GERAN-Classmark OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ cN-DomainIndicator CN-DomainIndicator,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP ENHANCED RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Request
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-OldIuSigConIdCS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-OldIuSigConIdPS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-RAB-SetupList-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupList-EnhRelocInfoReq PRESENCE optional } |
+ { ID id-SNA-Access-Information CRITICALITY ignore TYPE SNA-Access-Information PRESENCE optional} |
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional}|
+ { ID id-SelectedPLMN-ID CRITICALITY ignore TYPE PLMNidentity PRESENCE optional }|
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore TYPE CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoReq-IEs} }
+
+RAB-SetupItem-EnhRelocInfoReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ dataForwardingInformation TNLInformationEnhRelInfoReq OPTIONAL,
+ sourceSideIuULTNLInfo TNLInformationEnhRelInfoReq OPTIONAL,
+
+ service-Handover Service-Handover OPTIONAL,
+ alt-RAB-Parameters Alt-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TNLInformationEnhRelInfoReq ::=SEQUENCE{
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RANAP-EnhancedRelocationInformationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Response
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-SetupList-EnhRelocInfoRes PRESENCE optional} |
+ { ID id-RAB-FailedList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-FailedList-EnhRelocInfoRes PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoRes-IEs} }
+
+RAB-SetupItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ dataForwardingInformation TNLInformationEnhRelInfoRes OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-FailedItem-EnhRelocInfoRes-IEs} }
+
+RAB-FailedItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-FailedItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-FailedItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+TNLInformationEnhRelInfoRes ::=SEQUENCE{
+ dl-forwardingTransportLayerAddress TransportLayerAddress,
+ dl-forwardingTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RAB MODIFICATION REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Modify Request
+--
+-- **************************************************************
+
+RAB-ModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ModifyRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ModifyRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyList CRITICALITY ignore TYPE RAB-ModifyList PRESENCE mandatory},
+ ...
+}
+
+RAB-ModifyList ::= RAB-IE-ContainerList { {RAB-ModifyItemIEs} }
+
+RAB-ModifyItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyItem CRITICALITY ignore TYPE RAB-ModifyItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ModifyItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ requested-RAB-Parameter-Values Requested-RAB-Parameter-Values,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ModifyRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION RELATED DATA ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Related Data Request
+--
+-- **************************************************************
+
+LocationRelatedDataRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationRelatedDataRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationRelatedDataRequestExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-LocationRelatedDataRequestType CRITICALITY reject TYPE LocationRelatedDataRequestType PRESENCE optional },
+ -- This IE is mandatory for UTRAN, optional for GERAN Iu Mode �-
+ ...
+}
+
+LocationRelatedDataRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable LCS support for GERAN Iu mode --
+ { ID id-LocationRelatedDataRequestTypeSpecificToGERANIuMode CRITICALITY reject EXTENSION LocationRelatedDataRequestTypeSpecificToGERANIuMode PRESENCE optional }|
+ -- The previous extension is optional for GERAN Iu Mode only, not applicable for UTRAN --
+ -- Extension for Release 7 to request GANSS Assistance Data. This IE shall be present if the Requested Location Related Data Type IE is set to
+ -- �Dedicated Assistance Data for Assisted GANSS� or `Dedicated Assistance Data for Assisted GPS and GANSS�--
+ { ID id-RequestedGANSSAssistanceData CRITICALITY reject EXTENSION RequestedGANSSAssistanceData PRESENCE conditional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Response
+--
+-- **************************************************************
+
+LocationRelatedDataResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataResponseExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-BroadcastAssistanceDataDecipheringKeys CRITICALITY ignore TYPE BroadcastAssistanceDataDecipheringKeys PRESENCE optional },
+ ...
+}
+
+LocationRelatedDataResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional }|
+ { ID id-BroadcastGANSSAssistanceDataDecipheringKeys CRITICALITY ignore EXTENSION BroadcastAssistanceDataDecipheringKeys PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Failure
+--
+-- **************************************************************
+
+LocationRelatedDataFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataFailureExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+LocationRelatedDataFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Information Transfer Indication
+--
+-- **************************************************************
+
+InformationTransferIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY reject TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-ProvidedData CRITICALITY reject TYPE ProvidedData PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional},
+ ...
+}
+
+InformationTransferIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Confirmation
+--
+-- **************************************************************
+
+InformationTransferConfirmation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferConfirmationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferConfirmationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferConfirmationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferConfirmationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Failure
+--
+-- **************************************************************
+
+InformationTransferFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferFailureExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE SPECIFIC INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Specific Information Indication
+--
+-- **************************************************************
+
+UESpecificInformationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UESpecificInformationIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UESpecificInformationIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+UESpecificInformationIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional },
+ ...
+}
+
+UESpecificInformationIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Information Transfer
+--
+-- **************************************************************
+
+DirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DirectInformationTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { { DirectInformationTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectInformationTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InterSystemInformationTransferType CRITICALITY ignore TYPE InterSystemInformationTransferType PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+DirectInformationTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK INFORMATION EXCHANGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Request
+--
+-- **************************************************************
+
+UplinkInformationExchangeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeRequestExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationExchangeType CRITICALITY reject TYPE InformationExchangeType PRESENCE mandatory } |
+ { ID id-InformationTransferType CRITICALITY reject TYPE InformationTransferType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "transfer" -- } |
+ { ID id-InformationRequestType CRITICALITY reject TYPE InformationRequestType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "request" -- } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+UplinkInformationExchangeRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Response
+--
+-- **************************************************************
+
+UplinkInformationExchangeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeResponseExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationRequested CRITICALITY ignore TYPE InformationRequested PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Failure
+--
+-- **************************************************************
+
+UplinkInformationExchangeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeFailureExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION START PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Start
+--
+-- **************************************************************
+
+MBMSSessionStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-MBMSSessionIdentity CRITICALITY ignore TYPE MBMSSessionIdentity PRESENCE optional } |
+ { ID id-MBMSBearerServiceType CRITICALITY reject TYPE MBMSBearerServiceType PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory }|
+ { ID id-RAB-Parameters CRITICALITY reject TYPE RAB-Parameters PRESENCE mandatory } |
+ { ID id-PDP-TypeInformation CRITICALITY ignore TYPE PDP-TypeInformation PRESENCE optional } |
+ { ID id-MBMSSessionDuration CRITICALITY reject TYPE MBMSSessionDuration PRESENCE mandatory } |
+ { ID id-MBMSServiceArea CRITICALITY reject TYPE MBMSServiceArea PRESENCE mandatory } |
+ { ID id-FrequenceLayerConvergenceFlag CRITICALITY ignore TYPE FrequenceLayerConvergenceFlag PRESENCE optional } |
+ { ID id-RAListofIdleModeUEs CRITICALITY ignore TYPE RAListofIdleModeUEs PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-MBMSSessionRepetitionNumber CRITICALITY ignore TYPE MBMSSessionRepetitionNumber PRESENCE optional } |
+ { ID id-TimeToMBMSDataTransfer CRITICALITY reject TYPE TimeToMBMSDataTransfer PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStartExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable MBMS counting in broadcast mode --
+ { ID id-MBMSCountingInformation CRITICALITY ignore EXTENSION MBMSCountingInformation PRESENCE optional } |
+ { ID id-MBMSSynchronisationInformation CRITICALITY ignore EXTENSION MBMSSynchronisationInformation PRESENCE optional },
+ ...
+}
+
+MBMSSynchronisationInformation ::= SEQUENCE {
+ mBMSHCIndicator MBMSHCIndicator,
+ iPMulticastAddress IPMulticastAddress,
+ gTPDLTEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {MBMSSynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSSynchronisationInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Response
+--
+-- **************************************************************
+
+MBMSSessionStartResponse::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSSessionStartResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSSessionStartResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Failure
+--
+-- **************************************************************
+
+MBMSSessionStartFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Update
+--
+-- **************************************************************
+
+MBMSSessionUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY reject TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-DeltaRAListofIdleModeUEs CRITICALITY reject TYPE DeltaRAListofIdleModeUEs PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionUpdateExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Response
+--
+-- **************************************************************
+
+MBMSSessionUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Failure
+--
+-- **************************************************************
+
+MBMSSessionUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION STOP PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Stop
+--
+-- **************************************************************
+
+MBMSSessionStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSCNDe-Registration CRITICALITY reject TYPE MBMSCNDe-Registration PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStopExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Stop Response
+--
+-- **************************************************************
+
+MBMSSessionStopResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStopResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE LINKING PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS UE Linking Request
+--
+-- **************************************************************
+
+MBMSUELinkingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-JoinedMBMSBearerServicesList CRITICALITY reject TYPE JoinedMBMSBearerService-IEs PRESENCE optional } |
+ { ID id-LeftMBMSBearerServicesList CRITICALITY reject TYPE LeftMBMSBearerService-IEs PRESENCE optional },
+ ...
+}
+
+LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ iE-Extensions ProtocolExtensionContainer { {LeftMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LeftMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE Linking Response
+--
+-- **************************************************************
+
+MBMSUELinkingResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulLinkingList CRITICALITY ignore TYPE UnsuccessfulLinking-IEs PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulLinking-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UnsuccessfulLinking-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Registration Request
+--
+-- **************************************************************
+
+MBMSRegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSRegistrationRequestType CRITICALITY reject TYPE MBMSRegistrationRequestType PRESENCE mandatory } |
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-IPMulticastAddress CRITICALITY reject TYPE IPMulticastAddress PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-APN CRITICALITY reject TYPE APN PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+MBMSRegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Response
+--
+-- **************************************************************
+
+MBMSRegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Failure
+--
+-- **************************************************************
+
+MBMSRegistrationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN DE-REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Request
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+MBMSCNDe-RegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Response
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB ESTABLISHMENT INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Establishment Indication
+--
+-- **************************************************************
+
+MBMSRABEstablishmentIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRABEstablishmentIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRABEstablishmentIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABEstablishmentIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE mandatory } ,
+ ...
+}
+
+MBMSRABEstablishmentIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB RELEASE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Release Request
+--
+-- **************************************************************
+
+MBMSRABReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+
+MBMSRABReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release
+--
+-- **************************************************************
+
+MBMSRABRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release Failure
+--
+-- **************************************************************
+
+MBMSRABReleaseFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Request
+--
+-- **************************************************************
+
+SRVCC-CSKeysRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysRequestIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+SRVCC-CSKeysRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Response
+--
+-- **************************************************************
+
+SRVCC-CSKeysResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionKey CRITICALITY reject TYPE IntegrityProtectionKey PRESENCE mandatory }|
+ { ID id-EncryptionKey CRITICALITY reject TYPE EncryptionKey PRESENCE mandatory }|
+ { ID id-SRVCC-Information CRITICALITY reject TYPE SRVCC-Information PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SRVCC-CSKeysResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Descriptions.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Descriptions.asn1
new file mode 100644
index 0000000000..a7f4aded76
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP-PDU-Descriptions.asn1
@@ -0,0 +1,619 @@
+-- RANAP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+RANAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM RANAP-CommonDataTypes
+
+ Iu-ReleaseCommand,
+ Iu-ReleaseComplete,
+ RelocationCommand,
+ RelocationPreparationFailure,
+ RelocationRequired,
+ RelocationRequest,
+ RelocationRequestAcknowledge,
+ RelocationFailure,
+ RelocationCancel,
+ RelocationCancelAcknowledge,
+ EnhancedRelocationCompleteRequest,
+ EnhancedRelocationCompleteResponse,
+ EnhancedRelocationCompleteFailure,
+ EnhancedRelocationCompleteConfirm,
+ SRNS-ContextRequest,
+ SRNS-ContextResponse,
+ SecurityModeCommand,
+ SecurityModeComplete,
+ SecurityModeReject,
+ DataVolumeReportRequest,
+ DataVolumeReport,
+ Reset,
+ ResetAcknowledge,
+ RAB-ReleaseRequest,
+ Iu-ReleaseRequest,
+ RelocationDetect,
+ RelocationComplete,
+ Paging,
+ CommonID,
+ CN-InvokeTrace,
+ CN-DeactivateTrace,
+ LocationReportingControl,
+ LocationReport,
+ InitialUE-Message,
+ DirectTransfer,
+ Overload,
+ ErrorIndication,
+ SRNS-DataForwardCommand,
+ ForwardSRNS-Context,
+ RAB-AssignmentRequest,
+ RAB-AssignmentResponse,
+ RAB-ModifyRequest,
+ PrivateMessage,
+ ResetResource,
+ ResetResourceAcknowledge,
+ RANAP-RelocationInformation,
+ RANAP-EnhancedRelocationInformationRequest,
+ RANAP-EnhancedRelocationInformationResponse,
+ LocationRelatedDataRequest,
+ LocationRelatedDataResponse,
+ LocationRelatedDataFailure,
+ InformationTransferIndication,
+ InformationTransferConfirmation,
+ InformationTransferFailure,
+ UESpecificInformationIndication,
+ DirectInformationTransfer,
+ UplinkInformationExchangeRequest,
+ UplinkInformationExchangeResponse,
+ UplinkInformationExchangeFailure,
+ MBMSSessionStart,
+ MBMSSessionStartResponse,
+ MBMSSessionStartFailure,
+ MBMSSessionUpdate,
+ MBMSSessionUpdateResponse,
+ MBMSSessionUpdateFailure,
+ MBMSSessionStop,
+ MBMSSessionStopResponse,
+ MBMSUELinkingRequest,
+ MBMSUELinkingResponse,
+ MBMSRegistrationRequest,
+ MBMSRegistrationResponse,
+ MBMSRegistrationFailure,
+ MBMSCNDe-RegistrationRequest,
+ MBMSCNDe-RegistrationResponse,
+ MBMSRABEstablishmentIndication,
+ MBMSRABReleaseRequest,
+ MBMSRABRelease,
+ MBMSRABReleaseFailure,
+ SRVCC-CSKeysRequest,
+ SRVCC-CSKeysResponse
+FROM RANAP-PDU-Contents
+
+ id-LocationRelatedData,
+ id-CN-DeactivateTrace,
+ id-CN-InvokeTrace,
+ id-CommonID,
+ id-DataVolumeReport,
+ id-DirectTransfer,
+ id-ErrorIndication,
+ id-ForwardSRNS-Context,
+ id-InformationTransfer,
+ id-InitialUE-Message,
+ id-Iu-Release,
+ id-Iu-ReleaseRequest,
+ id-LocationReport,
+ id-LocationReportingControl,
+ id-OverloadControl,
+ id-Paging,
+ id-privateMessage,
+ id-RAB-Assignment,
+ id-RAB-ReleaseRequest,
+ id-RAB-ModifyRequest,
+ id-RANAP-Relocation,
+ id-RANAPenhancedRelocation,
+ id-RelocationCancel,
+ id-RelocationComplete,
+ id-RelocationDetect,
+ id-RelocationPreparation,
+ id-RelocationResourceAllocation,
+ id-enhancedRelocationComplete,
+ id-enhancedRelocationCompleteConfirm,
+ id-Reset,
+ id-SRNS-ContextTransfer,
+ id-SRNS-DataForward,
+ id-SecurityModeControl,
+ id-ResetResource,
+ id-UESpecificInformation,
+ id-DirectInformationTransfer,
+ id-UplinkInformationExchange,
+ id-MBMSSessionStart,
+ id-MBMSSessionUpdate,
+ id-MBMSSessionStop,
+ id-MBMSUELinking,
+ id-MBMSRegistration,
+ id-MBMSCNDe-Registration-Procedure,
+ id-MBMSRABEstablishmentIndication,
+ id-MBMSRABRelease,
+ id-SRVCCPreparation
+
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ reset |
+ resetResource ,
+ ...,
+ locationRelatedData |
+ informationTransfer |
+ uplinkInformationExchange |
+ mBMSSessionStart |
+ mBMSSessionUpdate |
+ mBMSSessionStop |
+ mBMSUELinking |
+ mBMSRegistration |
+ mBMSCNDe-Registration |
+ mBMSRABRelease |
+ enhancedRelocationComplete |
+ rANAP-enhancedRelocation |
+ sRVCCPreparation}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...,
+ rAB-ModifyRequest |
+ uESpecificInformation |
+ directInformationTransfer |
+ mBMSRABEstablishmentIndication |
+ enhancedRelocationCompleteConfirm
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY reject
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY reject
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY reject
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY reject
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY reject
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY reject
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY reject
+}
+
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY reject
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY reject
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+rAB-ModifyRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ModifyRequest
+ PROCEDURE CODE id-RAB-ModifyRequest
+ CRITICALITY ignore
+}
+
+locationRelatedData RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationRelatedDataRequest
+ SUCCESSFUL OUTCOME LocationRelatedDataResponse
+ UNSUCCESSFUL OUTCOME LocationRelatedDataFailure
+ PROCEDURE CODE id-LocationRelatedData
+ CRITICALITY reject
+}
+
+informationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationTransferIndication
+ SUCCESSFUL OUTCOME InformationTransferConfirmation
+ UNSUCCESSFUL OUTCOME InformationTransferFailure
+ PROCEDURE CODE id-InformationTransfer
+ CRITICALITY reject
+}
+
+uESpecificInformation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UESpecificInformationIndication
+ PROCEDURE CODE id-UESpecificInformation
+ CRITICALITY ignore
+}
+
+directInformationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectInformationTransfer
+ PROCEDURE CODE id-DirectInformationTransfer
+ CRITICALITY ignore
+}
+
+uplinkInformationExchange RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkInformationExchangeRequest
+ SUCCESSFUL OUTCOME UplinkInformationExchangeResponse
+ UNSUCCESSFUL OUTCOME UplinkInformationExchangeFailure
+ PROCEDURE CODE id-UplinkInformationExchange
+ CRITICALITY reject
+}
+
+mBMSSessionStart RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStart
+ SUCCESSFUL OUTCOME MBMSSessionStartResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionStartFailure
+ PROCEDURE CODE id-MBMSSessionStart
+ CRITICALITY reject
+}
+
+mBMSSessionUpdate RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionUpdate
+ SUCCESSFUL OUTCOME MBMSSessionUpdateResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionUpdateFailure
+ PROCEDURE CODE id-MBMSSessionUpdate
+ CRITICALITY reject
+}
+
+mBMSSessionStop RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStop
+ SUCCESSFUL OUTCOME MBMSSessionStopResponse
+ PROCEDURE CODE id-MBMSSessionStop
+ CRITICALITY reject
+}
+
+mBMSUELinking RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSUELinkingRequest
+ OUTCOME MBMSUELinkingResponse
+ PROCEDURE CODE id-MBMSUELinking
+ CRITICALITY reject
+}
+
+mBMSRegistration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRegistrationRequest
+ SUCCESSFUL OUTCOME MBMSRegistrationResponse
+ UNSUCCESSFUL OUTCOME MBMSRegistrationFailure
+ PROCEDURE CODE id-MBMSRegistration
+ CRITICALITY reject
+}
+
+mBMSCNDe-Registration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSCNDe-RegistrationRequest
+ SUCCESSFUL OUTCOME MBMSCNDe-RegistrationResponse
+ PROCEDURE CODE id-MBMSCNDe-Registration-Procedure
+ CRITICALITY reject
+}
+
+mBMSRABEstablishmentIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABEstablishmentIndication
+ PROCEDURE CODE id-MBMSRABEstablishmentIndication
+ CRITICALITY ignore
+}
+
+mBMSRABRelease RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABReleaseRequest
+ SUCCESSFUL OUTCOME MBMSRABRelease
+ UNSUCCESSFUL OUTCOME MBMSRABReleaseFailure
+ PROCEDURE CODE id-MBMSRABRelease
+ CRITICALITY reject
+}
+enhancedRelocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteRequest
+ SUCCESSFUL OUTCOME EnhancedRelocationCompleteResponse
+ UNSUCCESSFUL OUTCOME EnhancedRelocationCompleteFailure
+ PROCEDURE CODE id-enhancedRelocationComplete
+ CRITICALITY reject
+}
+
+enhancedRelocationCompleteConfirm RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteConfirm
+ PROCEDURE CODE id-enhancedRelocationCompleteConfirm
+ CRITICALITY ignore
+}
+
+rANAP-enhancedRelocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-EnhancedRelocationInformationRequest
+ SUCCESSFUL OUTCOME RANAP-EnhancedRelocationInformationResponse
+ PROCEDURE CODE id-RANAPenhancedRelocation
+ CRITICALITY reject
+}
+
+sRVCCPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRVCC-CSKeysRequest
+ OUTCOME SRVCC-CSKeysResponse
+ PROCEDURE CODE id-SRVCCPreparation
+ CRITICALITY reject
+}
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAP.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAP.asn1
new file mode 100644
index 0000000000..55fb58b163
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAP.asn1
@@ -0,0 +1,3237 @@
+RANAP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+-- RANAP-CommonDataTypes { object identifier to be allocated }--
+-- 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, outcome }
+
+-- END
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+-- RANAP-Constants { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-CN-InformationBroadcast INTEGER ::= 8
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 1000
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPieces INTEGER ::= 16
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfVol INTEGER ::= 2
+
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-BroadcastInformationPiece INTEGER ::= 1
+id-CN-BroadcastInformationPieceList INTEGER ::= 2
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-SourceRNC-ToTargetRNC-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-TargetRNC-ToSourceRNC-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+
+-- END **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+-- RANAP-Containers { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- END **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+-- RANAP-IEs { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- A
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101)
+
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ change-of-ciphering-and-or-integrity-protection-is-not-supported (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bitr-ate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-report-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40)
+} (1..64)
+
+CauseNon-Standard ::= INTEGER (129..256)
+
+CauseTransmissionNetwork ::= INTEGER {
+ logical-error-unknown-iu-transport-association (65)
+} (65..80)
+
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ criticalityResponse Criticality OPTIONAL,
+ iEsCriticalityResponses CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ criticalityResponse Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+
+CN-BroadcastArea ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (2..12)
+DSCH-ID ::= INTEGER (0..255)
+
+-- E
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+Event ::= ENUMERATED {
+ stop,
+ direct,
+ change-of-servicearea,
+ ...
+}
+
+-- F
+-- G
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+-- Reference: xx.xxx
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+-- I
+InformationIdentity ::= INTEGER (0..255)
+
+InformationPriority ::= INTEGER (0..15)
+
+InformationControl ::= ENUMERATED {
+ on,
+ off
+}
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IntegrityProtectionAlgorithm ::= INTEGER { standard-UMTS-integrity-algorithm-UIA1 (0) } (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MCC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+MNC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+-- N
+
+
+NAS-BroadcastInformation ::= OCTET STRING
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM TS 12.20
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ speech-call,
+ cs-data-call,
+ ps-data-call,
+ sms,
+ ...
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value is used for OSP:IHOSS -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMN-ID ::= TBCD-STRING (SIZE (3))
+
+Pre-emptionCapability ::= ENUMERATED {
+ can-not-trigger-pre-emption,
+ can-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-vulnerable-to-pre-emption,
+ vulnerable-to-pre-emption
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE is only present when traffic class indicates Interactiv --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber ::= INTEGER (0..255)
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-coordinates,
+ ...
+}
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ -- To be used if Geographical Coordinates shall be reported with a requested accuracy. --
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+RRC-Container ::= OCTET STRING
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ normal-priority,
+ low-priority,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL
+ -- This IE is only present for RABs that have predefined SDU size(s) --,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL
+ -- At least either of subflowSDU-Size or rABsubflowCombinationBitRate --
+ -- shall be present when SDUformatInformationParameter is present --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE is not present when DeliveryOfErroneousSDU is set to no-error-detection-consideration --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL
+ -- When signalled, this IE indicates that the RAB is rate controllable --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID, -- If UMTS target
+ sAI SAI, -- if GSM target
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ cipheringKey EncryptionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ d-RNTI D-RNTI OPTIONAL
+ -- Included for SRNS Relocation without UE involvement --,
+ targetCellId TargetCellId OPTIONAL
+ -- Included for SRNS Relocation with UE involvement --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL
+ -- Included for SRNS Relocation without UE involvement and --
+ -- if RABs are carried on DCH, USCH or DSCH transport channels --,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID, -- If UMTS target
+ cGI CGI, -- If GSM target
+ ...
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL
+ -- Must always be present towards the PS domain and never towards the CS domain --,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ dSCH-ID DSCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ uSCH-ID USCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+-- U
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...
+}
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+-- END **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+-- RANAP-PDU-Contents { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+CN-BroadcastInfPiece-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfPieces, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group is only present if data volume reporting for PS domain is required -- } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain when the release was initiated by UTRAN -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY ignore TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY ignore TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be present when initiating relocation of SRNS -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY reject TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group if applicable is only present for RABs towards the PS domain -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE is only present if available at the sending side --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- Must be included if applicapble and if not sent via the other CN -- } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY ignore TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY ignore TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INFORMATION BROADCAST
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Information Broadcast Request
+--
+-- **************************************************************
+
+CN-InformationBroadcastRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRequestExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CN-BroadcastInformationPieceList CRITICALITY ignore TYPE CN-BroadcastInformationPieceList PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPieceList ::= CN-BroadcastInfPiece-IE-ContainerList { {CN-BroadcastInformationPieceIEs} }
+
+CN-BroadcastInformationPieceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-BroadcastInformationPiece CRITICALITY ignore TYPE CN-BroadcastInformationPiece PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPiece ::= SEQUENCE {
+ informationIdentity InformationIdentity,
+ nAS-BroadcastInformation NAS-BroadcastInformation OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ cN-BroadcastArea CN-BroadcastArea OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationPriority InformationPriority OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationControl InformationControl,
+ iE-Extensions ProtocolExtensionContainer { {CN-BroadcastInformationPiece-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CN-BroadcastInformationPiece-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CN-InformationBroadcastRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Confirm
+--
+-- **************************************************************
+
+CN-InformationBroadcastConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Reject
+--
+-- **************************************************************
+
+CN-InformationBroadcastReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRejectExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE mandatory } |
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present for RABs towards the PS domain -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE conditional
+ -- This IE is always used in downlink direction-- },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional } |
+ { ID id-IuTransportAssociation CRITICALITY ignore TYPE IuTransportAssociation PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction when message is sent connectionless -- },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain -- },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation
+ -- This IE is only present for RABs towards the PS domain -- OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ iuTransportAssociation IuTransportAssociation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if the RAB has been modified and --
+ -- RAB data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- END
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+-- RANAP-PDU-Descriptions { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ cN-InformationBroadcast |
+ reset |
+ resetResource ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY ignore
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY ignore
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY ignore
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY ignore
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY ignore
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY ignore
+}
+
+cN-InformationBroadcast RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InformationBroadcastRequest
+ SUCCESSFUL OUTCOME CN-InformationBroadcastConfirm
+ UNSUCCESSFUL OUTCOME CN-InformationBroadcastReject
+ PROCEDURE CODE id-CN-InformationBroadcast
+ CRITICALITY ignore
+}
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY ignore
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY ignore
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY ignore
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAPSET.set.asn1 b/lib/asn1/test/asn1_SUITE_data/RANAPSET.set.asn1
new file mode 100644
index 0000000000..b40936514e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAPSET.set.asn1
@@ -0,0 +1,6 @@
+RANAP-CommonDataTypes.asn1
+RANAP-Constants.asn1
+RANAP-Containers.asn1
+RANAP-IEs.asn1
+RANAP-PDU-Contents.asn1
+RANAP-PDU-Descriptions.asn1
diff --git a/lib/asn1/test/asn1_SUITE_data/RANAPextract1.asn b/lib/asn1/test/asn1_SUITE_data/RANAPextract1.asn
new file mode 100644
index 0000000000..2f28cb7384
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/RANAPextract1.asn
@@ -0,0 +1,142 @@
+RANAPextract1 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+
+InitiatingMessage2 ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES-2}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode})
+}
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY notify
+}
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release-3,
+ &criticality reject
+ }
+
+
+-- OTP-5466
+testObject RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify
+}
+
+testObject2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test2
+ CRITICALITY notify
+}
+-- OTP-5466
+
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+-- additional definition R-E-P and change in RANAP-ELEMENTARY-PROCEDURES-2
+-- from RANAP-ELEMENTARY-PROCEDURE to R-E-P to test OTP-4441
+
+R-E-P ::= RANAP-ELEMENTARY-PROCEDURE
+
+-- add for RANAP-ELEMENTARY-PROCEDURES-2 and object3 OTP-4275
+RANAP-ELEMENTARY-PROCEDURES-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...,
+ object3
+}
+
+
+-- OTP-5466
+RANAP-ELEMENTARY-PROCEDURES-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify}
+}
+
+RANAP-ELEMENTARY-PROCEDURES-4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release|
+ testObject,
+ ...,
+ relocationPreparation |
+ testObject2
+}
+-- OTP-5466
+
+
+
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-Iu-Release-3 INTEGER ::= 3
+-- OTP-5466
+id-test INTEGER ::= 4
+id-test2 INTEGER ::= 5
+-- OTP-5466
+
+END
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/ROSE.asn1 b/lib/asn1/test/asn1_SUITE_data/ROSE.asn1
new file mode 100644
index 0000000000..2fefae3caf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ROSE.asn1
@@ -0,0 +1,449 @@
+ROSE DEFINITIONS IMPLICIT TAGS ::=
+
+
+BEGIN
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_SUITE_data/Real.py b/lib/asn1/test/asn1_SUITE_data/Real.py
new file mode 100644
index 0000000000..6b7a748b4e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Real.py
@@ -0,0 +1,31 @@
+Real DEFINITIONS ::=
+BEGIN
+
+-- F.2.4.1
+-- Use a real type to model an approximate number.
+-- EXAMPLE
+
+AngleInRadians ::= REAL
+
+pi REAL ::=
+ {mantissa 3141592653589793238462643383279, base 10, exponent -30}
+
+-- F.2.4.2
+-- Application designers may wish to ensure full interworking with real
+-- values despite
+-- differences in floating point hardware, and in implementation
+-- decisions to use
+-- (for example) single or double length floating point for an application.
+-- This can be achieved by the following:
+ App-X-Real ::= REAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2),
+ exponent (-125..128) } )
+
+-- Senders shall not transmit values outside these ranges
+-- and conforming receivers shall be capable of receiving
+-- and processing all values in these ranges.
+
+ girth App-X-Real ::= {mantissa 16, base 2, exponent 1}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1 b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
new file mode 100644
index 0000000000..7dcf4fda0e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
@@ -0,0 +1,203 @@
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS OPERATION, ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+END -- end of generic ROS PDU definitions
diff --git a/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Information-Objects.asn1 b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Information-Objects.asn1
new file mode 100644
index 0000000000..b467c0a754
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Information-Objects.asn1
@@ -0,0 +1,130 @@
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS emptyBind, emptyUnbind
+FROM Remote-Operations-Useful-Definitions
+{joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+END -- end of Information Object specifications
diff --git a/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Merged.set.asn1 b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Merged.set.asn1
new file mode 100644
index 0000000000..c321464a2e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Merged.set.asn1
@@ -0,0 +1,3 @@
+Remote-Operations-Generic-ROS-PDUs.asn1
+Remote-Operations-Information-Objects.asn1
+Remote-Operations-Useful-Definitions.asn1
diff --git a/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Useful-Definitions.asn1 b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Useful-Definitions.asn1
new file mode 100644
index 0000000000..989c23dd5f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Remote-Operations-Useful-Definitions.asn1
@@ -0,0 +1,149 @@
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) useful-definitions(7) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS
+
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs
+ {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_SUITE_data/S1AP-CommonDataTypes.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..3ddbf35a2f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-CommonDataTypes.asn
@@ -0,0 +1,35 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_SUITE_data/S1AP-Constants.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-Constants.asn
new file mode 100644
index 0000000000..ff4e8779cd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-Constants.asn
@@ -0,0 +1,251 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCSGs INTEGER ::= 256
+maxNrOfE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxNrOfErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCells INTEGER ::= 16
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/S1AP-Containers.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-Containers.asn
new file mode 100644
index 0000000000..63883f424c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-Containers.asn
@@ -0,0 +1,201 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_SUITE_data/S1AP-IEs.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-IEs.asn
new file mode 100644
index 0000000000..719bf1359b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-IEs.asn
@@ -0,0 +1,1178 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ maxNrOfCSGs,
+ maxNrOfE-RABs,
+ maxNrOfErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofTACs,
+ maxnoofCells,
+ maxnoofCellID,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+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,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+-- E
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- H
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ 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,
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+-- I
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+
+-- M
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberofBroadcast ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OverloadAction ::= ENUMERATED {
+reject-non-emergency-mo-dt,
+reject-all-rrc-cr-signalling,
+permit-emergency-sessions-only,
+ ...
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PLMNidentity ::= TBCD-STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RAC ::= OCTET STRING (SIZE (1))
+
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4096)
+
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...
+}
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...
+}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- V
+-- W
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Y
+-- Z
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Contents.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..e9762a2b62
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Contents.asn
@@ -0,0 +1,2083 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ UEAggregateMaximumBitrate,
+ Cause,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ CNDomain,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ GTP-TEID,
+ GUMMEI,
+ HandoverRestrictionList,
+ HandoverType,
+ MMEname,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PLMNidentity,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause
+
+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-uEaggregateMaximumBitrate,
+ id-Cause,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-CNDomain,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-NAS-DownlinkCount,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxNrOfErrors,
+ maxNrOfE-RABs,
+ maxNrOfIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY 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-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-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } |
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional } |
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs 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-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY 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-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } |
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- },
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs 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-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } |
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-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 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-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY 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 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs 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-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs 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-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory },
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs 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-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs 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-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory }|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional },
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs 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-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory } |
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } |
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } |
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } |
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional },
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} |
+
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs 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-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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-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-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} |
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} |
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} |
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI 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 }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME Configuration UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnelingIEs 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-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } |
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnelingIEs 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-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } |
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } |
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } |
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs 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-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs 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-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+...
+}
+
+CellTrafficTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs 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-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs 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},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY reject TYPE BroadcastCompletedAreaList PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Descriptions.asn b/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..46667cac2d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,548 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkNASTransport,
+ DownlinkS1cdma2000tunneling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UplinkNASTransport,
+ UplinkS1cdma2000tunneling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkNASTransport,
+ id-DownlinkS1cdma2000tunneling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-uplinkNASTransport,
+ id-UplinkS1cdma2000tunneling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer
+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 |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunneling |
+ uplinkS1cdma2000tunneling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ 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
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunneling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunneling
+ PROCEDURE CODE id-UplinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+INITIATING MESSAGE CellTrafficTrace
+PROCEDURE CODE id-CellTrafficTrace
+CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SOpttest.asn b/lib/asn1/test/asn1_SUITE_data/SOpttest.asn
new file mode 100644
index 0000000000..498d3ebec1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SOpttest.asn
@@ -0,0 +1,30 @@
+SOpttest DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+S ::= SEQUENCE {
+ a [0] A,
+ b [1] B OPTIONAL,
+ c [2] C OPTIONAL
+
+ }
+
+
+A ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] EXPLICIT INTEGER OPTIONAL,
+ scriptAttribute2 [2] EXPLICIT INTEGER OPTIONAL
+ }
+
+B ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+C ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SSL-PKIX.asn1 b/lib/asn1/test/asn1_SUITE_data/SSL-PKIX.asn1
new file mode 100644
index 0000000000..31d78bebbe
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SSL-PKIX.asn1
@@ -0,0 +1,704 @@
+SSL-PKIX {iso(1) identified-organization(3) dod(6) internet(1)
+ private(4) enterprices(1) ericsson(193) otp(19) ssl(10)
+ pkix1(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL
+
+IMPORTS
+ -- Certificate (parts of)
+ Version,
+ CertificateSerialNumber,
+ --AlgorithmIdentifier,
+ Validity,
+ UniqueIdentifier,
+
+ -- AttribyteTypeAndValue
+ Name,
+ AttributeType,
+ id-at-name,
+ id-at-surname,
+ id-at-givenName,
+ id-at-initials,
+ id-at-generationQualifier, X520name,
+ id-at-commonName, X520CommonName,
+ id-at-localityName, X520LocalityName,
+ id-at-stateOrProvinceName, X520StateOrProvinceName,
+ id-at-organizationName, X520OrganizationName,
+ id-at-organizationalUnitName, X520OrganizationalUnitName,
+ id-at-title, X520Title,
+ id-at-dnQualifier, X520dnQualifier,
+ id-at-countryName, X520countryName,
+ id-at-serialNumber, X520SerialNumber,
+ id-at-pseudonym, X520Pseudonym,
+ id-domainComponent, DomainComponent,
+ id-emailAddress, EmailAddress,
+
+ -- Extension Attributes
+ common-name, CommonName,
+ teletex-common-name, TeletexCommonName,
+ teletex-personal-name, TeletexPersonalName,
+ pds-name, PDSName,
+ physical-delivery-country-name, PhysicalDeliveryCountryName,
+ postal-code, PostalCode,
+ physical-delivery-office-name, PhysicalDeliveryOfficeName,
+ physical-delivery-office-number, PhysicalDeliveryOfficeNumber,
+ extension-OR-address-components, ExtensionORAddressComponents,
+ physical-delivery-personal-name, PhysicalDeliveryPersonalName,
+ physical-delivery-organization-name, PhysicalDeliveryOrganizationName,
+ extension-physical-delivery-address-components,
+ ExtensionPhysicalDeliveryAddressComponents,
+ unformatted-postal-address, UnformattedPostalAddress,
+ street-address, StreetAddress,
+ post-office-box-address, PostOfficeBoxAddress,
+ poste-restante-address, PosteRestanteAddress,
+ unique-postal-name, UniquePostalName,
+ local-postal-attributes, LocalPostalAttributes,
+ extended-network-address, ExtendedNetworkAddress,
+ terminal-type, TerminalType,
+ teletex-domain-defined-attributes, TeletexDomainDefinedAttributes
+
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18) }
+
+ -- Extensions
+ id-ce-authorityKeyIdentifier, AuthorityKeyIdentifier,
+ id-ce-subjectKeyIdentifier, SubjectKeyIdentifier,
+ id-ce-keyUsage, KeyUsage,
+ id-ce-privateKeyUsagePeriod, PrivateKeyUsagePeriod,
+ id-ce-certificatePolicies, CertificatePolicies,
+ id-ce-policyMappings, PolicyMappings,
+ id-ce-subjectAltName, SubjectAltName,
+ id-ce-issuerAltName, IssuerAltName,
+ id-ce-subjectDirectoryAttributes, SubjectDirectoryAttributes,
+ id-ce-basicConstraints, BasicConstraints,
+ id-ce-nameConstraints, NameConstraints,
+ id-ce-policyConstraints, PolicyConstraints,
+ id-ce-cRLDistributionPoints, CRLDistributionPoints,
+ id-ce-extKeyUsage, ExtKeyUsageSyntax,
+ id-ce-inhibitAnyPolicy, InhibitAnyPolicy,
+ id-ce-freshestCRL, FreshestCRL,
+ id-pe-authorityInfoAccess, AuthorityInfoAccessSyntax,
+ id-pe-subjectInfoAccess, SubjectInfoAccessSyntax,
+ id-ce-cRLNumber, CRLNumber,
+ id-ce-issuingDistributionPoint, IssuingDistributionPoint,
+ id-ce-deltaCRLIndicator, BaseCRLNumber,
+ id-ce-cRLReasons, CRLReason,
+ id-ce-certificateIssuer, CertificateIssuer,
+ id-ce-holdInstructionCode, HoldInstructionCode,
+ id-ce-invalidityDate, InvalidityDate
+
+ FROM PKIX1Implicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-implicit(19) }
+
+ --Keys and Signatures
+ id-dsa, Dss-Parms, DSAPublicKey,
+ id-dsa-with-sha1,
+ md2WithRSAEncryption,
+ md5WithRSAEncryption,
+ sha1WithRSAEncryption,
+ rsaEncryption, RSAPublicKey,
+ dhpublicnumber, DomainParameters, DHPublicKey,
+ id-keyExchangeAlgorithm, KEA-Parms-Id, --KEA-PublicKey,
+ ecdsa-with-SHA1,
+ prime-field, Prime-p,
+ characteristic-two-field, --Characteristic-two,
+ gnBasis,
+ tpBasis, Trinomial,
+ ppBasis, Pentanomial,
+ id-ecPublicKey, EcpkParameters, ECPoint
+ FROM PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) };
+
+--
+-- Certificate
+--
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm SignatureAlgorithm,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature SignatureAlgorithm,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+
+-- Attribute type and values
+--
+
+ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE-TYPE-AND-VALUE-CLASS.&id
+ ({SupportedAttributeTypeAndValues}),
+ value ATTRIBUTE-TYPE-AND-VALUE-CLASS.&Type
+ ({SupportedAttributeTypeAndValues}{@type}) }
+
+SupportedAttributeTypeAndValues ATTRIBUTE-TYPE-AND-VALUE-CLASS ::=
+ { name | surname | givenName | initials | generationQualifier |
+ commonName | localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | dnQualifier | countryName |
+ serialNumber | pseudonym | domainComponent | emailAddress }
+
+name ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-name
+ TYPE X520name }
+
+surname ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-surname
+ TYPE X520name }
+
+givenName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-givenName
+ TYPE X520name }
+
+initials ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-initials
+ TYPE X520name }
+
+generationQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-generationQualifier
+ TYPE X520name }
+
+commonName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-commonName
+ TYPE X520CommonName }
+
+localityName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-localityName
+ TYPE X520LocalityName }
+
+stateOrProvinceName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-stateOrProvinceName
+ TYPE X520StateOrProvinceName }
+
+organizationName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationName
+ TYPE X520OrganizationName }
+
+organizationalUnitName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationalUnitName
+ TYPE X520OrganizationalUnitName }
+
+title ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-title
+ TYPE X520Title }
+
+dnQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-dnQualifier
+ TYPE X520dnQualifier }
+
+countryName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-countryName
+ TYPE X520countryName }
+
+serialNumber ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-serialNumber
+ TYPE X520SerialNumber }
+
+pseudonym ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-pseudonym
+ TYPE X520Pseudonym }
+
+domainComponent ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-domainComponent
+ TYPE DomainComponent }
+
+emailAddress ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-emailAddress
+ TYPE EmailAddress }
+
+--
+-- Signature and Public Key Algorithms
+--
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm SEQUENCE {
+ algo PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@.algo})
+ OPTIONAL
+ },
+ subjectPublicKey PUBLIC-KEY-ALGORITHM-CLASS.&PublicKeyType
+ ({SupportedPublicKeyAlgorithms}{@algorithm.algo}) }
+
+-- The following is needed for conversion of SubjectPublicKeyInfo.
+
+SubjectPublicKeyInfo-Any ::= SEQUENCE {
+ algorithm PublicKeyAlgorithm,
+ subjectPublicKey ANY }
+
+
+SIGNATURE-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+PUBLIC-KEY-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL,
+ &PublicKeyType OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type]
+ [PUBLIC-KEY-TYPE &PublicKeyType] }
+
+SignatureAlgorithm ::= SEQUENCE {
+ algorithm SIGNATURE-ALGORITHM-CLASS.&id
+ ({SupportedSignatureAlgorithms}),
+ parameters SIGNATURE-ALGORITHM-CLASS.&Type
+ ({SupportedSignatureAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SignatureAlgorithm-Any ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY OPTIONAL }
+
+PublicKeyAlgorithm ::= SEQUENCE {
+ algorithm PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SupportedSignatureAlgorithms SIGNATURE-ALGORITHM-CLASS ::= {
+ dsa-with-sha1 | md2-with-rsa-encryption |
+ md5-with-rsa-encryption | sha1-with-rsa-encryption |
+ ecdsa-with-sha1 }
+
+SupportedPublicKeyAlgorithms PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ dsa | rsa-encryption | dh | kea | ec-public-key }
+
+ -- DSA Keys and Signatures
+
+ -- SubjectPublicKeyInfo:
+
+ dsa PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-dsa
+ TYPE Dss-Parms -- XXX Must be OPTIONAL
+ PUBLIC-KEY-TYPE DSAPublicKey }
+
+ -- Certificate.signatureAlgorithm
+
+ dsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID id-dsa-with-sha1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ md2-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md2WithRSAEncryption
+ TYPE NULL }
+
+ md5-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md5WithRSAEncryption
+ TYPE NULL }
+
+ sha1-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID sha1WithRSAEncryption
+ TYPE NULL }
+
+ -- Certificate.signature
+ -- See PKCS #1 (RFC 2313). XXX
+
+ -- SubjectPublicKeyInfo:
+
+ rsa-encryption PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID rsaEncryption
+ TYPE NULL
+ PUBLIC-KEY-TYPE RSAPublicKey }
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ dh PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID dhpublicnumber
+ TYPE DomainParameters
+ PUBLIC-KEY-TYPE DHPublicKey }
+
+ -- There are no Diffie-Hellman signature algorithms
+
+ --
+ -- KEA Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ KEA-PublicKey ::= INTEGER
+
+ kea PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-keyExchangeAlgorithm
+ TYPE KEA-Parms-Id
+ PUBLIC-KEY-TYPE KEA-PublicKey }
+
+ -- There are no KEA signature algorithms
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ ecdsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID ecdsa-with-SHA1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ FIELD-ID-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType FIELD-ID-CLASS.&id({SupportedFieldIds}),
+ parameters FIELD-ID-CLASS.&Type({SupportedFieldIds}{@fieldType}) }
+
+ SupportedFieldIds FIELD-ID-CLASS ::= {
+ field-prime-field | field-characteristic-two }
+
+ field-prime-field FIELD-ID-CLASS ::= {
+ ID prime-field
+ TYPE Prime-p }
+
+ CHARACTERISTIC-TWO-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ Characteristic-two ::= SEQUENCE { -- Finite field
+ m INTEGER, -- Field size 2^m
+ basis CHARACTERISTIC-TWO-CLASS.&id({SupportedCharacteristicTwos}),
+ parameters CHARACTERISTIC-TWO-CLASS.&Type
+ ({SupportedCharacteristicTwos}{@basis}) }
+
+ SupportedCharacteristicTwos CHARACTERISTIC-TWO-CLASS ::= {
+ gn-basis | tp-basis | pp-basis }
+
+ field-characteristic-two FIELD-ID-CLASS ::= {
+ ID characteristic-two-field
+ TYPE Characteristic-two }
+
+ gn-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID gnBasis
+ TYPE NULL }
+
+ tp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID tpBasis
+ TYPE Trinomial }
+
+ pp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID ppBasis
+ TYPE Pentanomial }
+
+ -- SubjectPublicKeyInfo.algorithm
+
+ ec-public-key PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-ecPublicKey
+ TYPE EcpkParameters
+ PUBLIC-KEY-TYPE ECPoint }
+
+--
+-- Extension Attributes
+--
+
+EXTENSION-ATTRIBUTE-CLASS ::= CLASS {
+ &id INTEGER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ExtensionAttributes ::= SET SIZE (1..MAX) OF ExtensionAttribute
+
+-- XXX Below we should have extension-attribute-type and extension-
+-- attribute-value but Erlang ASN1 does not like it.
+ExtensionAttribute ::= SEQUENCE {
+ extensionAttributeType [0] IMPLICIT EXTENSION-ATTRIBUTE-CLASS.&id
+ ({SupportedExtensionAttributes}),
+ extensionAttributeValue [1] EXTENSION-ATTRIBUTE-CLASS.&Type
+ ({SupportedExtensionAttributes}{@extensionAttributeType}) }
+
+SupportedExtensionAttributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ x400-common-name |
+ x400-teletex-common-name |
+ x400-teletex-personal-name |
+ x400-pds-name |
+ x400-physical-delivery-country-name |
+ x400-postal-code |
+ x400-physical-delivery-office-name |
+ x400-physical-delivery-office-number |
+ x400-extension-OR-address-components |
+ x400-physical-delivery-personal-name |
+ x400-physical-delivery-organization-name |
+ x400-extension-physical-delivery-address-components |
+ x400-unformatted-postal-address |
+ x400-street-address |
+ x400-post-office-box-address |
+ x400-poste-restante-address |
+ x400-unique-postal-name |
+ x400-local-postal-attributes |
+ x400-extended-network-address |
+ x400-terminal-type |
+ x400-teletex-domain-defined-attributes }
+
+-- Extension types and attribute values
+
+x400-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID common-name
+ TYPE CommonName }
+
+x400-teletex-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-common-name
+ TYPE TeletexCommonName }
+
+x400-teletex-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-personal-name
+ TYPE TeletexPersonalName }
+
+x400-pds-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID pds-name
+ TYPE PDSName }
+
+x400-physical-delivery-country-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-country-name
+ TYPE PhysicalDeliveryCountryName }
+
+x400-postal-code EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID postal-code
+ TYPE PostalCode }
+
+x400-physical-delivery-office-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-name
+ TYPE PhysicalDeliveryOfficeName }
+
+x400-physical-delivery-office-number EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-number
+ TYPE PhysicalDeliveryOfficeNumber }
+
+x400-extension-OR-address-components EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-OR-address-components
+ TYPE ExtensionORAddressComponents }
+
+x400-physical-delivery-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-personal-name
+ TYPE PhysicalDeliveryPersonalName }
+
+x400-physical-delivery-organization-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-organization-name
+ TYPE PhysicalDeliveryOrganizationName }
+
+x400-extension-physical-delivery-address-components
+ EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-physical-delivery-address-components
+ TYPE ExtensionPhysicalDeliveryAddressComponents }
+
+x400-unformatted-postal-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unformatted-postal-address
+ TYPE UnformattedPostalAddress }
+
+x400-street-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID street-address
+ TYPE StreetAddress }
+
+x400-post-office-box-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID post-office-box-address
+ TYPE PostOfficeBoxAddress }
+
+x400-poste-restante-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID poste-restante-address
+ TYPE PosteRestanteAddress }
+
+x400-unique-postal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unique-postal-name
+ TYPE UniquePostalName }
+
+x400-local-postal-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID local-postal-attributes
+ TYPE LocalPostalAttributes }
+
+x400-extended-network-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extended-network-address
+ TYPE ExtendedNetworkAddress }
+
+x400-terminal-type EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID terminal-type
+ TYPE TerminalType }
+
+x400-teletex-domain-defined-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-domain-defined-attributes
+ TYPE TeletexDomainDefinedAttributes }
+
+-- Extensions
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+EXTENSION-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL}
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+Extension ::= SEQUENCE {
+ extnID EXTENSION-CLASS.&id({SupportedExtensions}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue EXTENSION-CLASS.&Type({SupportedExtensions}{@extnID}) }
+
+-- The following is needed for conversion between Extension and Extension-Cd
+
+ObjId ::= OBJECT IDENTIFIER
+Boolean ::= BOOLEAN
+Any ::= ANY
+
+Extension-Any ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue ANY }
+
+SupportedExtensions EXTENSION-CLASS ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier | keyUsage | privateKeyUsagePeriod |
+ certificatePolicies | policyMappings | subjectAltName |
+ issuerAltName | subjectDirectoryAttributes | basicConstraints |
+ nameConstraints | policyConstraints | cRLDistributionPoints |
+ extKeyUsage | inhibitAnyPolicy | freshestCRL | authorityInfoAccess |
+ subjectInfoAccess | cRLNumber | issuingDistributionPoint |
+ deltaCRLIndicator | cRLReasons | certificateIssuer |
+ holdInstructionCode | invalidityDate }
+
+authorityKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-authorityKeyIdentifier
+ TYPE AuthorityKeyIdentifier }
+
+subjectKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-subjectKeyIdentifier
+ TYPE SubjectKeyIdentifier }
+
+keyUsage EXTENSION-CLASS ::= {
+ ID id-ce-keyUsage
+ TYPE KeyUsage }
+
+privateKeyUsagePeriod EXTENSION-CLASS ::= {
+ ID id-ce-privateKeyUsagePeriod
+ TYPE PrivateKeyUsagePeriod }
+
+certificatePolicies EXTENSION-CLASS ::= {
+ ID id-ce-certificatePolicies
+ TYPE CertificatePolicies }
+
+policyMappings EXTENSION-CLASS ::= {
+ ID id-ce-policyMappings
+ TYPE PolicyMappings }
+
+subjectAltName EXTENSION-CLASS ::= {
+ ID id-ce-subjectAltName
+ TYPE SubjectAltName }
+
+issuerAltName EXTENSION-CLASS ::= {
+ ID id-ce-issuerAltName
+ TYPE IssuerAltName }
+
+subjectDirectoryAttributes EXTENSION-CLASS ::= {
+ ID id-ce-subjectDirectoryAttributes
+ TYPE SubjectDirectoryAttributes }
+
+basicConstraints EXTENSION-CLASS ::= {
+ ID id-ce-basicConstraints
+ TYPE BasicConstraints }
+
+nameConstraints EXTENSION-CLASS ::= {
+ ID id-ce-nameConstraints
+ TYPE NameConstraints }
+
+policyConstraints EXTENSION-CLASS ::= {
+ ID id-ce-policyConstraints
+ TYPE PolicyConstraints }
+
+cRLDistributionPoints EXTENSION-CLASS ::= {
+ ID id-ce-cRLDistributionPoints
+ TYPE CRLDistributionPoints }
+
+extKeyUsage EXTENSION-CLASS ::= {
+ ID id-ce-extKeyUsage
+ TYPE ExtKeyUsageSyntax }
+
+inhibitAnyPolicy EXTENSION-CLASS ::= {
+ ID id-ce-inhibitAnyPolicy
+ TYPE InhibitAnyPolicy }
+
+freshestCRL EXTENSION-CLASS ::= {
+ ID id-ce-freshestCRL
+ TYPE FreshestCRL }
+
+authorityInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-authorityInfoAccess
+ TYPE AuthorityInfoAccessSyntax }
+
+subjectInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-subjectInfoAccess
+ TYPE SubjectInfoAccessSyntax }
+
+cRLNumber EXTENSION-CLASS ::= {
+ ID id-ce-cRLNumber
+ TYPE CRLNumber }
+
+issuingDistributionPoint EXTENSION-CLASS ::= {
+ ID id-ce-issuingDistributionPoint
+ TYPE IssuingDistributionPoint }
+
+deltaCRLIndicator EXTENSION-CLASS ::= {
+ ID id-ce-deltaCRLIndicator
+ TYPE BaseCRLNumber }
+
+cRLReasons EXTENSION-CLASS ::= {
+ ID id-ce-cRLReasons
+ TYPE CRLReason }
+
+certificateIssuer EXTENSION-CLASS ::= {
+ ID id-ce-certificateIssuer
+ TYPE CertificateIssuer }
+
+holdInstructionCode EXTENSION-CLASS ::= {
+ ID id-ce-holdInstructionCode
+ TYPE HoldInstructionCode }
+
+invalidityDate EXTENSION-CLASS ::= {
+ ID id-ce-invalidityDate
+ TYPE InvalidityDate }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..25f20e5c01
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/SelectionType.asn b/lib/asn1/test/asn1_SUITE_data/SelectionType.asn
new file mode 100644
index 0000000000..d7bfbf1788
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SelectionType.asn
@@ -0,0 +1,59 @@
+SelectionType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Element ::= CHOICE {bool BOOLEAN,
+ atomic-no INTEGER(1..103),
+ bs BIT STRING,
+ os OCTET STRING,
+ null NULL,
+ oi OBJECT IDENTIFIER,
+ od ObjectDescriptor,
+ ext EXTERNAL,
+ ePDV EMBEDDED PDV,
+ utf UTF8String,
+ ro RELATIVE-OID,
+ nums NumericString,
+ symbol PrintableString,
+ telet TeletexString,
+ t61 T61String,
+ video VideotexString,
+ ia5 IA5String,
+ utctime UTCTime,
+ generalizedTime GeneralizedTime,
+ gs GraphicString,
+ vs VisibleString,
+-- iso64 ISO646String,
+ generalString GeneralString,
+ univ UniversalString,
+ cs CHARACTER STRING,
+ bmp BMPString}
+
+MendeleyevTable ::= SEQUENCE OF symbol < Element
+BoolType ::= bool < Element
+
+einsteinium symbol < Element ::= "Es"
+boolv bool < Element ::= TRUE
+intv atomic-no < Element ::= 4
+bsv bs < Element ::= '1001'B
+osv os < Element ::= '313'H
+nullv null < Element ::= NULL
+oiv oi < Element ::= {2 1 1}
+odv od < Element ::= "ObjectDesc"
+utfv utf < Element ::= "utf8"
+rov ro < Element ::= {5 32767 256}
+numsv nums < Element ::= "089"
+teletv telet < Element ::= "telet"
+t61v t61 < Element ::= "t61"
+videov video < Element ::= "video"
+ia5v ia5 < Element ::= "ia5"
+utctimev utctime < Element ::= "9805281429Z"
+gTime generalizedTime < Element ::= "19980528142905.1"
+gsv gs < Element ::= "graphic"
+vsv vs < Element ::= "visible"
+--iso64v iso64 < Element ::= "iso"
+gStringv generalString < Element ::= "general"
+univv univ < Element ::= "Universal"
+bmov bmp < Element ::= "bmp"
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Seq.py b/lib/asn1/test/asn1_SUITE_data/Seq.py
new file mode 100644
index 0000000000..f345373ab5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Seq.py
@@ -0,0 +1,152 @@
+Seq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Set1 FROM SeqSetLib;
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+SeqDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SET
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SET
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqImp1 ::= SET
+{
+ set Set1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqImp2 ::= SET
+{
+ bool BOOLEAN,
+ set Set1,
+ int INTEGER
+}
+
+
+SeqImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set Set1
+}
+
+
+
+END
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Seq2738.asn1 b/lib/asn1/test/asn1_SUITE_data/Seq2738.asn1
new file mode 100644
index 0000000000..c852adc57e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Seq2738.asn1
@@ -0,0 +1,37 @@
+Seq2738 DEFINITIONS IMPLICIT TAGS ::=
+
+-- Tests that a missing mandatory component of an optional
+-- component is detected as an error and not just as if the optional
+-- component was missing
+
+BEGIN
+
+-- We create a value of type SeqWithOptFake , encode it and then
+-- try to decode it as a value of type SeqWithOpt.
+-- The decoder should detect this as an error, because the
+-- mandatory first component of type INTEGER in OptSeq is missing
+
+SeqOpt ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeq OPTIONAL
+}
+
+SeqOptFake ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeqFake OPTIONAL
+}
+
+OptSeq ::= SEQUENCE
+{
+ int INTEGER
+}
+
+OptSeqFake ::= SEQUENCE
+{
+ bool BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqBadComma.asn b/lib/asn1/test/asn1_SUITE_data/SeqBadComma.asn
new file mode 100644
index 0000000000..64729beccd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqBadComma.asn
@@ -0,0 +1,10 @@
+SeqBadComma DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ n BOOLEAN,
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqDefault.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqDefault.asn1
new file mode 100644
index 0000000000..99e79da972
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqDefault.asn1
@@ -0,0 +1,77 @@
+SeqDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqDef1 ::= SEQUENCE
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] SeqIn DEFAULT {}
+}
+
+SeqDef1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SEQUENCE
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn DEFAULT {},
+ bool2 [2] BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn DEFAULT {},
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SEQUENCE
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN DEFAULT TRUE,
+ seq3 [2] SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ seq3 [2] EXPLICIT SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqExtension.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqExtension.asn1
new file mode 100644
index 0000000000..bb0a7cca3a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqExtension.asn1
@@ -0,0 +1,37 @@
+SeqExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqExt1, XSeqExt2 FROM External;
+
+
+SeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+SeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SeqExt3 ::= SEQUENCE
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SeqExt4 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SeqExt1X ::= XSeqExt1
+SeqExt2X ::= XSeqExt2
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqExternal.asn1
new file mode 100644
index 0000000000..9d575c1d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqExternal.asn1
@@ -0,0 +1,68 @@
+SeqExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+
+SeqXSet1 ::= SEQUENCE
+{
+ set XSet1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqXSet2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ set XSet1,
+ int INTEGER
+}
+
+
+SeqXSet3 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set XSet1
+}
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSeqNT
+XImpNT ::= [3] XSeqNT
+XExpNT ::= [4] EXPLICIT XSeqNT
+
+XNTImp ::= XSeqImp
+XImpImp ::= [5] XSeqImp
+XExpImp ::= [6] EXPLICIT XSeqImp
+
+XNTExp ::= XSeqExp
+XImpExp ::= [7] XSeqExp
+XExpExp ::= [8] EXPLICIT XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOf.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOf.asn1
new file mode 100644
index 0000000000..330944cf5c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOf.asn1
@@ -0,0 +1,65 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqOs ::= SEQUENCE OF OCTET STRING
+SeqOsImp ::= [23] SEQUENCE OF OCTET STRING
+SeqOsExp ::= [24] EXPLICIT SEQUENCE OF OCTET STRING
+
+SeqCho ::= SEQUENCE OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+SeqOfInt ::= SEQUENCE OF INTEGER
+
+
+
+
+SeqEmp ::= SEQUENCE
+{
+ seq1 SEQUENCE OF Empty DEFAULT {}
+}
+
+Empty ::= SEQUENCE
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOf.py b/lib/asn1/test/asn1_SUITE_data/SeqOf.py
new file mode 100644
index 0000000000..c941418934
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOf.py
@@ -0,0 +1,45 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOfCho.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOfCho.asn1
new file mode 100644
index 0000000000..8d3d006ed9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOfCho.asn1
@@ -0,0 +1,73 @@
+SeqOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqChoDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn DEFAULT {}
+}
+
+SeqChoOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn OPTIONAL
+}
+
+SeqChoEmbDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SeqChoEmbOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SeqOfChoEmbDef ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SeqOfChoEmbOpt ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOfEnum.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOfEnum.asn1
new file mode 100644
index 0000000000..b8ca9c4654
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOfEnum.asn1
@@ -0,0 +1,11 @@
+SeqOfEnum DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Enum ::= ENUMERATED {a (0),
+ b (1),
+ c (2)}
+
+SeqOfEnum ::= SEQUENCE OF Enum
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOfExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOfExternal.asn1
new file mode 100644
index 0000000000..607e81540f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOfExternal.asn1
@@ -0,0 +1,42 @@
+SeqOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SEQUENCE OF NT
+ImpNT ::= [3] SEQUENCE OF NT
+ExpNT ::= [4] EXPLICIT SEQUENCE OF NT
+
+NTImp ::= SEQUENCE OF Imp
+ImpImp ::= [5] SEQUENCE OF Imp
+ExpImp ::= [6] EXPLICIT SEQUENCE OF Imp
+
+NTExp ::= SEQUENCE OF Exp
+ImpExp ::= [7] SEQUENCE OF Exp
+ExpExp ::= [8] EXPLICIT SEQUENCE OF Exp
+
+XNTNT ::= SEQUENCE OF XSeqNT
+XImpNT ::= [3] SEQUENCE OF XSeqNT
+XExpNT ::= [4] EXPLICIT SEQUENCE OF XSeqNT
+
+XNTImp ::= SEQUENCE OF XSeqImp
+XImpImp ::= [5] SEQUENCE OF XSeqImp
+XExpImp ::= [6] EXPLICIT SEQUENCE OF XSeqImp
+
+XNTExp ::= SEQUENCE OF XSeqExp
+XImpExp ::= [7] SEQUENCE OF XSeqExp
+XExpExp ::= [8] EXPLICIT SEQUENCE OF XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOfTag.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOfTag.asn1
new file mode 100644
index 0000000000..74b820a28d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOfTag.asn1
@@ -0,0 +1,65 @@
+SeqOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTagNt ::= [APPLICATION 20] SEQUENCE {
+ nt SEQUENCE OF NT}
+
+SeqTagNtI ::= [APPLICATION 20] SEQUENCE {
+ imp SEQUENCE OF Imp}
+
+SeqTagNtE ::= [APPLICATION 20] SEQUENCE {
+ exp SEQUENCE OF Exp }
+
+SeqTagI ::= [APPLICATION 21] SEQUENCE {
+ nt [0] SEQUENCE OF NT}
+
+SeqTagII ::= [APPLICATION 21] SEQUENCE {
+ imp [1] SEQUENCE OF Imp}
+
+SeqTagIE ::= [APPLICATION 21] SEQUENCE {
+ exp [2] SEQUENCE OF Exp}
+
+SeqTagE ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT SEQUENCE OF NT}
+
+SeqTagEI ::= [APPLICATION 22] SEQUENCE {
+ imp [1] EXPLICIT SEQUENCE OF Imp}
+
+SeqTagEE ::= [APPLICATION 22] SEQUENCE {
+ exp [2] EXPLICIT SEQUENCE OF Exp}
+
+SeqTagXNt ::= [APPLICATION 30] SEQUENCE {
+ xnt SEQUENCE OF XSeqNT}
+
+SeqTagXI ::= [APPLICATION 30] SEQUENCE {
+ ximp SEQUENCE OF XSeqImp}
+
+SeqTagXE ::= [APPLICATION 30] SEQUENCE {
+ xexp SEQUENCE OF XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] SEQUENCE OF XSeqNT,
+ ximp [4] SEQUENCE OF XSeqImp,
+ xexp [5] SEQUENCE OF XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT SEQUENCE OF XSeqNT,
+ ximp [4] EXPLICIT SEQUENCE OF XSeqImp,
+ xexp [5] EXPLICIT SEQUENCE OF XSeqExp }
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOptional.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOptional.asn1
new file mode 100644
index 0000000000..a8fef52dda
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOptional.asn1
@@ -0,0 +1,86 @@
+SeqOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOptional2.asn b/lib/asn1/test/asn1_SUITE_data/SeqOptional2.asn
new file mode 100644
index 0000000000..7de9134096
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOptional2.asn
@@ -0,0 +1,90 @@
+SeqOptional2 DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL,
+ seq2 [2] SeqIn OPTIONAL,
+ ...,
+ int2 [3] SeqIn,
+ int3 [3] SeqIn
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqPrim.asn1
new file mode 100644
index 0000000000..20c4126c0b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqPrim.asn1
@@ -0,0 +1,19 @@
+SeqPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SEQUENCE {}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqSetIndefinite.asn b/lib/asn1/test/asn1_SUITE_data/SeqSetIndefinite.asn
new file mode 100644
index 0000000000..b56b8cdc17
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqSetIndefinite.asn
@@ -0,0 +1,41 @@
+SeqSetIndefinite DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetS3Ext ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+}
+
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SeqS3Ext ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqSetLib.py b/lib/asn1/test/asn1_SUITE_data/SeqSetLib.py
new file mode 100644
index 0000000000..f7d15ae3b4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqSetLib.py
@@ -0,0 +1,32 @@
+SeqSetLib DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+EXPORTS Seq1,Set1;
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqTag.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqTag.asn1
new file mode 100644
index 0000000000..950f88d663
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqTag.asn1
@@ -0,0 +1,48 @@
+SeqTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTag ::= [APPLICATION 20] SEQUENCE {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SeqTagImp ::= [APPLICATION 21] SEQUENCE {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SeqTagExp ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SeqTagX ::= [APPLICATION 30] SEQUENCE {
+ xnt XSeqNT,
+ ximp XSeqImp,
+ xexp XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] XSeqNT,
+ ximp [4] XSeqImp,
+ xexp [5] XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT XSeqNT,
+ ximp [4] EXPLICIT XSeqImp,
+ xexp [5] EXPLICIT XSeqExp }
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqTypeRefCho.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefCho.asn1
new file mode 100644
index 0000000000..5c662fbd95
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefCho.asn1
@@ -0,0 +1,28 @@
+SeqTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRcho ::= SEQUENCE
+{
+ seqCho SeqCho,
+ seqChoE [135] EXPLICIT SeqCho,
+
+ seqCho-E SeqChoExp,
+ seqChoE-E [335] EXPLICIT SeqChoExp
+
+}
+
+SeqCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SeqChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqTypeRefPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefPrim.asn1
new file mode 100644
index 0000000000..93f03fad2b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefPrim.asn1
@@ -0,0 +1,48 @@
+SeqTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqTR ::= SEQUENCE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+-- Types to test {Type,Value} notation, see OTP-4057
+
+Int ::= INTEGER
+Bool ::= BOOLEAN
+Enum ::= ENUMERATED {a(0),b(1),c(2)}
+BitStr ::= BIT STRING
+Null ::= NULL
+OId ::= OBJECT IDENTIFIER
+VStr ::= VisibleString
+
+Seq ::= SEQUENCE {
+ octstr OctStr,
+ int Int,
+ bool Bool,
+ enum Enum,
+ bitstr BitStr,
+ null Null,
+ oid OId,
+ vstr VStr
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSeq.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSeq.asn1
new file mode 100644
index 0000000000..0e528ac710
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSeq.asn1
@@ -0,0 +1,113 @@
+SeqTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqSTag ::= SEQUENCE
+{
+ seqS1 SEQUENCE { b1 BOOLEAN,
+ i1 INTEGER },
+ seqS2 [7] SEQUENCE { b2 BOOLEAN,
+ i2 INTEGER },
+ seqS3 [8] EXPLICIT SEQUENCE { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+
+SeqTRseq ::= SEQUENCE
+{
+ seqSeq SeqSeq,
+ seqSeqI [134] SeqSeq,
+ seqSeqE [135] EXPLICIT SeqSeq,
+
+ seqSeq-I SeqSeqImp,
+ seqSeqI-I [234] SeqSeqImp,
+ seqSeqE-I [235] EXPLICIT SeqSeqImp,
+
+ seqSeq-E SeqSeqExp,
+ seqSeqI-E [334] SeqSeqExp,
+ seqSeqE-E [335] EXPLICIT SeqSeqExp
+
+}
+
+SeqSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSet.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSet.asn1
new file mode 100644
index 0000000000..45dc05a0c3
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqTypeRefSet.asn1
@@ -0,0 +1,39 @@
+SeqTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRset ::= SEQUENCE
+{
+ seqSet SeqSet,
+ seqSetI [124] SeqSet,
+ seqSetE [125] EXPLICIT SeqSet,
+
+ seqSet-I SeqSetImp,
+ seqSetI-I [224] SeqSetImp,
+ seqSetE-I [225] EXPLICIT SeqSetImp,
+
+ seqSet-E SeqSetExp,
+ seqSetI-E [324] SeqSetExp,
+ seqSetE-E [325] EXPLICIT SeqSetExp
+
+}
+
+SeqSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SequenceBadComma.asn b/lib/asn1/test/asn1_SUITE_data/SequenceBadComma.asn
new file mode 100644
index 0000000000..436815aa9b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SequenceBadComma.asn
@@ -0,0 +1,10 @@
+SequenceBadComma DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentName.asn1 b/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentName.asn1
new file mode 100644
index 0000000000..8b2b8816db
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentName.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentName DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a INTEGER,
+ C Typ}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentType.asn1 b/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentType.asn1
new file mode 100644
index 0000000000..0c33f48906
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SequenceBadComponentType.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentType DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c T}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Set.py b/lib/asn1/test/asn1_SUITE_data/Set.py
new file mode 100644
index 0000000000..4062f6b804
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Set.py
@@ -0,0 +1,141 @@
+Set DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Seq1 FROM SeqSetLib;
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SetImp1 ::= SET
+{
+ seq Seq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetImp2 ::= SET
+{
+ bool BOOLEAN,
+ seq Seq1,
+ int INTEGER
+}
+
+
+SetImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq Seq1
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetDefault.asn1 b/lib/asn1/test/asn1_SUITE_data/SetDefault.asn1
new file mode 100644
index 0000000000..cb9e0ead62
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetDefault.asn1
@@ -0,0 +1,33 @@
+SetDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetExtension.asn1 b/lib/asn1/test/asn1_SUITE_data/SetExtension.asn1
new file mode 100644
index 0000000000..53091d3eea
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetExtension.asn1
@@ -0,0 +1,37 @@
+SetExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetExt1, XSetExt2 FROM External;
+
+SetExt1 ::= SET
+{
+ ...
+}
+
+SetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SetExt3 ::= SET
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SetExt4 ::= SET
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SetExt1X ::= XSetExt1
+SetExt2X ::= XSetExt2
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/SetExternal.asn1
new file mode 100644
index 0000000000..394a068280
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetExternal.asn1
@@ -0,0 +1,68 @@
+SetExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+
+
+SetXSeq1 ::= SET
+{
+ seq XSeq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetXSeq2 ::= SET
+{
+ bool BOOLEAN,
+ seq XSeq1,
+ int INTEGER
+}
+
+
+SetXSeq3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq XSeq1
+}
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSetNT
+XImpNT ::= [3] XSetNT
+XExpNT ::= [4] EXPLICIT XSetNT
+
+XNTImp ::= XSetImp
+XImpImp ::= [5] XSetImp
+XExpImp ::= [6] EXPLICIT XSetImp
+
+XNTExp ::= XSetExp
+XImpExp ::= [7] XSetExp
+XExpExp ::= [8] EXPLICIT XSetExp
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOf.asn1 b/lib/asn1/test/asn1_SUITE_data/SetOf.asn1
new file mode 100644
index 0000000000..cdb770f8de
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOf.asn1
@@ -0,0 +1,61 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetOs ::= SET OF OCTET STRING
+SetOsImp ::= [23] SET OF OCTET STRING
+SetOsExp ::= [24] EXPLICIT SET OF OCTET STRING
+
+SetCho ::= SET OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+
+
+SetEmp ::= SET
+{
+ set1 SET OF Empty DEFAULT {}
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOf.py b/lib/asn1/test/asn1_SUITE_data/SetOf.py
new file mode 100644
index 0000000000..4e2ea16fcc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOf.py
@@ -0,0 +1,42 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOfCho.asn1 b/lib/asn1/test/asn1_SUITE_data/SetOfCho.asn1
new file mode 100644
index 0000000000..3571a2b277
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOfCho.asn1
@@ -0,0 +1,73 @@
+SetOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetChoDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn DEFAULT {}
+}
+
+SetChoOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn OPTIONAL
+}
+
+SetChoEmbDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SetChoEmbOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SetOfChoEmbDef ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SetOfChoEmbOpt ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOfExternal.asn1 b/lib/asn1/test/asn1_SUITE_data/SetOfExternal.asn1
new file mode 100644
index 0000000000..c08f2a51ee
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOfExternal.asn1
@@ -0,0 +1,42 @@
+SetOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SET OF NT
+ImpNT ::= [3] SET OF NT
+ExpNT ::= [4] EXPLICIT SET OF NT
+
+NTImp ::= SET OF Imp
+ImpImp ::= [5] SET OF Imp
+ExpImp ::= [6] EXPLICIT SET OF Imp
+
+NTExp ::= SET OF Exp
+ImpExp ::= [7] SET OF Exp
+ExpExp ::= [8] EXPLICIT SET OF Exp
+
+XNTNT ::= SET OF XSetNT
+XImpNT ::= [3] SET OF XSetNT
+XExpNT ::= [4] EXPLICIT SET OF XSetNT
+
+XNTImp ::= SET OF XSetImp
+XImpImp ::= [5] SET OF XSetImp
+XExpImp ::= [6] EXPLICIT SET OF XSetImp
+
+XNTExp ::= SET OF XSetExp
+XImpExp ::= [7] SET OF XSetExp
+XExpExp ::= [8] EXPLICIT SET OF XSetExp
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOfTag.asn1 b/lib/asn1/test/asn1_SUITE_data/SetOfTag.asn1
new file mode 100644
index 0000000000..e137e8fa40
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOfTag.asn1
@@ -0,0 +1,65 @@
+SetOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+SetTagNt ::= [APPLICATION 20] SET {
+ nt SET OF NT}
+
+SetTagNtI ::= [APPLICATION 20] SET {
+ imp SET OF Imp}
+
+SetTagNtE ::= [APPLICATION 20] SET {
+ exp SET OF Exp }
+
+SetTagI ::= [APPLICATION 21] SET {
+ nt [0] SET OF NT}
+
+SetTagII ::= [APPLICATION 21] SET {
+ imp [1] SET OF Imp}
+
+SetTagIE ::= [APPLICATION 21] SET {
+ exp [2] SET OF Exp}
+
+SetTagE ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT SET OF NT}
+
+SetTagEI ::= [APPLICATION 22] SET {
+ imp [1] EXPLICIT SET OF Imp}
+
+SetTagEE ::= [APPLICATION 22] SET {
+ exp [2] EXPLICIT SET OF Exp}
+
+SetTagXNt ::= [APPLICATION 30] SET {
+ xnt SET OF XSetNT}
+
+SetTagXI ::= [APPLICATION 30] SET {
+ ximp SET OF XSetImp}
+
+SetTagXE ::= [APPLICATION 30] SET {
+ xexp SET OF XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] SET OF XSetNT,
+ ximp [4] SET OF XSetImp,
+ xexp [5] SET OF XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT SET OF XSetNT,
+ ximp [4] EXPLICIT SET OF XSetImp,
+ xexp [5] EXPLICIT SET OF XSetExp }
+
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetOptional.asn1 b/lib/asn1/test/asn1_SUITE_data/SetOptional.asn1
new file mode 100644
index 0000000000..5d2f2526b3
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetOptional.asn1
@@ -0,0 +1,77 @@
+SetOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] SetIn OPTIONAL
+}
+
+SetOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] EXPLICIT SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Imp ::= SEQUENCE
+{
+ set2 [1] SetIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Exp ::= SEQUENCE
+{
+ set2 [1] EXPLICIT SetIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ set3 [2] SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ set3 [2] EXPLICIT SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/SetPrim.asn1
new file mode 100644
index 0000000000..06c4932625
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetPrim.asn1
@@ -0,0 +1,20 @@
+SetPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetTag.asn1 b/lib/asn1/test/asn1_SUITE_data/SetTag.asn1
new file mode 100644
index 0000000000..3f7422edaf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetTag.asn1
@@ -0,0 +1,47 @@
+SetTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+SetTag ::= [APPLICATION 20] SET {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SetTagImp ::= [APPLICATION 21] SET {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SetTagExp ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SetTagX ::= [APPLICATION 30] SET {
+ xnt XSetNT,
+ ximp XSetImp,
+ xexp XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] XSetNT,
+ ximp [4] XSetImp,
+ xexp [5] XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT XSetNT,
+ ximp [4] EXPLICIT XSetImp,
+ xexp [5] EXPLICIT XSetExp }
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetTypeRefCho.asn1 b/lib/asn1/test/asn1_SUITE_data/SetTypeRefCho.asn1
new file mode 100644
index 0000000000..32c9d95703
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetTypeRefCho.asn1
@@ -0,0 +1,27 @@
+SetTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetTRcho ::= SET
+{
+ setCho SetCho,
+ setChoE [135] EXPLICIT SetCho,
+
+ setCho-E SetChoExp,
+ setChoE-E [335] EXPLICIT SetChoExp
+
+}
+
+SetCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SetChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetTypeRefPrim.asn1 b/lib/asn1/test/asn1_SUITE_data/SetTypeRefPrim.asn1
new file mode 100644
index 0000000000..d8f2396c02
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetTypeRefPrim.asn1
@@ -0,0 +1,29 @@
+SetTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTR ::= SET
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetTypeRefSeq.asn1 b/lib/asn1/test/asn1_SUITE_data/SetTypeRefSeq.asn1
new file mode 100644
index 0000000000..72dd71c6eb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetTypeRefSeq.asn1
@@ -0,0 +1,38 @@
+SetTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTRseq ::= SET
+{
+ setSeq SetSeq,
+ setSeqI [134] SetSeq,
+ setSeqE [135] EXPLICIT SetSeq,
+
+ setSeq-I SetSeqImp,
+ setSeqI-I [234] SetSeqImp,
+ setSeqE-I [235] EXPLICIT SetSeqImp,
+
+ setSeq-E SetSeqExp,
+ setSeqI-E [334] SetSeqExp,
+ setSeqE-E [335] EXPLICIT SetSeqExp
+
+}
+
+SetSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SetTypeRefSet.asn1 b/lib/asn1/test/asn1_SUITE_data/SetTypeRefSet.asn1
new file mode 100644
index 0000000000..b215d598dc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SetTypeRefSet.asn1
@@ -0,0 +1,110 @@
+SetTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+Set4 ::= SEQUENCE
+{
+ set41 SetIn,
+ set42 SetIn,
+ set43 SetIn
+}
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetSTag ::= SET
+{
+ setS1 SET { b1 BOOLEAN,
+ i1 INTEGER },
+ setS2 [7] SET { b2 BOOLEAN,
+ i2 INTEGER },
+ setS3 [8] EXPLICIT SET { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+SetTRset ::= SET
+{
+ setSet SetSet,
+ setSetI [124] SetSet,
+ setSetE [125] EXPLICIT SetSet,
+
+ setSet-I SetSetImp,
+ setSetI-I [224] SetSetImp,
+ setSetE-I [225] EXPLICIT SetSetImp,
+
+ setSet-E SetSetExp,
+ setSetI-E [324] SetSetExp,
+ setSetE-E [325] EXPLICIT SetSetExp
+
+}
+
+SetSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/String.py b/lib/asn1/test/asn1_SUITE_data/String.py
new file mode 100644
index 0000000000..338d50784b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/String.py
@@ -0,0 +1,7 @@
+String DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+IA51 ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/SwCDR.py b/lib/asn1/test/asn1_SUITE_data/SwCDR.py
new file mode 100644
index 0000000000..9492183cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SwCDR.py
@@ -0,0 +1,213 @@
+SwCDR DEFINITIONS
+ IMPLICIT TAGS ::=
+
+
+BEGIN
+
+EXPORTS
+ SwCDR;
+
+SwCDR ::= CHOICE
+{
+ origSvcCallRecord [0] OrigSvcCallRecord,
+ termSvcCallRecord [1] TermSvcCallRecord
+}
+
+--OrigSvcCallRecord ::= SET
+OrigSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER,
+-- egressCellrate01 [] INTEGER,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+--TermSvcCallRecord ::= SET
+TermSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER ,
+-- egressCellrate01 [] INTEGER ,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+ChargingIndicator ::= INTEGER
+{
+ origCallRecord (0),
+ termCallRecord (1)
+}
+
+CallingNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+CalledNumber ::= OCTET STRING (SIZE (20))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+ConnectedNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+
+QoSClass ::= INTEGER
+ -- Explicit values ToBeDefined,
+ -- until then: value received in SETUP-msg
+
+--BearerClass ::= INTEGER
+--{
+-- bcobA (0),
+-- bcobC (1),
+-- bcobX (2)
+--}
+TrafficType ::= INTEGER
+{
+ noIndication (0),
+ abr (1),
+ cbr (2),
+ vbr (3),
+ vbrrt (4),
+ vbrnrt (5),
+ ubr (6)
+}
+
+--TimingRequirements ::= INTEGER
+--{
+-- noIndication (0),
+-- endToEndRequired (1),
+-- endToEndNotRequired (2)
+--}
+
+--ClippingSusceptibility ::= INTEGER
+--{
+-- notSusceptible (0),
+-- susceptible (1)
+--}
+UserPlaneConnection ::= INTEGER
+{
+ pointToPoint (0),
+ pointToMultipoint (1)
+}
+
+--AALParameters ::= INTEGER AAL Type only
+--{
+-- userDefined (0),
+-- aal1 (1),
+-- aal2 (2),
+-- aal34 (3),
+-- aal5 (5)
+--}
+
+CellRate ::= INTEGER
+ -- Value range not less than 2^24.
+
+-- BurstSize ::= ToBeDefined
+
+-- TaggingRequest ::= ToBeDefined
+--Timestamp ::= OCTET STRING (SIZE (11))
+ -- The contents of this field is a compact form of
+ -- the UTCTime format, containing local time plus
+ -- an offset to universal time.
+ -- The compact format is YYMMDDhhmmssdddShhmm, where:
+ -- YY = year, 00-99, BCD encoded
+ -- MM = month, 01-12, BCD encoded
+ -- DD = day, 01-31, BCD encoded
+ -- hh = hour, 00-23, BCD encoded
+ -- mm = minute, 00-59, BCD encoded
+ -- ss = second, 00-59, BCD encoded
+ -- ddd = millisecond, 000-999, BCD encoded
+ -- and rightjustified as "0ddd"
+ -- S = sign, "+"/"-", ASCII encoded
+
+StartDate ::= OCTET STRING (SIZE (8))
+
+StartTime ::= OCTET STRING (SIZE (6))
+
+CallDuration ::= INTEGER
+-- Expressed as number of millseconds
+
+Cellrate ::= INTEGER
+-- Value range 0-2^64
+CauseForTerm ::= INTEGER
+{
+ unsuccessfulCallAttempt (0),
+ abnormalTermination (1)
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/Syntax.py b/lib/asn1/test/asn1_SUITE_data/Syntax.py
new file mode 100644
index 0000000000..867d1148e1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Syntax.py
@@ -0,0 +1,10 @@
+Syntax DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPMessages-simple.asn b/lib/asn1/test/asn1_SUITE_data/TCAPMessages-simple.asn
new file mode 100644
index 0000000000..a9ace659d5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TCAPMessages-simple.asn
@@ -0,0 +1,206 @@
+TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) }
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS OPERATION, ERROR, Component, InvokeIdType;
+
+-- Transaction Portion fields
+
+MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional,
+ begin [APPLICATION 2] IMPLICIT Begin,
+ end [APPLICATION 4] IMPLICIT End,
+ continue [APPLICATION 5] IMPLICIT Continue,
+ abort [APPLICATION 7] IMPLICIT Abort }
+
+Unidirectional ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion }
+
+Begin ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+End ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Continue ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL
+ }
+
+-- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must be
+-- present.The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+
+DialoguePortion ::= [APPLICATION 11] EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
+-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
+-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
+-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
+-- is carried (e.g. when user information is sent in a 1988 Abort message).
+
+OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
+DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
+ unrecognizedMessageType (0),
+ unrecognizedTransactionID (1),
+ badlyFormattedTransactionPortion (2),
+ incorrectTransactionPortion (3),
+ resourceLimitation (4) }
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
+-- The Component Portion may be absent.
+
+ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- Component Portion fields
+-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs).
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+
+Component ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResultLast [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject,
+ returnResultNotLast [7] IMPLICIT ReturnResult }
+
+-- The Components are sequences of data elements.
+
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
+-- in the type definition of a particular operation.
+
+ReturnResult ::= SEQUENCE {
+ invokeID InvokeIdType,
+ result SEQUENCE {
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode
+ } OPTIONAL
+ }
+
+-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
+-- of a particular operation.
+
+ReturnError ::= SEQUENCE {
+ invokeID InvokeIdType,
+ errorCode ERROR,
+ parameter ANY DEFINED BY errorCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+
+
+-- Recommendation Q.773 (06/97) 3
+
+Reject ::= SEQUENCE {
+ invokeID CHOICE {
+ derivable InvokeIdType,
+ not-derivable NULL },
+ problem CHOICE {
+ generalProblem [0] IMPLICIT GeneralProblem,
+ invokeProblem [1] IMPLICIT InvokeProblem,
+ returnResultProblem [2] IMPLICIT ReturnResultProblem,
+ returnErrorProblem [3] IMPLICIT ReturnErrorProblem
+ }
+ }
+
+InvokeIdType ::= INTEGER ( -128..127)
+
+-- OPERATIONS
+-- Operations are specified with the OPERATION MACRO.
+-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
+-- Default values and optional parameters are permitted.
+
+-- FAKE OPERATION
+OPERATION ::= INTEGER ( 0..65535 )
+ERROR ::= INTEGER ( 0..65535 )
+
+--OPERATION MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter Result Errors LinkedOperations
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER"
+-- Result ::= "RESULT" ResultType | empty
+-- Errors ::= "ERRORS" "{"ErrorNames"}" | empty
+-- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty
+-- ResultType ::= NamedType | empty
+-- ErrorNames ::= ErrorList | empty
+-- ErrorList ::= Error | ErrorList "," Error
+-- Error ::= value (ERROR)
+--
+-- shall reference an error value
+--
+-- | type
+-- shall reference an error type
+--
+-- if no error value is specified
+-- LinkedOperationNames ::= OperationList | empty
+-- OperationList ::= Operation | OperationList "," Operation
+-- Operation ::= value (OPERATION)
+-- shall reference an operation value
+-- | type
+-- shall reference an operation type if
+--
+-- no operation value is specified
+-- NamedType ::= identifier type | type
+--END
+
+-- ERRORS
+-- Errors are specified with the ERROR MACRO.
+-- When an error is specified, the valid parameters for that error are indicated.
+-- Default values and optional parameters are permitted.
+
+--ERROR MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= "PARAMETER" NamedType | empty
+-- NamedType ::= identifier type | type
+--END
+
+-- PROBLEMS
+
+GeneralProblem ::= INTEGER { unrecognizedComponent (0),
+ mistypedComponent (1),
+ badlyStructuredComponent (2) }
+InvokeProblem ::= INTEGER { duplicateInvokeID (0),
+ unrecognizedOperation (1),
+ mistypedParameter (2),
+ resourceLimitation (3),
+ initiatingRelease (4),
+ unrecognizedLinkedID (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7) }
+ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnResultUnexpected (1),
+ mistypedParameter (2) }
+ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnErrorUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4) }
+
+END -- TCAPMessages
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPMessages.asn b/lib/asn1/test/asn1_SUITE_data/TCAPMessages.asn
new file mode 100644
index 0000000000..ed8b4c6927
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TCAPMessages.asn
@@ -0,0 +1,98 @@
+-- Module TCAPMessages (Q.773:06/1997)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn
new file mode 100644
index 0000000000..fcaeff3bfa
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn
@@ -0,0 +1,271 @@
+TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0)
+ tcapPackage(0) version4(4)} DEFINITIONS ::=
+
+-- iso(1) memberbody(2)
+-- usa(840) T1.114(10013)
+BEGIN -- defining a module called TCAPPackage which contains type
+
+-- definitions for the contents of any generic TCAP message
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+-- TCAPRemoteperationsInformationbjects {iso(1) memberbody(2) usa(840)
+-- t1-114(10013) modules(0) information-objects(1) version4(4)};
+
+PackageType ::= CHOICE {
+ unidirectional [PRIVATE 1] IMPLICIT UniTransactionPDU,
+ queryWithPerm [PRIVATE 2] IMPLICIT TransactionPDU,
+ queryWithoutPerm [PRIVATE 3] IMPLICIT TransactionPDU,
+ response [PRIVATE 4] IMPLICIT TransactionPDU,
+ conversationWithPerm [PRIVATE 5] IMPLICIT TransactionPDU,
+ conversationWithoutPerm [PRIVATE 6] IMPLICIT TransactionPDU,
+ abort [PRIVATE 22] IMPLICIT Abort}
+
+UniTransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence}
+
+TransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence OPTIONAL}
+
+-- TransactionPDU should include either a Dialogue Portion,
+-- a Component Sequence or both
+TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING
+
+-- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort
+-- 8 octets for Conversation in the order Originating then Responding TID
+Abort ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ causeInformation
+ CHOICE {abortCause P-Abort-cause,
+ userInformation UserAbortInformation} OPTIONAL}
+
+-- When the Abort package is generated by the Transaction sublayer,
+-- the P-Abort-cause must be present
+P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER {
+ unrecognizedPackageType(1), incorrectTransactionPortion(2),
+ badlyStructuredTransactionPortion(3), unassignedRespondingTransactionID(4),
+ permissionToReleaseProblem(5), -- for further study
+ resourceUnavailable(6), unrecognizedDialoguePortionID(7),
+ badlyStructuredDialoguePortion(8), missingDialoguePortion(9),
+ inconsistentDialoguePortion(10)}
+
+DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE {
+ version ProtocolVersion OPTIONAL,
+ applicationContext
+ CHOICE {integerApplicationId IntegerApplicationContext,
+ objectApplicationId ObjectIDApplicationContext} OPTIONAL,
+ userInformation UserInformation OPTIONAL,
+ securityContext
+ CHOICE {integerSecurityId [0] IMPLICIT INTEGER,
+ objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ confidentiality [2] IMPLICIT Confidentiality OPTIONAL}
+
+ProtocolVersion ::= [PRIVATE 26] IMPLICIT OCTET STRING(SIZE (1))
+
+-- 0000 0000 not used
+-- 0000 0001 T1.114-1996
+-- 0000 0010 T1.114-2000
+-- other reserved
+-- These values can be combined using the bit-wise logical or operation
+-- to indicate support for more than one version, e.g. the value 0000 0011
+-- means that both 1996 and 2000 versions are supported
+IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER
+
+ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER
+
+UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL
+
+Confidentiality ::= SEQUENCE {
+ confidentialityId
+ CHOICE {integerConfidentialityId [0] IMPLICIT INTEGER,
+ objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ ...
+ -- The extension marker indicates the possible presence of items
+ -- in the confidentiality set that are used by the confidentiality
+ -- algorithm.--}
+
+UserAbortInformation ::= [PRIVATE 24] EXTERNAL
+
+--ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU
+ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU{NoInvokeId,ProbeAndAcknowledge,ProbeAndAcknowledge}
+-- Component Portion specification starts below
+ComponentPDU{InvokeId:InvokeIdSet, OPERATION:Invocable, OPERATION:Returnable}
+ ::= CHOICE {
+ invokeLast
+ [PRIVATE 9] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be TRUE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultLast [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}},
+ returnError
+ [PRIVATE 11] IMPLICIT ReturnError{{Errors {{Returnable}}}},
+ reject [PRIVATE 12] IMPLICIT Reject,
+ invokeNotLast
+ [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be FALSE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult{{Returnable}}}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalunrecognisedComponentType)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ componentIDs
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..2))
+ -- The invoke ID precedes the correlation id. There may be no
+ -- identifier,only an invoke ID, or both invoke and correlation
+ -- ID.
+ (CONSTRAINED BY {-- must be unambiguous --} !
+ RejectProblem:invokeduplicateInvocation)
+ (CONSTRAINED BY {-- correlation ID must identify an--
+ -- outstanding operation --} !
+ RejectProblem:invokeunrecognisedCorrelationId)
+ OPTIONAL,
+ -- operationCode
+ opcode
+ OPERATION.&operationCode
+ -- ((Operations) !RejectProblem:invokeunrecognisedOperation),
+ ({Operations} !RejectProblem:invokeunrecognisedOperation),
+ parameter
+ -- OPERATION.&ParameterType
+ OPERATION.&ResultType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:
+ returnResultunrecognisedCorrelationId)
+ (CONSTRAINED BY {-- which returns a result --} !
+ RejectProblem:returnResultunexpectedReturnResult),
+ parameter
+ OPERATION.&ResultType
+ -- ({Operations}{@opcode} !RejectProblem:returnResultincorrectParameter)
+-- ({Operations}{@componentID} !RejectProblem:returnResultincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:returnErrorunrecognisedCorrelationId)
+ (CONSTRAINED BY {--which returns an error--} !
+ RejectProblem:returnErrorunexpectedReturnError),
+ errorCode
+ ERROR.&errorCode({Errors} !RejectProblem:returnErrorunrecognisedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the--
+ -- associated operation --} !RejectProblem:returnErrorunexpectedError),
+ parameter
+ -- Error.&ParameterType
+ ERROR.&ParameterType
+ -- ({Errors}{@errorcode} !RejectProblem:returnErrorincorrectParameter)
+ ({Errors}{@errorCode} !RejectProblem:returnErrorincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+Reject ::= SEQUENCE {
+ componentID [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..1)),
+ rejectProblem [PRIVATE 21] IMPLICIT Problem,
+ parameter
+ CHOICE {paramSequence [PRIVATE 16] IMPLICIT SEQUENCE {},
+ paramSet [PRIVATE 18] IMPLICIT SET {}}}
+ -- The choice between paramSequence and paramSet is implementation
+ -- dependent, however paramSequence is preferred.
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+-- PROBLEMS, the specification of Problems follows
+Problem ::= INTEGER {
+ generalunrecognisedComponentType(257), generalincorrectComponentPortion(258),
+ generalbadlyStructuredCompPortion(259), generalincorrectComponentCoding(260),
+ invokeduplicateInvocation(513), invokeunrecognisedOperation(514),
+ invokeincorrectParameter(515), invokeunrecognisedCorrelationID(516),
+ returnResultunrecognisedCorrelationID(769),
+ returnResultunexpectedReturnResult(770), returnResultincorrectParameter(771),
+ returnErrorunrecognisedCorrelationID(1025),
+ returnErrorunexpectedReturnError(1026), returnErrorunrecognisedError(1027),
+ returnErrorunexpectedError(1028),
+ returnErrorincorrectParameter(1029),
+ -- Applications using T1.114-1988 report Transaction portion
+ -- problems using a Reject component with a problem code in
+ -- the range 1281e6
+ -- It is preferred that other applications report
+ -- these problems using the Abort package type
+ transactionunrecognizedPackageType(1281),
+ transactionincorrectTransPortion(1282),
+ transactionbadlyStructuredTransPortion(1283),
+ transactionunassignedRespondingTransID(1284),
+ transactionpermissionToReleaseProblem(1285),
+ transactionresourceUnavailable(1286)}
+
+ --added imaginary defs by Bertil
+
+ InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ ERRORS ErrorSet
+ ALWAYS RESPONDS TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ ALWAYS RESPONDS TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+error1 ERROR ::= {PARAMETER INTEGER PRIORITY 25 CODE local:22}
+error2 ERROR ::= {PARAMETER BOOLEAN PRIORITY 15 CODE local:21}
+ErrorSet ERROR ::= {error1|error2}
+--parameterized object set definition
+Errors{OPERATION:OperationSet} ERROR ::= {OperationSet.&Errors}
+
+END -- end of the TCAPPackage Module
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn1config b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn1config
new file mode 100644
index 0000000000..b0ccd7d34c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn1config
@@ -0,0 +1,12 @@
+{exclusive_decode, {'TCAPPackage',
+ [{decode_PackageType, ['PackageType',
+ [{unidirectional, undecoded},
+ {queryWithPerm, [{componentPortion, parts}]},
+ {queryWithoutPerm, undecoded},
+ {response, [{componentPortion, parts}]},
+ {conversationWithPerm, undecoded},
+ {conversationWithoutPerm, undecoded},
+ {abort, undecoded}]]},
+ {decode_TransactionPDU, ['TransactionPDU',
+ [{componentPortion, parts}]]}]}}.
+
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPPackage_msg.erl b/lib/asn1/test/asn1_SUITE_data/TCAPPackage_msg.erl
new file mode 100644
index 0000000000..cc9a483f49
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TCAPPackage_msg.erl
@@ -0,0 +1,141 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module('TCAPPackage_msg').
+
+-compile(export_all).
+
+-include("TCAPPackage.hrl").
+
+val('PackageType',unidirectional) ->
+ {unidirectional,val('UniTransactionPDU')};
+val('PackageType',abort) ->
+ {abort,val('Abort')};
+val('PackageType',Component) ->
+ {Component,val('TransactionPDU')};
+val('ComponentPDU',1) ->
+ {invokeLast,val('Invoke')};
+val('ComponentPDU',2) ->
+ {returnResultLast,val('ReturnResult')};
+val('ComponentPDU',3) ->
+ {returnError,val('ReturnError')}.
+
+
+
+val('UniTransactionPDU') ->
+ #'UniTransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionPDU') ->
+ #'TransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionID') ->
+ "OCTET STRING";
+val('DialoguePortion') ->
+ #'DialoguePortion'{version=val('ProtocolVersion'),
+ applicationContext={integerApplicationId,12},
+ userInformation=val('UserInformation'),
+ securityContext={integerSecurityId,13},
+ confidentiality=val('Confidentiality')};
+val('Confidentiality') ->
+ #'Confidentiality'{confidentialityId={integerConfidentialityId,14}};
+val('ProtocolVersion') ->
+ "K";
+val('UserInformation') ->
+ [val('EXTERNAL'),val('EXTERNAL')];
+val('EXTERNAL') ->
+ #'EXTERNAL'{'direct-reference'={0,1,2},
+ encoding={'single-ASN1-type',[1,2,3,4]}};
+val('ComponentSequence') ->
+ [val('ComponentPDU',1),val('ComponentPDU',2),val('ComponentPDU',3)];
+val('Invoke') ->
+ #'Invoke'{componentIDs="AB",
+ opcode={local,-2},
+ parameter=running};
+val('ReturnResult') ->
+ #'ReturnResult'{componentID="C",
+ parameter=[1,2,3,4]};
+val('ReturnError') ->
+ #'ReturnError'{componentID="D",
+ errorCode={local,21},
+ parameter=true};
+val('Abort') ->
+ #'Abort'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ causeInformation={abortCause,unrecognizedPackageType}};
+val(Type) ->
+ io:format("Missing type: ~p~n",[Type]).
+
+
+check_result('PackageType',unidirectional,Res) ->
+ {unidirectional,
+ {'UniTransactionPDU',
+ "OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,{_,"C",_}},
+ {returnError,{_,"D",{local,21},true}}]}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',abort,Res)->
+ {abort,{'Abort',"OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ {abortCause,unrecognizedPackageType}}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',response,Res) ->
+ {response,{'TransactionPDU',"OCTET STRING",
+ {'DialoguePortion',
+ "K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,
+ {_,"C",_}},
+ {returnError,
+ {_,"D",{local,21},true}}]}} = Res,
+ ok.
+%% check_OT_val(OTVal).
+
+check_OT_val([160,4,1,2,3,4]) ->
+ ok;
+check_OT_val(<<160,4,1,2,3,4>>) ->
+ ok;
+check_OT_val(_) ->
+ error.
+
diff --git a/lib/asn1/test/asn1_SUITE_data/TConstr.asn1 b/lib/asn1/test/asn1_SUITE_data/TConstr.asn1
new file mode 100644
index 0000000000..63f5dbde77
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TConstr.asn1
@@ -0,0 +1,95 @@
+-- The idea with this spec is to gather definitions that has a
+-- complicated structure of table constraints.
+TConstr DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+MYCLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type,
+ &Result OPTIONAL
+} WITH SYNTAX {
+ ID &id
+ TYPE &Type
+ [RESULT &Result]
+}
+
+object1 MYCLASS ::= {ID id-object1 TYPE Type-object1 RESULT INTEGER}
+object2 MYCLASS ::= {ID id-object2 TYPE Type-object2}
+object3 MYCLASS ::= {ID id-object3 TYPE Type-object3 RESULT BOOLEAN}
+
+ObjectSet MYCLASS ::= {object1 | object2 | object3}
+
+id-object1 OBJECT IDENTIFIER ::= {2 4}
+id-object2 OBJECT IDENTIFIER ::= {2 5}
+id-object3 OBJECT IDENTIFIER ::= {2 6 7}
+
+
+Type-object1 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+Type-object2 ::= ENUMERATED {first, second, third}
+
+Type-object3 ::= CHOICE {
+ first SEQUENCE {a BOOLEAN, b INTEGER},
+ second INTEGER
+}
+
+Seq1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab MYCLASS.&id ({ObjectSet})},
+ b SEQUENCE {ba INTEGER, bb MYCLASS.&Type ({ObjectSet}{@a.ab})}
+}
+
+Seq2 ::= SEQUENCE {
+ identity INTEGER,
+ content SEQUENCE {
+ subid MYCLASS.&id ({ObjectSet}),
+ subcontent MYCLASS.&Type ({ObjectSet}{@content.subid}),
+ subresult MYCLASS.&Result ({ObjectSet}{@content.subid})
+ }
+}
+
+
+-- following from Peter's definitions
+
+
+MY-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+Info ::= SEQUENCE {
+ xyz SEQUENCE {
+ abc MY-CLASS.&id({Supported})
+ },
+ uvw MY-CLASS.&Type ({Supported}{@xyz.abc}) }
+
+Supported MY-CLASS ::= { dsa | rsa }
+
+-- dsa
+
+ id-dsa OBJECT IDENTIFIER ::= { 1 2 }
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ dsa MY-CLASS ::= {
+ ID id-dsa
+ TYPE DSAPublicKey }
+
+-- rsa
+
+ rsaEncryption OBJECT IDENTIFIER ::= { 1 3 4 }
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ rsa MY-CLASS ::= {
+ ID rsaEncryption
+ TYPE RSAPublicKey }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/TConstrChoice.asn1 b/lib/asn1/test/asn1_SUITE_data/TConstrChoice.asn1
new file mode 100644
index 0000000000..4f17786e78
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/TConstrChoice.asn1
@@ -0,0 +1,175 @@
+TConstrChoice DEFINITIONS ::=
+BEGIN
+
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings [1] SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ any [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ final [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}) }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion }
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion ATTRIBUTE.&equality-match.&AssertionType
+ ({SupportedAttributes}{@type}) }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ type MATCHING-RULE.&id({MatchingRules}),
+ assertion MATCHING-RULE.&AssertionType ({MatchingRules}{@type})
+ }
+
+AttributeType ::= INTEGER(0..127)
+
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL,
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage Attribute-Usage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id }
+
+Attribute-Usage ::= ENUMERATED { userApplications(0),
+ directoryOperation(1), distributedOperation(2),
+ dSAOperation(3) }
+
+
+surname ATTRIBUTE ::= { -- family name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= { -- first name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-givenName }
+
+countryName ATTRIBUTE ::= { -- country
+ SUBTYPE OF name
+ WITH SYNTAX PrintableString (SIZE (2)) -- [ISO3166] codes
+ SINGLE VALUE TRUE
+ ID id-at-countryName}
+
+SupportedAttributes ATTRIBUTE ::=
+{surname | givenName | countryName}
+
+-- id-at-surname DirectoryString ::= universalString:"SureName"
+
+id-at-surname OBJECT IDENTIFIER ::= {2 4}
+
+-- id-at-givenName DirectoryString ::= printableString:"GivenName"
+
+id-at-givenName OBJECT IDENTIFIER ::= {2 5}
+
+-- id-at-countryName PrintableString (SIZE (2)) ::= "CN"
+
+id-at-countryName OBJECT IDENTIFIER ::= {2 6}
+
+MATCHING-RULE ::= CLASS {
+ &AssertionType OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SYNTAX &AssertionType]
+ ID &id }
+
+MatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch }
+
+LessMatchingRules MATCHING-RULE ::= {
+ MatchingRules EXCEPT caseIgnoreMatch }
+
+ExtensibleMatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch, ... }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-name }
+
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE (1..maxSize))
+-- utf8String UTF8String (SIZE (1..maxSize))
+ }
+
+maxSize INTEGER ::= 25
+
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString
+ ID id-caseIgnoreMatch
+ }
+
+booleanMatch MATCHING-RULE ::= {
+ SYNTAX BOOLEAN
+ ID id-booleanMatch
+ }
+
+integerMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-integerMatch
+ }
+
+id-mr OBJECT IDENTIFIER ::=
+{2 5 11}
+
+id-name OBJECT IDENTIFIER ::= {2 5 11 5}
+
+id-caseIgnoreMatch OBJECT IDENTIFIER ::= {2 5 11 2}
+
+id-booleanMatch OBJECT IDENTIFIER ::= {2 5 11 13}
+
+id-integerMatch OBJECT IDENTIFIER ::= {2 5 11 14}
+
+--{joint-iso-itu-t ds(5) matchingRule(13)}
+
+-- test code for OTP-4248
+
+NOTUNIQUE ::= CLASS {
+ &value INTEGER,
+ &Type
+}
+WITH SYNTAX {
+ VALUE &value
+ TYPE &Type
+}
+
+
+nuObject NOTUNIQUE ::= {VALUE 3 TYPE FilterItem}
+
+NuObjectSet NOTUNIQUE ::= {nuObject}
+
+Seq ::= SEQUENCE {
+ a NOTUNIQUE.&value ({NuObjectSet}),
+ b NOTUNIQUE.&Type ({NuObjectSet}{@a})
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Time.py b/lib/asn1/test/asn1_SUITE_data/Time.py
new file mode 100644
index 0000000000..e3672464e4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Time.py
@@ -0,0 +1,7 @@
+Time DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Pstr ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Tst.py b/lib/asn1/test/asn1_SUITE_data/Tst.py
new file mode 100644
index 0000000000..d80b32dad5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Tst.py
@@ -0,0 +1,153 @@
+Tst { 2 6 6 24 7 1 } DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+--EXPORTS SomeSet , Id0 , Aset,Id1 ,A,B,C,
+-- Uhh ,Foo ,Cho,Person,Hobbe,Robbe,X,Y;
+
+IMPORTS Fooo FROM Bobby;
+
+
+Robbe ::= SET {
+ ttt TT }
+
+Koo ::= SET {
+ c CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ s SET OF Id0 }
+
+
+Hobbe ::= [APPLICATION 1] SET {
+ aaa [0] SET OF INTEGER,
+ bbb [1] UU
+ }
+
+UU ::= PP
+PP ::= CHOICE {
+ cc [1] CHOICE {
+ a [0] INTEGER,
+ b [1] BOOLEAN,
+ c [2] BIT STRING },
+ ii [0] Id0
+ }
+
+
+TT ::= SS
+SS ::= SET {
+ b BOOLEAN DEFAULT TRUE
+ }
+
+Aset ::= [PRIVATE 2] SET OF Uhh
+
+
+
+SomeSet ::= [PRIVATE 3] IMPLICIT SET {
+ aaaa [2] SET{
+ ggg [0] INTEGER},
+ kkkk [1] SET OF Id2,
+ booby [4] OCTET STRING,
+ puck [3] INTEGER {red(0),blue(1),yellow(-2)},
+ baby [5] IMPLICIT Id1,
+ bool [6] BOOLEAN }
+
+
+Id0 ::= INTEGER (4 .. 99)
+
+Id1 ::= Id0
+
+Id2 ::= [PRIVATE 4] EXPLICIT Id1
+
+
+Uhh ::= SET {
+ a [1] IMPLICIT Id1}
+
+
+
+Soon ::= [PRIVATE 5] Moon
+
+Moon ::= [PRIVATE 6] IMPLICIT Person
+
+
+Person ::= [PRIVATE 7] IMPLICIT SEQUENCE {
+ szzzs SET OF SET {
+ aaa [0] INTEGER,
+ bbb [1] Id0},
+ cho Cho,
+ name OCTET STRING ,
+ location INTEGER,
+ asss Aset,
+ oops [2] IMPLICIT SET {
+ q [0] INTEGER,
+ p [1] Uhh},
+ on INTEGER,
+ mybits [3] IMPLICIT BIT STRING,
+ foo Foo,
+ age INTEGER,
+ hobbe [5] SEQUENCE {
+ a [4] CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ b [5] Id0}}
+
+
+
+
+
+Foo ::= [PRIVATE 8] IMPLICIT SEQUENCE {
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H,
+ hoohoo [11] IMPLICIT SEQUENCE {
+ bar [1] Id1 OPTIONAL,
+ foo INTEGER,
+ zombie [9] CHOICE {
+ a [1] IMPLICIT INTEGER,
+ b [2] IMPLICIT BOOLEAN }
+ },
+ moon [4] IMPLICIT INTEGER }
+
+
+
+Cho ::= [PRIVATE 9] EXPLICIT CHOICE {
+ somestring [2] IMPLICIT OCTET STRING,
+ goofy [9] INTEGER,
+ moon [4] IMPLICIT INTEGER }
+
+
+A ::= [APPLICATION 2] SET {
+ ppp IA5String ,
+ a [0] INTEGER {aaa(6),bbb(77)} DEFAULT 998,
+ b [1] Id1 OPTIONAL,
+ c [2] OCTET STRING (SIZE(8)),
+ dd [3] BIT STRING DEFAULT '11001'B }
+
+B ::= [APPLICATION 3] SET {
+ ww [1] SET {
+ a A OPTIONAL,
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H }
+ }
+
+
+C::= [APPLICATION 4] SEQUENCE OF X
+
+Y ::= OBJECT IDENTIFIER
+
+X ::= SET {
+ a NULL,
+ b GeneralString,
+ c UTCTime,
+ d VideotexString,
+ g GeneralizedTime,
+ h GraphicString,
+ i VisibleString,
+ j IA5String,
+ k PrintableString,
+ l OCTET STRING,
+ e TeletexString,
+ m ANY,
+ n ObjectDescriptor,
+ o OBJECT IDENTIFIER,
+ f NumericString }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/Two.py b/lib/asn1/test/asn1_SUITE_data/Two.py
new file mode 100644
index 0000000000..c8e6f1a55b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/Two.py
@@ -0,0 +1,34 @@
+Two { 1 2 3} DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+EXPORTS A, D,Boo,Szz;
+
+
+
+D ::= [PRIVATE 1] SEQUENCE {
+ a INTEGER,
+ b Boo,
+ c ANY DEFINED BY a ,
+ d ANY }
+
+
+Boo ::= SEQUENCE OF INTEGER (198..200)
+
+A ::= [PRIVATE 2] SEQUENCE {
+ a INTEGER (1..1),
+ b INTEGER (3..3) }
+
+
+Szz ::= CHOICE {
+ one INTEGER,
+ two BOOLEAN }
+
+C ::= SET {
+ a [0] INTEGER (0..8),
+ xx [4] CHOICE {
+ [7] INTEGER (9..10),
+ a INTEGER (11 ..13) },
+ f Boo,
+ r [2] INTEGER (20..22)}
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/UPERDefault.asn b/lib/asn1/test/asn1_SUITE_data/UPERDefault.asn
new file mode 100644
index 0000000000..7b81a0e09f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/UPERDefault.asn
@@ -0,0 +1,18 @@
+UPERDefault DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- OTP-7681
+Int ::= INTEGER (0..32767)
+
+Seq ::= SEQUENCE {
+ a Int,
+ b INTEGER (-27..27) DEFAULT 0, -- OTP-7678
+ c INTEGER OPTIONAL
+}
+
+seq Seq ::=
+{a 12,
+ b 0}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/UndefType.py b/lib/asn1/test/asn1_SUITE_data/UndefType.py
new file mode 100644
index 0000000000..cdbe083803
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/UndefType.py
@@ -0,0 +1,14 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+IMPORTS
+ ImportedFromUndefined FROM UndefinedModule;
+
+Feltyp ::= UndefinedType
+Feltyp2 ::= ImportedFromUndefined
+Person ::= [PRIVATE 19] SEQUENCE {
+ name Undefined,
+ location INTEGER {home(0),field(1),roving(2)},
+ age ImportedFromUndefined OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/UpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/UpperBounds.asn
new file mode 100755
index 0000000000..247260495b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 1023-- This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/UsefulDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/UsefulDefinitions.asn
new file mode 100755
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/ValueTest.asn b/lib/asn1/test/asn1_SUITE_data/ValueTest.asn
new file mode 100644
index 0000000000..dae9ae498a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/ValueTest.asn
@@ -0,0 +1,53 @@
+ValueTest DEFINITIONS ::=
+
+BEGIN
+
+--Criticality ::= ENUMERATED { reject, ignore, notify }(reject)
+
+--Ignore ::= Criticality(ignore)
+
+--SubCriticality ::= Criticality(reject|notify)
+
+INNL ::= INTEGER {zero(0),one(1),ten(10)}
+BSNNL ::= BIT STRING {zero(0),one(1),two(2)}
+RadioButton ::= ENUMERATED {button1(0),button2(1),button3(2)}
+
+-- OTP-6695
+vANY ANY ::= INTEGER:12
+
+-- basic type value test for coverage
+vBOOLEAN BOOLEAN ::= TRUE
+vINTEGER INTEGER ::= 12
+vINTEGERNNL INNL ::= zero
+vENUMERATED RadioButton ::= button1
+vBS BSNNL ::= {zero,two}
+vNULL NULL ::= NULL
+vOS OCTET STRING ::= '313233'H
+vOD OBJECT IDENTIFIER ::= {2 1 1}
+
+
+--Character strings
+numericstring NumericString ::= "01234567"
+printablestring PrintableString ::= "PrintableString"
+visiblestring VisibleString ::= "VisibleString"
+cr IA5String ::= {0,13}
+ia5string1 IA5String ::= {"First line",cr, "Second line"}
+ia5string2 IA5String ::= {{5,5},{4,4},{6,6}}
+teletexstring TeletexString ::= "TeletexString"
+videotexstring VideotexString ::= "VideotexString"
+utctime UTCTime ::= "97100211-0500"
+generalizedtime GeneralizedTime ::= "19971002103130.5"
+objectdescriptor ObjectDescriptor ::= "ObjectDescriptor"
+graphicstring GraphicString ::= "GraphicString"
+generalstring GeneralString ::= "GeneralString"
+bmpstring1 BMPString ::= "BMPString"
+--bmpstring2 BMPString ::= [{0,0,0,66},{0,0,0,77},{0,0,0,80},{0,0,0,115},{0,0,0,116},{0,0,0,114},{0,0,0,105},{0,0,0,110},{0,0,0,103}]
+latinCapitalLetterA UniversalString ::= {0,0,0,65}
+greekCapitalLetterSigma UniversalString ::= {0,0,3,145}
+my-universalstring UniversalString ::= {"This is a capital A: ",
+ latinCapitalLetterA,
+ ", and a capital sigma: ",
+ greekCapitalLetterSigma,
+ "; try and spot the difference!"}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/XSeq.py b/lib/asn1/test/asn1_SUITE_data/XSeq.py
new file mode 100644
index 0000000000..b068ab4393
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/XSeq.py
@@ -0,0 +1,42 @@
+XSeq DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.2
+-- Use a sequence type to model a collection of variables whose
+-- types are the same,
+-- whose number is known and modest, and whose order is significant,
+-- provided that the
+-- makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+NamesOfOfficers ::= SEQUENCE {
+ president VisibleString,
+ vicePresident VisibleString,
+ secretary VisibleString}
+
+acmeCorp NamesOfOfficers ::= {
+ president "Jane Doe",
+ vicePresident "John Doe",
+ secretary "Joe Doe"}
+
+-- F.2.10.3
+-- Use a sequence type to model a collection of variables whose types differ,
+-- whose number is known and modest, and whose order is significant,
+-- provided that
+-- the makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+Credentials ::= SEQUENCE {
+ userName VisibleString,
+ password VisibleString,
+ accountNumber INTEGER}
+
+-- Empty SEQUENCE stupid but just for test
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/XSeqOf.py b/lib/asn1/test/asn1_SUITE_data/XSeqOf.py
new file mode 100644
index 0000000000..f9fee92e56
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/XSeqOf.py
@@ -0,0 +1,19 @@
+XSeqOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.1
+-- Use a sequence-of type to model a collection of variables whose
+-- types are the same,
+-- whose number is large or unpredictable, and whose order is significant.
+-- EXAMPLE
+
+NamesOfMemberNations ::= SEQUENCE OF VisibleString
+-- in alphabetical order
+
+firstTwo NamesOfMemberNations ::= {"Australia", "Austria"}
+
+DayNames1 ::= SEQUENCE SIZE(7) OF VisibleString
+DayNames2 ::= SEQUENCE SIZE(1..7) OF VisibleString
+DayNames3 ::= SEQUENCE (SIZE(7)) OF VisibleString
+DayNames4 ::= SEQUENCE (SIZE(1..7)) OF VisibleString
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/XSet.py b/lib/asn1/test/asn1_SUITE_data/XSet.py
new file mode 100644
index 0000000000..39e58a39ab
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/XSet.py
@@ -0,0 +1,47 @@
+XSet DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.1
+-- Use a set type to model a collection of variables whose number is
+-- known and modest
+-- and whose order is insignificant. If automatic tagging is not in
+-- effect, identify each
+-- variable by context-specifically tagging it as shown below.
+-- (With automatic tagging, the tags are not needed.)
+-- EXAMPLE
+
+ UserName ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString,
+ countryName [2] VisibleString}
+
+ user UserName ::= {
+ countryName "Nigeria",
+ personalName "Jonas Maruba",
+ organizationName "Meteorology, Ltd."}
+
+ UserName2 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL
+ -- defaults to that of the local organization -- ,
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country -- }
+
+-- F.2.11.3
+-- Use a set type to model a collection of variables whose makeup is
+-- likely to change
+-- from one version of the protocol to the next.
+-- Identify each variable by context-specifically
+-- tagging it to retain control of the tags used.
+-- EXAMPLE
+
+ UserName3 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL ,
+ -- defaults to that of the local organization
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country
+ -- other optional attributes are for further study --}
+ user3 UserName3 ::= { personalName "Jonas Maruba" }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/XSetOf.py b/lib/asn1/test/asn1_SUITE_data/XSetOf.py
new file mode 100644
index 0000000000..93337d0c33
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/XSetOf.py
@@ -0,0 +1,12 @@
+XSetOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.4
+--Use a set-of type to model a collection of variables whose types are
+-- the same and whose order is insignificant.
+-- EXAMPLE
+
+ Keywords ::= SET OF VisibleString -- in arbitrary order
+ someASN1Keywords Keywords ::= {"INTEGER", "BOOLEAN", "REAL"}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/a_SeqIn.erl b/lib/asn1/test/asn1_SUITE_data/a_SeqIn.erl
new file mode 100644
index 0000000000..a447524358
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/a_SeqIn.erl
@@ -0,0 +1,31 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(a_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #a_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
+
+
diff --git a/lib/asn1/test/asn1_SUITE_data/b_SeqIn.erl b/lib/asn1/test/asn1_SUITE_data/b_SeqIn.erl
new file mode 100644
index 0000000000..a416322b8c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/b_SeqIn.erl
@@ -0,0 +1,29 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(b_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #b_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg1.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg1.val
new file mode 100644
index 0000000000..7802193dd2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg1.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg10.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg10.val
new file mode 100644
index 0000000000..8ba4a710ba
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg10.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg11.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg11.val
new file mode 100644
index 0000000000..c2298be3d9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg11.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg12.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg12.val
new file mode 100644
index 0000000000..cb5c0c666c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg12.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg13.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg13.val
new file mode 100644
index 0000000000..3fe1df73bb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg13.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg14.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg14.val
new file mode 100644
index 0000000000..17ad9159c5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg14.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg15.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg15.val
new file mode 100644
index 0000000000..4ef840762d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg15.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg16.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg16.val
new file mode 100644
index 0000000000..5252c4da38
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg16.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg17.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg17.val
new file mode 100644
index 0000000000..8e040d78a2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg17.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg18.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg18.val
new file mode 100644
index 0000000000..0980cd37d4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg18.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg19.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg19.val
new file mode 100644
index 0000000000..c49f885c71
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg19.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg2.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg2.val
new file mode 100644
index 0000000000..eeb8a5fb90
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg2.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg20.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg20.val
new file mode 100644
index 0000000000..7b55708fa6
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg20.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg21.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg21.val
new file mode 100644
index 0000000000..108eeb8b07
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg21.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg22.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg22.val
new file mode 100644
index 0000000000..3d9f9fefcf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg22.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg23.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg23.val
new file mode 100644
index 0000000000..61a329a76a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg23.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg24.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg24.val
new file mode 100644
index 0000000000..55adab5e8f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg24.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg25.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg25.val
new file mode 100644
index 0000000000..d351fb575a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg25.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg3.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg3.val
new file mode 100644
index 0000000000..01b7a1335a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg3.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg4.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg4.val
new file mode 100644
index 0000000000..462033fa84
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg4.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg5.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg5.val
new file mode 100644
index 0000000000..78bdaa3200
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg5.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg6.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg6.val
new file mode 100644
index 0000000000..24af9044a8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg6.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg7.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg7.val
new file mode 100644
index 0000000000..ab028e7128
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg7.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg8.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg8.val
new file mode 100644
index 0000000000..2d42b73c0c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg8.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg9.val b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg9.val
new file mode 100644
index 0000000000..3581dc033a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/megacomessages/Msg9.val
Binary files differ
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/BasicAccessControl.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/CertificateExtensions.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/InformationFramework.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/InformationFramework.asn
new file mode 100644
index 0000000000..5c26febd5b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+-- TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+-- HierarchySelections, FamilyGrouping, FamilyReturn
+-- FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+--contextAssertionSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {contextAssertionDefaults}
+-- ID id-sc-contextAssertionSubentry
+--}
+
+-- serviceAdminSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {searchRules}
+-- ID id-sc-serviceAdminSubentry
+-- }
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+-- contextAssertionDefaults ATTRIBUTE ::= {
+-- WITH SYNTAX TypeAndContextAssertion
+-- EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-contextAssertionDefault
+-- }
+
+-- searchRules ATTRIBUTE ::= {
+-- WITH SYNTAX SearchRuleDescription
+-- EQUALITY MATCHING RULE integerFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-searchRules
+-- }
+
+-- SearchRuleDescription ::= SEQUENCE {
+-- COMPONENTS OF SearchRule,
+-- name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+-- description [29] DirectoryString{ub-search} OPTIONAL,
+-- obsolete [30] BOOLEAN DEFAULT FALSE
+-- }
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+-- SearchRule ::= SEQUENCE {
+-- COMPONENTS OF SearchRuleId,
+-- serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+-- userClass [2] INTEGER OPTIONAL,
+-- inputAttributeTypes
+-- [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+-- attributeCombination [4] AttributeCombination DEFAULT and:{},
+-- outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+-- defaultControls [6] ControlOptions OPTIONAL,
+-- mandatoryControls [7] ControlOptions OPTIONAL,
+-- searchRuleControls [8] ControlOptions OPTIONAL,
+-- familyGrouping [9] FamilyGrouping OPTIONAL,
+-- familyReturn [10] FamilyReturn OPTIONAL,
+-- relaxation [11] RelaxationPolicy OPTIONAL,
+-- additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+-- allowedSubset [13] AllowedSubset DEFAULT '111'B,
+-- imposedSubset [14] ImposedSubset OPTIONAL,
+-- entryLimit [15] EntryLimit OPTIONAL
+-- }
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+-- ControlOptions ::= SEQUENCE {
+-- serviceControls [0] ServiceControlOptions DEFAULT {},
+-- searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+-- hierarchyOptions [2] HierarchySelections OPTIONAL
+-- }
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+-- SEARCH-RULE ::= CLASS {
+-- &dmdId OBJECT IDENTIFIER,
+-- &serviceType OBJECT IDENTIFIER OPTIONAL,
+-- &userClass INTEGER OPTIONAL,
+-- &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+-- &combination AttributeCombination OPTIONAL,
+-- &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+-- &defaultControls ControlOptions OPTIONAL,
+-- &mandatoryControls ControlOptions OPTIONAL,
+-- &searchRuleControls ControlOptions OPTIONAL,
+-- &familyGrouping FamilyGrouping OPTIONAL,
+-- &familyReturn FamilyReturn OPTIONAL,
+-- &additionalControl AttributeType OPTIONAL,
+-- &relaxation RelaxationPolicy OPTIONAL,
+-- &entryLimit EntryLimit OPTIONAL,
+-- &allowedSubset AllowedSubset DEFAULT '111'B,
+-- &imposedSubset ImposedSubset OPTIONAL,
+-- &id INTEGER UNIQUE
+-- }
+-- WITH SYNTAX {
+-- DMD ID &dmdId
+-- [SERVICE-TYPE &serviceType]
+-- [USER-CLASS &userClass]
+-- [INPUT ATTRIBUTES &InputAttributeTypes]
+-- [COMBINATION &combination]
+-- [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+-- [DEFAULT CONTROL &defaultControls]
+-- [MANDATORY CONTROL &mandatoryControls]
+-- [SEARCH-RULE CONTROL &searchRuleControls]
+-- [FAMILY-GROUPING &familyGrouping]
+-- [FAMILY-RETURN &familyReturn]
+-- [ADDITIONAL CONTROL &additionalControl]
+-- [RELAXATION &relaxation]
+-- [ALLOWED SUBSET &allowedSubset]
+-- [IMPOSED SUBSET &imposedSubset]
+-- [ENTRY LIMIT &entryLimit]
+-- ID &id
+-- }
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/PKCS7.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/PKCS7.asn
new file mode 100644
index 0000000000..7a06661cc0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/PKCS7.asn
@@ -0,0 +1,343 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+-- pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}) OPTIONAL
+ pkcs7-content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/UpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/UpperBounds.asn
new file mode 100644
index 0000000000..37890f8b49
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 32768
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/modified_x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/modified_x420/p7_signed_data.pem b/lib/asn1/test/asn1_SUITE_data/modified_x420/p7_signed_data.pem
new file mode 100644
index 0000000000..fc6bdebd8b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/modified_x420/p7_signed_data.pem
@@ -0,0 +1,23 @@
+-----BEGIN PKCS7-----
+MIIDxQYJKoZIhvcNAQcCoIIDtjCCA7ICAQExCzAJBgUrDgMCGgUAMBoGCSqGSIb3
+DQEHAaANBAtwbGFpbiB0ZXh0CqCCAeMwggHfMIIBSAIJAKB+Sm2O7vxbMA0GCSqG
+SIb3DQEBBAUAMDQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEP
+MA0GA1UECxMGTkVUU2ltMB4XDTA4MDIyOTE1MzEwMFoXDTE4MDIyNjE1MzEwMFow
+NDELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0VyaWNzc29uIEFCMQ8wDQYDVQQLEwZO
+RVRTaW0wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2EtqGq/lu0DdUfexOk
+X4icontyAFXqJL8TRtsL4tSTleQiHICH+glBpJ1Grk/x5YV6Fke49hSBHhG3J8A7
+CpicAmXTiZR2LGvdLoO2HEwItlR9IaFICsr2/piHzB/ZWnu0uzeHBQW3gJNGG21V
+KltZapcBew3jNG8wdPdykPpnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAK//FOT1m
+KamyWjwWs1hzmngpqmvQAR4CcD3F5jtbwz8bNZtfoRr1VnJktZhorVb5uWPfahH2
+qnvJEX8EtoY7un8O3N1sJFVFcTkEIz2THalYZG6bQ8owqr4s3vZ3XoOBD5ukVwjE
+sVdDSa4b713tiHCsWoGca7cn6i6y6s/oDpwxggGbMIIBlwIBATBBMDQxCzAJBgNV
+BAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEPMA0GA1UECxMGTkVUU2ltAgkA
+oH5KbY7u/FswCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
+MBwGCSqGSIb3DQEJBTEPFw0wODAyMjkxNTMxMDFaMCMGCSqGSIb3DQEJBDEWBBQF
+/OBF9SkVcUzcMGOVsg3QKX/hGTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMH
+MA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG
+9w0DAgIBKDANBgkqhkiG9w0BAQEFAASBgEA7LwwdYP7LMMAoBl7qX+XMF66c5stq
+e9f2BpGsFGqhfDac+tmnCkRu1clr9VUld0DSuw+Qc3oUnpix/Vo5mwmbQ19iR/f9
+oBmm85iZMBDy8vScS6Vm7u+mHvQ9d4iNNS7MDQ8peEu9ItxWe1x3LuCAMbvGMiXE
+75U3Iy4ZYCq4
+-----END PKCS7-----
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
new file mode 100755
index 0000000000..e3f6e83d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
@@ -0,0 +1,58 @@
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+NBAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-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 }
+
+MessageDiscriminator ::= ENUMERATED { common, dedicated }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProcedureID ::= SEQUENCE {
+ procedureCode ProcedureCode,
+ ddMode ENUMERATED { tdd, fdd, common, ... }
+}
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TransactionID ::= CHOICE {
+ shortTransActionId INTEGER (0..127),
+ longTransActionId INTEGER (0..32767)
+}
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome, outcome }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Constants.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Constants.asn
new file mode 100755
index 0000000000..1411d455b7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Constants.asn
@@ -0,0 +1,688 @@
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+NBAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Constants (4)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-audit ProcedureCode ::= 0
+id-auditRequired ProcedureCode ::= 1
+id-blockResource ProcedureCode ::= 2
+id-cellDeletion ProcedureCode ::= 3
+id-cellReconfiguration ProcedureCode ::= 4
+id-cellSetup ProcedureCode ::= 5
+id-cellSynchronisationInitiation ProcedureCode ::= 45
+id-cellSynchronisationReconfiguration ProcedureCode ::= 46
+id-cellSynchronisationReporting ProcedureCode ::= 47
+id-cellSynchronisationTermination ProcedureCode ::= 48
+id-cellSynchronisationFailure ProcedureCode ::= 49
+id-commonMeasurementFailure ProcedureCode ::= 6
+id-commonMeasurementInitiation ProcedureCode ::= 7
+id-commonMeasurementReport ProcedureCode ::= 8
+id-commonMeasurementTermination ProcedureCode ::= 9
+id-commonTransportChannelDelete ProcedureCode ::= 10
+id-commonTransportChannelReconfigure ProcedureCode ::= 11
+id-commonTransportChannelSetup ProcedureCode ::= 12
+id-compressedModeCommand ProcedureCode ::= 14
+id-dedicatedMeasurementFailure ProcedureCode ::= 16
+id-dedicatedMeasurementInitiation ProcedureCode ::= 17
+id-dedicatedMeasurementReport ProcedureCode ::= 18
+id-dedicatedMeasurementTermination ProcedureCode ::= 19
+id-downlinkPowerControl ProcedureCode ::= 20
+id-downlinkPowerTimeslotControl ProcedureCode ::= 38
+id-errorIndicationForCommon ProcedureCode ::= 35
+id-errorIndicationForDedicated ProcedureCode ::= 21
+id-informationExchangeFailure ProcedureCode ::= 40
+id-informationExchangeInitiation ProcedureCode ::= 41
+id-informationExchangeTermination ProcedureCode ::= 42
+id-informationReporting ProcedureCode ::= 43
+id-BearerRearrangement ProcedureCode ::= 50
+id-physicalSharedChannelReconfiguration ProcedureCode ::= 37
+id-privateMessageForCommon ProcedureCode ::= 36
+id-privateMessageForDedicated ProcedureCode ::= 22
+id-radioLinkAddition ProcedureCode ::= 23
+id-radioLinkDeletion ProcedureCode ::= 24
+id-radioLinkFailure ProcedureCode ::= 25
+id-radioLinkPreemption ProcedureCode ::= 39
+id-radioLinkRestoration ProcedureCode ::= 26
+id-radioLinkSetup ProcedureCode ::= 27
+id-reset ProcedureCode ::= 13
+id-resourceStatusIndication ProcedureCode ::= 28
+id-cellSynchronisationAdjustment ProcedureCode ::= 44
+id-synchronisedRadioLinkReconfigurationCancellation ProcedureCode ::= 29
+id-synchronisedRadioLinkReconfigurationCommit ProcedureCode ::= 30
+id-synchronisedRadioLinkReconfigurationPreparation ProcedureCode ::= 31
+id-systemInformationUpdate ProcedureCode ::= 32
+id-unblockResource ProcedureCode ::= 33
+id-unSynchronisedRadioLinkReconfiguration ProcedureCode ::= 34
+id-radioLinkActivation ProcedureCode ::= 51
+id-radioLinkParameterUpdate ProcedureCode ::= 52
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCodes INTEGER ::= 10
+maxNrOfDLTSs INTEGER ::= 15
+maxNrOfDLTSLCRs INTEGER ::= 6
+maxNrOfErrors INTEGER ::= 256
+maxNrOfTFs INTEGER ::= 32
+maxNrOfTFCs INTEGER ::= 1024
+maxNrOfRLs INTEGER ::= 16
+maxNrOfRLs-1 INTEGER ::= 15 -- maxNrOfRLs - 1
+maxNrOfRLs-2 INTEGER ::= 14 -- maxNrOfRLs - 2
+maxNrOfRLSets INTEGER ::= maxNrOfRLs
+maxNrOfDPCHs INTEGER ::= 240
+maxNrOfDPCHLCRs INTEGER ::= 240
+maxNrOfSCCPCHs INTEGER ::= 8
+maxNrOfCPCHs INTEGER ::= 16
+maxNrOfPCPCHs INTEGER ::= 64
+maxNrOfDCHs INTEGER ::= 128
+maxNrOfDSCHs INTEGER ::= 32
+maxNrOfFACHs INTEGER ::= 8
+maxNrOfCCTrCHs INTEGER ::= 16
+maxNrOfPDSCHs INTEGER ::= 256
+maxNrOfHSPDSCHs INTEGER ::= 16
+maxNrOfPUSCHs INTEGER ::= 256
+maxNrOfPDSCHSets INTEGER ::= 256
+maxNrOfPRACHLCRs INTEGER ::= 8
+maxNrOfPUSCHSets INTEGER ::= 256
+maxNrOfSCCPCHLCRs INTEGER ::= 8
+maxNrOfULTSs INTEGER ::= 15
+maxNrOfULTSLCRs INTEGER ::= 6
+maxNrOfUSCHs INTEGER ::= 32
+maxAPSigNum INTEGER ::= 16
+maxNrOfSlotFormatsPRACH INTEGER ::= 8
+maxCellinNodeB INTEGER ::= 256
+maxCCPinNodeB INTEGER ::= 256
+maxCPCHCell INTEGER ::= maxNrOfCPCHs
+maxCTFC INTEGER ::= 16777215
+maxLocalCellinNodeB INTEGER ::= maxCellinNodeB
+maxNoofLen INTEGER ::= 7
+maxFPACHCell INTEGER ::= 8
+maxRACHCell INTEGER ::= maxPRACHCell
+maxPRACHCell INTEGER ::= 16
+maxPCPCHCell INTEGER ::= 64
+maxSCCPCHCell INTEGER ::= 32
+maxSCPICHCell INTEGER ::= 32
+maxTTI-count INTEGER ::= 4
+maxIBSEG INTEGER ::= 16
+maxIB INTEGER ::= 64
+maxFACHCell INTEGER ::= 256 -- maxNrOfFACHs * maxSCCPCHCell
+maxRateMatching INTEGER ::= 256
+maxCodeNrComp-1 INTEGER ::= 256
+maxHS-PDSCHCodeNrComp-1 INTEGER ::= 15
+maxHS-SCCHCodeNrComp-1 INTEGER ::= 127
+maxNrOfCellSyncBursts INTEGER ::= 10
+maxNrOfCodeGroups INTEGER ::= 256
+maxNrOfReceptsPerSyncFrame INTEGER ::= 16
+maxNrOfMeasNCell INTEGER ::= 96
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell - 1
+maxNrOfTFCIGroups INTEGER ::= 256
+maxNrOfTFCI1Combs INTEGER ::= 512
+maxNrOfTFCI2Combs INTEGER ::= 1024
+maxNrOfTFCI2Combs-1 INTEGER ::= 1023
+maxNrOfSF INTEGER ::= 8
+maxTGPS INTEGER ::= 6
+maxCommunicationContext INTEGER ::= 1048575
+maxNrOfLevels INTEGER ::= 256
+maxNoSat INTEGER ::= 16
+maxNoGPSItems INTEGER ::= 8
+maxNrOfHSSCCHs INTEGER ::= 32
+maxNrOfHSSICHs INTEGER ::= 4
+maxNrOfSyncFramesLCR INTEGER ::= 512
+maxNrOfReceptionsperSyncFrameLCR INTEGER ::= 8
+maxNrOfSyncDLCodesLCR INTEGER ::= 32
+maxNrOfHSSCCHCodes INTEGER ::= 4
+maxNrOfMACdFlows INTEGER ::= 8
+maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows - 1
+maxNrOfMACdPDUIndexes INTEGER ::= 8
+maxNrOfMACdPDUIndexes-1 INTEGER ::= 7 -- maxNoOfMACdPDUIndexes - 1
+maxNrOfPriorityQueues INTEGER ::= 8
+maxNrOfPriorityQueues-1 INTEGER ::= 7 -- maxNoOfPriorityQueues - 1
+maxNrOfHARQProcesses INTEGER ::= 8
+maxNrOfContextsOnUeList INTEGER ::= 16
+maxNrOfCellPortionsPerCell INTEGER ::= 64
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 63
+maxNrOfPriorityClasses INTEGER ::= 16
+maxNrOfSatAlmanac-maxNoSat INTEGER ::= 16 -- maxNrofSatAlmanac - maxNoSat
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AICH-Information ProtocolIE-ID ::= 0
+id-AICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 1
+id-BCH-Information ProtocolIE-ID ::= 7
+id-BCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 8
+id-BCCH-ModificationTime ProtocolIE-ID ::= 9
+id-BlockingPriorityIndicator ProtocolIE-ID ::= 10
+id-Cause ProtocolIE-ID ::= 13
+id-CCP-InformationItem-AuditRsp ProtocolIE-ID ::= 14
+id-CCP-InformationList-AuditRsp ProtocolIE-ID ::= 15
+id-CCP-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 16
+id-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 17
+id-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 18
+id-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 19
+id-CellParameterID ProtocolIE-ID ::= 23
+id-CFN ProtocolIE-ID ::= 24
+id-C-ID ProtocolIE-ID ::= 25
+id-CommonMeasurementAccuracy ProtocolIE-ID ::= 39
+id-CommonMeasurementObjectType-CM-Rprt ProtocolIE-ID ::= 31
+id-CommonMeasurementObjectType-CM-Rqst ProtocolIE-ID ::= 32
+id-CommonMeasurementObjectType-CM-Rsp ProtocolIE-ID ::= 33
+id-CommonMeasurementType ProtocolIE-ID ::= 34
+id-CommonPhysicalChannelID ProtocolIE-ID ::= 35
+id-CommonPhysicalChannelType-CTCH-SetupRqstFDD ProtocolIE-ID ::= 36
+id-CommonPhysicalChannelType-CTCH-SetupRqstTDD ProtocolIE-ID ::= 37
+id-CommunicationControlPortID ProtocolIE-ID ::= 40
+id-ConfigurationGenerationID ProtocolIE-ID ::= 43
+id-CRNC-CommunicationContextID ProtocolIE-ID ::= 44
+id-CriticalityDiagnostics ProtocolIE-ID ::= 45
+id-DCHs-to-Add-FDD ProtocolIE-ID ::= 48
+id-DCH-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 49
+id-DCHs-to-Add-TDD ProtocolIE-ID ::= 50
+id-DCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 52
+id-DCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 53
+id-DCH-DeleteList-RL-ReconfRqstFDD ProtocolIE-ID ::= 54
+id-DCH-DeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 55
+id-DCH-FDD-Information ProtocolIE-ID ::= 56
+id-DCH-TDD-Information ProtocolIE-ID ::= 57
+id-DCH-InformationResponse ProtocolIE-ID ::= 59
+id-FDD-DCHs-to-Modify ProtocolIE-ID ::= 62
+id-TDD-DCHs-to-Modify ProtocolIE-ID ::= 63
+id-DCH-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 65
+id-DCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 135
+id-DedicatedMeasurementObjectType-DM-Rprt ProtocolIE-ID ::= 67
+id-DedicatedMeasurementObjectType-DM-Rqst ProtocolIE-ID ::= 68
+id-DedicatedMeasurementObjectType-DM-Rsp ProtocolIE-ID ::= 69
+id-DedicatedMeasurementType ProtocolIE-ID ::= 70
+id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 72
+id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 73
+id-DL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 76
+id-DL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 77
+id-DL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 79
+id-DL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 81
+id-DL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 82
+id-DL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 83
+id-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 21
+id-DL-ReferencePowerInformationItem-DL-PC-Rqst ProtocolIE-ID ::= 84
+id-DLReferencePower ProtocolIE-ID ::= 85
+id-DLReferencePowerList-DL-PC-Rqst ProtocolIE-ID ::= 86
+id-DSCH-AddItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 87
+id-DSCHs-to-Add-FDD ProtocolIE-ID ::= 89
+id-DSCH-DeleteItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 91
+id-DSCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 93
+id-DSCHs-to-Add-TDD ProtocolIE-ID ::= 96
+id-DSCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 98
+id-DSCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 100
+id-DSCH-InformationResponse ProtocolIE-ID ::= 105
+id-DSCH-FDD-Information ProtocolIE-ID ::= 106
+id-DSCH-TDD-Information ProtocolIE-ID ::= 107
+id-DSCH-ModifyItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 108
+id-DSCH-ModifyList-RL-ReconfPrepFDD ProtocolIE-ID ::= 112
+id-DSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 136
+id-End-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 113
+id-FACH-Information ProtocolIE-ID ::= 116
+id-FACH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 117
+id-FACH-ParametersList-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 120
+id-FACH-ParametersListIE-CTCH-SetupRqstFDD ProtocolIE-ID ::= 121
+id-FACH-ParametersListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 122
+id-IndicationType-ResourceStatusInd ProtocolIE-ID ::= 123
+id-Local-Cell-ID ProtocolIE-ID ::= 124
+id-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 2
+id-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 3
+id-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 4
+id-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 5
+id-Local-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 125
+id-Local-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 126
+id-Local-Cell-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 127
+id-Local-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 128
+id-AdjustmentPeriod ProtocolIE-ID ::= 129
+id-MaxAdjustmentStep ProtocolIE-ID ::= 130
+id-MaximumTransmissionPower ProtocolIE-ID ::= 131
+id-MeasurementFilterCoefficient ProtocolIE-ID ::= 132
+id-MeasurementID ProtocolIE-ID ::= 133
+id-MessageStructure ProtocolIE-ID ::= 115
+id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ProtocolIE-ID ::= 134
+id-NodeB-CommunicationContextID ProtocolIE-ID ::= 143
+id-NeighbouringCellMeasurementInformation ProtocolIE-ID ::= 455
+id-P-CCPCH-Information ProtocolIE-ID ::= 144
+id-P-CCPCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 145
+id-P-CPICH-Information ProtocolIE-ID ::= 146
+id-P-CPICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 147
+id-P-SCH-Information ProtocolIE-ID ::= 148
+id-PCCPCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 150
+id-PCCPCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 151
+id-PCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 155
+id-PCH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 156
+id-PCH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 157
+id-PCH-Information ProtocolIE-ID ::= 158
+id-PDSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 161
+id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 162
+id-PDSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 163
+id-PDSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 164
+id-PDSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 165
+id-PICH-Information ProtocolIE-ID ::= 166
+id-PICH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 168
+id-PowerAdjustmentType ProtocolIE-ID ::= 169
+id-PRACH-Information ProtocolIE-ID ::= 170
+id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 175
+id-PrimaryCCPCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 176
+id-PrimaryCPICH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 177
+id-PrimaryCPICH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 178
+id-PrimarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 179
+id-PrimarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 180
+id-PrimaryScramblingCode ProtocolIE-ID ::= 181
+id-SCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 183
+id-SCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 184
+id-PUSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 185
+id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 186
+id-PUSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 187
+id-PUSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 188
+id-PUSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 189
+id-RACH-Information ProtocolIE-ID ::= 190
+id-RACH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 196
+id-RACH-ParameterItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 197
+id-ReportCharacteristics ProtocolIE-ID ::= 198
+id-Reporting-Object-RL-FailureInd ProtocolIE-ID ::= 199
+id-Reporting-Object-RL-RestoreInd ProtocolIE-ID ::= 200
+id-RL-InformationItem-DM-Rprt ProtocolIE-ID ::= 202
+id-RL-InformationItem-DM-Rqst ProtocolIE-ID ::= 203
+id-RL-InformationItem-DM-Rsp ProtocolIE-ID ::= 204
+id-RL-InformationItem-RL-AdditionRqstFDD ProtocolIE-ID ::= 205
+id-RL-informationItem-RL-DeletionRqst ProtocolIE-ID ::= 206
+id-RL-InformationItem-RL-FailureInd ProtocolIE-ID ::= 207
+id-RL-InformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 286
+id-RL-InformationItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 208
+id-RL-InformationItem-RL-ReconfRqstFDD ProtocolIE-ID ::= 209
+id-RL-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 210
+id-RL-InformationItem-RL-SetupRqstFDD ProtocolIE-ID ::= 211
+id-RL-InformationList-RL-AdditionRqstFDD ProtocolIE-ID ::= 212
+id-RL-informationList-RL-DeletionRqst ProtocolIE-ID ::= 213
+id-RL-InformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 237
+id-RL-InformationList-RL-ReconfPrepFDD ProtocolIE-ID ::= 214
+id-RL-InformationList-RL-ReconfRqstFDD ProtocolIE-ID ::= 215
+id-RL-InformationList-RL-SetupRqstFDD ProtocolIE-ID ::= 216
+id-RL-InformationResponseItem-RL-AdditionRspFDD ProtocolIE-ID ::= 217
+id-RL-InformationResponseItem-RL-ReconfReady ProtocolIE-ID ::= 218
+id-RL-InformationResponseItem-RL-ReconfRsp ProtocolIE-ID ::= 219
+id-RL-InformationResponseItem-RL-SetupRspFDD ProtocolIE-ID ::= 220
+id-RL-InformationResponseList-RL-AdditionRspFDD ProtocolIE-ID ::= 221
+id-RL-InformationResponseList-RL-ReconfReady ProtocolIE-ID ::= 222
+id-RL-InformationResponseList-RL-ReconfRsp ProtocolIE-ID ::= 223
+id-RL-InformationResponseList-RL-SetupRspFDD ProtocolIE-ID ::= 224
+id-RL-InformationResponse-RL-AdditionRspTDD ProtocolIE-ID ::= 225
+id-RL-InformationResponse-RL-SetupRspTDD ProtocolIE-ID ::= 226
+id-RL-Information-RL-AdditionRqstTDD ProtocolIE-ID ::= 227
+id-RL-Information-RL-ReconfRqstTDD ProtocolIE-ID ::= 228
+id-RL-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 229
+id-RL-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 230
+id-RL-ReconfigurationFailureItem-RL-ReconfFailure ProtocolIE-ID ::= 236
+id-RL-Set-InformationItem-DM-Rprt ProtocolIE-ID ::= 238
+id-RL-Set-InformationItem-DM-Rsp ProtocolIE-ID ::= 240
+id-RL-Set-InformationItem-RL-FailureInd ProtocolIE-ID ::= 241
+id-RL-Set-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 242
+id-S-CCPCH-Information ProtocolIE-ID ::= 247
+id-S-CPICH-Information ProtocolIE-ID ::= 249
+id-SCH-Information ProtocolIE-ID ::= 251
+id-S-SCH-Information ProtocolIE-ID ::= 253
+id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 257
+id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 258
+id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 259
+id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ProtocolIE-ID ::= 260
+id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ProtocolIE-ID ::= 261
+id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ProtocolIE-ID ::= 262
+id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD ProtocolIE-ID ::= 263
+id-SecondarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 264
+id-SecondarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 265
+id-SegmentInformationListIE-SystemInfoUpdate ProtocolIE-ID ::= 266
+id-SFN ProtocolIE-ID ::= 268
+id-SignallingBearerRequestIndicator ProtocolIE-ID ::= 138
+id-ShutdownTimer ProtocolIE-ID ::= 269
+id-Start-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 114
+id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 270
+id-Successful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 271
+id-SyncCase ProtocolIE-ID ::= 274
+id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ProtocolIE-ID ::= 275
+id-T-Cell ProtocolIE-ID ::= 276
+id-TargetCommunicationControlPortID ProtocolIE-ID ::= 139
+id-TimeSlotConfigurationList-Cell-ReconfRqstTDD ProtocolIE-ID ::= 277
+id-TimeSlotConfigurationList-Cell-SetupRqstTDD ProtocolIE-ID ::= 278
+id-TransmissionDiversityApplied ProtocolIE-ID ::= 279
+id-TypeOfError ProtocolIE-ID ::= 508
+id-UARFCNforNt ProtocolIE-ID ::= 280
+id-UARFCNforNd ProtocolIE-ID ::= 281
+id-UARFCNforNu ProtocolIE-ID ::= 282
+id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 284
+id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 285
+id-UL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 288
+id-UL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 289
+id-UL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 291
+id-UL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 293
+id-UL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 294
+id-UL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 295
+id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 296
+id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 297
+id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ProtocolIE-ID ::= 300
+id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ProtocolIE-ID ::= 301
+id-USCH-Information-Add ProtocolIE-ID ::= 302
+id-USCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 304
+id-USCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 306
+id-USCH-InformationResponse ProtocolIE-ID ::= 309
+id-USCH-Information ProtocolIE-ID ::= 310
+id-USCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 141
+id-Active-Pattern-Sequence-Information ProtocolIE-ID ::= 315
+id-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 316
+id-AdjustmentRatio ProtocolIE-ID ::= 317
+id-AP-AICH-Information ProtocolIE-ID ::= 320
+id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 322
+id-FACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 323
+id-CauseLevel-PSCH-ReconfFailure ProtocolIE-ID ::= 324
+id-CauseLevel-RL-AdditionFailureFDD ProtocolIE-ID ::= 325
+id-CauseLevel-RL-AdditionFailureTDD ProtocolIE-ID ::= 326
+id-CauseLevel-RL-ReconfFailure ProtocolIE-ID ::= 327
+id-CauseLevel-RL-SetupFailureFDD ProtocolIE-ID ::= 328
+id-CauseLevel-RL-SetupFailureTDD ProtocolIE-ID ::= 329
+id-CDCA-ICH-Information ProtocolIE-ID ::= 330
+id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 332
+id-Closed-Loop-Timing-Adjustment-Mode ProtocolIE-ID ::= 333
+id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 334
+id-Compressed-Mode-Deactivation-Flag ProtocolIE-ID ::= 335
+id-CPCH-Information ProtocolIE-ID ::= 336
+id-CPCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 342
+id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 343
+id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 346
+id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 347
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 348
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 349
+id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 350
+id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 351
+id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 352
+id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 353
+id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 355
+id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 356
+id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 357
+id-DL-TPC-Pattern01Count ProtocolIE-ID ::= 358
+id-DPC-Mode ProtocolIE-ID ::= 450
+id-DPCHConstant ProtocolIE-ID ::= 359
+id-DSCH-FDD-Common-Information ProtocolIE-ID ::= 94
+id-EnhancedDSCHPC ProtocolIE-ID ::= 110
+id-EnhancedDSCHPCIndicator ProtocolIE-ID ::= 111
+id-FACH-ParametersList-CTCH-SetupRsp ProtocolIE-ID ::= 362
+id-Limited-power-increase-information-Cell-SetupRqstFDD ProtocolIE-ID ::= 369
+id-PCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 374
+id-PCH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 375
+id-PCPCH-Information ProtocolIE-ID ::= 376
+id-PICH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 380
+id-PRACHConstant ProtocolIE-ID ::= 381
+id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 383
+id-PUSCHConstant ProtocolIE-ID ::= 384
+id-RACH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 385
+id-SSDT-CellIDforEDSCHPC ProtocolIE-ID ::= 443
+id-Synchronisation-Configuration-Cell-ReconfRqst ProtocolIE-ID ::= 393
+id-Synchronisation-Configuration-Cell-SetupRqst ProtocolIE-ID ::= 394
+id-Transmission-Gap-Pattern-Sequence-Information ProtocolIE-ID ::= 395
+id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 396
+id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 397
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 398
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 399
+id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 400
+id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 401
+id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 402
+id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 403
+id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 405
+id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 406
+id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 407
+id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 408
+id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 409
+id-CommunicationContextInfoItem-Reset ProtocolIE-ID ::= 412
+id-CommunicationControlPortInfoItem-Reset ProtocolIE-ID ::= 414
+id-ResetIndicator ProtocolIE-ID ::= 416
+id-TFCI2-Bearer-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 417
+id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ProtocolIE-ID ::= 418
+id-TFCI2-BearerInformationResponse ProtocolIE-ID ::= 419
+id-TFCI2BearerRequestIndicator ProtocolIE-ID ::= 142
+id-TimingAdvanceApplied ProtocolIE-ID ::= 287
+id-CFNReportingIndicator ProtocolIE-ID ::= 6
+id-SFNReportingIndicator ProtocolIE-ID ::= 11
+id-InnerLoopDLPCStatus ProtocolIE-ID ::= 12
+id-TimeslotISCPInfo ProtocolIE-ID ::= 283
+id-PICH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 167
+id-PRACH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 20
+id-CCTrCH-InformationItem-RL-FailureInd ProtocolIE-ID ::= 46
+id-CCTrCH-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 47
+id-CauseLevel-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 420
+id-CellAdjustmentInfo-SyncAdjustmntRqstTDD ProtocolIE-ID ::= 421
+id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ProtocolIE-ID ::= 494
+id-CellSyncBurstInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 482
+id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 422
+id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 423
+id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 424
+id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 425
+id-CellSyncBurstTransInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 426
+id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 427
+id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ProtocolIE-ID ::= 428
+id-CellSyncInfo-CellSyncReprtTDD ProtocolIE-ID ::= 429
+id-CSBTransmissionID ProtocolIE-ID ::= 430
+id-CSBMeasurementID ProtocolIE-ID ::= 431
+id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 432
+id-NCyclesPerSFNperiod ProtocolIE-ID ::= 433
+id-NRepetitionsPerCyclePeriod ProtocolIE-ID ::= 434
+id-SyncFrameNumber ProtocolIE-ID ::= 437
+id-SynchronisationReportType ProtocolIE-ID ::= 438
+id-SynchronisationReportCharacteristics ProtocolIE-ID ::= 439
+id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 440
+id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 119
+id-ReferenceClockAvailability ProtocolIE-ID ::= 435
+id-ReferenceSFNoffset ProtocolIE-ID ::= 436
+id-InformationExchangeID ProtocolIE-ID ::= 444
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID ::= 445
+id-InformationType ProtocolIE-ID ::= 446
+id-InformationReportCharacteristics ProtocolIE-ID ::= 447
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID ::= 448
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID ::= 449
+id-IPDLParameter-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 451
+id-IPDLParameter-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 452
+id-IPDLParameter-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 453
+id-IPDLParameter-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 454
+id-DL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 74
+id-DwPCH-LCR-Information ProtocolIE-ID ::= 78
+id-DwPCH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 90
+id-DwPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 97
+id-DwPCH-LCR-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 99
+id-DwPCH-LCR-Information-ResourceStatusInd ProtocolIE-ID ::= 101
+id-maxFACH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 154
+id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 174
+id-FPACH-LCR-Information ProtocolIE-ID ::= 290
+id-FPACH-LCR-Information-AuditRsp ProtocolIE-ID ::= 292
+id-FPACH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 22
+id-FPACH-LCR-InformationList-ResourceStatusInd ProtocolIE-ID ::= 311
+id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 312
+id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 314
+id-PCCPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 456
+id-PCH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 457
+id-PCH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 458
+id-PICH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 459
+id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 461
+id-RL-InformationResponse-LCR-RL-SetupRspTDD ProtocolIE-ID ::= 463
+id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 465
+id-TimeSlot ProtocolIE-ID ::= 495
+id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 466
+id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 467
+id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD ProtocolIE-ID ::= 468
+id-TimeSlotLCR-CM-Rqst ProtocolIE-ID ::= 469
+id-UL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 470
+id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 472
+id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 473
+id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 474
+id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 475
+id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 477
+id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 479
+id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD ProtocolIE-ID ::= 480
+id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 481
+id-UL-DPCH-LCR-InformationModify-AddList ProtocolIE-ID ::= 483
+id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 485
+id-UL-SIRTarget ProtocolIE-ID ::= 510
+id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 486
+id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 487
+id-PDSCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 26
+id-PDSCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 27
+id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 488
+id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 489
+id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 490
+id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 491
+id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 492
+id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 493
+id-timeslotInfo-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 496
+id-SyncReportType-CellSyncReprtTDD ProtocolIE-ID ::= 497
+id-Power-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 498
+id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 499
+id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 500
+id-Power-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 501
+id-Power-Local-Cell-Group-InformationList-ResourceStatusInd ProtocolIE-ID ::= 502
+id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd ProtocolIE-ID ::= 503
+id-Power-Local-Cell-Group-ID ProtocolIE-ID ::= 504
+id-PUSCH-Info-DM-Rqst ProtocolIE-ID ::= 505
+id-PUSCH-Info-DM-Rsp ProtocolIE-ID ::= 506
+id-PUSCH-Info-DM-Rprt ProtocolIE-ID ::= 507
+id-InitDL-Power ProtocolIE-ID ::= 509
+id-cellSyncBurstRepetitionPeriod ProtocolIE-ID ::= 511
+id-ReportCharacteristicsType-OnModification ProtocolIE-ID ::= 512
+id-SFNSFNMeasurementValueInformation ProtocolIE-ID ::= 513
+id-SFNSFNMeasurementThresholdInformation ProtocolIE-ID ::= 514
+id-TUTRANGPSMeasurementValueInformation ProtocolIE-ID ::= 515
+id-TUTRANGPSMeasurementThresholdInformation ProtocolIE-ID ::= 516
+id-Rx-Timing-Deviation-Value-LCR ProtocolIE-ID ::= 520
+id-RL-InformationResponse-LCR-RL-AdditionRspTDD ProtocolIE-ID ::= 51
+id-DL-PowerBalancing-Information ProtocolIE-ID ::= 28
+id-DL-PowerBalancing-ActivationIndicator ProtocolIE-ID ::= 29
+id-DL-PowerBalancing-UpdatedIndicator ProtocolIE-ID ::= 30
+id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 517
+id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 518
+id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD ProtocolIE-ID ::= 519
+id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 41
+id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 42
+id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst ProtocolIE-ID ::= 522
+id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst ProtocolIE-ID ::= 523
+id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 524
+id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 525
+id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 526
+id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 527
+id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 528
+id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 529
+id-bindingID ProtocolIE-ID ::= 102
+id-RL-Specific-DCH-Info ProtocolIE-ID ::= 103
+id-transportlayeraddress ProtocolIE-ID ::= 104
+id-DelayedActivation ProtocolIE-ID ::= 231
+id-DelayedActivationList-RL-ActivationCmdFDD ProtocolIE-ID ::= 232
+id-DelayedActivationInformation-RL-ActivationCmdFDD ProtocolIE-ID ::= 233
+id-DelayedActivationList-RL-ActivationCmdTDD ProtocolIE-ID ::= 234
+id-DelayedActivationInformation-RL-ActivationCmdTDD ProtocolIE-ID ::= 235
+id-neighbouringTDDCellMeasurementInformationLCR ProtocolIE-ID ::= 58
+id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 543
+id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 544
+id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 545
+id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 546
+id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 547
+id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ProtocolIE-ID ::= 548
+id-SyncDLCodeIdThreInfoLCR ProtocolIE-ID ::= 549
+id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD ProtocolIE-ID ::= 550
+id-DwPCH-Power ProtocolIE-ID ::= 551
+id-AccumulatedClockupdate-CellSyncReprtTDD ProtocolIE-ID ::= 552
+id-Angle-Of-Arrival-Value-LCR ProtocolIE-ID ::= 521
+id-HSDSCH-FDD-Information ProtocolIE-ID ::= 530
+id-HSDSCH-FDD-Information-Response ProtocolIE-ID ::= 531
+id-HSDSCH-Information-to-Modify ProtocolIE-ID ::= 534
+id-HSDSCH-RNTI ProtocolIE-ID ::= 535
+id-HSDSCH-TDD-Information ProtocolIE-ID ::= 536
+id-HSDSCH-TDD-Information-Response ProtocolIE-ID ::= 537
+id-HSPDSCH-RL-ID ProtocolIE-ID ::= 541
+id-PrimCCPCH-RSCP-DL-PC-RqstTDD ProtocolIE-ID ::= 542
+id-Qth-Parameter ProtocolIE-ID ::= 64
+id-PDSCH-RL-ID ProtocolIE-ID ::= 66
+id-HSDSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 553
+id-UL-Synchronisation-Parameters-LCR ProtocolIE-ID ::= 554
+id-HSDSCH-FDD-Update-Information ProtocolIE-ID ::= 555
+id-HSDSCH-TDD-Update-Information ProtocolIE-ID ::= 556
+id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 558
+id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 559
+id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD ProtocolIE-ID ::= 560
+id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 561
+id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD ProtocolIE-ID ::= 562
+id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 563
+id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 564
+id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 565
+id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 566
+id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 567
+id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 568
+id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 569
+id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 570
+id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 571
+id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 572
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 573
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 574
+id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 575
+id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 576
+id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 577
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 578
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 579
+id-Initial-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 580
+id-Maximum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 581
+id-Minimum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 582
+id-HS-DSCHProvidedBitRate ProtocolIE-ID ::= 583
+id-HS-DSCHRequiredPower ProtocolIE-ID ::= 585
+id-HS-DSCHRequiredPowerValue ProtocolIE-ID ::= 586
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission ProtocolIE-ID ::= 587
+id-HS-SICH-Reception-Quality ProtocolIE-ID ::= 588
+id-HS-SICH-Reception-Quality-Measurement-Value ProtocolIE-ID ::= 589
+id-HSSICH-Info-DM-Rprt ProtocolIE-ID ::= 590
+id-HSSICH-Info-DM-Rqst ProtocolIE-ID ::= 591
+id-HSSICH-Info-DM-Rsp ProtocolIE-ID ::= 592
+id-Best-Cell-Portions-Value ProtocolIE-ID ::= 593
+id-Primary-CPICH-Usage-for-Channel-Estimation ProtocolIE-ID ::= 594
+id-Secondary-CPICH-Information-Change ProtocolIE-ID ::= 595
+id-NumberOfReportedCellPortions ProtocolIE-ID ::= 596
+id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD ProtocolIE-ID ::= 599
+id-Unidirectional-DCH-Indicator ProtocolIE-ID ::= 602
+id-TimingAdjustmentValueLCR ProtocolIE-ID ::= 603
+id-multipleRL-dl-DPCH-InformationList ProtocolIE-ID ::= 604
+id-multipleRL-dl-DPCH-InformationModifyList ProtocolIE-ID ::= 605
+id-multipleRL-ul-DPCH-InformationList ProtocolIE-ID ::= 606
+id-multipleRL-ul-DPCH-InformationModifyList ProtocolIE-ID ::= 607
+id-RL-ID ProtocolIE-ID ::= 608
+id-SAT-Info-Almanac-ExtItem ProtocolIE-ID ::= 609
+id-HSDPA-Capability ProtocolIE-ID ::= 610
+id-HSDSCH-Resources-Information-AuditRsp ProtocolIE-ID ::= 611
+id-HSDSCH-Resources-Information-ResourceStatusInd ProtocolIE-ID ::= 612
+id-HSDSCH-MACdFlows-to-Add ProtocolIE-ID ::= 613
+id-HSDSCH-MACdFlows-to-Delete ProtocolIE-ID ::= 614
+id-HSDSCH-Information-to-Modify-Unsynchronised ProtocolIE-ID ::= 615
+id-TnlQos ProtocolIE-ID ::= 616
+id-PrimaryCCPCH-RSCP-Delta ProtocolIE-ID ::= 623
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Containers.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Containers.asn
new file mode 100755
index 0000000000..fb08451103
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-Containers.asn
@@ -0,0 +1,197 @@
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+NBAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxProtocolExtensions,
+ maxPrivateIEs,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+NBAP-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 {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {NBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality NBAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value NBAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality NBAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue NBAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality NBAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue NBAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality NBAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue NBAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {NBAP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {NBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PRIVATE-IES.&id
+ ({IEsSetParam}),
+ criticality NBAP-PRIVATE-IES.&criticality
+ ({IEsSetParam}{@id}),
+ value NBAP-PRIVATE-IES.&Value
+ ({IEsSetParam}{@id})
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-IEs.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-IEs.asn
new file mode 100755
index 0000000000..848d8f6099
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-IEs.asn
@@ -0,0 +1,4127 @@
+--******************************************************************************
+--
+-- Information Element Definitions
+--
+--******************************************************************************
+
+NBAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ maxNrOfRLs,
+ maxNrOfTFCs,
+ maxNrOfErrors,
+ maxCTFC,
+ maxNrOfTFs,
+ maxTTI-count,
+ maxRateMatching,
+ maxCodeNrComp-1,
+ maxHS-PDSCHCodeNrComp-1,
+ maxHS-SCCHCodeNrComp-1,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodeGroups,
+ maxNrOfMeasNCell,
+ maxNrOfMeasNCell-1,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfTFCIGroups,
+ maxNrOfTFCI1Combs,
+ maxNrOfTFCI2Combs,
+ maxNrOfTFCI2Combs-1,
+ maxNrOfSF,
+ maxTGPS,
+ maxNrOfUSCHs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfCodes,
+ maxNrOfDSCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDCHs,
+ maxNrOfLevels,
+ maxNoGPSItems,
+ maxNoSat,
+ maxNrOfCellPortionsPerCell,
+ maxNrOfCellPortionsPerCell-1,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSCCHCodes,
+ maxNrOfMACdFlows,
+ maxNrOfMACdFlows-1,
+ maxNrOfMACdPDUIndexes,
+ maxNrOfMACdPDUIndexes-1,
+ maxNrOfPriorityQueues,
+ maxNrOfPriorityQueues-1,
+ maxNrOfHARQProcesses,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfSyncFramesLCR,
+ maxNrOfContextsOnUeList,
+ maxNrOfPriorityClasses,
+ maxNrOfSatAlmanac-maxNoSat,
+
+ id-MessageStructure,
+ id-ReportCharacteristicsType-OnModification,
+ id-Rx-Timing-Deviation-Value-LCR,
+ id-SFNSFNMeasurementValueInformation,
+ id-SFNSFNMeasurementThresholdInformation,
+ id-TUTRANGPSMeasurementValueInformation,
+ id-TUTRANGPSMeasurementThresholdInformation,
+ id-TypeOfError,
+ id-transportlayeraddress,
+ id-bindingID,
+ id-Angle-Of-Arrival-Value-LCR,
+ id-SyncDLCodeIdThreInfoLCR,
+ id-neighbouringTDDCellMeasurementInformationLCR,
+ id-HS-SICH-Reception-Quality,
+ id-HS-SICH-Reception-Quality-Measurement-Value,
+ id-Initial-DL-Power-TimeslotLCR-InformationItem,
+ id-Maximum-DL-Power-TimeslotLCR-InformationItem,
+ id-Minimum-DL-Power-TimeslotLCR-InformationItem,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ id-HS-DSCHRequiredPower,
+ id-HS-DSCHProvidedBitRate,
+ id-HS-DSCHRequiredPowerValue,
+ id-Best-Cell-Portions-Value,
+ id-Unidirectional-DCH-Indicator,
+ id-SAT-Info-Almanac-ExtItem,
+ id-TnlQos
+FROM NBAP-Constants
+
+ Criticality,
+ ProcedureID,
+ ProtocolIE-ID,
+ TransactionID,
+ TriggeringMessage
+FROM NBAP-CommonDataTypes
+
+ NBAP-PROTOCOL-IES,
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers;
+
+-- ==========================================
+-- A
+-- ==========================================
+
+AckNack-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+Ack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+Acknowledged-PCPCH-access-preambles ::= INTEGER (0..15,...)
+-- According to mapping in [22].
+
+Acknowledged-PRACH-preambles-Value ::= INTEGER(0..240,...)
+-- According to mapping in [22].
+
+AddorDeleteIndicator ::= ENUMERATED {
+ add,
+ delete
+}
+
+Active-Pattern-Sequence-Information ::= SEQUENCE {
+ cMConfigurationChangeCFN CFN,
+ transmission-Gap-Pattern-Sequence-Status Transmission-Gap-Pattern-Sequence-Status-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Active-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Active-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List ::= SEQUENCE (SIZE (0..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGPRC TGPRC,
+ tGCFN CFN,
+ iE-Extensions ProtocolExtensionContainer { { Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-Power ::= INTEGER (-22..5)
+-- Offset in dB.
+
+AICH-TransmissionTiming ::= ENUMERATED {
+ v0,
+ v1
+}
+
+AllocationRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationRetentionPriority-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Angle-Of-Arrival-Value-LCR ::= SEQUENCE {
+ aOA-LCR AOA-LCR,
+ aOA-LCR-Accuracy-Class AOA-LCR-Accuracy-Class,
+ iE-Extensions ProtocolExtensionContainer { {Angle-Of-Arrival-Value-LCR-ExtIEs} } OPTIONAL,
+...
+}
+
+Angle-Of-Arrival-Value-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AOA-LCR ::= INTEGER (0..719)
+-- Angle Of Arrival for 1.28Mcps TDD
+
+AOA-LCR-Accuracy-Class ::= ENUMERATED {a,b,c,d,e,f,g,h,...}
+
+APPreambleSignature ::= INTEGER (0..15)
+
+APSubChannelNumber ::= INTEGER (0..11)
+
+AvailabilityStatus ::= ENUMERATED {
+ empty,
+ in-test,
+ failed,
+ power-off,
+ off-line,
+ off-duty,
+ dependency,
+ degraded,
+ not-installed,
+ log-full,
+ ...
+}
+
+-- ==========================================
+-- B
+-- ==========================================
+
+BCCH-ModificationTime ::= INTEGER (0..511)
+-- Time = BCCH-ModificationTime * 8
+-- Range 0 to 4088, step 8
+-- All SFN values in which MIB may be mapped are allowed
+
+Best-Cell-Portions-Value::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Best-Cell-Portions-Item
+
+Best-Cell-Portions-Item ::= SEQUENCE {
+ cellPortionID CellPortionID,
+ sIRValue SIR-Value,
+ iE-Extensions ProtocolExtensionContainer { { Best-Cell-Portions-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Best-Cell-Portions-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BindingID ::= OCTET STRING (SIZE (1..4, ...))
+-- If the Binding ID includes a UDP port, the UDP port is included in octet 1 and 2.The first octet of
+-- the UDP port field is included in the first octet of the Binding ID.
+
+BetaCD ::= INTEGER (0..15)
+
+BlockingPriorityIndicator ::= ENUMERATED {
+ high,
+ normal,
+ low,
+ ...
+}
+-- High priority: Block resource immediately.
+-- Normal priority: Block resource when idle or upon timer expiry.
+-- Low priority: Block resource when idle.
+
+SCTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+-- ==========================================
+-- C
+-- ==========================================
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ oam-intervention,
+ not-enough-user-plane-processing-resources,
+ 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,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unknown-C-ID,
+ cell-not-available,
+ power-level-not-supported,
+ dl-radio-resources-not-available,
+ ul-radio-resources-not-available,
+ rl-already-ActivatedOrAllocated,
+ nodeB-Resources-unavailable,
+ measurement-not-supported-for-the-object,
+ combining-resources-not-available,
+ requested-configuration-not-supported,
+ synchronisation-failure,
+ priority-transport-channel-established,
+ sIB-Origination-in-Node-B-not-Supported,
+ requested-tx-diversity-mode-not-supported,
+ unspecified,
+ bCCH-scheduling-error,
+ measurement-temporarily-not-available,
+ invalid-CM-settings,
+ reconfiguration-CFN-not-elapsed,
+ number-of-DL-codes-not-supported,
+ s-cipch-not-supported,
+ combining-not-supported,
+ ul-sf-not-supported,
+ dl-SF-not-supported,
+ common-transport-channel-type-not-supported,
+ dedicated-transport-channel-type-not-supported,
+ downlink-shared-channel-type-not-supported,
+ uplink-shared-channel-type-not-supported,
+ cm-not-supported,
+ tx-diversity-no-longer-supported,
+ unknown-Local-Cell-ID,
+ ...,
+ number-of-UL-codes-not-supported,
+ information-temporarily-not-available,
+ information-provision-not-supported-for-the-object,
+ cell-synchronisation-not-supported,
+ cell-synchronisation-adjustment-not-supported,
+ dpc-mode-change-not-supported,
+ iPDL-already-activated,
+ iPDL-not-supported,
+ iPDL-parameters-not-available,
+ frequency-acquisition-not-supported,
+ power-balancing-status-not-compatible,
+ requested-typeofbearer-re-arrangement-not-supported,
+ signalling-Bearer-Re-arrangement-not-supported,
+ bearer-Re-arrangement-needed,
+ delayed-activation-not-supported,
+ rl-timing-adjustment-not-supported
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CCTrCH-ID ::= INTEGER (0..15)
+
+CDSubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+CellParameterID ::= INTEGER (0..127,...)
+
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+CellSyncBurstCode ::= INTEGER(0..7, ...)
+
+CellSyncBurstCodeShift ::= INTEGER(0..7)
+
+CellSyncBurstRepetitionPeriod ::= INTEGER (0..4095)
+
+CellSyncBurstSIR ::= INTEGER (0..31)
+
+CellSyncBurstTiming ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+CellSyncBurstTimingLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+CellSyncBurstTimingThreshold ::= INTEGER(0..254)
+
+CFN ::= INTEGER (0..255)
+
+Channel-Assignment-Indication ::= ENUMERATED {
+ cA-Active,
+ cA-Inactive
+}
+
+ChipOffset ::= INTEGER (0..38399)
+-- Unit Chip
+
+C-ID ::= INTEGER (0..65535)
+
+Closedlooptimingadjustmentmode ::= ENUMERATED {
+ adj-1-slot,
+ adj-2-slot,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw ::= SEQUENCE (SIZE(1..maxNrOfSF)) OF
+ SEQUENCE {
+ dl-Cost INTEGER (0..65535),
+ ul-Cost INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { CommonChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementAccuracy ::= CHOICE {
+ tUTRANGPSMeasurementAccuracyClass TUTRANGPSAccuracyClass,
+ ...
+}
+
+CommonMeasurementType ::= ENUMERATED {
+ received-total-wide-band-power,
+ transmitted-carrier-power,
+ acknowledged-prach-preambles,
+ ul-timeslot-iscp,
+ acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles,
+ ...,
+ uTRAN-GPS-Timing-of-Cell-Frames-for-UE-Positioning,
+ sFN-SFN-Observed-Time-Difference,
+ transmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ hS-DSCH-Required-Power,
+ hS-DSCH-Provided-Bit-Rate
+}
+
+CommonMeasurementValue ::= CHOICE {
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-CommonMeasurementValue Extension-CommonMeasurementValue
+}
+
+Extension-CommonMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementValueIE }}
+
+Extension-CommonMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementValueInformation CRITICALITY ignore TYPE TUTRANGPSMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementValueInformation CRITICALITY ignore TYPE SFNSFNMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPower CRITICALITY ignore TYPE HS-DSCHRequiredPower PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRate CRITICALITY ignore TYPE HS-DSCHProvidedBitRate PRESENCE mandatory }
+}
+
+CommonMeasurementValueInformation ::= CHOICE {
+ measurementAvailable CommonMeasurementAvailable,
+ measurementnotAvailable CommonMeasurementnotAvailable
+}
+
+CommonMeasurementAvailable::= SEQUENCE {
+ commonmeasurementValue CommonMeasurementValue,
+ ie-Extensions ProtocolExtensionContainer { { CommonMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CommonMeasurementnotAvailable ::= NULL
+
+CommonPhysicalChannelID ::= INTEGER (0..255)
+
+Common-PhysicalChannel-Status-Information ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-PhysicalChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-PhysicalChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelID ::= INTEGER (0..255)
+
+CommonTransportChannel-InformationResponse ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonTransportChannel-InformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonTransportChannel-InformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-TransportChannel-Status-Information ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-TransportChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-TransportChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortID ::= INTEGER (0..65535)
+
+Compressed-Mode-Deactivation-Flag::= ENUMERATED {
+ deactivate,
+ maintain-Active
+}
+
+ConfigurationGenerationID ::= INTEGER (0..255)
+-- Value '0' means "No configuration"
+
+ConstantValue ::= INTEGER (-10..10,...)
+-- -10 dB - +10 dB
+-- unit dB
+-- step 1 dB
+
+CPCH-Allowed-Total-Rate ::= ENUMERATED {
+ v15,
+ v30,
+ v60,
+ v120,
+ v240,
+ v480,
+ v960,
+ v1920,
+ v2880,
+ v3840,
+ v4800,
+ v5760,
+ ...
+}
+
+CPCHScramblingCodeNumber ::= INTEGER (0..79)
+
+CPCH-UL-DPCCH-SlotFormat ::= INTEGER (0..2,...)
+
+CQI-Feedback-Cycle ::= ENUMERATED {v0, v2, v4, v8, v10, v20, v40, v80, v160,...}
+
+CQI-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+CQI-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureID ProcedureID OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ transactionID TransactionID OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+CRNC-CommunicationContextID ::= INTEGER (0..1048575)
+
+CSBMeasurementID ::= INTEGER (0..65535)
+
+CSBTransmissionID ::= INTEGER (0..65535)
+
+-- ==========================================
+-- D
+-- ==========================================
+
+DATA-ID ::= INTEGER (0..3)
+
+DCH-ID ::= INTEGER (0..255)
+
+DCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-FDD-InformationItem
+
+DCH-FDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-FDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+DCH-Specific-FDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-FDD-Item
+
+DCH-Specific-FDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-FDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-FDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+DCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-InformationResponseItem
+
+DCH-InformationResponseItem ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-TDD-InformationItem
+
+DCH-TDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-TDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-Specific-TDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-TDD-Item
+
+DCH-Specific-TDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID,
+ dl-CCTrCH-ID CCTrCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector OPTIONAL,
+ -- This IE shall be present if DCH is part of set of Coordinated DCHs
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-TDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-TDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+FDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF FDD-DCHs-to-ModifyItem
+
+FDD-DCHs-to-ModifyItem ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-FDD,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-FDD::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-FDD
+
+DCH-ModifySpecificItem-FDD::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-FDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-FDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifyItem-TDD
+
+DCH-ModifyItem-TDD ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-TDD,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-TDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-TDD
+
+DCH-ModifySpecificItem-TDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ dl-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-TDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-TDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw ::= SEQUENCE ( SIZE(1..maxNrOfSF) ) OF
+ SEQUENCE {
+ dl-Cost-1 INTEGER (0..65535),
+ dl-Cost-2 INTEGER (0..65535),
+ ul-Cost-1 INTEGER (0..65535),
+ ul-Cost-2 INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { DedicatedChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementType ::= ENUMERATED {
+ sir,
+ sir-error,
+ transmitted-code-power,
+ rscp,
+ rx-timing-deviation,
+ round-trip-time,
+ ...,
+ rx-timing-deviation-LCR,
+ angle-Of-Arrival-LCR,
+ hs-sich-quality,
+ best-Cell-Portions
+
+}
+
+DedicatedMeasurementValue ::= CHOICE {
+ sIR-Value SIR-Value,
+ sIR-ErrorValue SIR-Error-Value,
+ transmittedCodePowerValue Transmitted-Code-Power-Value,
+ rSCP RSCP-Value,
+ rxTimingDeviationValue Rx-Timing-Deviation-Value,
+ roundTripTime Round-Trip-Time-Value,
+ ...,
+ extension-DedicatedMeasurementValue Extension-DedicatedMeasurementValue
+}
+
+Extension-DedicatedMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-DedicatedMeasurementValueIE }}
+
+Extension-DedicatedMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory }|
+ { ID id-Angle-Of-Arrival-Value-LCR CRITICALITY reject TYPE Angle-Of-Arrival-Value-LCR PRESENCE mandatory }|
+ { ID id-HS-SICH-Reception-Quality CRITICALITY reject TYPE HS-SICH-Reception-Quality-Value PRESENCE mandatory }|
+ { ID id-Best-Cell-Portions-Value CRITICALITY reject TYPE Best-Cell-Portions-Value PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementValueInformation ::= CHOICE {
+ measurementAvailable DedicatedMeasurementAvailable,
+ measurementnotAvailable DedicatedMeasurementnotAvailable
+}
+
+DedicatedMeasurementAvailable::= SEQUENCE {
+ dedicatedmeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DedicatedMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementnotAvailable ::= NULL
+
+DelayedActivation ::= CHOICE {
+ cfn CFN,
+ separate-indication NULL
+}
+
+DelayedActivationUpdate ::= CHOICE {
+ activate Activate-Info,
+ deactivate Deactivate-Info
+}
+
+Activate-Info ::= SEQUENCE {
+ activation-type Execution-Type,
+ initial-dl-tx-power DL-Power,
+ firstRLS-Indicator FirstRLS-Indicator OPTIONAL, --FDD Only
+ propagation-delay PropagationDelay OPTIONAL, --FDD Only
+ iE-Extensions ProtocolExtensionContainer { { Activate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Activate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Deactivate-Info ::= SEQUENCE {
+ deactivation-type Execution-Type,
+ iE-Extensions ProtocolExtensionContainer { { Deactivate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Deactivate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Execution-Type ::= CHOICE {
+ synchronised CFN,
+ unsynchronised NULL
+}
+
+Detected-PCPCH-access-preambles ::= INTEGER (0..240,...)
+-- According to mapping in [22].
+
+DeltaSIR ::= INTEGER (0..30)
+-- Unit dB, Step 0.1 dB, Range 0..3 dB.
+
+DGPSCorrections ::= SEQUENCE {
+ gpstow GPSTOW,
+ status-health GPS-Status-Health,
+ satelliteinfo SAT-Info-DGPSCorrections,
+ ie-Extensions ProtocolExtensionContainer { { DGPSCorrections-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSCorrections-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGPSThresholds ::= SEQUENCE {
+ prcdeviation PRCDeviation,
+ ie-Extensions ProtocolExtensionContainer { { DGPSThresholds-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSThresholds-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiscardTimer ::= ENUMERATED {v20,v40,v60,v80,v100,v120,v140,v160,v180,v200,v250,v300,v400,v500,v750,v1000,v1250,v1500,v1750,v2000,v2500,v3000,v3500,v4000,v4500,v5000,v7500,
+ ...
+}
+
+DiversityControlField ::= ENUMERATED {
+ may,
+ must,
+ must-not,
+ ...
+}
+
+DiversityMode ::= ENUMERATED {
+ none,
+ sTTD,
+ closed-loop-mode1,
+ closed-loop-mode2,
+ ...
+}
+
+DL-DPCH-SlotFormat ::= INTEGER (0..16,...)
+
+DL-DPCH-TimingAdjustment ::= ENUMERATED {
+ timing-advance,
+ timing-delay
+}
+
+DL-Timeslot-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationItem
+
+DL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-Information TDD-DL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-TimeslotLCR-InformationItem
+
+DL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-LCR-Information TDD-DL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Initial-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Maximum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+DL-FrameType ::= ENUMERATED {
+ typeA,
+ typeB,
+ ...
+}
+
+DL-or-Global-CapacityCredit ::= INTEGER (0..65535)
+
+DL-Power ::= INTEGER (-350..150)
+-- Value = DL-Power/10
+-- Unit dB, Range -35dB .. +15dB, Step +0.1dB
+
+DLPowerAveragingWindowSize ::= INTEGER (1..60)
+
+DL-PowerBalancing-Information ::= SEQUENCE {
+ powerAdjustmentType PowerAdjustmentType,
+ dLReferencePower DL-Power OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common'
+ dLReferencePowerList-DL-PC-Rqst DL-ReferencePowerInformationList OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Individual'
+ maxAdjustmentStep MaxAdjustmentStep OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentPeriod AdjustmentPeriod OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentRatio ScaledAdjustmentRatio OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ iE-Extensions ProtocolExtensionContainer { { DL-PowerBalancing-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-PowerBalancing-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF DL-ReferencePowerInformationItem
+
+DL-ReferencePowerInformationItem ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-Reference-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { {DL-ReferencePowerInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PowerBalancing-ActivationIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Activated
+}
+
+DL-PowerBalancing-UpdatedIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Updated
+}
+
+DL-ScramblingCode ::= INTEGER (0..15)
+-- 0= Primary scrambling code of the cell, 1..15= Secondary scrambling code --
+
+DL-TimeslotISCP ::= INTEGER (0..91)
+
+DL-TimeslotISCPInfo ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-TimeslotISCPInfoItem
+
+DL-TimeslotISCPInfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotISCPInfoLCR ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-TimeslotISCPInfoItemLCR
+
+DL-TimeslotISCPInfoItemLCR ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItemLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TPC-Pattern01Count ::= INTEGER (0..30,...)
+
+Downlink-Compressed-Mode-Method ::= ENUMERATED {
+ puncturing,
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+DPC-Mode ::= ENUMERATED {
+ mode0,
+ mode1,
+ ...
+}
+
+DPCH-ID ::= INTEGER (0..239)
+
+DSCH-ID ::= INTEGER (0..255)
+
+DSCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-InformationResponseItem
+
+DSCH-InformationResponseItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-InformationResponseItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DSCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Common-Information ::= SEQUENCE {
+ enhancedDSCHPCIndicator EnhancedDSCHPCIndicator OPTIONAL,
+ enhancedDSCHPC EnhancedDSCHPC OPTIONAL,
+ -- The IE shall be present if the Enhanced DSCH PC Indicator IE is set to "Enhanced DSCH PC Active in the UE".
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-Common-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-Common-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-FDD-InformationItem
+
+DSCH-FDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-TDD-InformationItem
+
+DSCH-TDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DsField ::= BIT STRING (SIZE (8))
+
+DwPCH-Power ::= INTEGER (-150..400,...)
+-- DwPCH-power = power * 10
+-- If power <= -15 DwPCH shall be set to -150
+-- If power >= 40 DwPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+
+-- ==========================================
+-- E
+-- ==========================================
+
+End-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ end-of-audit-sequence,
+ not-end-of-audit-sequence
+}
+
+EnhancedDSCHPC ::= SEQUENCE {
+ enhancedDSCHPCWnd EnhancedDSCHPCWnd,
+ enhancedDSCHPCCounter EnhancedDSCHPCCounter,
+ enhancedDSCHPowerOffset EnhancedDSCHPowerOffset,
+ ...
+}
+
+EnhancedDSCHPCCounter ::= INTEGER (1..50)
+
+EnhancedDSCHPCIndicator ::= ENUMERATED {
+ enhancedDSCHPCActiveInTheUE,
+ enhancedDSCHPCNotActiveInTheUE
+}
+
+EnhancedDSCHPCWnd ::= INTEGER (1..10)
+
+EnhancedDSCHPowerOffset ::= INTEGER (-15..0)
+
+-- ==========================================
+-- F
+-- ==========================================
+
+FDD-DL-ChannelisationCodeNumber ::= INTEGER(0.. 511)
+-- According to the mapping in [9]. The maximum value is equal to the DL spreading factor -1--
+
+FDD-DL-CodeInformation ::= SEQUENCE (SIZE (1..maxNrOfCodes)) OF FDD-DL-CodeInformationItem
+
+FDD-DL-CodeInformationItem ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ transmissionGapPatternSequenceCodeInformation TransmissionGapPatternSequenceCodeInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DL-CodeInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DL-CodeInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-S-CCPCH-Offset ::= INTEGER (0..149)
+-- 0: 0 chip, 1: 256 chip, 2: 512 chip, .. ,149: 38144 chip [7] --
+
+FDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size0-5,
+ step-size1,
+ step-size1-5,
+ step-size2,
+ ...
+}
+
+FirstRLS-Indicator ::= ENUMERATED {
+ first-RLS,
+ not-first-RLS,
+ ...
+}
+
+FNReportingIndicator ::= ENUMERATED {
+ fN-reporting-required,
+ fN-reporting-not-required
+}
+
+FrameHandlingPriority ::= INTEGER (0..15)
+-- 0=lowest priority, 15=highest priority --
+
+FrameAdjustmentValue ::= INTEGER(0..4095)
+
+FrameOffset ::= INTEGER (0..255)
+
+FPACH-Power ::= INTEGER (-150..400,...) -- FPACH-power = power * 10
+-- If power <= -15 FPACH shall be set to -150
+-- If power >= 40 FPACH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+-- ==========================================
+-- G
+-- ==========================================
+
+GapLength ::= INTEGER (1..14)
+-- Unit slot
+
+GapDuration ::= INTEGER (1..144,...)
+-- Unit frame
+
+GenericTrafficCategory ::= BIT STRING (SIZE (8))
+
+GPS-Almanac ::= SEQUENCE {
+ wna-alm BIT STRING (SIZE (8)),
+ sat-info-almanac SAT-Info-Almanac,
+ sVGlobalHealth-alm BIT STRING (SIZE (364)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GPS-Almanac-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Almanac-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SAT-Info-Almanac-ExtItem CRITICALITY ignore EXTENSION SAT-Info-Almanac-ExtList PRESENCE optional},
+ ...
+}
+
+GPS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (8)),
+ alpha-one-ionos BIT STRING (SIZE (8)),
+ alpha-two-ionos BIT STRING (SIZE (8)),
+ alpha-three-ionos BIT STRING (SIZE (8)),
+ beta-zero-ionos BIT STRING (SIZE (8)),
+ beta-one-ionos BIT STRING (SIZE (8)),
+ beta-two-ionos BIT STRING (SIZE (8)),
+ beta-three-ionos BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-Ionospheric-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Ionospheric-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Information ::= SEQUENCE (SIZE (0..maxNoGPSItems)) OF GPS-Information-Item
+-- This IE shall be present if the Information Type Item IE indicates 'GPS Information'
+
+GPS-Information-Item ::= ENUMERATED {
+ gps-navigation-model-and-time-recovery,
+ gps-ionospheric-model,
+ gps-utc-model,
+ gps-almanac,
+ gps-rt-integrity,
+ ...
+}
+
+GPS-RealTime-Integrity ::= CHOICE {
+ bad-satellites GPSBadSat-Info-RealTime-Integrity,
+ no-bad-satellites NULL
+}
+
+GPSBadSat-Info-RealTime-Integrity ::= SEQUENCE {
+ sat-info SATInfo-RealTime-Integrity,
+ ie-Extensions ProtocolExtensionContainer { { GPSBadSat-Info-RealTime-Integrity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPSBadSat-Info-RealTime-Integrity-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-NavigationModel-and-TimeRecovery ::= SEQUENCE (SIZE (1..maxNoSat)) OF GPS-NavandRecovery-Item
+
+GPS-NavandRecovery-Item ::= SEQUENCE {
+ tx-tow-nav INTEGER (0..1048575),
+ sat-id-nav SAT-ID,
+ tlm-message-nav BIT STRING (SIZE (14)),
+ tlm-revd-c-nav BIT STRING (SIZE (2)),
+ ho-word-nav BIT STRING (SIZE (22)),
+ w-n-nav BIT STRING (SIZE (10)),
+ ca-or-p-on-l2-nav BIT STRING (SIZE (2)),
+ user-range-accuracy-index-nav BIT STRING (SIZE (4)),
+ sv-health-nav BIT STRING (SIZE (6)),
+ iodc-nav BIT STRING (SIZE (10)),
+ l2-p-dataflag-nav BIT STRING (SIZE (1)),
+ sf1-reserved-nav BIT STRING (SIZE (87)),
+ t-gd-nav BIT STRING (SIZE (8)),
+ t-oc-nav BIT STRING (SIZE (16)),
+ a-f-2-nav BIT STRING (SIZE (8)),
+ a-f-1-nav BIT STRING (SIZE (16)),
+ a-f-zero-nav BIT STRING (SIZE (22)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ gps-e-nav BIT STRING (SIZE (32)),
+ c-us-nav BIT STRING (SIZE (16)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ t-oe-nav BIT STRING (SIZE (16)),
+ fit-interval-flag-nav BIT STRING (SIZE (1)),
+ aodo-nav BIT STRING (SIZE (5)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-is-nav BIT STRING (SIZE (16)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ gps-omega-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ idot-nav BIT STRING (SIZE (14)),
+ spare-zero-fill BIT STRING (SIZE (20)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-NavandRecovery-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-NavandRecovery-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GPS-RX-POS ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { { GPS-RX-POS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-RX-POS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Status-Health ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GPSTOW ::= INTEGER (0..604799)
+
+GPS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ delta-t-ls-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ w-n-lsf-utc BIT STRING (SIZE (8)),
+ dn-utc BIT STRING (SIZE (8)),
+ delta-t-lsf-utc BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-UTC-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-UTC-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- H
+-- ==========================================
+
+
+HARQ-MemoryPartitioning ::= CHOICE {
+ implicit HARQ-MemoryPartitioning-Implicit,
+ explicit HARQ-MemoryPartitioning-Explicit,
+ ...
+ }
+
+HARQ-MemoryPartitioning-Implicit ::= SEQUENCE {
+ number-of-Processes INTEGER (1..8,...),
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Implicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Implicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit ::= SEQUENCE {
+ hARQ-MemoryPartitioningList HARQ-MemoryPartitioningList,
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Explicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioningList ::= SEQUENCE (SIZE (1..maxNrOfHARQProcesses)) OF HARQ-MemoryPartitioningItem
+
+HARQ-MemoryPartitioningItem ::= SEQUENCE {
+ process-Memory-Size ENUMERATED {
+ hms800, hms1600, hms2400, hms3200, hms4000,
+ hms4800, hms5600, hms6400, hms7200, hms8000,
+ hms8800, hms9600, hms10400, hms11200, hms12000,
+ hms12800, hms13600, hms14400, hms15200, hms16000,
+ hms17600, hms19200, hms20800, hms22400, hms24000,
+ hms25600, hms27200, hms28800, hms30400, hms32000,
+ hms36000, hms40000, hms44000, hms48000, hms52000,
+ hms56000, hms60000, hms64000, hms68000, hms72000,
+ hms76000, hms80000, hms88000, hms96000, hms104000,
+ hms112000, hms120000, hms128000, hms136000, hms144000,
+ hms152000, hms160000, hms176000, hms192000, hms208000,
+ hms224000, hms240000, hms256000, hms272000, hms288000,
+ hms304000,...},
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioningItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioningItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDPA-Capability ::= ENUMERATED {hsdpa-capable, hsdpa-non-capable}
+
+HS-DSCHProvidedBitRate ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHProvidedBitRate-Item
+
+HS-DSCHProvidedBitRate-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHProvidedBitRateValue HS-DSCHProvidedBitRateValue,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHProvidedBitRate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHProvidedBitRate-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHProvidedBitRateValue ::= INTEGER(0..16777215,...)
+-- Unit bit/s, Range 0..2^24-1, Step 1 bit
+
+
+HS-DSCHRequiredPower ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHRequiredPower-Item
+
+HS-DSCHRequiredPower-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHRequiredPowerValue HS-DSCHRequiredPowerValue,
+ hS-DSCHRequiredPowerPerUEInformation HS-DSCHRequiredPowerPerUEInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPower-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPower-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerValue ::= INTEGER(0..1000)
+-- Unit %, Range 0 ..1000, Step 0.1%
+
+HS-DSCHRequiredPowerPerUEInformation ::= SEQUENCE (SIZE (1.. maxNrOfContextsOnUeList)) OF HS-DSCHRequiredPowerPerUEInformation-Item
+
+
+HS-DSCHRequiredPowerPerUEInformation-Item ::= SEQUENCE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ hS-DSCHRequiredPowerPerUEWeight HS-DSCHRequiredPowerPerUEWeight OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEWeight ::= INTEGER(0..100)
+-- Unit %, Range 0 ..100, Step 1%
+
+
+HSDSCH-FDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ cqiFeedback-CycleK CQI-Feedback-Cycle,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ -- This IE shall be present if the CQI Feedback Cycle k is greater than 0
+ ackNackRepetitionFactor AckNack-RepetitionFactor,
+ cqiPowerOffset CQI-Power-Offset,
+ ackPowerOffset Ack-Power-Offset,
+ nackPowerOffset Nack-Power-Offset,
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ tDD-AckNack-Power-Offset TDD-AckNack-Power-Offset,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HSDSCH-Information-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModify PriorityQueue-InfoList-to-Modify OPTIONAL,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL, -- For FDD only
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL, -- For FDD only
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL, -- For FDD only
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL, -- For FDD only
+ hSSCCHCodeChangeGrant HSSCCH-Code-Change-Grant OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem-to-Modify
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModifyUnsynchronised PriorityQueue-InfoList-to-Modify-Unsynchronised OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-FDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseFDD HSSCCH-Specific-InformationRespListFDD OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseTDD HSSCCH-Specific-InformationRespListTDD OPTIONAL, -- Not Applicable to 1.28Mcps TDD
+ hsSCCH-Specific-Information-ResponseTDDLCR HSSCCH-Specific-InformationRespListTDDLCR OPTIONAL, -- Not Applicable to 3.84Mcps TDD
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InformationResp-Item
+
+HSDSCH-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ hsDSCHMacdFlow-Id HSDSCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-Information ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-Info HSDSCH-MACdFlow-Specific-InfoList,
+ priorityQueue-Info PriorityQueue-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem
+
+HSDSCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlows-to-Delete-Item
+
+HSDSCH-MACdFlows-to-Delete-Item ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-to-Delete-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-PowerOffset ::= INTEGER (0..255)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+HSDSCH-Initial-Capacity-Allocation::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF HSDSCH-Initial-Capacity-AllocationItem
+
+HSDSCH-Initial-Capacity-AllocationItem ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ maximum-MACdPDU-Size MACdPDU-Size,
+ hSDSCH-InitialWindowSize HSDSCH-InitialWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Initial-Capacity-AllocationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Initial-Capacity-AllocationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-d PDUs.
+
+HSSCCH-Specific-InformationRespListFDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Codes
+
+HSSCCH-Codes ::= SEQUENCE {
+ codeNumber INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDD
+
+HSSCCH-Specific-InformationRespItemTDD ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-Info HSSICH-Info,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDDLCR
+
+HSSCCH-Specific-InformationRespItemTDDLCR ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-InfoLCR HSSICH-InfoLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-Info ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-InfoLCR ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Reception-Quality-Value ::= SEQUENCE {
+ failed-HS-SICH HS-SICH-failed,
+ missed-HS-SICH HS-SICH-missed,
+ total-HS-SICH HS-SICH-total,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Reception-Quality-Value-ExtIEs} } OPTIONAL,
+...
+}
+
+HS-SICH-Reception-Quality-Value-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-failed ::= INTEGER (0..20)
+
+HS-SICH-missed ::= INTEGER (0..20)
+
+HS-SICH-total ::= INTEGER (0..20)
+
+HS-SICH-Reception-Quality-Measurement-Value ::= INTEGER (0..20)
+-- According to mapping in [23]
+
+HSDSCH-MACdFlow-ID ::= INTEGER (0..maxNrOfMACdFlows-1)
+
+HSDSCH-RNTI ::= INTEGER (0..65535)
+
+HS-PDSCH-FDD-Code-Information ::= SEQUENCE {
+ number-of-HS-PDSCH-codes INTEGER (0..maxHS-PDSCHCodeNrComp-1),
+ hS-PDSCH-Start-code-number HS-PDSCH-Start-code-number OPTIONAL,
+-- Only included when number of HS-DSCH codes > 0
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-FDD-Code-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-PDSCH-FDD-Code-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-Start-code-number ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+
+HS-SCCH-ID ::= INTEGER (0..31)
+HS-SICH-ID ::= INTEGER (0..31)
+
+HS-SCCH-FDD-Code-Information::= CHOICE {
+ replace HS-SCCH-FDD-Code-List,
+ remove NULL,
+ ...
+}
+
+HS-SCCH-FDD-Code-List ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-FDD-Code-Information-Item
+
+HS-SCCH-FDD-Code-Information-Item ::= INTEGER (0..maxHS-SCCHCodeNrComp-1)
+
+HSSCCH-CodeChangeIndicator ::= ENUMERATED {
+ hsSCCHCodeChangeNeeded
+}
+
+HSSCCH-Code-Change-Grant ::= ENUMERATED {
+ changeGranted
+}
+
+HSDSCH-FDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL,
+ ackPowerOffset Ack-Power-Offset OPTIONAL,
+ nackPowerOffset Nack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- I
+-- ==========================================
+
+IB-OC-ID ::= INTEGER (1..16)
+
+IB-SG-DATA ::= BIT STRING
+-- Contains SIB data fixed" or "SIB data variable" in segment as encoded in ref.[18].
+
+IB-SG-POS ::= INTEGER (0..4094)
+-- Only even positions allowed
+
+IB-SG-REP ::= ENUMERATED {rep4, rep8, rep16, rep32, rep64, rep128, rep256, rep512, rep1024, rep2048, rep4096}
+
+IB-Type ::= ENUMERATED {
+ mIB,
+ sB1,
+ sB2,
+ sIB1,
+ sIB2,
+ sIB3,
+ sIB4,
+ sIB5,
+ sIB6,
+ sIB7,
+ sIB8,
+ sIB9,
+ sIB10,
+ sIB11,
+ sIB12,
+ sIB13,
+ sIB13dot1,
+ sIB13dot2,
+ sIB13dot3,
+ sIB13dot4,
+ sIB14,
+ sIB15,
+ sIB15dot1,
+ sIB15dot2,
+ sIB15dot3,
+ sIB16,
+ ...,
+ sIB17,
+ sIB15dot4,
+ sIB18,
+ sIB15dot5
+}
+
+InformationReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic InformationReportCharacteristicsType-ReportPeriodicity,
+ onModification InformationReportCharacteristicsType-OnModification,
+ ...
+}
+
+InformationReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ min ReportPeriodicity-Scaledmin,
+ hours ReportPeriodicity-Scaledhour,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification ::= SEQUENCE {
+ information-thresholds InformationThresholds OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { InformationReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationThresholds ::= CHOICE {
+ dgps DGPSThresholds,
+ ...
+}
+
+InformationExchangeID ::= INTEGER (0..1048575)
+
+InformationType ::= SEQUENCE {
+ information-Type-Item Information-Type-Item,
+ gPSInformation GPS-Information OPTIONAL,
+ -- The IE shall be present if the Information Type Item IE indicates "GPS Information".
+ iE-Extensions ProtocolExtensionContainer { { Information-Type-ExtIEs} } OPTIONAL,
+...
+}
+
+Information-Type-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Information-Type-Item ::= ENUMERATED {
+ gpsinformation,
+ dgpscorrections,
+ gpsrxpos,
+ ...
+}
+
+InnerLoopDLPCStatus ::= ENUMERATED {
+ active,
+ inactive
+}
+
+IPDL-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+
+IPDL-FDD-Parameters ::= SEQUENCE {
+ iP-SpacingFDD ENUMERATED{sp5,sp7,sp10,sp15,sp20,sp30,sp40,sp50,...},
+ iP-Length ENUMERATED{len5, len10},
+ seed INTEGER(0..63),
+ burstModeParams BurstModeParams OPTIONAL,
+ iP-Offset INTEGER(0..9),
+ iE-Extensions ProtocolExtensionContainer { { IPDLFDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLFDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDL-TDD-Parameters ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Slot INTEGER(0..14),
+ iP-PCCPCH ENUMERATED{switchOff-1-Frame,switchOff-2-Frames},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDL-TDD-Parameters-LCR ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Sub ENUMERATED{first,second,both},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameterLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstModeParams ::= SEQUENCE {
+ burstStart INTEGER(0..15),
+ burstLength INTEGER(10..25),
+ burstFreq INTEGER(1..16),
+ ...
+}
+
+IPDLTDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLTDDParameterLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- J
+-- ==========================================
+
+-- ==========================================
+-- K
+-- ==========================================
+
+-- ==========================================
+-- L
+-- ==========================================
+
+LimitedPowerIncrease ::= ENUMERATED {
+ used,
+ not-used
+}
+
+Local-Cell-ID ::= INTEGER (0..268435455)
+
+-- ==========================================
+-- M
+-- ==========================================
+
+MACdPDU-Size ::= INTEGER (1..5000,...)
+
+MACdPDU-Size-Indexlist ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem
+
+MACdPDU-Size-IndexItem ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MACdPDU-Size-Indexlist-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem-to-Modify
+
+MACdPDU-Size-IndexItem-to-Modify ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MAChsGuaranteedBitRate ::= INTEGER (0..16777215,...)
+
+MAChsReorderingBufferSize-for-RLC-UM ::= INTEGER (0..300,...)
+-- Unit kBytes
+
+MAC-hsWindowSize ::= ENUMERATED {v4, v6, v8, v12, v16, v24, v32,...}
+
+MaximumDL-PowerCapability ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+Maximum-PDSCH-Power ::= SEQUENCE {
+ maximum-PDSCH-Power-SF4 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF8 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF16 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF32 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF64 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF128 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF256 DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Maximum-PDSCH-Power-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Maximum-PDSCH-Power-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MaximumTransmissionPower ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+MaxNrOfUL-DPDCHs ::= INTEGER (1..6)
+
+Max-Number-of-PCPCHes ::= INTEGER (1..64,...)
+
+MaxPRACH-MidambleShifts ::= ENUMERATED {
+ shift4,
+ shift8,
+ ...
+}
+
+MeasurementFilterCoefficient ::= ENUMERATED {k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k11, k13, k15, k17, k19,...}
+-- Measurement Filter Coefficient to be used for measurement
+
+MeasurementID ::= INTEGER (0..1048575)
+
+Measurement-Power-Offset ::= INTEGER(-12 .. 26)
+-- Actual value = IE value * 0.5
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MidambleConfigurationLCR ::= ENUMERATED {v2, v4, v6, v8, v10, v12, v14, v16, ...}
+
+MidambleConfigurationBurstType1And3 ::= ENUMERATED {v4, v8, v16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {v3, v6}
+
+MidambleShiftAndBurstType ::= CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftShort,
+ ...
+ },
+ ...
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+MidambleShiftLong ::= INTEGER (0..15)
+
+MidambleShiftShort ::= INTEGER (0..5)
+
+MidambleShiftLCR ::= SEQUENCE {
+ midambleAllocationMode MidambleAllocationMode,
+ midambleShift MidambleShiftLong OPTIONAL,
+ -- The IE shall be present if the Midamble Allocation Mode IE is set to "UE specific midamble".
+midambleConfigurationLCR MidambleConfigurationLCR,
+ iE-Extensions ProtocolExtensionContainer { {MidambleShiftLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MidambleAllocationMode ::= ENUMERATED {
+ defaultMidamble,
+ commonMidamble,
+ uESpecificMidamble,
+ ...
+ }
+
+MidambleShiftLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MinimumDL-PowerCapability ::= INTEGER(0..800)
+-- Unit dBm, Range -30dBm .. 50dBm, Step +0.1dB
+
+MinSpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ v512
+}
+-- TDD Mapping scheme for the minimum spreading factor 1 and 2: "256" means 1, "512" means 2
+
+ModifyPriorityQueue ::= CHOICE {
+ addPriorityQueue PriorityQueue-InfoItem-to-Add,
+ modifyPriorityQueue PriorityQueue-InfoItem-to-Modify,
+ deletePriorityQueue PriorityQueue-Id,
+ ...
+}
+
+Modulation ::= ENUMERATED {
+ qPSK,
+ eightPSK,
+ ...
+}
+
+MinUL-ChannelisationCodeLength ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+MultiplexingPosition ::= ENUMERATED {
+ fixed,
+ flexible
+}
+
+-- ==========================================
+-- N
+-- ==========================================
+
+Nack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+NCyclesPerSFNperiod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ ...,
+ v16,
+ v32,
+ v64
+}
+
+NEOT ::= INTEGER (0..8)
+
+NFmax ::= INTEGER (1..64,...)
+
+NRepetitionsPerCyclePeriod ::= INTEGER (2..10)
+
+N-INSYNC-IND ::= INTEGER (1..256)
+
+N-OUTSYNC-IND ::= INTEGER (1..256)
+
+NeighbouringCellMeasurementInformation ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ CHOICE {
+ neighbouringFDDCellMeasurementInformation NeighbouringFDDCellMeasurementInformation, -- FDD only
+ neighbouringTDDCellMeasurementInformation NeighbouringTDDCellMeasurementInformation,
+ -- Applicable to 3.84Mcps TDD only
+ ...,
+ extension-neighbouringCellMeasurementInformation Extension-neighbouringCellMeasurementInformation
+ }
+
+Extension-neighbouringCellMeasurementInformation ::= ProtocolIE-Single-Container {{ Extension-neighbouringCellMeasurementInformationIE }}
+
+Extension-neighbouringCellMeasurementInformationIE NBAP-PROTOCOL-IES ::= {
+ { ID id-neighbouringTDDCellMeasurementInformationLCR CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformationLCR PRESENCE mandatory }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringFDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCR ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NodeB-CommunicationContextID ::= INTEGER (0..1048575)
+
+NumberOfReportedCellPortions ::= INTEGER (1..maxNrOfCellPortionsPerCell,...)
+
+NStartMessage ::= INTEGER (1..8)
+
+NSubCyclesPerCyclePeriod ::= INTEGER (1..16,...)
+
+-- ==========================================
+-- O
+-- ==========================================
+
+-- ==========================================
+-- P
+-- ==========================================
+
+PagingIndicatorLength ::= ENUMERATED {
+ v2,
+ v4,
+ v8,
+ ...
+}
+
+PayloadCRC-PresenceIndicator ::= ENUMERATED {
+ cRC-Included,
+ cRC-NotIncluded,
+ ...
+}
+
+PCCPCH-Power ::= INTEGER (-150..400,...)
+-- PCCPCH-power = power * 10
+-- If power <= -15 PCCPCH shall be set to -150
+-- If power >= 40 PCCPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+PCP-Length ::= ENUMERATED{
+ v0,
+ v8
+}
+
+PDSCH-CodeMapping ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ signallingMethod CHOICE {
+ code-Range PDSCH-CodeMapping-PDSCH-CodeMappingInformationList,
+ tFCI-Range PDSCH-CodeMapping-DSCH-MappingInformationList,
+ explicit PDSCH-CodeMapping-PDSCH-CodeInformationList,
+ ...,
+ replace PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList
+ },
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-CodeNumberComp ::= INTEGER (0..maxCodeNrComp-1)
+
+PDSCH-CodeMapping-SpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfCodeGroups)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ start-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ stop-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value PDSCH-CodeMapping-MaxTFCI-Field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-MaxTFCI-Field2-Value ::= INTEGER (1..1023)
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ tfci-Field2 TFCS-MaxTFCI-field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Multi-CodeInfo ::= INTEGER (1..16)
+
+PDSCH-ID ::= INTEGER (0..255)
+
+PDSCHSet-ID ::= INTEGER (0..255)
+
+PICH-Mode ::= ENUMERATED {
+ v18,
+ v36,
+ v72,
+ v144,
+ ...
+}
+
+PICH-Power ::= INTEGER (-10..5)
+-- Unit dB, Range -10dB .. +5dB, Step +1dB
+
+PowerAdjustmentType ::= ENUMERATED {
+ none,
+ common,
+ individual
+}
+
+PowerOffset ::= INTEGER (0..24)
+-- PowerOffset = offset * 0.25
+-- Unit dB, Range 0dB .. +6dB, Step +0.25dB
+
+PowerRaiseLimit ::= INTEGER (0..10)
+
+PRACH-Midamble ::= ENUMERATED {
+ inverted,
+ direct,
+ ...
+}
+
+PRC ::= INTEGER (-2047..2047)
+--pseudo range correction; scaling factor 0.32 meters
+
+PRCDeviation ::= ENUMERATED {
+ one,
+ two,
+ five,
+ ten,
+ ...
+}
+
+PreambleSignatures ::= BIT STRING {
+ signature15(0),
+ signature14(1),
+ signature13(2),
+ signature12(3),
+ signature11(4),
+ signature10(5),
+ signature9(6),
+ signature8(7),
+ signature7(8),
+ signature6(9),
+ signature5(10),
+ signature4(11),
+ signature3(12),
+ signature2(13),
+ signature1(14),
+ signature0(15)
+ } (SIZE (16))
+
+PreambleThreshold ::= INTEGER (0..72)
+-- 0= -36.0dB, 1= -35.5dB, ... , 72= 0.0dB
+
+PredictedSFNSFNDeviationLimit ::=INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+PredictedTUTRANGPSDeviationLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PrimaryCPICH-Power ::= INTEGER(-100..500)
+-- step 0.1 (Range -10.0..50.0) Unit is dBm
+
+Primary-CPICH-Usage-for-Channel-Estimation ::= ENUMERATED {
+primary-CPICH-may-be-used,
+primary-CPICH-shall-not-be-used
+}
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+PriorityLevel ::= INTEGER (0..15)
+-- 0 = spare, 1 = highest priority, ...14 = lowest priority and 15 = no priority
+
+PriorityQueue-Id ::= INTEGER (0..maxNrOfPriorityQueues-1)
+
+PriorityQueue-InfoList ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem
+
+PriorityQueue-InfoItem ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF ModifyPriorityQueue
+
+PriorityQueue-InfoItem-to-Add ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Add-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Add-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ t1 T1 OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index-to-Modify MACdPDU-Size-Indexlist-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify-Unsynchronised ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem-to-Modify-Unsynchronised
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-RSCP ::= INTEGER (0..91)
+-- Mapping of non-negative values according to [23]
+
+PrimaryCCPCH-RSCP-Delta ::= INTEGER (-5..-1,...)
+-- Mapping of negative values according to [23]
+
+PropagationDelay ::= INTEGER (0..255)
+-- Unit: chips, step size 3 chips
+-- example: 0 = 0chip, 1 = 3chips
+
+SCH-TimeSlot ::= INTEGER (0..6)
+
+PunctureLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100%
+
+PUSCH-ID ::= INTEGER (0..255)
+
+PUSCHSet-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- Q
+-- ==========================================
+
+QE-Selector ::= ENUMERATED {
+ selected,
+ non-selected
+}
+
+Qth-Parameter ::= INTEGER (-20..0)
+-- Unit dB, Step 1dB
+
+-- ==========================================
+-- R
+-- ==========================================
+
+RACH-SlotFormat ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ ...
+}
+
+RACH-SubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+RL-Specific-DCH-Info ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF RL-Specific-DCH-Info-Item
+
+RL-Specific-DCH-Info-Item ::= SEQUENCE {
+ dCH-id DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportlayeraddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-DCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-DCH-Info-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Range-Correction-Rate ::= INTEGER (-127..127)
+-- scaling factor 0.032 m/s
+
+ReferenceClockAvailability ::= ENUMERATED {
+ available,
+ notAvailable
+}
+
+ReferenceSFNoffset ::= INTEGER (0..255)
+
+RepetitionLength ::= INTEGER (1..63)
+
+RepetitionPeriod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+RefTFCNumber ::= INTEGER (0..3)
+
+ReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic ReportCharacteristicsType-ReportPeriodicity,
+ event-a ReportCharacteristicsType-EventA,
+ event-b ReportCharacteristicsType-EventB,
+ event-c ReportCharacteristicsType-EventC,
+ event-d ReportCharacteristicsType-EventD,
+ event-e ReportCharacteristicsType-EventE,
+ event-f ReportCharacteristicsType-EventF,
+ ...,
+ extension-ReportCharacteristics Extension-ReportCharacteristics
+}
+
+Extension-ReportCharacteristics ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsIE }}
+
+Extension-ReportCharacteristicsIE NBAP-PROTOCOL-IES ::= {
+ { ID id-ReportCharacteristicsType-OnModification CRITICALITY reject TYPE ReportCharacteristicsType-OnModification PRESENCE mandatory }
+}
+
+ReportCharacteristicsType-EventA ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventA-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventA-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventB ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventB-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventB-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventC ::= SEQUENCE {
+ measurementIncreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventC-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventC-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventD ::= SEQUENCE {
+ measurementDecreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventE ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventE-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventE-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventF ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventF-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventF-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-OnModification ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value-IncrDecrThres,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value-IncrDecrThres,
+ sir SIR-Value-IncrDecrThres,
+ sir-error SIR-Error-Value-IncrDecrThres,
+ transmitted-code-power Transmitted-Code-Power-Value-IncrDecrThres,
+ rscp RSCP-Value-IncrDecrThres,
+ round-trip-time Round-Trip-Time-IncrDecrThres,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE NBAP-PROTOCOL-IES ::= {
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-MeasurementThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ sir SIR-Value,
+ sir-error SIR-Error-Value,
+ transmitted-code-power Transmitted-Code-Power-Value,
+ rscp RSCP-Value,
+ rx-timing-deviation Rx-Timing-Deviation-Value,
+ round-trip-time Round-Trip-Time-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementThreshold Extension-ReportCharacteristicsType-MeasurementThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementThresholdIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGPSMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementThresholdInformation CRITICALITY reject TYPE SFNSFNMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory}|
+ { ID id-HS-SICH-Reception-Quality-Measurement-Value CRITICALITY reject TYPE HS-SICH-Reception-Quality-Measurement-Value PRESENCE mandatory}|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}|
+ { ID id-HS-DSCHRequiredPowerValue CRITICALITY reject TYPE HS-DSCHRequiredPowerValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-ScaledMeasurementChangeTime ::= CHOICE {
+ msec MeasurementChangeTime-Scaledmsec,
+ ...
+}
+
+MeasurementChangeTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementChangeTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ScaledMeasurementHysteresisTime ::= CHOICE {
+ msec MeasurementHysteresisTime-Scaledmsec,
+ ...
+}
+
+MeasurementHysteresisTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementHysteresisTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ msec ReportPeriodicity-Scaledmsec,
+ min ReportPeriodicity-Scaledmin,
+ ...
+}
+
+ReportPeriodicity-Scaledmsec ::= INTEGER (1..6000,...)
+-- ReportPeriodicity-msec = ReportPeriodicity * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportPeriodicity-Scaledmin ::= INTEGER (1..60,...)
+-- Unit min, Range 1min .. 60min(hour), Step 1min
+
+ReportPeriodicity-Scaledhour ::= INTEGER (1..24,...)
+-- Unit hour, Range 1hour .. 24hours(day), Step 1hour
+
+ResourceOperationalState ::= ENUMERATED {
+ enabled,
+ disabled
+}
+
+RL-ID ::= INTEGER (0..31)
+
+RL-Set-ID ::= INTEGER (0..31)
+
+RLC-Mode ::= ENUMERATED {
+ rLC-AM,
+ rLC-UM,
+ ...
+}
+
+Round-Trip-Time-IncrDecrThres ::= INTEGER(0..32766)
+
+RNC-ID ::= INTEGER (0..4095)
+
+Round-Trip-Time-Value ::= INTEGER(0..32767)
+-- According to mapping in [22]
+
+RSCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+RSCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+Received-total-wide-band-power-Value ::= INTEGER(0..621)
+-- According to mapping in [22]/[23]
+
+Received-total-wide-band-power-Value-IncrDecrThres ::= INTEGER (0..620)
+
+RequestedDataValueInformation ::= CHOICE {
+ informationAvailable InformationAvailable,
+ informationnotAvailable InformationnotAvailable
+}
+
+InformationAvailable::= SEQUENCE {
+ requesteddataValue RequestedDataValue,
+ ie-Extensions ProtocolExtensionContainer { { InformationAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationnotAvailable ::= NULL
+
+RequestedDataValue ::= SEQUENCE {
+ dgps-corrections DGPSCorrections OPTIONAL,
+ gps-navandrecovery GPS-NavigationModel-and-TimeRecovery OPTIONAL,
+ gps-ionos-model GPS-Ionospheric-Model OPTIONAL,
+ gps-utc-model GPS-UTC-Model OPTIONAL,
+ gps-almanac GPS-Almanac OPTIONAL,
+ gps-rt-integrity GPS-RealTime-Integrity OPTIONAL,
+ gpsrxpos GPS-RX-POS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestedDataValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestedDataValue-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Rx-Timing-Deviation-Value ::= INTEGER (0..8191)
+-- According to mapping in [23]
+
+Rx-Timing-Deviation-Value-LCR ::= INTEGER (0..511)
+-- According to mapping in [23]
+
+-- ==========================================
+-- S
+-- ==========================================
+
+AdjustmentPeriod ::= INTEGER(1..256)
+-- Unit Frame
+
+SAT-ID ::= INTEGER (0..63)
+
+SAT-Info-Almanac ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-Almanac-Item
+
+SAT-Info-Almanac-Item ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-Item-ExtIEs} } OPTIONAL,
+ ...
+} -- This GPS-Almanac-Information is for the 1st 16 satellites
+
+SAT-Info-Almanac-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-Almanac-ExtList ::= SEQUENCE (SIZE (1..maxNrOfSatAlmanac-maxNoSat)) OF SAT-Info-Almanac-ExtItem
+
+SAT-Info-Almanac-ExtItem ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-ExtItemIEs } } OPTIONAL,
+ ...
+} -- Includes the GPS-Almanac-Information for 17th through 32nd satellites.
+
+SAT-Info-Almanac-ExtItemIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-DGPSCorrections ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-DGPSCorrections-Item
+
+SAT-Info-DGPSCorrections-Item ::= SEQUENCE {
+ sat-id SAT-ID,
+ iode-dgps BIT STRING (SIZE (8)),
+ udre UDRE,
+ prc PRC,
+ range-correction-rate Range-Correction-Rate,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-DGPSCorrections-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-DGPSCorrections-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SATInfo-RealTime-Integrity ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-RealTime-Integrity-Item
+
+SAT-Info-RealTime-Integrity-Item ::= SEQUENCE {
+ bad-sat-id SAT-ID,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-RealTime-Integrity-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-RealTime-Integrity-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScaledAdjustmentRatio ::= INTEGER(0..100)
+-- AdjustmentRatio = ScaledAdjustmentRatio / 100
+
+MaxAdjustmentStep ::= INTEGER(1..10)
+-- Unit Slot
+
+SchedulingPriorityIndicator ::= INTEGER (0..15) -- lowest (0), highest (15)
+
+SID ::= INTEGER (0..maxNrOfMACdPDUIndexes-1)
+
+ScramblingCodeNumber ::= INTEGER (0..15)
+
+Secondary-CPICH-Information-Change ::= CHOICE {
+ new-secondary-CPICH CommonPhysicalChannelID,
+ secondary-CPICH-shall-not-be-used NULL,
+...
+}
+
+SecondaryCCPCH-SlotFormat ::= INTEGER(0..17,...)
+
+Segment-Type ::= ENUMERATED {
+ first-segment,
+ first-segment-short,
+ subsequent-segment,
+ last-segment,
+ last-segment-short,
+ complete-SIB,
+ complete-SIB-short,
+ ...
+}
+
+S-FieldLength ::= ENUMERATED {
+ v1,
+ v2,
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+SFNSFN-FDD ::= INTEGER (0..614399)
+
+SFNSFN-TDD ::= INTEGER (0..40961)
+
+SFNSFNChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+SFNSFNDriftRate ::= INTEGER (-100..100)
+-- Unit chip/s, Step 1/256 chip/s, Range -100/256..+100/256 chip/s
+
+SFNSFNDriftRateQuality ::= INTEGER (0..100)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..100/256 chip/s
+
+SFNSFNMeasurementThresholdInformation::= SEQUENCE {
+ sFNSFNChangeLimit SFNSFNChangeLimit OPTIONAL,
+ predictedSFNSFNDeviationLimit PredictedSFNSFNDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNMeasurementValueInformation ::= SEQUENCE {
+ successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(1..maxNrOfMeasNCell)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ sFNSFNValue SFNSFNValue,
+ sFNSFNQuality SFNSFNQuality OPTIONAL,
+ sFNSFNDriftRate SFNSFNDriftRate,
+ sFNSFNDriftRateQuality SFNSFNDriftRateQuality OPTIONAL,
+ sFNSFNTimeStampInformation SFNSFNTimeStampInformation,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(0..maxNrOfMeasNCell-1)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ iE-Extensions ProtocolExtensionContainer { { UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+ShutdownTimer ::= INTEGER (1..3600)
+-- Unit sec
+
+SIB-Originator ::= ENUMERATED {
+ nodeB,
+ cRNC,
+ ...
+}
+
+SIR-Error-Value ::= INTEGER (0..125)
+-- According to mapping in [22]
+
+SFNSFNTimeStampInformation ::= CHOICE {
+ sFNSFNTimeStamp-FDD SFN,
+ sFNSFNTimeStamp-TDD SFNSFNTimeStamp-TDD,
+ ...}
+
+SFNSFNTimeStamp-TDD::= SEQUENCE {
+ sFN SFN,
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNTimeStamp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNTimeStamp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNValue ::= CHOICE {
+ sFNSFN-FDD SFNSFN-FDD,
+ sFNSFN-TDD SFNSFN-TDD,
+ ...
+}
+
+SIR-Error-Value-IncrDecrThres ::= INTEGER (0..124)
+
+SIR-Value ::= INTEGER (0..63)
+-- According to mapping in [22]/[23]
+
+SIR-Value-IncrDecrThres ::= INTEGER (0..62)
+
+SignallingBearerRequestIndicator::= ENUMERATED {bearerRequested}
+
+SpecialBurstScheduling ::= INTEGER (1..256) -- Number of frames between special burst transmission during DTX
+
+SSDT-Cell-Identity ::= ENUMERATED {a, b, c, d, e, f, g, h}
+
+SSDT-CellID-Length ::= ENUMERATED {
+ short,
+ medium,
+ long
+}
+
+SSDT-Indication ::= ENUMERATED {
+ ssdt-active-in-the-UE,
+ ssdt-not-active-in-the-UE
+}
+
+Start-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ start-of-audit-sequence,
+ not-start-of-audit-sequence
+}
+
+STTD-Indicator ::= ENUMERATED {
+ active,
+ inactive,
+ ...
+}
+
+SSDT-SupportIndicator ::= ENUMERATED {
+ sSDT-Supported,
+ sSDT-not-supported
+}
+
+SyncCase ::= INTEGER (1..2,...)
+
+SYNCDlCodeId ::= INTEGER (1..32,...)
+
+SyncFrameNumber ::= INTEGER (1..10)
+
+SynchronisationReportCharacteristics ::= SEQUENCE {
+ synchronisationReportCharacteristicsType SynchronisationReportCharacteristicsType,
+ synchronisationReportCharactThreExc SynchronisationReportCharactThreExc OPTIONAL,
+ -- This IE shall be included if the synchronisationReportCharacteristicsType IE is set to "thresholdExceeding".
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharacteristics-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharacteristics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SyncDLCodeIdThreInfoLCR CRITICALITY ignore EXTENSION SyncDLCodeIdThreInfoLCR PRESENCE optional },
+ ...
+}
+
+SynchronisationReportCharactThreExc ::= SEQUENCE (SIZE (1..maxNrOfCellSyncBursts)) OF SynchronisationReportCharactThreInfoItem -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+
+SynchronisationReportCharactThreInfoItem ::= SEQUENCE {
+ syncFrameNumber SyncFrameNumber,
+ cellSyncBurstInformation SEQUENCE (SIZE (1.. maxNrOfReceptsPerSyncFrame)) OF SynchronisationReportCharactCellSyncBurstInfoItem,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactThreInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactThreInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem ::= SEQUENCE {
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ cellSyncBurstTiming CellSyncBurstTiming OPTIONAL,
+ cellSyncBurstTimingThreshold CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdThreInfoLCR ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdThreInfoList --Mandatory for 1.28Mcps TDD only. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdThreInfoList ::= SEQUENCE {
+ syncFrameNoToReceive SyncFrameNumber,
+ syncDLCodeIdInfoLCR SyncDLCodeInfoListLCR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdThreInfoList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdThreInfoList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeInfoListLCR ::= SEQUENCE (SIZE (1..maxNrOfSyncDLCodesLCR)) OF SyncDLCodeInfoItemLCR
+
+SyncDLCodeInfoItemLCR ::= SEQUENCE {
+ syncDLCodeId SYNCDlCodeId,
+ syncDLCodeIdArrivTime CellSyncBurstTimingLCR OPTIONAL,
+ syncDLCodeIdTimingThre CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeInfoItem-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeInfoItem-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharacteristicsType ::= ENUMERATED {
+ frameRelated,
+ sFNperiodRelated,
+ cycleLengthRelated,
+ thresholdExceeding,
+ frequencyAcquisitionCompleted,
+ ...
+}
+
+SynchronisationReportType ::= ENUMERATED {
+ initialPhase,
+ steadyStatePhase,
+ lateEntrantCell,
+ frequencyAcquisition,
+ ...
+}
+
+-- ==========================================
+-- T
+-- ==========================================
+
+T1 ::= ENUMERATED {v10,v20,v30,v40,v50,v60,v70,v80,v90,v100,v120,v140,v160,v200,v300,v400,...}
+
+T-Cell ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ v4,
+ v5,
+ v6,
+ v7,
+ v8,
+ v9
+}
+
+T-RLFAILURE ::= INTEGER (0..255)
+-- Unit seconds, Range 0s .. 25.5s, Step 0.1s
+
+TDD-AckNack-Power-Offset ::= INTEGER (-7..8,...)
+-- Unit dB, Range -7dB .. +8dB, Step 1dB
+
+TDD-ChannelisationCode ::= ENUMERATED {
+ chCode1div1,
+ chCode2div1,
+ chCode2div2,
+ chCode4div1,
+ chCode4div2,
+ chCode4div3,
+ chCode4div4,
+ chCode8div1,
+ chCode8div2,
+ chCode8div3,
+ chCode8div4,
+ chCode8div5,
+ chCode8div6,
+ chCode8div7,
+ chCode8div8,
+ chCode16div1,
+ chCode16div2,
+ chCode16div3,
+ chCode16div4,
+ chCode16div5,
+ chCode16div6,
+ chCode16div7,
+ chCode16div8,
+ chCode16div9,
+ chCode16div10,
+ chCode16div11,
+ chCode16div12,
+ chCode16div13,
+ chCode16div14,
+ chCode16div15,
+ chCode16div16,
+ ...
+}
+
+TDD-ChannelisationCodeLCR ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ modulation Modulation, -- Modulation options for 1.28Mcps TDD in contrast to 3.84Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { TDD-ChannelisationCodeLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-ChannelisationCodeLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-DL-Code-InformationItem
+
+TDD-DL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-DL-Code-LCR-InformationItem
+
+TDD-DL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-DL-DPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TDD-DPCHOffset ::= CHOICE {
+ initialOffset INTEGER (0..255),
+ noinitialOffset INTEGER (0..63)
+}
+
+TDD-PhysicalChannelOffset ::= INTEGER (0..63)
+
+TDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TDD-TPC-UplinkStepSize-LCR ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TransportFormatCombination-Beta ::= CHOICE {
+ signalledGainFactors SEQUENCE {
+ gainFactor CHOICE {
+ fdd SEQUENCE {
+ betaC BetaCD,
+ betaD BetaCD,
+ iE-Extensions ProtocolExtensionContainer { { GainFactorFDD-ExtIEs } } OPTIONAL,
+ ...
+ },
+ tdd BetaCD,
+ ...
+ },
+ refTFCNumber RefTFCNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SignalledGainFactors-ExtIEs } } OPTIONAL,
+ ...
+ },
+ computedGainFactors RefTFCNumber,
+ ...
+}
+
+GainFactorFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignalledGainFactors-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-InformationItem
+
+TDD-UL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-UL-Code-LCR-InformationItem
+
+TDD-UL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-UL-DPCH-TimeSlotFormat-LCR TDD-UL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..69,...)
+
+EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TFCI-Coding ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ ...
+}
+
+TFCI-Presence ::= ENUMERATED {
+ present,
+ not-present
+}
+
+TFCI-SignallingMode ::= SEQUENCE {
+ tFCI-SignallingOption TFCI-SignallingMode-TFCI-SignallingOption,
+ splitType TFCI-SignallingMode-SplitType OPTIONAL,
+ -- This IE shall be present if the TFCI signalling option is set to "split" --
+ lengthOfTFCI2 TFCI-SignallingMode-LengthOfTFCI2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TFCI-SignallingMode-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI-SignallingMode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI-SignallingMode-LengthOfTFCI2 ::= INTEGER (1..10)
+
+TFCI-SignallingMode-SplitType ::= ENUMERATED {
+ hard,
+ logical
+}
+
+TFCI-SignallingMode-TFCI-SignallingOption ::= ENUMERATED {
+ normal,
+ split
+}
+
+TFCI2-BearerInformationResponse ::= SEQUENCE {
+ bindingID BindingID,
+ transportLayerAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-BearerInformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-BearerInformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2BearerRequestIndicator ::= ENUMERATED {newBearerRequested}
+
+TGD ::= INTEGER (0|15..269)
+-- 0 = Undefined, only one transmission gap in the transmission gap pattern sequence
+
+TGPRC ::= INTEGER (0..511)
+-- 0 = infinity
+
+TGPSID ::= INTEGER (1.. maxTGPS)
+
+TGSN ::= INTEGER (0..14)
+
+TimeSlot ::= INTEGER (0..14)
+
+TimeSlotDirection ::= ENUMERATED {
+ ul,
+ dl,
+ ...
+}
+
+TimeSlotLCR ::= INTEGER (0..6)
+
+TimeSlotStatus ::= ENUMERATED {
+ active,
+ not-active,
+ ...
+}
+
+TimingAdjustmentValue ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+TimingAdjustmentValueLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+TimingAdvanceApplied ::= ENUMERATED {
+ yes,
+ no
+}
+
+TnlQos ::= CHOICE {
+ dsField DsField,
+ genericTrafficCategory GenericTrafficCategory,
+ ...
+}
+
+ToAWE ::= INTEGER (0..2559)
+-- Unit ms
+
+ToAWS ::= INTEGER (0..1279)
+-- Unit ms
+
+Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGSN TGSN,
+ tGL1 GapLength,
+ tGL2 GapLength OPTIONAL,
+ tGD TGD,
+ tGPL1 GapDuration,
+ tGPL2 GapDuration OPTIONAL,
+ uL-DL-mode UL-DL-mode,
+ downlink-Compressed-Mode-Method Downlink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "DL only" or "UL/DL"
+ uplink-Compressed-Mode-Method Uplink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "UL only" or "UL/DL"
+ dL-FrameType DL-FrameType,
+ delta-SIR1 DeltaSIR,
+ delta-SIR-after1 DeltaSIR,
+ delta-SIR2 DeltaSIR OPTIONAL,
+ delta-SIR-after2 DeltaSIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Transmission-Gap-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Transmission-Gap-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionGapPatternSequenceCodeInformation ::= ENUMERATED{
+code-change,
+nocode-change
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue ::= INTEGER(0..100)
+-- According to mapping in [22] and [23]
+
+Transmitted-Carrier-Power-Value ::= INTEGER(0..100)
+-- According to mapping in [22]/[23]
+
+Transmitted-Code-Power-Value ::= INTEGER (0..127)
+-- According to mapping in [22]/[23]. Values 0 to 9 and 123 to 127 shall not be used.
+
+Transmitted-Code-Power-Value-IncrDecrThres ::= INTEGER (0..112,...)
+
+TransmissionDiversityApplied ::= BOOLEAN
+-- true: applied, false: not applied
+
+TransmitDiversityIndicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TFCS ::= SEQUENCE {
+ tFCSvalues CHOICE {
+ no-Split-in-TFCI TFCS-TFCSList,
+ split-in-TFCI SEQUENCE {
+ transportFormatCombination-DCH TFCS-DCHList,
+ signallingMethod CHOICE {
+ tFCI-Range TFCS-MapingOnDSCHList,
+ explicit TFCS-DSCHList,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { Split-in-TFCI-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TFCS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Split-in-TFCI-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-TFCSList ::= SEQUENCE (SIZE (1..maxNrOfTFCs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ tFC-Beta TransportFormatCombination-Beta OPTIONAL,
+ -- The IE shall be present if the TFCS concerns a UL DPCH or PRACH channel [FDD - or PCPCH channel].
+ iE-Extensions ProtocolExtensionContainer { { TFCS-TFCSList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-TFCSList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-CTFC ::= CHOICE {
+ ctfc2bit INTEGER (0..3),
+ ctfc4bit INTEGER (0..15),
+ ctfc6bit INTEGER (0..63),
+ ctfc8bit INTEGER (0..255),
+ ctfc12bit INTEGER (0..4095),
+ ctfc16bit INTEGER (0..65535),
+ ctfcmaxbit INTEGER (0..maxCTFC)
+}
+
+TFCS-DCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI1Combs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MapingOnDSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value TFCS-MaxTFCI-field2-Value,
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-MapingOnDSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-MapingOnDSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MaxTFCI-field2-Value ::= INTEGER (1..maxNrOfTFCI2Combs-1)
+
+TFCS-DSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportBearerRequestIndicator ::= ENUMERATED {
+ bearerRequested,
+ bearerNotRequested,
+ ...
+}
+
+TransportFormatSet ::= SEQUENCE {
+ dynamicParts TransportFormatSet-DynamicPartList,
+ semi-staticPart TransportFormatSet-Semi-staticPart,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-DynamicPartList ::= SEQUENCE (SIZE (1..maxNrOfTFs)) OF
+ SEQUENCE {
+ nrOfTransportBlocks TransportFormatSet-NrOfTransportBlocks,
+ transportBlockSize TransportFormatSet-TransportBlockSize OPTIONAL,
+ -- This IE shall be present if the Number of Transport Blocks IE is set to a value greater than 0
+ mode TransportFormatSet-ModeDP,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-DynamicPartList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransportFormatSet-DynamicPartList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-TransportFormatSet-ModeDP ::= SEQUENCE {
+ transmissionTimeIntervalInformation TransmissionTimeIntervalInformation OPTIONAL,
+ -- This IE shall be present if the Transmission Time Interval IE in the Semi-static Transport Format Information IE is set to "dynamic"
+ iE-Extensions ProtocolExtensionContainer { {TDD-TransportFormatSet-ModeDP-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TDD-TransportFormatSet-ModeDP-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionTimeIntervalInformation ::= SEQUENCE (SIZE (1..maxTTI-count)) OF
+ SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalDynamic,
+ iE-Extensions ProtocolExtensionContainer { { TransmissionTimeIntervalInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransmissionTimeIntervalInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-Semi-staticPart ::= SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalSemiStatic,
+ channelCoding TransportFormatSet-ChannelCodingType,
+ codingRate TransportFormatSet-CodingRate OPTIONAL,
+ -- This IE shall be present if the Type of channel coding IE is set to 'convolutional' or 'turbo'
+ rateMatchingAttribute TransportFormatSet-RateMatchingAttribute,
+ cRC-Size TransportFormatSet-CRC-Size,
+ mode TransportFormatSet-ModeSSP ,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-Semi-staticPart-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-ChannelCodingType ::= ENUMERATED {
+ no-codingTDD,
+ convolutional-coding,
+ turbo-coding,
+ ...
+}
+
+TransportFormatSet-CodingRate ::= ENUMERATED {
+ half,
+ third,
+ ...
+}
+
+TransportFormatSet-CRC-Size ::= ENUMERATED {
+ v0,
+ v8,
+ v12,
+ v16,
+ v24,
+ ...
+}
+
+TransportFormatSet-ModeDP ::= CHOICE {
+ tdd TDD-TransportFormatSet-ModeDP,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-ModeSSP ::= CHOICE {
+ tdd TransportFormatSet-SecondInterleavingMode,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-NrOfTransportBlocks ::= INTEGER (0..512)
+
+TransportFormatSet-RateMatchingAttribute ::= INTEGER (1..maxRateMatching)
+
+TransportFormatSet-SecondInterleavingMode ::= ENUMERATED {
+ frame-related,
+ timeSlot-related,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalDynamic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalSemiStatic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...,
+ msec-5
+}
+
+TransportFormatSet-TransportBlockSize ::= INTEGER (0..5000)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TSTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TUTRANGPS ::= SEQUENCE {
+ ms-part INTEGER (0..16383),
+ ls-part INTEGER (0..4294967295)
+}
+
+TUTRANGPSChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+TUTRANGPSDriftRate ::= INTEGER (-50..50)
+-- Unit chip/s, Step 1/256 chip/s, Range -50/256..+50/256 chip/s
+
+TUTRANGPSDriftRateQuality ::= INTEGER (0..50)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..50/256 chip/s
+
+TUTRANGPSAccuracyClass ::= ENUMERATED {
+ accuracy-class-A,
+ accuracy-class-B,
+ accuracy-class-C,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation ::= SEQUENCE {
+ tUTRANGPSChangeLimit TUTRANGPSChangeLimit OPTIONAL,
+ predictedTUTRANGPSDeviationLimit PredictedTUTRANGPSDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TUTRANGPSMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGPS TUTRANGPS,
+ tUTRANGPSQuality TUTRANGPSQuality OPTIONAL,
+ tUTRANGPSDriftRate TUTRANGPSDriftRate,
+ tUTRANGPSDriftRateQuality TUTRANGPSDriftRateQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TUTRANGPSMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- ==========================================
+-- U
+-- ==========================================
+
+UARFCN ::= INTEGER (0..16383, ...)
+-- corresponds to 0MHz .. 3276.6MHz
+
+UC-Id ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { {UC-Id-ExtIEs} } OPTIONAL,
+ ...
+}
+UC-Id-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UDRE ::= ENUMERATED {
+ udre-minusequal-one-m,
+ udre-betweenoneandfour-m,
+ udre-betweenfourandeight-m,
+ udre-greaterequaleight-m
+}
+
+
+UE-Capability-Information ::= SEQUENCE {
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ iE-Extensions ProtocolExtensionContainer { { UE-Capability-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Capability-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CapacityCredit ::= INTEGER (0..65535)
+
+UL-DL-mode ::= ENUMERATED {
+ ul-only,
+ dl-only,
+ both-ul-and-dl
+}
+
+Uplink-Compressed-Mode-Method ::= ENUMERATED {
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+UL-Timeslot-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationItem
+
+UL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeslotLCR-InformationItem
+
+UL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCCH-SlotFormat ::= INTEGER (0..5,...)
+
+UL-SIR ::= INTEGER (-82..173)
+-- According to mapping in [16]
+
+UL-FP-Mode ::= ENUMERATED {
+ normal,
+ silent,
+ ...
+}
+
+UL-PhysCH-SF-Variation ::= ENUMERATED {
+ sf-variation-supported,
+ sf-variation-not-supported
+}
+
+UL-ScramblingCode ::= SEQUENCE {
+ uL-ScramblingCodeNumber UL-ScramblingCodeNumber,
+ uL-ScramblingCodeLength UL-ScramblingCodeLength,
+ iE-Extensions ProtocolExtensionContainer { { UL-ScramblingCode-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-ScramblingCode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-ScramblingCodeNumber ::= INTEGER (0..16777215)
+
+UL-ScramblingCodeLength ::= ENUMERATED {
+ short,
+ long
+}
+
+UL-Synchronisation-Parameters-LCR ::= SEQUENCE {
+ uL-Synchronisation-StepSize UL-Synchronisation-StepSize,
+ uL-Synchronisation-Frequency UL-Synchronisation-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { UL-Synchronisation-Parameters-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-Synchronisation-Parameters-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Synchronisation-StepSize ::= INTEGER (1..8)
+
+UL-Synchronisation-Frequency ::= INTEGER (1..8)
+
+UL-TimeSlot-ISCP-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-TimeSlot-ISCP-InfoItem
+
+UL-TimeSlot-ISCP-InfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeSlot-ISCP-LCR-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeSlot-ISCP-LCR-InfoItem
+
+UL-TimeSlot-ISCP-LCR-InfoItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unidirectional-DCH-Indicator ::= ENUMERATED {
+ downlink-DCH-only,
+ uplink-DCH-only
+}
+
+USCH-Information ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationItem
+
+USCH-InformationItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ cCTrCH-ID CCTrCH-ID, -- UL CCTrCH in which the USCH is mapped
+ transportFormatSet TransportFormatSet, -- For USCH
+ allocationRetentionPriority AllocationRetentionPriority,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+{ ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationResponseItem
+
+USCH-InformationResponseItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotISCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+UL-TimeslotISCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+USCH-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- V
+-- ==========================================
+
+-- ==========================================
+-- W
+-- ==========================================
+
+-- ==========================================
+-- X
+-- ==========================================
+
+-- ==========================================
+-- Y
+-- ==========================================
+
+-- ==========================================
+-- Z
+-- ==========================================
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
new file mode 100755
index 0000000000..9ecfa688a2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
@@ -0,0 +1,9234 @@
+-- **************************************************************
+--
+-- PDU definitions for NBAP.
+--
+-- **************************************************************
+
+NBAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Active-Pattern-Sequence-Information,
+ AddorDeleteIndicator,
+ AICH-Power,
+ AICH-TransmissionTiming,
+ AllocationRetentionPriority,
+ APPreambleSignature,
+ APSubChannelNumber,
+ AvailabilityStatus,
+ BCCH-ModificationTime,
+ BindingID,
+ BlockingPriorityIndicator,
+ SCTD-Indicator,
+ Cause,
+ CCTrCH-ID,
+ CDSubChannelNumbers,
+ CellParameterID,
+ CellSyncBurstCode,
+ CellSyncBurstCodeShift,
+ CellSyncBurstRepetitionPeriod,
+ CellSyncBurstSIR,
+ CellSyncBurstTiming,
+ CellSyncBurstTimingThreshold,
+ CFN,
+ Channel-Assignment-Indication,
+ ChipOffset,
+ C-ID,
+ Closedlooptimingadjustmentmode,
+ CommonChannelsCapacityConsumptionLaw,
+ Compressed-Mode-Deactivation-Flag,
+ CommonMeasurementAccuracy,
+ CommonMeasurementType,
+ CommonMeasurementValue,
+ CommonMeasurementValueInformation,
+ CommonPhysicalChannelID,
+ Common-PhysicalChannel-Status-Information,
+ Common-TransportChannel-Status-Information,
+ CommonTransportChannelID,
+ CommonTransportChannel-InformationResponse,
+ CommunicationControlPortID,
+ ConfigurationGenerationID,
+ ConstantValue,
+ CriticalityDiagnostics,
+ CPCH-Allowed-Total-Rate,
+ CPCHScramblingCodeNumber,
+ CPCH-UL-DPCCH-SlotFormat,
+ CRNC-CommunicationContextID,
+ CSBMeasurementID,
+ CSBTransmissionID,
+ DCH-FDD-Information,
+ DCH-InformationResponse,
+ DCH-ID,
+ FDD-DCHs-to-Modify,
+ TDD-DCHs-to-Modify,
+ DCH-TDD-Information,
+ DedicatedChannelsCapacityConsumptionLaw,
+ DedicatedMeasurementType,
+ DedicatedMeasurementValue,
+ DedicatedMeasurementValueInformation,
+ DelayedActivation,
+ DelayedActivationUpdate,
+ DiversityControlField,
+ DiversityMode,
+ DL-DPCH-SlotFormat,
+ DL-DPCH-TimingAdjustment,
+ DL-or-Global-CapacityCredit,
+ DL-Power,
+ DL-PowerBalancing-Information,
+ DL-PowerBalancing-ActivationIndicator,
+ DLPowerAveragingWindowSize,
+ DL-PowerBalancing-UpdatedIndicator,
+ DL-ScramblingCode,
+ DL-TimeslotISCP,
+ DL-Timeslot-Information,
+ DL-TimeslotLCR-Information,
+ DL-TimeslotISCPInfo,
+ DL-TimeslotISCPInfoLCR,
+ DL-TPC-Pattern01Count,
+ DPC-Mode,
+ DPCH-ID,
+ DSCH-ID,
+ DSCH-FDD-Common-Information,
+ DSCH-FDD-Information,
+ DSCH-InformationResponse,
+ DSCH-TDD-Information,
+ DwPCH-Power,
+ End-Of-Audit-Sequence-Indicator,
+ EnhancedDSCHPC,
+ EnhancedDSCHPCCounter,
+ EnhancedDSCHPCIndicator,
+ EnhancedDSCHPCWnd,
+ EnhancedDSCHPowerOffset,
+ FDD-DL-ChannelisationCodeNumber,
+ FDD-DL-CodeInformation,
+ FDD-S-CCPCH-Offset,
+ FDD-TPC-DownlinkStepSize,
+ FirstRLS-Indicator,
+ FNReportingIndicator,
+ FPACH-Power,
+ FrameAdjustmentValue,
+ FrameHandlingPriority,
+ FrameOffset,
+ HSDPA-Capability,
+ HS-PDSCH-FDD-Code-Information,
+ HS-SCCH-ID,
+ HS-SCCH-FDD-Code-Information,
+ HS-SICH-ID,
+ IB-OC-ID,
+ IB-SG-DATA,
+ IB-SG-POS,
+ IB-SG-REP,
+ IB-Type,
+ InformationExchangeID,
+ InformationReportCharacteristics,
+ InformationType,
+ InnerLoopDLPCStatus,
+ IPDL-FDD-Parameters,
+ IPDL-TDD-Parameters,
+ IPDL-Indicator,
+ IPDL-TDD-Parameters-LCR,
+ LimitedPowerIncrease,
+ Local-Cell-ID,
+ MaximumDL-PowerCapability,
+ Maximum-PDSCH-Power,
+ MaximumTransmissionPower,
+ Max-Number-of-PCPCHes,
+ MaxNrOfUL-DPDCHs,
+ MaxPRACH-MidambleShifts,
+ MeasurementFilterCoefficient,
+ MeasurementID,
+ MidambleAllocationMode,
+ MidambleShiftAndBurstType,
+ MidambleShiftLCR,
+ MinimumDL-PowerCapability,
+ MinSpreadingFactor,
+ MinUL-ChannelisationCodeLength,
+ MultiplexingPosition,
+ NEOT,
+ NCyclesPerSFNperiod,
+ NFmax,
+ NRepetitionsPerCyclePeriod,
+ N-INSYNC-IND,
+ N-OUTSYNC-IND,
+ NeighbouringCellMeasurementInformation,
+ NeighbouringFDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation,
+ NodeB-CommunicationContextID,
+ NumberOfReportedCellPortions,
+ NStartMessage,
+ NSubCyclesPerCyclePeriod,
+ PagingIndicatorLength,
+ PayloadCRC-PresenceIndicator,
+ PCCPCH-Power,
+ PCP-Length,
+ PDSCH-CodeMapping,
+ PDSCHSet-ID,
+ PDSCH-ID,
+ PICH-Mode,
+ PICH-Power,
+ PowerAdjustmentType,
+ PowerOffset,
+ PowerRaiseLimit,
+ PRACH-Midamble,
+ PreambleSignatures,
+ PreambleThreshold,
+ PredictedSFNSFNDeviationLimit,
+ PredictedTUTRANGPSDeviationLimit,
+ PrimaryCPICH-Power,
+ Primary-CPICH-Usage-for-Channel-Estimation,
+ PrimaryScramblingCode,
+ PropagationDelay,
+ SCH-TimeSlot,
+ PunctureLimit,
+ PUSCHSet-ID,
+ PUSCH-ID,
+ QE-Selector,
+ Qth-Parameter,
+ RACH-SlotFormat,
+ RACH-SubChannelNumbers,
+ ReferenceClockAvailability,
+ ReferenceSFNoffset,
+ RepetitionLength,
+ RepetitionPeriod,
+ ReportCharacteristics,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ ResourceOperationalState,
+ RL-Set-ID,
+ RL-ID,
+ RL-Specific-DCH-Info,
+ Received-total-wide-band-power-Value,
+ AdjustmentPeriod,
+ ScaledAdjustmentRatio,
+ MaxAdjustmentStep,
+ RNC-ID,
+ ScramblingCodeNumber,
+ Secondary-CPICH-Information-Change,
+ SecondaryCCPCH-SlotFormat,
+ Segment-Type,
+ S-FieldLength,
+ SFN,
+ SFNSFNChangeLimit,
+ SFNSFNDriftRate,
+ SFNSFNDriftRateQuality,
+ SFNSFNQuality,
+ ShutdownTimer,
+ SIB-Originator,
+ SpecialBurstScheduling,
+ SignallingBearerRequestIndicator,
+ SSDT-Cell-Identity,
+ SSDT-CellID-Length,
+ SSDT-Indication,
+ Start-Of-Audit-Sequence-Indicator,
+ STTD-Indicator,
+ SSDT-SupportIndicator,
+ SyncCase,
+ SYNCDlCodeId,
+ SyncFrameNumber,
+ SynchronisationReportCharacteristics,
+ SynchronisationReportType,
+ T-Cell,
+ T-RLFAILURE,
+ TDD-ChannelisationCode,
+ TDD-ChannelisationCodeLCR,
+ TDD-DL-Code-LCR-Information,
+ TDD-DPCHOffset,
+ TDD-TPC-DownlinkStepSize,
+ TDD-PhysicalChannelOffset,
+ TDD-UL-Code-LCR-Information,
+ TFCI2-BearerInformationResponse,
+ TFCI2BearerRequestIndicator,
+ TFCI-Coding,
+ TFCI-Presence,
+ TFCI-SignallingMode,
+ TFCS,
+ TimeSlot,
+ TimeSlotLCR,
+ TimeSlotDirection,
+ TimeSlotStatus,
+ TimingAdjustmentValue,
+ TimingAdvanceApplied,
+ TnlQos,
+ ToAWE,
+ ToAWS,
+ TransmissionDiversityApplied,
+ TransmitDiversityIndicator,
+ TransmissionGapPatternSequenceCodeInformation,
+ Transmission-Gap-Pattern-Sequence-Information,
+ TransportBearerRequestIndicator,
+ TransportFormatSet,
+ TransportLayerAddress,
+ TSTD-Indicator,
+ TUTRANGPS,
+ TUTRANGPSChangeLimit,
+ TUTRANGPSDriftRate,
+ TUTRANGPSDriftRateQuality,
+ TUTRANGPSQuality,
+ UARFCN,
+ UC-Id,
+ USCH-Information,
+ USCH-InformationResponse,
+ UL-CapacityCredit,
+ UL-DPCCH-SlotFormat,
+ UL-SIR,
+ UL-FP-Mode,
+ UL-PhysCH-SF-Variation,
+ UL-ScramblingCode,
+ UL-Timeslot-Information,
+ UL-TimeslotLCR-Information,
+ UL-TimeSlot-ISCP-Info,
+ UL-TimeSlot-ISCP-LCR-Info,
+ UL-TimeslotISCP-Value,
+ UL-TimeslotISCP-Value-IncrDecrThres,
+ USCH-ID,
+ HSDSCH-FDD-Information,
+ HSDSCH-FDD-Information-Response,
+ HSDSCH-Information-to-Modify,
+ HSDSCH-Information-to-Modify-Unsynchronised,
+ HSDSCH-MACdFlow-ID,
+ HSDSCH-MACdFlows-Information,
+ HSDSCH-MACdFlows-to-Delete,
+ HSDSCH-RNTI,
+ HSDSCH-TDD-Information,
+ HSDSCH-TDD-Information-Response,
+ PrimaryCCPCH-RSCP,
+ HSDSCH-FDD-Update-Information,
+ HSDSCH-TDD-Update-Information,
+ UL-Synchronisation-Parameters-LCR,
+ TDD-DL-DPCH-TimeSlotFormat-LCR,
+ TDD-UL-DPCH-TimeSlotFormat-LCR,
+ TDD-TPC-UplinkStepSize-LCR,
+ CellSyncBurstTimingLCR,
+ TimingAdjustmentValueLCR,
+ PrimaryCCPCH-RSCP-Delta
+FROM NBAP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ ProtocolIE-ContainerList{},
+ NBAP-PRIVATE-IES,
+ NBAP-PROTOCOL-IES,
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers
+
+ id-Active-Pattern-Sequence-Information,
+ id-AdjustmentRatio,
+ id-AICH-Information,
+ id-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-AP-AICH-Information,
+ id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-BCH-Information,
+ id-BCCH-ModificationTime,
+ id-bindingID,
+ id-BlockingPriorityIndicator,
+ id-Cause,
+ id-CauseLevel-PSCH-ReconfFailure,
+ id-CauseLevel-RL-AdditionFailureFDD,
+ id-CauseLevel-RL-AdditionFailureTDD,
+ id-CauseLevel-RL-ReconfFailure,
+ id-CauseLevel-RL-SetupFailureFDD,
+ id-CauseLevel-RL-SetupFailureTDD,
+ id-CauseLevel-SyncAdjustmntFailureTDD,
+ id-CCP-InformationItem-AuditRsp,
+ id-CCP-InformationList-AuditRsp,
+ id-CCP-InformationItem-ResourceStatusInd,
+ id-CCTrCH-InformationItem-RL-FailureInd,
+ id-CCTrCH-InformationItem-RL-RestoreInd,
+ id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD,
+ id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD,
+ id-CDCA-ICH-Information,
+ id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CellAdjustmentInfo-SyncAdjustmntRqstTDD,
+ id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD,
+ id-Cell-InformationItem-AuditRsp,
+ id-Cell-InformationItem-ResourceStatusInd,
+ id-Cell-InformationList-AuditRsp,
+ id-CellParameterID,
+ id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD,
+ id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD,
+ id-cellSyncBurstRepetitionPeriod,
+ id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncInfo-CellSyncReprtTDD,
+ id-CFN,
+ id-CFNReportingIndicator,
+ id-C-ID,
+ id-Closed-Loop-Timing-Adjustment-Mode,
+ id-CommonMeasurementAccuracy,
+ id-CommonMeasurementObjectType-CM-Rprt,
+ id-CommonMeasurementObjectType-CM-Rqst,
+ id-CommonMeasurementObjectType-CM-Rsp,
+ id-CommonMeasurementType,
+ id-CommonPhysicalChannelID,
+ id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstTDD,
+ id-CommunicationContextInfoItem-Reset,
+ id-CommunicationControlPortID,
+ id-CommunicationControlPortInfoItem-Reset,
+ id-Compressed-Mode-Deactivation-Flag,
+ id-ConfigurationGenerationID,
+ id-CPCH-Information,
+ id-CPCH-Parameters-CTCH-SetupRsp,
+ id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CRNC-CommunicationContextID,
+ id-CriticalityDiagnostics,
+ id-CSBTransmissionID,
+ id-CSBMeasurementID,
+ id-DCHs-to-Add-FDD,
+ id-DCHs-to-Add-TDD,
+ id-DCH-AddList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfPrepFDD,
+ id-DCH-DeleteList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfRqstFDD,
+ id-DCH-DeleteList-RL-ReconfRqstTDD,
+ id-DCH-FDD-Information,
+ id-DCH-TDD-Information,
+ id-DCH-InformationResponse,
+ id-DCH-RearrangeList-Bearer-RearrangeInd,
+ id-DSCH-RearrangeList-Bearer-RearrangeInd,
+ id-FDD-DCHs-to-Modify,
+ id-TDD-DCHs-to-Modify,
+ id-DedicatedMeasurementObjectType-DM-Rprt,
+ id-DedicatedMeasurementObjectType-DM-Rqst,
+ id-DedicatedMeasurementObjectType-DM-Rsp,
+ id-DedicatedMeasurementType,
+ id-DelayedActivation,
+ id-DelayedActivationList-RL-ActivationCmdFDD,
+ id-DelayedActivationList-RL-ActivationCmdTDD,
+ id-DelayedActivationInformation-RL-ActivationCmdFDD,
+ id-DelayedActivationInformation-RL-ActivationCmdTDD,
+ id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-DL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-Information-RL-ReconfPrepFDD,
+ id-DL-DPCH-Information-RL-ReconfRqstFDD,
+ id-DL-DPCH-Information-RL-SetupRqstFDD,
+ id-DL-DPCH-TimingAdjustment,
+ id-DL-PowerBalancing-Information,
+ id-DL-PowerBalancing-ActivationIndicator,
+ id-DL-ReferencePowerInformationItem-DL-PC-Rqst,
+ id-DL-PowerBalancing-UpdatedIndicator,
+ id-DLReferencePower,
+ id-DLReferencePowerList-DL-PC-Rqst,
+ id-DL-TPC-Pattern01Count,
+ id-DPC-Mode,
+ id-DPCHConstant,
+ id-DSCH-AddItem-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-FDD,
+ id-DSCH-DeleteItem-RL-ReconfPrepFDD,
+ id-DSCH-DeleteList-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-TDD,
+ id-DSCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-DSCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-DSCH-InformationResponse,
+ id-DSCH-FDD-Information,
+ id-DSCH-FDD-Common-Information,
+ id-DSCH-TDD-Information,
+ id-DSCH-ModifyItem-RL-ReconfPrepFDD,
+ id-DSCH-ModifyList-RL-ReconfPrepFDD,
+ id-End-Of-Audit-Sequence-Indicator,
+ id-EnhancedDSCHPC,
+ id-EnhancedDSCHPCIndicator,
+ id-FACH-Information,
+ id-FACH-ParametersList-CTCH-ReconfRqstTDD,
+ id-FACH-ParametersList-CTCH-SetupRsp,
+ id-FACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstTDD,
+ id-IndicationType-ResourceStatusInd,
+ id-InformationExchangeID,
+ id-InformationExchangeObjectType-InfEx-Rqst,
+ id-InformationExchangeObjectType-InfEx-Rsp,
+ id-InformationExchangeObjectType-InfEx-Rprt,
+ id-InformationReportCharacteristics,
+ id-InformationType,
+ id-InitDL-Power,
+ id-InnerLoopDLPCStatus,
+ id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstFDD,
+ id-IPDLParameter-Information-Cell-SetupRqstFDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstTDD,
+ id-IPDLParameter-Information-Cell-SetupRqstTDD,
+ id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD,
+ id-Limited-power-increase-information-Cell-SetupRqstFDD,
+ id-Local-Cell-ID,
+ id-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-Group-InformationList-AuditRsp,
+ id-Local-Cell-InformationItem-AuditRsp,
+ id-Local-Cell-InformationItem-ResourceStatusInd,
+ id-Local-Cell-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-InformationList-AuditRsp,
+ id-AdjustmentPeriod,
+ id-MaxAdjustmentStep,
+ id-MaximumTransmissionPower,
+ id-MeasurementFilterCoefficient,
+ id-MeasurementID,
+ id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst,
+ id-multipleRL-dl-DPCH-InformationList,
+ id-multipleRL-dl-DPCH-InformationModifyList,
+ id-multipleRL-ul-DPCH-InformationList,
+ id-multipleRL-ul-DPCH-InformationModifyList,
+ id-NCyclesPerSFNperiod,
+ id-NeighbouringCellMeasurementInformation,
+ id-NodeB-CommunicationContextID,
+ id-NRepetitionsPerCyclePeriod,
+ id-NumberOfReportedCellPortions,
+ id-P-CCPCH-Information,
+ id-P-CPICH-Information,
+ id-P-SCH-Information,
+ id-PCCPCH-Information-Cell-ReconfRqstTDD,
+ id-PCCPCH-Information-Cell-SetupRqstTDD,
+ id-PCH-Parameters-CTCH-ReconfRqstTDD,
+ id-PCH-Parameters-CTCH-SetupRsp,
+ id-PCH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PCH-Information,
+ id-PCPCH-Information,
+ id-PICH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PDSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-Information-Cell-SetupRqstFDD,
+ id-PDSCH-Information-Cell-ReconfRqstFDD,
+ id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PDSCH-RL-ID,
+ id-PDSCHSets-AddList-PSCH-ReconfRqst,
+ id-PDSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PDSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-PICH-Information,
+ id-PICH-Parameters-CTCH-ReconfRqstTDD,
+ id-PICH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PowerAdjustmentType,
+ id-Power-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList-AuditRsp,
+ id-Power-Local-Cell-Group-InformationList-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-ID,
+ id-PRACH-Information,
+ id-PRACHConstant,
+ id-PRACH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryCPICH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCPICH-Information-Cell-SetupRqstFDD,
+ id-Primary-CPICH-Usage-for-Channel-Estimation,
+ id-PrimarySCH-Information-Cell-ReconfRqstFDD,
+ id-PrimarySCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryScramblingCode,
+ id-SCH-Information-Cell-ReconfRqstTDD,
+ id-SCH-Information-Cell-SetupRqstTDD,
+ id-PUSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCHConstant,
+ id-PUSCHSets-AddList-PSCH-ReconfRqst,
+ id-PUSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PUSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-Qth-Parameter,
+ id-RACH-Information,
+ id-RACH-Parameters-CTCH-SetupRsp,
+ id-RACH-ParametersItem-CTCH-SetupRqstFDD,
+ id-RACH-ParameterItem-CTCH-SetupRqstTDD,
+ id-ReferenceClockAvailability,
+ id-ReferenceSFNoffset,
+ id-ReportCharacteristics,
+ id-Reporting-Object-RL-FailureInd,
+ id-Reporting-Object-RL-RestoreInd,
+ id-ResetIndicator,
+ id-RL-ID,
+ id-RL-InformationItem-DM-Rprt,
+ id-RL-InformationItem-DM-Rqst,
+ id-RL-InformationItem-DM-Rsp,
+ id-RL-InformationItem-RL-AdditionRqstFDD,
+ id-RL-informationItem-RL-DeletionRqst,
+ id-RL-InformationItem-RL-FailureInd,
+ id-RL-InformationItem-RL-PreemptRequiredInd,
+ id-RL-InformationItem-RL-ReconfPrepFDD,
+ id-RL-InformationItem-RL-ReconfRqstFDD,
+ id-RL-InformationItem-RL-RestoreInd,
+ id-RL-InformationItem-RL-SetupRqstFDD,
+ id-RL-InformationList-RL-AdditionRqstFDD,
+ id-RL-informationList-RL-DeletionRqst,
+ id-RL-InformationList-RL-PreemptRequiredInd,
+ id-RL-InformationList-RL-ReconfPrepFDD,
+ id-RL-InformationList-RL-ReconfRqstFDD,
+ id-RL-InformationList-RL-SetupRqstFDD,
+ id-RL-InformationResponseItem-RL-AdditionRspFDD,
+ id-RL-InformationResponseItem-RL-ReconfReady,
+ id-RL-InformationResponseItem-RL-ReconfRsp,
+ id-RL-InformationResponseItem-RL-SetupRspFDD,
+ id-RL-InformationResponseList-RL-AdditionRspFDD,
+ id-RL-InformationResponseList-RL-ReconfReady,
+ id-RL-InformationResponseList-RL-ReconfRsp,
+ id-RL-InformationResponseList-RL-SetupRspFDD,
+ id-RL-InformationResponse-RL-AdditionRspTDD,
+ id-RL-InformationResponse-RL-SetupRspTDD,
+ id-RL-Information-RL-AdditionRqstTDD,
+ id-RL-Information-RL-ReconfRqstTDD,
+ id-RL-Information-RL-ReconfPrepTDD,
+ id-RL-Information-RL-SetupRqstTDD,
+ id-RL-ReconfigurationFailureItem-RL-ReconfFailure,
+ id-RL-Set-InformationItem-DM-Rprt,
+ id-RL-Set-InformationItem-DM-Rsp,
+ id-RL-Set-InformationItem-RL-FailureInd,
+ id-RL-Set-InformationItem-RL-RestoreInd,
+ id-RL-Specific-DCH-Info,
+ id-S-CCPCH-Information,
+ id-S-CPICH-Information,
+ id-SCH-Information,
+ id-S-SCH-Information,
+ id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD,
+ id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD,
+ id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD,
+ id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD,
+ id-Secondary-CPICH-Information-Change,
+ id-SecondarySCH-Information-Cell-ReconfRqstFDD,
+ id-SecondarySCH-Information-Cell-SetupRqstFDD,
+ id-SegmentInformationListIE-SystemInfoUpdate,
+ id-SFN,
+ id-SFNReportingIndicator,
+ id-ShutdownTimer,
+ id-SignallingBearerRequestIndicator,
+ id-SSDT-CellIDforEDSCHPC,
+ id-Start-Of-Audit-Sequence-Indicator,
+ id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Successful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Synchronisation-Configuration-Cell-ReconfRqst,
+ id-Synchronisation-Configuration-Cell-SetupRqst,
+ id-SyncCase,
+ id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH,
+ id-SyncFrameNumber,
+ id-SynchronisationReportType,
+ id-SynchronisationReportCharacteristics,
+ id-SyncReportType-CellSyncReprtTDD,
+ id-T-Cell,
+ id-TargetCommunicationControlPortID,
+ id-TFCI2-Bearer-Information-RL-SetupRqstFDD,
+ id-TFCI2-BearerInformationResponse,
+ id-TFCI2BearerRequestIndicator,
+ id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD,
+ id-Transmission-Gap-Pattern-Sequence-Information,
+ id-TimeSlotConfigurationList-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-Cell-SetupRqstTDD,
+ id-timeslotInfo-CellSyncInitiationRqstTDD,
+ id-TimeslotISCPInfo,
+ id-TimingAdvanceApplied,
+ id-TnlQos,
+ id-TransmissionDiversityApplied,
+ id-transportlayeraddress,
+ id-UARFCNforNt,
+ id-UARFCNforNd,
+ id-UARFCNforNu,
+ id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-Information-RL-ReconfPrepFDD,
+ id-UL-DPCH-Information-RL-ReconfRqstFDD,
+ id-UL-DPCH-Information-RL-SetupRqstFDD,
+ id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD,
+ id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD,
+ id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD,
+ id-USCH-Information-Add,
+ id-USCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-USCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-USCH-InformationResponse,
+ id-USCH-Information,
+ id-USCH-RearrangeList-Bearer-RearrangeInd,
+ id-DL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DwPCH-LCR-Information ,
+ id-DwPCH-LCR-InformationList-AuditRsp,
+ id-DwPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-DwPCH-LCR-Information-Cell-ReconfRqstTDD,
+ id-DwPCH-LCR-Information-ResourceStatusInd,
+ id-maxFACH-Power-LCR-CTCH-SetupRqstTDD,
+ id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-FPACH-LCR-Information,
+ id-FPACH-LCR-Information-AuditRsp,
+ id-FPACH-LCR-InformationList-AuditRsp,
+ id-FPACH-LCR-InformationList-ResourceStatusInd,
+ id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD,
+ id-PCCPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-PICH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD,
+ id-RL-InformationResponse-LCR-RL-SetupRspTDD ,
+ id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD,
+ id-TimeSlot,
+ id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD,
+ id-TimeSlotLCR-CM-Rqst,
+ id-UL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD,
+ id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD,
+ id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD,
+ id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD,
+ id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-LCR-InformationModify-AddList,
+ id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD,
+ id-UL-SIRTarget,
+ id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-Info-DM-Rqst,
+ id-PUSCH-Info-DM-Rsp,
+ id-PUSCH-Info-DM-Rprt,
+ id-RL-InformationResponse-LCR-RL-AdditionRspTDD,
+ id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD,
+ id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD,
+ id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst,
+ id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst,
+ id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst,
+ id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD,
+ id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD,
+ id-DwPCH-Power,
+ id-AccumulatedClockupdate-CellSyncReprtTDD,
+ id-HSDPA-Capability,
+ id-HSDSCH-FDD-Information,
+ id-HSDSCH-FDD-Information-Response,
+ id-HSDSCH-Information-to-Modify,
+ id-HSDSCH-Information-to-Modify-Unsynchronised,
+ id-HSDSCH-MACdFlows-to-Add,
+ id-HSDSCH-MACdFlows-to-Delete,
+ id-HSDSCH-RearrangeList-Bearer-RearrangeInd,
+ id-HSDSCH-Resources-Information-AuditRsp,
+ id-HSDSCH-Resources-Information-ResourceStatusInd,
+ id-HSDSCH-RNTI,
+ id-HSDSCH-TDD-Information,
+ id-HSDSCH-TDD-Information-Response,
+ id-HSPDSCH-RL-ID,
+ id-HSSICH-Info-DM-Rprt,
+ id-HSSICH-Info-DM-Rqst,
+ id-HSSICH-Info-DM-Rsp,
+ id-PrimCCPCH-RSCP-DL-PC-RqstTDD,
+ id-HSDSCH-FDD-Update-Information,
+ id-HSDSCH-TDD-Update-Information,
+ id-UL-Synchronisation-Parameters-LCR,
+ id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD,
+ id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD,
+ id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD,
+ id-TimingAdjustmentValueLCR,
+ id-PrimaryCCPCH-RSCP-Delta,
+
+
+ maxNrOfCCTrCHs,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodes,
+ maxNrOfCPCHs,
+ maxNrOfDCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfDSCHs,
+ maxNrOfFACHs,
+ maxNrOfRLs,
+ maxNrOfRLs-1,
+ maxNrOfRLs-2,
+ maxNrOfRLSets,
+ maxNrOfPCPCHs,
+ maxNrOfPDSCHs,
+ maxNrOfPUSCHs,
+ maxNrOfPRACHLCRs,
+ maxNrOfPDSCHSets,
+ maxNrOfPUSCHSets,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfSCCPCHs,
+ maxNrOfSCCPCHLCRs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfUSCHs,
+ maxAPSigNum,
+ maxCPCHCell,
+ maxFACHCell,
+ maxFPACHCell,
+ maxNoofLen,
+ maxRACHCell,
+ maxPCPCHCell,
+ maxPRACHCell,
+ maxSCCPCHCell,
+ maxSCPICHCell,
+ maxCellinNodeB,
+ maxCCPinNodeB,
+ maxCommunicationContext,
+ maxLocalCellinNodeB,
+ maxNrOfSlotFormatsPRACH,
+ maxIB,
+ maxIBSEG,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSICHs,
+ maxNrOfHSPDSCHs,
+ maxNrOfSyncFramesLCR,
+ maxNrOfReceptionsperSyncFrameLCR,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfMACdFlows
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstFDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstFDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstFDD,
+ pCPCHes-parameters PCPCH-CTCH-SetupRqstFDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-S-CCPCH-Offset FDD-S-CCPCH-Offset,
+ dl-ScramblingCode DL-ScramblingCode OPTIONAL,
+ -- This IE shall be present if the PCH Parameters IE is not present
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ tFCS TFCS,
+ secondary-CCPCH-SlotFormat SecondaryCCPCH-SlotFormat,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the Secondary CCPCH Slot Format is set to any of the values from 8 to 17
+ multiplexingPosition MultiplexingPosition,
+ powerOffsetInformation PowerOffsetInformation-CTCH-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ fACH-Parameters FACH-ParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstFDD
+
+FACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ maxFACH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+{ ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstFDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pCH-Power DL-Power,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pICH-Power PICH-Power,
+ pICH-Mode PICH-Mode,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ scramblingCodeNumber ScramblingCodeNumber,
+ tFCS TFCS,
+ preambleSignatures PreambleSignatures,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-SetupRqstFDD,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers,
+ ul-punctureLimit PunctureLimit,
+ preambleThreshold PreambleThreshold,
+ rACH-Parameters RACH-Parameters-CTCH-SetupRqstFDD,
+ aICH-Parameters AICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ rACHSlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ RACH-ParametersIE-CTCH-SetupRqstFDD }}
+
+RACH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE RACH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+RACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-TransmissionTiming AICH-TransmissionTiming,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ cPCH-Parameters CPCH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ aPPreambleScramblingCode CPCHScramblingCodeNumber,
+ cDPreambleScramblingCode CPCHScramblingCodeNumber,
+ tFCS TFCS,
+ cDSignatures PreambleSignatures OPTIONAL,
+ cDSubChannelNumbers CDSubChannelNumbers OPTIONAL,
+ punctureLimit PunctureLimit,
+ cPCH-UL-DPCCH-SlotFormat CPCH-UL-DPCCH-SlotFormat,
+ uL-SIR UL-SIR,
+ initialDL-transmissionPower DL-Power,
+ maximumDLPower DL-Power,
+ minimumDLPower DL-Power,
+ pO2-ForTPC-Bits PowerOffset,
+ fDD-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ nStartMessage NStartMessage,
+ nEOT NEOT,
+ channel-Assignment-Indication Channel-Assignment-Indication,
+ cPCH-Allowed-Total-Rate CPCH-Allowed-Total-Rate,
+ pCPCHChannelInfomation PCPCHChannelInformationList-CTCH-SetupRqstFDD,
+ vCAMMapping-Information VCAMMapping-InformationList-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is set to "CA Active" --
+ aP-AICH-Parameters AP-AICH-Parameters-CTCH-SetupRqstFDD,
+ cDCA-ICH-Parameters CDCA-ICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCPCHChannelInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfPCPCHs)) OF PCPCHChannelInformationItem-CTCH-SetupRqstFDD
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cPCHScramblingCodeNumber CPCHScramblingCodeNumber,
+ dL-ScramblingCode DL-ScramblingCode,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pCP-Length PCP-Length,
+ uCSM-Information UCSM-Information-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is equal to "CA Inactive" --
+ iE-Extensions ProtocolExtensionContainer { { PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UCSM-Information-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ channelRequestParameters ChannelRequestParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChannelRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF ChannelRequestParametersItem-CTCH-SetupRqstFDD
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VCAMMapping-InformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNoofLen)) OF VCAMMapping-InformationItem-CTCH-SetupRqstFDD
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ max-Number-of-PCPCHes Max-Number-of-PCPCHes,
+ sFRequestParameters SFRequestParametersList-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF SFRequestParametersItem-CTCH-SetupRqstFDD
+
+SFRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION::= {
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aP-AICH-Power AICH-Power,
+ cSICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ cDCA-ICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstTDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstTDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstTDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstTDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ sCCPCH-CCTrCH-ID CCTrCH-ID, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCS TFCS, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ secondaryCCPCH-parameterList Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD,
+ fACH-ParametersList FACH-ParametersList-CTCH-SetupRqstTDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD }}
+
+Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeslot TimeSlot,
+ midambleShiftandBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstTDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstTDD
+
+FACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ fACH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet, -- For the DL.
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PICH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PICH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ second-TDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHLCRs)) OF Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ s-CCPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ pRACH-Parameters-CTCH-SetupRqstTDD PRACH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PRACH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PRACH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-LCR-ParametersList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ maxPRACH-MidambleShifts MaxPRACH-MidambleShifts,
+ pRACH-Midamble PRACH-Midamble,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameter-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ RACH-ParameterIE-CTCH-SetupRqstTDD }}
+
+RACH-ParameterIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParameterItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE RACH-ParameterItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-TransportFormatSet TransportFormatSet, -- For the UL
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfPRACHLCRs)) OF PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslotLCR TimeSlotLCR,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ fPACH-Power FPACH-Power,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersList-CTCH-SetupRsp CRITICALITY ignore TYPE FACH-CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-RACH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CPCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-CommonTransportChannel-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF CommonTransportChannel-InformationResponse
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CommonPhysicalChannelType-CTCH-ReconfRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-ReconfRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCHList-CTCH-ReconfRqstFDD,
+ pRACH-parameters PRACHList-CTCH-ReconfRqstFDD,
+ cPCH-parameters CPCHList-CTCH-ReconfRqstFDD,
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ fACH-ParametersList-CTCH-ReconfRqstFDD FACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ pCH-Parameters-CTCH-ReconfRqstFDD PCH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ pICH-Parameters-CTCH-ReconfRqstFDD PICH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxFACHCell)) OF FACH-ParametersItem-CTCH-ReconfRqstFDD
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ maxFACH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PCH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PICH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ pRACH-ParametersList-CTCH-ReconfRqstFDD PRACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aICH-ParametersList-CTCH-ReconfRqstFDD AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+PRACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PRACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PRACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF PRACH-ParametersItem-CTCH-ReconfRqstFDD
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ preambleSignatures PreambleSignatures OPTIONAL,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD OPTIONAL,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ rACH-SlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ cPCH-ParametersList-CTCH-ReconfRqstFDD CPCH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aP-AICH-ParametersList-CTCH-ReconfRqstFDD AP-AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ cDCA-ICH-ParametersList-CTCH-ReconfRqstFDD CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CPCH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CPCH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CPCH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CPCH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CPCH-ParametersItem-CTCH-ReconfRqstFDD
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-SIR UL-SIR OPTIONAL,
+ initialDL-transmissionPower DL-Power OPTIONAL,
+ maximumDLPower DL-Power OPTIONAL,
+ minimumDLPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AP-AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF AP-AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AP-AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aP-AICH-Power AICH-Power OPTIONAL,
+ cSICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD
+
+CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cDCA-ICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PICH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PICH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-FACH-ParametersList-CTCH-ReconfRqstTDD CRITICALITY reject TYPE FACH-ParametersList-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }, -- Mandatory For 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ secondaryCCPCHList Secondary-CCPCHList-CTCH-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD }}
+
+Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCHListIE-CTCH-ReconfRqstTDD PRESENCE mandatory }
+}
+
+Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCHItem-CTCH-ReconfRqstTDD
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCCPCH-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-ReconfRqstTDD
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ ... -- Applicable to 1.28Mcps TDD only
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ fPACHPower FPACH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION REQUEST
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory}|
+ { ID id-CommonPhysicalChannelID CRITICALITY reject TYPE CommonPhysicalChannelID PRESENCE mandatory}|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory},
+ ...
+}
+
+CommonTransportChannelDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE REQUEST
+--
+-- **************************************************************
+
+BlockResourceRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BlockingPriorityIndicator CRITICALITY reject TYPE BlockingPriorityIndicator PRESENCE mandatory }|
+ { ID id-ShutdownTimer CRITICALITY reject TYPE ShutdownTimer PRESENCE conditional },
+ -- The IE shall be present if the Blocking Priority Indicator IE indicates "Normal Priority"--
+ ...
+}
+
+BlockResourceRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE RESPONSE
+--
+-- **************************************************************
+
+BlockResourceResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+BlockResourceResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE FAILURE
+--
+-- **************************************************************
+
+BlockResourceFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+BlockResourceFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UNBLOCK RESOURCE INDICATION
+--
+-- **************************************************************
+
+UnblockResourceIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UnblockResourceIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UnblockResourceIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+UnblockResourceIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+UnblockResourceIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUIRED INDICATION
+--
+-- **************************************************************
+
+AuditRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ ...
+}
+
+AuditRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUEST
+--
+-- **************************************************************
+
+AuditRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Start-Of-Audit-Sequence-Indicator CRITICALITY reject TYPE Start-Of-Audit-Sequence-Indicator PRESENCE mandatory },
+ ...
+}
+
+AuditRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT RESPONSE
+--
+-- **************************************************************
+
+AuditResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-End-Of-Audit-Sequence-Indicator CRITICALITY ignore TYPE End-Of-Audit-Sequence-Indicator PRESENCE mandatory }|
+ { ID id-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CCP-InformationList-AuditRsp CRITICALITY ignore TYPE CCP-InformationList-AuditRsp PRESENCE optional }|
+ -- CCP (Communication Control Port) --
+ { ID id-Local-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-AuditRsp PRESENCE optional },
+ ...
+}
+
+Cell-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-AuditRsp}}
+
+Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Cell-InformationItem-AuditRsp PRESENCE optional }
+}
+
+Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ c-ID C-ID,
+ configurationGenerationID ConfigurationGenerationID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ local-Cell-ID Local-Cell-ID,
+ primary-SCH-Information P-SCH-Information-AuditRsp OPTIONAL,
+ secondary-SCH-Information S-SCH-Information-AuditRsp OPTIONAL,
+ primary-CPICH-Information P-CPICH-Information-AuditRsp OPTIONAL,
+ secondary-CPICH-InformationList S-CPICH-InformationList-AuditRsp OPTIONAL,
+ primary-CCPCH-Information P-CCPCH-Information-AuditRsp OPTIONAL,
+ bCH-Information BCH-Information-AuditRsp OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-AuditRsp OPTIONAL,
+ pCH-Information PCH-Information-AuditRsp OPTIONAL,
+ pICH-Information PICH-Information-AuditRsp OPTIONAL,
+ fACH-InformationList FACH-InformationList-AuditRsp OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-AuditRsp OPTIONAL,
+ rACH-InformationList RACH-InformationList-AuditRsp OPTIONAL,
+ aICH-InformationList AICH-InformationList-AuditRsp OPTIONAL,
+ pCPCH-InformationList PCPCH-InformationList-AuditRsp OPTIONAL,
+ cPCH-InformationList CPCH-InformationList-AuditRsp OPTIONAL,
+ aP-AICH-InformationList AP-AICH-InformationList-AuditRsp OPTIONAL,
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-AuditRsp OPTIONAL,
+ sCH-Information SCH-Information-AuditRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-AuditRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-AuditRsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-AuditRsp CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-AuditRsp PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-AuditRsp }}
+
+P-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-AuditRsp }}
+
+S-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-AuditRsp }}
+
+P-CPICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-AuditRsp }}
+
+S-CPICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-AuditRsp }}
+
+P-CCPCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ BCH-InformationIE-AuditRsp }}
+
+BCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-AuditRsp }}
+
+S-CCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+PCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PCH-InformationIE-AuditRsp }}
+
+PCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PICH-InformationIE-AuditRsp }}
+
+PICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-AuditRsp }}
+
+FACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-AuditRsp }}
+
+PRACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-AuditRsp }}
+
+RACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-AuditRsp }}
+
+AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-AuditRsp }}
+
+PCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-AuditRsp }}
+
+CPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-AuditRsp }}
+
+AP-AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CDCA-ICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-AuditRsp }}
+
+CDCA-ICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ SCH-InformationIE-AuditRsp }}
+
+SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CCP-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-AuditRsp }}
+
+CCP-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ {ID id-CCP-InformationItem-AuditRsp CRITICALITY ignore TYPE CCP-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+CCP-InformationItem-AuditRsp ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ CCP-InformationItem-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-AuditRsp }}
+
+FPACH-LCR-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information-AuditRsp CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-AuditRsp ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Local-Cell-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-AuditRsp }}
+
+Local-Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Power-Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer {{ Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT FAILURE
+--
+-- **************************************************************
+
+AuditFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rqst CRITICALITY reject TYPE CommonMeasurementObjectType-CM-Rqst PRESENCE mandatory }|
+ { ID id-CommonMeasurementType CRITICALITY reject TYPE CommonMeasurementType PRESENCE mandatory }|
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional }|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory }|
+ { ID id-SFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY reject EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rqst ::= CHOICE {
+ cell Cell-CM-Rqst,
+ rACH RACH-CM-Rqst,
+ cPCH CPCH-CM-Rqst,
+ ...
+}
+
+Cell-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ timeSlot TimeSlot OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotLCR-CM-Rqst CRITICALITY reject EXTENSION TimeSlotLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-NeighbouringCellMeasurementInformation CRITICALITY ignore EXTENSION NeighbouringCellMeasurementInformation PRESENCE optional },
+ ...
+}
+
+RACH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ spreadingfactor MinUL-ChannelisationCodeLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rsp CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rsp PRESENCE optional }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY ignore EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rsp ::= CHOICE {
+ cell Cell-CM-Rsp,
+ rACH RACH-CM-Rsp,
+ cPCH CPCH-CM-Rsp,
+ ...
+ }
+
+Cell-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT REPORT
+--
+-- **************************************************************
+
+CommonMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rprt CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rprt PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rprt ::= CHOICE {
+ cell Cell-CM-Rprt,
+ rACH RACH-CM-Rprt,
+ cPCH CPCH-CM-Rprt,
+ ...
+ }
+
+Cell-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RACH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ RACHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CPCHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory},
+ ...
+}
+
+CommonMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+CommonMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+CommonMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CellSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-T-Cell CRITICALITY reject TYPE T-Cell PRESENCE mandatory }|
+ { ID id-UARFCNforNu CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-UARFCNforNd CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-Closed-Loop-Timing-Adjustment-Mode CRITICALITY reject TYPE Closedlooptimingadjustmentmode PRESENCE optional }|
+ { ID id-PrimaryScramblingCode CRITICALITY reject TYPE PrimaryScramblingCode PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DL-TPC-Pattern01Count CRITICALITY reject TYPE DL-TPC-Pattern01Count PRESENCE mandatory }|
+ { ID id-PrimarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-PrimaryCPICH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-SetupRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Limited-power-increase-information-Cell-SetupRqstFDD CRITICALITY reject TYPE Limited-power-increase-information-Cell-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CellSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-SetupRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-SetupRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-SetupRqstFDD PRESENCE mandatory}
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ dl-ScramblingCode DL-ScramblingCode,
+ fDD-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ secondaryCPICH-Power DL-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ bCH-information BCH-Information-Cell-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD ::= SEQUENCE {
+ powerRaiseLimit PowerRaiseLimit,
+ dLPowerAveragingWindowSize DLPowerAveragingWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ maximum-PDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CellSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-UARFCNforNt CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-CellParameterID CRITICALITY reject TYPE CellParameterID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-TransmissionDiversityApplied CRITICALITY reject TYPE TransmissionDiversityApplied PRESENCE mandatory }|
+ { ID id-SyncCase CRITICALITY reject TYPE SyncCase PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE mandatory }|
+ { ID id-SCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-PCCPCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-TimeSlotConfigurationList-Cell-SetupRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-SetupRqstTDD PRESENCE optional }, -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ ...
+}
+
+CellSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PCCPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION PCCPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-ReferenceSFNoffset CRITICALITY ignore EXTENSION ReferenceSFNoffset PRESENCE optional }|
+ { ID id-IPDLParameter-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-SetupRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+SCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ syncCaseIndicator SyncCaseIndicator-Cell-SetupRqstTDD-PSCH,
+ sCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncCaseIndicator-Cell-SetupRqstTDD-PSCH ::= ProtocolIE-Single-Container {{ SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH }}
+
+SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH CRITICALITY reject TYPE SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH PRESENCE mandatory }
+}
+
+SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ::= CHOICE {
+ case1 Case1-Cell-SetupRqstTDD,
+ case2 Case2-Cell-SetupRqstTDD,
+ ...
+}
+
+Case1-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case1Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case1Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Case2-Cell-SetupRqstTDD ::= SEQUENCE {
+ sCH-TimeSlot SCH-TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case2Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case2Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PCCPCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ tSTD-Indicator TSTD-Indicator,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP RESPONSE
+--
+-- **************************************************************
+
+CellSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP FAILURE
+--
+-- **************************************************************
+
+CellSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-PrimarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCPICH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+CellReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD PRESENCE mandatory }
+}
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondaryCPICH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ bCH-information BCH-information-Cell-ReconfRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ maximumPDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE optional }|
+ { ID id-SCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only
+ { ID id-PCCPCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-TimeSlotConfigurationList-Cell-ReconfRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-ReconfRqstTDD PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+ ...
+}
+
+CellReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-IPDLParameter-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-ReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+SCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PSCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PSCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pCCPCH-Power PCCPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CellReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CellReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION REQUEST
+--
+-- **************************************************************
+
+CellDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+CellDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION RESPONSE
+--
+-- **************************************************************
+
+CellDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESOURCE STATUS INDICATION
+--
+-- **************************************************************
+
+ResourceStatusIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResourceStatusIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ResourceStatusIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-IndicationType-ResourceStatusInd CRITICALITY ignore TYPE IndicationType-ResourceStatusInd PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+ResourceStatusIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IndicationType-ResourceStatusInd ::= CHOICE {
+ no-Failure No-Failure-ResourceStatusInd,
+ serviceImpacting ServiceImpacting-ResourceStatusInd,
+ ...
+}
+
+No-Failure-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList-ResourceStatusInd,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { No-FailureItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-FailureItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ local-CellID Local-Cell-ID,
+ addorDeleteIndicator AddorDeleteIndicator,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add" and the Local Cell is related to a TDD cell
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServiceImpacting-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList2-ResourceStatusInd OPTIONAL,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList2-ResourceStatusInd OPTIONAL,
+ cCP-InformationList CCP-InformationList-ResourceStatusInd OPTIONAL,
+ cell-InformationList Cell-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ServiceImpactingItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServiceImpactingItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList2-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ maximum-DL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCP-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-ResourceStatusInd }}
+
+CCP-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCP-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE CCP-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+CCP-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { CCP-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-ResourceStatusInd }}
+
+Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ c-ID C-ID,
+ resourceOperationalState ResourceOperationalState OPTIONAL,
+ availabilityStatus AvailabilityStatus OPTIONAL,
+ primary-SCH-Information P-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-SCH-Information S-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CPICH-Information P-CPICH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-CPICH-Information S-CPICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CCPCH-Information P-CCPCH-Information-ResourceStatusInd OPTIONAL,
+ bCH-Information BCH-Information-ResourceStatusInd OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-ResourceStatusInd OPTIONAL,
+ pCH-Information PCH-Information-ResourceStatusInd OPTIONAL,
+ pICH-Information PICH-Information-ResourceStatusInd OPTIONAL,
+ fACH-InformationList FACH-InformationList-ResourceStatusInd OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-ResourceStatusInd OPTIONAL,
+ rACH-InformationList RACH-InformationList-ResourceStatusInd OPTIONAL,
+ aICH-InformationList AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ pCPCH-InformationList PCPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cPCH-InformationList CPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ aP-AICH-InformationList AP-AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ sCH-Information SCH-Information-ResourceStatusInd OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-Information-ResourceStatusInd CRITICALITY ignore EXTENSION DwPCH-LCR-Information-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-ResourceStatusInd CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-ResourceStatusInd }}
+
+P-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-ResourceStatusInd }}
+
+S-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-ResourceStatusInd }}
+
+P-CPICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-ResourceStatusInd }}
+
+S-CPICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-ResourceStatusInd }}
+
+P-CCPCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ BCH-InformationIE-ResourceStatusInd }}
+
+BCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-ResourceStatusInd }}
+
+S-CCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PCH-InformationIE-ResourceStatusInd }}
+
+PCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PICH-InformationIE-ResourceStatusInd }}
+
+PICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-ResourceStatusInd }}
+
+FACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-ResourceStatusInd }}
+
+PRACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-ResourceStatusInd }}
+
+RACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-ResourceStatusInd }}
+
+AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-ResourceStatusInd }}
+
+PCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-ResourceStatusInd }}
+
+CPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-ResourceStatusInd }}
+
+AP-AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CDCA-ICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-ResourceStatusInd }}
+
+CDCA-ICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ SCH-InformationIE-ResourceStatusInd }}
+
+SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FPACH-LCR-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-ResourceStatusInd }}
+
+FPACH-LCR-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+DwPCH-LCR-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ DwPCH-LCR-InformationIE-ResourceStatusInd }}
+
+DwPCH-LCR-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-DwPCH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE REQUEST
+--
+-- **************************************************************
+
+SystemInformationUpdateRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BCCH-ModificationTime CRITICALITY reject TYPE BCCH-ModificationTime PRESENCE optional }|
+ { ID id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst CRITICALITY reject TYPE MIB-SB-SIB-InformationList-SystemInfoUpdateRqst PRESENCE mandatory },
+ ...
+}
+
+SystemInformationUpdateRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ::= SEQUENCE (SIZE (1..maxIB)) OF MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst ::= SEQUENCE {
+ iB-Type IB-Type,
+ iB-OC-ID IB-OC-ID,
+ deletionIndicator DeletionIndicator-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DeletionIndicator-SystemInfoUpdate ::= CHOICE {
+ no-Deletion No-Deletion-SystemInfoUpdate,
+ yes-Deletion NULL
+
+}
+
+No-Deletion-SystemInfoUpdate ::= SEQUENCE {
+ sIB-Originator SIB-Originator OPTIONAL,
+ -- This IE shall be present if the IB-Type IE is set to "SIB"
+ iB-SG-REP IB-SG-REP OPTIONAL,
+ segmentInformationList SegmentInformationList-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { No-DeletionItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-DeletionItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SegmentInformationList-SystemInfoUpdate ::= ProtocolIE-Single-Container {{ SegmentInformationListIEs-SystemInfoUpdate }}
+
+SegmentInformationListIEs-SystemInfoUpdate NBAP-PROTOCOL-IES ::= {
+ { ID id-SegmentInformationListIE-SystemInfoUpdate CRITICALITY reject TYPE SegmentInformationListIE-SystemInfoUpdate PRESENCE mandatory }
+}
+
+SegmentInformationListIE-SystemInfoUpdate ::= SEQUENCE (SIZE (1..maxIBSEG)) OF SegmentInformationItem-SystemInfoUpdate
+
+SegmentInformationItem-SystemInfoUpdate ::= SEQUENCE {
+ iB-SG-POS IB-SG-POS OPTIONAL,
+ segment-Type Segment-Type OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iB-SG-DATA IB-SG-DATA OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iE-Extensions ProtocolExtensionContainer { { SegmentInformationItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SegmentInformationItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE RESPONSE
+--
+-- **************************************************************
+
+SystemInformationUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+SystemInformationUpdateResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE FAILURE
+--
+-- **************************************************************
+
+SystemInformationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SystemInformationUpdateFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DCH-FDD-Information CRITICALITY reject TYPE DCH-FDD-Information PRESENCE mandatory }|
+ { ID id-DSCH-FDD-Information CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional }|
+ { ID id-TFCI2-Bearer-Information-RL-SetupRqstFDD CRITICALITY ignore TYPE TFCI2-Bearer-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY reject TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-DL-PowerBalancing-Information CRITICALITY ignore EXTENSION DL-PowerBalancing-Information PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional },
+ -- The IE shall be present if HS-DSCH Information IE is present
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if Min UL Channelisation Code length IE is set to 4 --
+ ul-PunctureLimit PunctureLimit,
+ tFCS TFCS,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat,
+ ul-SIR-Target UL-SIR,
+ diversityMode DiversityMode,
+ sSDT-CellID-Length SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DPC-Mode CRITICALITY reject EXTENSION DPC-Mode PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ tFCS TFCS,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat,
+ tFCI-SignallingMode TFCI-SignallingMode,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- this IE shall be present if the DL DPCH slot format IE is set to any of the values from 12 to 16 --
+ multiplexingPosition MultiplexingPosition,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ powerOffsetInformation PowerOffsetInformation-RL-SetupRqstFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO2-ForTPC-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF
+ ProtocolIE-Single-Container{{ RL-InformationItemIE-RL-SetupRqstFDD }}
+
+RL-InformationItemIE-RL-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-SetupRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-SetupRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ firstRLS-indicator FirstRLS-Indicator,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ propagationDelay PropagationDelay OPTIONAL,
+ diversityControlField DiversityControlField OPTIONAL,
+ -- This IE shall be present if the RL is not the first one in the RL Information IE
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE in UL DPCH Information group is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DCH-TDD-Information CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-TDD-Information CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-USCH-Information CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-RL-Information-RL-SetupRqstTDD CRITICALITY reject TYPE RL-Information-RL-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE(1..maxNrOfCCTrCHs)) OF
+ ProtocolIE-Single-Container{{ UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ uL-DPCH-Information UL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION UL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ UL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+UL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container{{ DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ tdd-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize,
+ cCTrCH-TPCList CCTrCH-TPCList-RL-SetupRqstTDD OPTIONAL,
+ dL-DPCH-Information DL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION DL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+CCTrCH-TPCList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCItem-RL-SetupRqstTDD
+
+CCTrCH-TPCItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ DL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+DL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ tstdIndicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ specialBurstScheduling SpecialBurstScheduling,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory}|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory}|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory}|
+ { ID id-RL-InformationResponseList-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-SetupRspFDD PRESENCE mandatory}|
+ { ID id-TFCI2-BearerInformationResponse CRITICALITY ignore TYPE TFCI2-BearerInformationResponse PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+RadioLinkSetupResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional}, ...
+}
+
+RL-InformationResponseList-RL-SetupRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container{{ RL-InformationResponseItemIE-RL-SetupRspFDD }}
+
+RL-InformationResponseItemIE-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-SetupRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupRspFDD,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspFDD OPTIONAL,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupRspFDD ::= CHOICE {
+ combining Combining-RL-SetupRspFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupRspFDD
+}
+
+Combining-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Combining-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Combining-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-SetupRspFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspFDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-SetupRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-SetupRspTDD PRESENCE optional }|
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-SetupRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-SetupRspTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container{{ DCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory}
+ }
+
+DSCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+USCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-LCR-Info UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE conditional }|
+ -- This IE shall be present if at least one of the radio links has been successfully set up
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE optional }|
+ { ID id-CauseLevel-RL-SetupFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-SetupFailureFDD Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD,
+ successful-RL-InformationRespList-RL-SetupFailureFDD Successful-RL-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional},
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1.. maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupFailureFDD,
+ dSCH-InformationResponseList DSCH-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- There shall be only one TFCI2 bearer per Node B Communication Context.
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupFailureFDD ::= CHOICE {
+ combining Combining-RL-SetupFailureFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupFailureFDD
+}
+
+Combining-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationRespList-RL-SetupFailureFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationRespListIEs-RL-SetupFailureFDD }}
+
+DSCH-InformationRespListIEs-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-SetupFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-SetupFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Compressed-Mode-Deactivation-Flag CRITICALITY reject TYPE Compressed-Mode-Deactivation-Flag PRESENCE optional }|
+ { ID id-RL-InformationList-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-AdditionRqstFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-AdditionRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-AdditionRqstFDD}}
+
+RL-InformationItemIE-RL-AdditionRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-AdditionRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-AdditionRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ diversityControlField DiversityControlField,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-TransmissionPower DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ sSDT-CellIdentity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-AdditionRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-AdditionRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional}|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE UL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE DL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-AdditionRqstTDD CRITICALITY reject TYPE RL-Information-RL-AdditionRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ uL-DPCH-Information UL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84cps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28cps TDD only
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+-- Applicable to 1.28cps TDD only
+ ...
+}
+
+UL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+UL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE optional} -- For 3.84Mcps TDD only
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dL-DPCH-Information DL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+DL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE mandatory}
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-AdditionRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ diversityControlField DiversityControlField,
+ initial-DL-Transmission-Power DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-information-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-information-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-AdditionRspFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationResponseList-RL-AdditionRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-AdditionRspFDD }}
+
+RL-InformationResponseItemIE-RL-AdditionRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-AdditionRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionRspFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionRspFDD ::= CHOICE {
+ combining Combining-RL-AdditionRspFDD,
+ non-combining Non-Combining-RL-AdditionRspFDD
+}
+
+Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-AdditionRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-AdditionRspTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-AdditionRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-AdditionRspTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD ::= SEQUENCE {
+ diversityIndication DiversityIndication-RL-AdditionRspTDD,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Information-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiversityIndication-RL-AdditionRspTDD ::= CHOICE {
+ combining Combining-RL-AdditionRspTDD, -- Indicates whether the old Transport Bearer shall be reused or not
+ non-Combining Non-Combining-RL-AdditionRspTDD
+}
+
+Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID, -- Reference RL
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+USCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-InfoLCR UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD,
+ successful-RL-InformationRespList-RL-AdditionFailureFDD Successful-RL-InformationRespList-RL-AdditionFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-2)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionFailureFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionFailureFDD ::= CHOICE {
+ combining Combining-RL-AdditionFailureFDD,
+ non-Combining Non-Combining-RL-AdditionFailureFDD
+}
+
+Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional } |
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional } |
+ { ID id-DCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCH-ModifyList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCHs-to-Add-FDD CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional } |
+ { ID id-DSCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD CRITICALITY reject TYPE TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD
+ PRESENCE optional } |
+ { ID id-RL-InformationList-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfPrepFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength OPTIONAL,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if minUL-ChannelisationCodeLength Ie is set to 4
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ tFCS TFCS OPTIONAL,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat OPTIONAL,
+ diversityMode DiversityMode OPTIONAL,
+ sSDT-CellIDLength SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ tFCS TFCS OPTIONAL,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the DL DPCH Slot Format IE is set to any of the values from 12 to 16
+ multiplexingPosition MultiplexingPosition OPTIONAL,
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepFDD
+
+DCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-ModifyList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-ModifyItemIE-RL-ReconfPrepFDD }}
+
+DSCH-ModifyItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-ModifyItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-DeleteItemIE-RL-ReconfPrepFDD }}
+
+DSCH-DeleteItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-DeleteItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ::= CHOICE {
+ addOrModify AddOrModify-TFCI2-RL-ReconfPrepFDD,
+ delete NULL
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY reject EXTENSION TFCI2BearerRequestIndicator PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfPrepFDD }}
+
+RL-InformationItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ sSDT-Indication SSDT-Indication OPTIONAL,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ -- The IE shall be present if the SSDT Indication IE is set to "SSDT Active in the UE"
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE is present in UL DPCH Information IE and it is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DL-DPCH-TimingAdjustment CRITICALITY reject EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional }|
+ { ID id-Secondary-CPICH-Information-Change CRITICALITY ignore EXTENSION Secondary-CPICH-Information-Change PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCHs-to-Add-TDD CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-Add CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-USCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject TYPE RL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 1st RL IE repetition
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION MultipleRL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 2nd and beyond repetition of RL information,
+ ...
+}
+
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+-- This Information is the for the first RL repetition, TPCinformation for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional}|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link repetitions.
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationListLCR UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationModify-AddList CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+-- This Information is the for the first RL repetition, Step Size information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationAddListLCR UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ uL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 1.28Mcps TDD only
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ cCTrCH-TPCList CCTrCH-TPCAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This DL step size is the for the first RL repetition, DL step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationListLCR DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ cCTrCH-Initial-DL-Power DL-Power OPTIONAL,
+ tDD-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCAddItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ cCTrCH-TPCList CCTrCH-TPCModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This Step Size Information is the for the first RL repetition, step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-dl-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddListLCR DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ tDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCModifyItem-RL-ReconfPrepTDD
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+-- Applicable to 3.84Mcps TDD only
+
+DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ dL-Timeslot-InformationAddModify-ModifyList-RL-ReconfPrepTDD DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional },
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs)) OF DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepTDD
+
+DCH-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID OPTIONAL,
+ -- DL CCTrCH in which the DSCH is mapped
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DSCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ cCTrCH-ID CCTrCH-ID OPTIONAL, -- UL CCTrCH in which the USCH is mapped
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleRL-Information-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfPrepTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-InitDL-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION READY
+--
+-- **************************************************************
+
+RadioLinkReconfigurationReady ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationReady-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationReady-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationReady-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfReady PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationReady-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfReady ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-ReconfReady}}
+
+RL-InformationResponseItemIE-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfReady PRESENCE mandatory }
+}
+
+RL-InformationResponseItem-RL-ReconfReady ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfReady DCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ dSCH-InformationResponseList-RL-ReconfReady DSCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ uSCH-InformationResponseList-RL-ReconfReady USCH-InformationResponseList-RL-ReconfReady OPTIONAL, -- TDD only
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- FDD only. There shall be only one TFCI2 bearer per Node B Communication Context.
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfReady-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfReady-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional},
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DSCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-ReconfReady }}
+
+USCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CauseLevel-RL-ReconfFailure CRITICALITY ignore TYPE CauseLevel-RL-ReconfFailure PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-RL-ReconfFailure,
+ rLSpecificCause RLSpecificCauseList-RL-ReconfFailure,
+ ...
+}
+
+GeneralCauseList-RL-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GeneralCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-ReconfFailure ::= SEQUENCE {
+ rL-ReconfigurationFailureList-RL-ReconfFailure RL-ReconfigurationFailureList-RL-ReconfFailure OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RLSpecificCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-ReconfigurationFailureList-RL-ReconfFailure ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-ReconfigurationFailureItemIE-RL-ReconfFailure}}
+
+RL-ReconfigurationFailureItemIE-RL-ReconfFailure NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-ReconfigurationFailureItem-RL-ReconfFailure CRITICALITY ignore TYPE RL-ReconfigurationFailureItem-RL-ReconfFailure PRESENCE mandatory}
+}
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION COMMIT
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCommit ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCommit-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCommit-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCommit-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY ignore TYPE CFN PRESENCE mandatory }|
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+RadioLinkReconfigurationCommit-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION CANCEL
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCancel-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCancel-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCancel-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory },
+ ...
+}
+
+RadioLinkReconfigurationCancel-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-DL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+
+UL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ ul-TFCS TFCS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ dl-TFCS TFCS OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstFDD
+
+DCH-DeleteItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfRqstFDD}}
+
+RL-InformationItemIE-RL-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+-- The IE shall be present if the Transmission Gap Pattern Sequence Information IE is included and the indicated Downlink Compressed Mode method for at least one of the included Transmission Gap Pattern Sequence is set to "SF/2".
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject TYPE RL-Information-RL-ReconfRqstTDD PRESENCE optional },
+-- This RL-Information-RL-ReconfRqstTDD is the first RL information repetition in the RL-Information List. Repetition 2 and on, should be defined in Multiple-RL-Information-RL-ReconfRqstTDD,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject EXTENSION Multiple-RL-Information-RL-ReconfRqstTDD PRESENCE optional }|
+--Includes the 2nd through the max number of radio link information repetitions.
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE {
+ dL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ maxPowerLCR DL-Power OPTIONAL,
+ minPowerLCR DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstTDD
+
+DCH-DeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-RL-Information-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfRqstTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationResponseList-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfRsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfRsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationResponseItemIE-RL-ReconfRsp}}
+
+RL-InformationResponseItemIE-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfRsp PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-ReconfRsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfRsp DCH-InformationResponseList-RL-ReconfRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfRsp::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfRsp }}
+
+DCH-InformationResponseListIEs-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION REQUEST
+--
+-- **************************************************************
+
+RadioLinkDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-informationList-RL-DeletionRqst CRITICALITY notify TYPE RL-informationList-RL-DeletionRqst PRESENCE mandatory },
+ ...
+}
+
+RadioLinkDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-informationList-RL-DeletionRqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-informationItemIE-RL-DeletionRqst}}
+
+RL-informationItemIE-RL-DeletionRqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-informationItem-RL-DeletionRqst CRITICALITY notify TYPE RL-informationItem-RL-DeletionRqst PRESENCE mandatory}
+}
+
+RL-informationItem-RL-DeletionRqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-informationItem-RL-DeletionRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-informationItem-RL-DeletionRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DL POWER CONTROL REQUEST FDD
+--
+-- **************************************************************
+
+DL-PowerControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-PowerAdjustmentType CRITICALITY ignore TYPE PowerAdjustmentType PRESENCE mandatory} |
+ { ID id-DLReferencePower CRITICALITY ignore TYPE DL-Power PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common'
+ { ID id-InnerLoopDLPCStatus CRITICALITY ignore TYPE InnerLoopDLPCStatus PRESENCE optional } |
+ { ID id-DLReferencePowerList-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationList-DL-PC-Rqst PRESENCE conditional } |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Individual'
+ { ID id-MaxAdjustmentStep CRITICALITY ignore TYPE MaxAdjustmentStep PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentPeriod CRITICALITY ignore TYPE AdjustmentPeriod PRESENCE conditional }|
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentRatio CRITICALITY ignore TYPE ScaledAdjustmentRatio PRESENCE conditional },
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ ...
+}
+
+DL-PowerControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList-DL-PC-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{DL-ReferencePowerInformationItemIE-DL-PC-Rqst }}
+
+DL-ReferencePowerInformationItemIE-DL-PC-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-ReferencePowerInformationItem-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationItem-DL-PC-Rqst PRESENCE mandatory
+}
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-ReferencePower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DL POWER TIMESLOT CONTROL REQUEST TDD
+--
+-- **************************************************************
+
+DL-PowerTimeslotControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerTimeslotControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerTimeslotControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerTimeslotControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-TimeslotISCPInfo CRITICALITY ignore TYPE DL-TimeslotISCPInfo PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+ ...
+}
+
+DL-PowerTimeslotControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PrimCCPCH-RSCP-DL-PC-RqstTDD CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP PRESENCE optional }|
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rqst CRITICALITY reject TYPE DedicatedMeasurementObjectType-DM-Rqst PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementType CRITICALITY reject TYPE DedicatedMeasurementType PRESENCE mandatory } |
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional } |
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory } |
+ { ID id-CFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY reject TYPE CFN PRESENCE optional } ,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NumberOfReportedCellPortions CRITICALITY reject EXTENSION NumberOfReportedCellPortions PRESENCE conditional },
+ -- The IE shall be present if the Dedicated Measurement Type IE is set to "Best Cell Portions", FDD only.
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rqst ::= CHOICE {
+ rL RL-DM-Rqst,
+ rLS RL-Set-DM-Rqst, -- for FDD only
+ all-RL AllRL-DM-Rqst,
+ all-RLS AllRL-Set-DM-Rqst, -- for FDD only
+ ...
+}
+
+RL-DM-Rqst ::= SEQUENCE {
+ rL-InformationList RL-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rqst }}
+
+RL-InformationItemIE-DM-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rqst CRITICALITY reject TYPE RL-InformationItem-DM-Rqst PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PUSCH-Info-DM-Rqst CRITICALITY reject EXTENSION PUSCH-Info-DM-Rqst PRESENCE optional}|
+ -- TDD only
+ { ID id-HSSICH-Info-DM-Rqst CRITICALITY reject EXTENSION HSSICH-Info-DM-Rqst PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+HSSICH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID
+
+RL-Set-DM-Rqst ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rqst RL-Set-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rqst ::= SEQUENCE (SIZE(1..maxNrOfRLSets)) OF RL-Set-InformationItem-DM-Rqst
+
+RL-Set-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllRL-DM-Rqst ::= NULL
+
+
+AllRL-Set-DM-Rqst ::= NULL
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rsp CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rsp ::= CHOICE {
+ rL RL-DM-Rsp,
+ rLS RL-Set-DM-Rsp, -- for FDD only
+ all-RL RL-DM-Rsp,
+ all-RLS RL-Set-DM-Rsp, -- for FDD only
+ ...
+}
+
+RL-DM-Rsp ::= SEQUENCE {
+ rL-InformationList-DM-Rsp RL-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rsp }}
+
+RL-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-InformationItem-DM-Rsp PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rsp CRITICALITY reject EXTENSION PUSCH-Info-DM-Rsp PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rsp CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rsp ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rsp RL-Set-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rsp }}
+
+RL-Set-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rsp PRESENCE mandatory}
+}
+
+RL-Set-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT REPORT
+--
+-- **************************************************************
+
+DedicatedMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rprt CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rprt PRESENCE mandatory } ,
+ ...
+}
+
+DedicatedMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rprt ::= CHOICE {
+ rL RL-DM-Rprt,
+ rLS RL-Set-DM-Rprt, -- for FDD only
+ all-RL RL-DM-Rprt,
+ all-RLS RL-Set-DM-Rprt, -- for FDD only
+ ...
+}
+
+RL-DM-Rprt ::= SEQUENCE {
+ rL-InformationList-DM-Rprt RL-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rprt }}
+
+RL-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rprt CRITICALITY reject EXTENSION PUSCH-Info-DM-Rprt PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rprt CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rprt ::= SEQUENCE (SIZE (0..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rprt ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rprt RL-Set-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rprt }}
+
+RL-Set-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+DedicatedMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK FAILURE INDICATION
+--
+-- **************************************************************
+
+RadioLinkFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-FailureInd CRITICALITY ignore TYPE Reporting-Object-RL-FailureInd PRESENCE mandatory } ,
+ ...
+}
+
+RadioLinkFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-FailureInd ::= CHOICE {
+ rL RL-RL-FailureInd,
+ rL-Set RL-Set-RL-FailureInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-FailureInd --TDD only
+}
+
+RL-RL-FailureInd ::= SEQUENCE {
+ rL-InformationList-RL-FailureInd RL-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-FailureInd}}
+
+RL-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-FailureInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-FailureInd RL-Set-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-FailureInd }}
+
+RL-Set-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-FailureInd PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-FailureInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-FailureInd CCTrCH-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-FailureInd}}
+
+CCTrCH-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-FailureInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+CCTrCH-InformationItem-RL-FailureInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PREEMPTION REQUIRED INDICATION
+--
+-- **************************************************************
+
+RadioLinkPreemptionRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkPreemptionRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkPreemptionRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationList-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIE-RL-PreemptRequiredInd}}
+
+RL-InformationItemIE-RL-PreemptRequiredInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationItem-RL-PreemptRequiredInd PRESENCE mandatory },
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RESTORE INDICATION
+--
+-- **************************************************************
+
+RadioLinkRestoreIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkRestoreIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkRestoreIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkRestoreIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-RestoreInd CRITICALITY ignore TYPE Reporting-Object-RL-RestoreInd PRESENCE mandatory },
+ ...
+}
+
+RadioLinkRestoreIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-RestoreInd ::= CHOICE {
+ rL RL-RL-RestoreInd, --TDD only
+ rL-Set RL-Set-RL-RestoreInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-RestoreInd --TDD only
+}
+
+RL-RL-RestoreInd ::= SEQUENCE {
+ rL-InformationList-RL-RestoreInd RL-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationItemIE-RL-RestoreInd}}
+
+RL-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-InformationItem-RL-RestoreInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-RestoreInd RL-Set-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-RestoreInd }}
+
+RL-Set-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+RL-Set-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-RestoreInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-RestoreInd CCTrCH-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-RestoreInd}}
+
+CCTrCH-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMPRESSED MODE COMMAND FDD
+--
+-- **************************************************************
+
+CompressedModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CompressedModeCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CompressedModeCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+CompressedModeCommand-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE mandatory },
+ ...
+}
+
+CompressedModeCommand-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ErrorIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ErrorIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE optional } |
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs NBAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst CRITICALITY reject TYPE DL-ScramblingCode PRESENCE optional }|
+ { ID id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-PDSCH-FDD-Code-Information PRESENCE optional }|
+ { ID id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-SCCH-FDD-Code-Information PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-PDSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION HS-PDSCH-TDD-Information-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-ConfigurationGenerationID CRITICALITY reject EXTENSION ConfigurationGenerationID PRESENCE optional },
+ ...
+}
+
+PDSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-AddItem-PSCH-ReconfRqst
+
+PDSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL, -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PDSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+-- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+PDSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-PSCH-ReconfRqst DL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-PSCH-ReconfRqst DL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-LCR-PSCH-ReconfRqst DL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+
+}
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModifyList-PSCH-ReconfRqst DL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModifyList-PSCH-ReconfRqst DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-AddItem-PSCH-ReconfRqst
+
+PUSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL,
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PUSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-PSCH-ReconfRqst UL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-PSCH-ReconfRqst UL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfULTSLCRs)) OF UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-LCR-PSCH-ReconfRqst UL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+}
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-PSCH-ReconfRqst UL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModifyList-PSCH-ReconfRqst UL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-LCR-PSCH-ReconfRqst UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-LCR-InformationModifyList-PSCH-ReconfRqst UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ dL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst OPTIONAL,
+ dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ dl-HS-PDSCH-Codelist-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlotLCR,
+ midambleShiftAndBurstType MidambleShiftLCR,
+ dl-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-Information-PSCH-ReconfRqst HS-SCCH-Information-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-Information-LCR-PSCH-ReconfRqst HS-SCCH-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information HS-SICH-Information-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information-LCR HS-SICH-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-InformationModify-PSCH-ReconfRqst HS-SCCH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-InformationModify-LCR-PSCH-ReconfRqst HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information HS-SICH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information-LCR HS-SICH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-PSCH-ReconfFailure CRITICALITY ignore TYPE CauseLevel-PSCH-ReconfFailure PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-PSCH-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-PSCH-ReconfFailure,
+ setSpecificCause SetSpecificCauseList-PSCH-ReconfFailureTDD,
+ ...
+}
+
+GeneralCauseList-PSCH-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-PSCH-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-PSCH-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SetSpecificCauseList-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPDSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPUSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET REQUEST
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetRequest-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-ResetIndicator CRITICALITY ignore TYPE ResetIndicator PRESENCE mandatory},
+ ...
+}
+
+ResetRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetIndicator ::= CHOICE {
+ communicationContext CommunicationContextList-Reset,
+ communicationControlPort CommunicationControlPortList-Reset,
+ nodeB NULL,
+ ...
+}
+
+CommunicationContextList-Reset ::= SEQUENCE {
+ communicationContextInfoList-Reset CommunicationContextInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationContextItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCommunicationContext)) OF ProtocolIE-Single-Container {{ CommunicationContextInfoItemIE-Reset }}
+
+CommunicationContextInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationContextInfoItem-Reset CRITICALITY reject TYPE CommunicationContextInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationContextInfoItem-Reset ::= SEQUENCE {
+ communicationContextType-Reset CommunicationContextType-Reset,
+ iE-Extensions ProtocolExtensionContainer { { CommunicationContextInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextType-Reset ::= CHOICE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ nodeB-CommunicationContextID NodeB-CommunicationContextID,
+ ...
+}
+
+CommunicationControlPortList-Reset ::= SEQUENCE {
+ communicationControlPortInfoList-Reset CommunicationControlPortInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCCPinNodeB)) OF ProtocolIE-Single-Container {{CommunicationControlPortInfoItemIE-Reset }}
+
+CommunicationControlPortInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationControlPortInfoItem-Reset CRITICALITY reject TYPE CommunicationControlPortInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationControlPortInfoItem-Reset ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET RESPONSE
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetResponse-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ResetResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rqst CRITICALITY reject TYPE InformationExchangeObjectType-InfEx-Rqst PRESENCE mandatory }|
+ { ID id-InformationType CRITICALITY reject TYPE InformationType PRESENCE mandatory }|
+ { ID id-InformationReportCharacteristics CRITICALITY reject TYPE InformationReportCharacteristics PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rqst ::= CHOICE {
+ cell Cell-InfEx-Rqst,
+ ...
+}
+
+Cell-InfEx-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-InfEx-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION RESPONSE
+--
+-- **************************************************************
+
+InformationExchangeInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rsp CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rsp ::= CHOICE {
+ cell Cell-InfEx-Rsp,
+ ...
+ }
+
+Cell-InfEx-Rsp ::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-InfEx-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION FAILURE
+--
+-- **************************************************************
+
+InformationExchangeInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION REPORT
+--
+-- **************************************************************
+
+InformationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationReport-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rprt CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rprt PRESENCE mandatory },
+ ...
+}
+
+InformationReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rprt ::= CHOICE {
+ cell Cell-Inf-Rprt,
+ ...
+ }
+
+Cell-Inf-Rprt ::= SEQUENCE {
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-Inf-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-Inf-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE TERMINATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE FAILURE INDICATION
+--
+-- **************************************************************
+
+InformationExchangeFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+InformationExchangeFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-cellSyncBurstRepetitionPeriod CRITICALITY reject TYPE CellSyncBurstRepetitionPeriod PRESENCE mandatory }|
+ { ID id-timeslotInfo-CellSyncInitiationRqstTDD CRITICALITY reject TYPE TimeslotInfo-CellSyncInitiationRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+ { ID id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstTransInit-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ initialDLTransPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeslotInfo-CellSyncInitiationRqstTDD::= SEQUENCE (SIZE (1..15)) OF TimeSlot
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ synchronisationReportType SynchronisationReportType,
+ sfn SFN OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sfn SFN OPTIONAL,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ synchronisationReportType SynchronisationReportType,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION NSubCyclesPerCyclePeriod PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-TimeSlot CRITICALITY reject TYPE TimeSlot PRESENCE mandatory }|
+ -- Applicable to 3.84Mcps TDD only. For 1.28Mcps TDD, the CRNC should set this to 0 and the Node B shall ignore it.
+ { ID id-NCyclesPerSFNperiod CRITICALITY reject TYPE NCyclesPerSFNperiod PRESENCE mandatory }|
+ { ID id-NRepetitionsPerCyclePeriod CRITICALITY reject TYPE NRepetitionsPerCyclePeriod PRESENCE mandatory }|
+ { ID id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfo-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberToTransmit SyncFrameNumber,
+ cellSyncBurstCode CellSyncBurstCode OPTIONAL,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift OPTIONAL,
+ dlTransPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportTypeIE OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristicsIE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ::= ProtocolIE-Single-Container {{ CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD }}
+
+CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD PRESENCE mandatory }
+}
+
+SynchronisationReportTypeIE ::= ProtocolIE-Single-Container {{ SynchronisationReportTypeIEs }}
+
+SynchronisationReportTypeIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportType CRITICALITY reject TYPE SynchronisationReportType PRESENCE mandatory }
+}
+
+SynchronisationReportCharacteristicsIE ::= ProtocolIE-Single-Container {{ SynchronisationReportCharacteristicsIEs }}
+
+SynchronisationReportCharacteristicsIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportCharacteristics CRITICALITY reject TYPE SynchronisationReportCharacteristics PRESENCE mandatory }
+}
+
+
+CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ syncBurstInfo CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfoList-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSyncFramesLCR)) OF SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberforTransmit SyncFrameNumber,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId OPTIONAL,
+ dwPCH-Power DwPCH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD::= SEQUENCE {
+ sYNCDlCodeIdMeasInfoList SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportType OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD::= SEQUENCE (SIZE (1.. maxNrOfSyncDLCodesLCR)) OF SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ sYNCDlCodeIdInfoLCR SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfReceptionsperSyncFrameLCR)) OF SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sYNCDlCodeId SYNCDlCodeId,
+ uARFCN UARFCN,
+ propagationDelayCompensation TimingAdjustmentValueLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfo-SyncAdjustmntRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfo-SyncAdjustmentRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CellAdjustmentInfo-SyncAdjustmentRqstTDD::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD }}
+
+CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfoItem-SyncAdjustmentRqstTDD PRESENCE mandatory }
+}
+
+CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ::= SEQUENCE {
+ c-ID C-ID,
+ frameAdjustmentValue FrameAdjustmentValue OPTIONAL,
+ timingAdjustmentValue TimingAdjustmentValue OPTIONAL,
+ dLTransPower DL-Power OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ sfn SFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DwPCH-Power CRITICALITY ignore EXTENSION DwPCH-Power PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-TimingAdjustmentValueLCR CRITICALITY ignore EXTENSION TimingAdjustmentValueLCR PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE CauseLevel-SyncAdjustmntFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CauseLevel-SyncAdjustmntFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-SyncAdjustmntFailureTDD,
+ cellSpecificCause CellSpecificCauseList-SyncAdjustmntFailureTDD,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD ::= SEQUENCE {
+ unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD }}
+
+Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD PRESENCE mandatory},
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD::= SEQUENCE {
+ c-ID C-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION TERMINATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationTerminationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationTerminationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationTerminationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION FAILURE INDICATION TDD
+--
+-- **************************************************************
+
+CellSynchronisationFailureIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationFailureIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationFailureIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION REPORT TDD
+--
+-- **************************************************************
+
+CellSynchronisationReportTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReportTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReportTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReportTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReportTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncInfo-CellSyncReprtTDD CRITICALITY ignore TYPE CellSyncInfo-CellSyncReprtTDD PRESENCE mandatory },
+ ...
+}
+
+
+CellSyncInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF CellSyncInfoItemIE-CellSyncReprtTDD
+
+CellSyncInfoItemIE-CellSyncReprtTDD ::= SEQUENCE {
+ c-ID-CellSyncReprtTDD C-ID-IE-CellSyncReprtTDD,
+ syncReportType-CellSyncReprtTDD SyncReportTypeIE-CellSyncReprtTDD OPTIONAL,
+ ...
+}
+
+C-ID-IE-CellSyncReprtTDD ::= ProtocolIE-Single-Container {{ C-ID-IEs-CellSyncReprtTDD }}
+
+C-ID-IEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory}
+}
+
+SyncReportTypeIE-CellSyncReprtTDD::= ProtocolIE-Single-Container {{ SyncReportTypeIEs-CellSyncReprtTDD }}
+
+SyncReportTypeIEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncReportType-CellSyncReprtTDD CRITICALITY ignore TYPE SyncReportType-CellSyncReprtTDD PRESENCE mandatory}
+}
+
+
+SyncReportType-CellSyncReprtTDD ::= CHOICE {
+ intStdPhSyncInfo-CellSyncReprtTDD IntStdPhCellSyncInfo-CellSyncReprtTDD,
+ lateEntrantCell NULL,
+ frequencyAcquisition NULL,
+ ...
+}
+
+IntStdPhCellSyncInfo-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstMeasuredInfo CellSyncBurstMeasInfoList-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-AccumulatedClockupdate-CellSyncReprtTDD CRITICALITY ignore EXTENSION TimingAdjustmentValue PRESENCE optional }|
+ { ID id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD CRITICALITY ignore EXTENSION SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReprtTDD -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ cellSyncBurstInfo-CellSyncReprtTDD SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfo-CellSyncReprtTDD ::= CHOICE {
+ cellSyncBurstAvailable CellSyncBurstAvailable-CellSyncReprtTDD,
+ cellSyncBurstNotAvailable NULL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstTiming CellSyncBurstTiming,
+ cellSyncBurstSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD
+-- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ syncDLCodeIdInfo-CellSyncReprtTDD SyncDLCodeIdInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptionsperSyncFrameLCR)) OF SyncDLCodeIdItem-CellSyncReprtTDD
+
+SyncDLCodeIdItem-CellSyncReprtTDD ::= CHOICE {
+ syncDLCodeIdAvailable SyncDLCodeIdAvailable-CellSyncReprtTDD,
+ syncDLCodeIDNotAvailable NULL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ syncDLCodeIdTiming CellSyncBurstTimingLCR,
+ syncDLCodeIdSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER REARRANGEMENT INDICATION
+--
+-- **************************************************************
+
+BearerRearrangementIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BearerRearrangementIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BearerRearrangementIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+BearerRearrangementIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-SignallingBearerRequestIndicator CRITICALITY ignore TYPE SignallingBearerRequestIndicator PRESENCE optional } |
+ { ID id-DCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-DSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-USCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE USCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+-- TDD only.
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY ignore TYPE TFCI2BearerRequestIndicator PRESENCE optional }|
+ -- FDD only.
+ { ID id-HSDSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE HSDSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional },
+ ...
+}
+
+BearerRearrangementIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-RearrangeItem-Bearer-RearrangeInd
+
+DCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-RearrangeItem-Bearer-RearrangeInd
+
+DSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-RearrangeItem-Bearer-RearrangeInd
+
+USCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-RearrangeItem-Bearer-RearrangeInd
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND FDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdFDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdFDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND TDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdTDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdTDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION FDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-FDD-Update-Information CRITICALITY ignore TYPE HSDSCH-FDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION TDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-TDD-Update-Information CRITICALITY ignore TYPE HSDSCH-TDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
new file mode 100755
index 0000000000..b9be9934e4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
@@ -0,0 +1,916 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+NBAP-PDU-Discriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureID,
+ MessageDiscriminator,
+ TransactionID
+FROM NBAP-CommonDataTypes
+
+ CommonTransportChannelSetupRequestFDD,
+ CommonTransportChannelSetupRequestTDD,
+ CommonTransportChannelSetupResponse,
+ CommonTransportChannelSetupFailure,
+ CommonTransportChannelReconfigurationRequestFDD,
+ CommonTransportChannelReconfigurationRequestTDD,
+ CommonTransportChannelReconfigurationResponse,
+ CommonTransportChannelReconfigurationFailure,
+ CommonTransportChannelDeletionRequest,
+ CommonTransportChannelDeletionResponse,
+ BlockResourceRequest,
+ BlockResourceResponse,
+ BlockResourceFailure,
+ UnblockResourceIndication,
+ AuditFailure,
+ AuditRequiredIndication,
+ AuditRequest,
+ AuditResponse,
+ CommonMeasurementInitiationRequest,
+ CommonMeasurementInitiationResponse,
+ CommonMeasurementInitiationFailure,
+ CommonMeasurementReport,
+ CommonMeasurementTerminationRequest,
+ CommonMeasurementFailureIndication,
+ CellSetupRequestFDD,
+ CellSetupRequestTDD,
+ CellSetupResponse,
+ CellSetupFailure,
+ CellReconfigurationRequestFDD,
+ CellReconfigurationRequestTDD,
+ CellReconfigurationResponse,
+ CellReconfigurationFailure,
+ CellDeletionRequest,
+ CellDeletionResponse,
+ InformationExchangeInitiationRequest,
+ InformationExchangeInitiationResponse,
+ InformationExchangeInitiationFailure,
+ InformationReport,
+ InformationExchangeTerminationRequest,
+ InformationExchangeFailureIndication,
+ BearerRearrangementIndication,
+ ResourceStatusIndication,
+ SystemInformationUpdateRequest,
+ SystemInformationUpdateResponse,
+ SystemInformationUpdateFailure,
+ ResetRequest,
+ ResetResponse,
+ RadioLinkActivationCommandFDD,
+ RadioLinkActivationCommandTDD,
+ RadioLinkPreemptionRequiredIndication,
+ RadioLinkSetupRequestFDD,
+ RadioLinkSetupRequestTDD,
+ RadioLinkSetupResponseFDD,
+ RadioLinkSetupResponseTDD,
+ RadioLinkSetupFailureFDD,
+ RadioLinkSetupFailureTDD,
+ RadioLinkAdditionRequestFDD,
+ RadioLinkAdditionRequestTDD,
+ RadioLinkAdditionResponseFDD,
+ RadioLinkAdditionResponseTDD,
+ RadioLinkAdditionFailureFDD,
+ RadioLinkAdditionFailureTDD,
+ RadioLinkParameterUpdateIndicationFDD,
+ RadioLinkParameterUpdateIndicationTDD,
+ RadioLinkReconfigurationPrepareFDD,
+ RadioLinkReconfigurationPrepareTDD,
+ RadioLinkReconfigurationReady,
+ RadioLinkReconfigurationFailure,
+ RadioLinkReconfigurationCommit,
+ RadioLinkReconfigurationCancel,
+ RadioLinkReconfigurationRequestFDD,
+ RadioLinkReconfigurationRequestTDD,
+ RadioLinkReconfigurationResponse,
+ RadioLinkDeletionRequest,
+ RadioLinkDeletionResponse,
+ DL-PowerControlRequest,
+ DL-PowerTimeslotControlRequest,
+ DedicatedMeasurementInitiationRequest,
+ DedicatedMeasurementInitiationResponse,
+ DedicatedMeasurementInitiationFailure,
+ DedicatedMeasurementReport,
+ DedicatedMeasurementTerminationRequest,
+ DedicatedMeasurementFailureIndication,
+ RadioLinkFailureIndication,
+ RadioLinkRestoreIndication,
+ CompressedModeCommand,
+ ErrorIndication,
+ PrivateMessage,
+ PhysicalSharedChannelReconfigurationRequestTDD,
+ PhysicalSharedChannelReconfigurationRequestFDD,
+ PhysicalSharedChannelReconfigurationResponse,
+ PhysicalSharedChannelReconfigurationFailure,
+ CellSynchronisationInitiationRequestTDD,
+ CellSynchronisationInitiationResponseTDD,
+ CellSynchronisationInitiationFailureTDD,
+ CellSynchronisationReconfigurationRequestTDD,
+ CellSynchronisationReconfigurationResponseTDD,
+ CellSynchronisationReconfigurationFailureTDD,
+ CellSynchronisationAdjustmentRequestTDD,
+ CellSynchronisationAdjustmentResponseTDD,
+ CellSynchronisationAdjustmentFailureTDD,
+ CellSynchronisationReportTDD,
+ CellSynchronisationTerminationRequestTDD,
+ CellSynchronisationFailureIndicationTDD
+FROM NBAP-PDU-Contents
+
+ id-audit,
+ id-auditRequired,
+ id-blockResource,
+ id-cellDeletion,
+ id-cellReconfiguration,
+ id-cellSetup,
+ id-cellSynchronisationInitiation,
+ id-cellSynchronisationReconfiguration,
+ id-cellSynchronisationReporting,
+ id-cellSynchronisationTermination,
+ id-cellSynchronisationFailure,
+ id-commonMeasurementFailure,
+ id-commonMeasurementInitiation,
+ id-commonMeasurementReport,
+ id-commonMeasurementTermination,
+ id-commonTransportChannelDelete,
+ id-commonTransportChannelReconfigure,
+ id-commonTransportChannelSetup,
+ id-compressedModeCommand,
+ id-dedicatedMeasurementFailure,
+ id-dedicatedMeasurementInitiation,
+ id-dedicatedMeasurementReport,
+ id-dedicatedMeasurementTermination,
+ id-downlinkPowerControl,
+ id-downlinkPowerTimeslotControl,
+ id-errorIndicationForDedicated,
+ id-errorIndicationForCommon,
+ id-informationExchangeFailure,
+ id-informationExchangeInitiation,
+ id-informationReporting,
+ id-informationExchangeTermination,
+ id-BearerRearrangement,
+ id-physicalSharedChannelReconfiguration,
+ id-privateMessageForDedicated,
+ id-privateMessageForCommon,
+ id-radioLinkActivation,
+ id-radioLinkAddition,
+ id-radioLinkDeletion,
+ id-radioLinkFailure,
+ id-radioLinkParameterUpdate,
+ id-radioLinkPreemption,
+ id-radioLinkRestoration,
+ id-radioLinkSetup,
+ id-reset,
+ id-resourceStatusIndication,
+ id-cellSynchronisationAdjustment,
+ id-synchronisedRadioLinkReconfigurationCancellation,
+ id-synchronisedRadioLinkReconfigurationCommit,
+ id-synchronisedRadioLinkReconfigurationPreparation,
+ id-systemInformationUpdate,
+ id-unblockResource,
+ id-unSynchronisedRadioLinkReconfiguration
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &messageDiscriminator MessageDiscriminator,
+ &procedureID ProcedureID UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ MESSAGE DISCRIMINATOR &messageDiscriminator
+ PROCEDURE ID &procedureID
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+NBAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ succesfulOutcome SuccessfulOutcome,
+ unsuccesfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+Outcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&Outcome ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURES NBAP-ELEMENTARY-PROCEDURE ::= {
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-1 NBAP-ELEMENTARY-PROCEDURE ::= {
+ cellSetupFDD |
+ cellSetupTDD |
+ cellReconfigurationFDD |
+ cellReconfigurationTDD |
+ cellDeletion |
+ commonTransportChannelSetupFDD |
+ commonTransportChannelSetupTDD |
+ commonTransportChannelReconfigureFDD |
+ commonTransportChannelReconfigureTDD |
+ commonTransportChannelDelete |
+ audit |
+ blockResource |
+ radioLinkSetupFDD |
+ radioLinkSetupTDD |
+ systemInformationUpdate |
+ commonMeasurementInitiation |
+ radioLinkAdditionFDD |
+ radioLinkAdditionTDD |
+ radioLinkDeletion |
+ reset |
+ synchronisedRadioLinkReconfigurationPreparationFDD |
+ synchronisedRadioLinkReconfigurationPreparationTDD |
+ unSynchronisedRadioLinkReconfigurationFDD |
+ unSynchronisedRadioLinkReconfigurationTDD |
+ dedicatedMeasurementInitiation |
+ physicalSharedChannelReconfigurationTDD ,
+ ...,
+ informationExchangeInitiation |
+ cellSynchronisationInitiationTDD |
+ cellSynchronisationReconfigurationTDD |
+ cellSynchronisationAdjustmentTDD |
+ physicalSharedChannelReconfigurationFDD
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-2 NBAP-ELEMENTARY-PROCEDURE ::= {
+ resourceStatusIndication |
+ auditRequired |
+ commonMeasurementReport |
+ commonMeasurementTermination |
+ commonMeasurementFailure |
+ synchronisedRadioLinkReconfigurationCommit |
+ synchronisedRadioLinkReconfigurationCancellation |
+ radioLinkFailure |
+ radioLinkPreemption |
+ radioLinkRestoration |
+ dedicatedMeasurementReport |
+ dedicatedMeasurementTermination |
+ dedicatedMeasurementFailure |
+ downlinkPowerControlFDD |
+ downlinkPowerTimeslotControl |
+ compressedModeCommand |
+ unblockResource |
+ errorIndicationForDedicated |
+ errorIndicationForCommon |
+ privateMessageForDedicated |
+ privateMessageForCommon ,
+ ...,
+ informationReporting |
+ informationExchangeTermination |
+ informationExchangeFailure |
+ cellSynchronisationReportingTDD |
+ cellSynchronisationTerminationTDD |
+ cellSynchronisationFailureTDD |
+ bearerRearrangement |
+ radioLinkActivationFDD |
+ radioLinkActivationTDD |
+ radioLinkParameterUpdateFDD |
+ radioLinkParameterUpdateTDD
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+-- Class 1
+
+-- *** CellSetup (FDD) ***
+cellSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestFDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellSetup (TDD) ***
+cellSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestTDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(FDD) ***
+cellReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(TDD) ***
+cellReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellDeletion ***
+cellDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellDeletionRequest
+ SUCCESSFUL OUTCOME CellDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (FDD) ***
+commonTransportChannelSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (TDD) ***
+commonTransportChannelSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (FDD) ***
+commonTransportChannelReconfigureFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (TDD) ***
+commonTransportChannelReconfigureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelDelete ***
+commonTransportChannelDelete NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelDeletionRequest
+ SUCCESSFUL OUTCOME CommonTransportChannelDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelDelete, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Audit ***
+audit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequest
+ SUCCESSFUL OUTCOME AuditResponse
+ UNSUCCESSFUL OUTCOME AuditFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-audit, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** BlockResourceRequest ***
+blockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BlockResourceRequest
+ SUCCESSFUL OUTCOME BlockResourceResponse
+ UNSUCCESSFUL OUTCOME BlockResourceFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-blockResource, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (FDD) ***
+radioLinkSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureFDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (TDD) ***
+radioLinkSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** SystemInformationUpdate ***
+systemInformationUpdate NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SystemInformationUpdateRequest
+ SUCCESSFUL OUTCOME SystemInformationUpdateResponse
+ UNSUCCESSFUL OUTCOME SystemInformationUpdateFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-systemInformationUpdate, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Reset ***
+reset NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-reset, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonMeasurementInitiation ***
+commonMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME CommonMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME CommonMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (FDD) ***
+radioLinkAdditionFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (TDD) ***
+radioLinkAdditionTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkDeletion ***
+radioLinkDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkDeletionRequest
+ SUCCESSFUL OUTCOME RadioLinkDeletionResponse
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (FDD) ***
+synchronisedRadioLinkReconfigurationPreparationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (TDD) ***
+synchronisedRadioLinkReconfigurationPreparationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (FDD) ***
+unSynchronisedRadioLinkReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (TDD) ***
+unSynchronisedRadioLinkReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** DedicatedMeasurementInitiation ***
+dedicatedMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME DedicatedMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME DedicatedMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (FDD) ***
+physicalSharedChannelReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (TDD) ***
+physicalSharedChannelReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** InformationExchangeInitiation ***
+informationExchangeInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeInitiationRequest
+ SUCCESSFUL OUTCOME InformationExchangeInitiationResponse
+ UNSUCCESSFUL OUTCOME InformationExchangeInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationInitiation (TDD only) ***
+cellSynchronisationInitiationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationInitiationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationInitiationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationInitiationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationInitiation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationReconfiguration (TDD only) ***
+cellSynchronisationReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationReconfigurationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationReconfigurationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationAdjustment (TDD only) ***
+cellSynchronisationAdjustmentTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationAdjustmentRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationAdjustmentResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationAdjustmentFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationAdjustment, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- Class 2
+
+-- *** ResourceStatusIndication ***
+resourceStatusIndication NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-resourceStatusIndication, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** AuditRequired ***
+auditRequired NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequiredIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-auditRequired, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementReport ***
+commonMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementTermination ***
+commonMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementFailure ***
+commonMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioLinkReconfigurationCommit ***
+synchronisedRadioLinkReconfigurationCommit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCommit
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCommit, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioReconfigurationCancellation ***
+synchronisedRadioLinkReconfigurationCancellation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCancel
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCancellation, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkFailure ***
+radioLinkFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkPreemption ***
+radioLinkPreemption NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkPreemptionRequiredIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkPreemption, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkRestoration ***
+radioLinkRestoration NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkRestoreIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkRestoration, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementReport ***
+dedicatedMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementReport
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementTermination ***
+dedicatedMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementFailure ***
+dedicatedMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerControl (FDD only) ***
+downlinkPowerControlFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerControl, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerTimeslotControl (TDD only) ***
+downlinkPowerTimeslotControl NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerTimeslotControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerTimeslotControl, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CompressedModeCommand (FDD only) ***
+compressedModeCommand NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CompressedModeCommand
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-compressedModeCommand, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** UnblockResourceIndication ***
+unblockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UnblockResourceIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-unblockResource, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Dedicated procedures ***
+errorIndicationForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-errorIndicationForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Common procedures ***
+errorIndicationForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-errorIndicationForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationReporting (TDD only) ***
+cellSynchronisationReportingTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReportTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReporting, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationTermination (TDD only) ***
+cellSynchronisationTerminationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationTerminationRequestTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationTermination, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationFailure (TDD only) ***
+cellSynchronisationFailureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationFailureIndicationTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationFailure, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Dedicated procedures ***
+privateMessageForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-privateMessageForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Common procedures ***
+privateMessageForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-privateMessageForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationReporting ***
+informationReporting NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeTermination ***
+informationExchangeTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeFailure ***
+informationExchangeFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** BearerRearrangement ***
+bearerRearrangement NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerRearrangementIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-BearerRearrangement, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (FDD) ***
+radioLinkActivationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (TDD) ***
+radioLinkActivationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (FDD) ***
+radioLinkParameterUpdateFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (TDD) ***
+radioLinkParameterUpdateTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode tdd }
+ CRITICALITY ignore
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/p_record.asn1config b/lib/asn1/test/asn1_SUITE_data/p_record.asn1config
new file mode 100644
index 0000000000..a8eb00d43d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/p_record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'p_record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_SUITE_data/p_record.set.asn b/lib/asn1/test/asn1_SUITE_data/p_record.set.asn
new file mode 100644
index 0000000000..24d502d067
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/p_record.set.asn
@@ -0,0 +1 @@
+P-Record.py
diff --git a/lib/asn1/test/asn1_SUITE_data/subdir/MySO.asn b/lib/asn1/test/asn1_SUITE_data/subdir/MySO.asn
new file mode 100644
index 0000000000..4c649da4c4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/subdir/MySO.asn
@@ -0,0 +1,14 @@
+MySO DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ T
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a T,
+ b INTEGER}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/subdir/subsubdir/.gitignore b/lib/asn1/test/asn1_SUITE_data/subdir/subsubdir/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/subdir/subsubdir/.gitignore
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/DialoguePDUs.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/DialoguePDUs.asn
new file mode 100644
index 0000000000..541dc55f6b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/DialoguePDUs.asn
@@ -0,0 +1,80 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module DialoguePDUs (Q.773:06/1997)
+DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS dialogue-as-id, DialoguePDU;
+
+-- abstract syntax name for structured dialogue APDUs
+dialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)}
+
+DialoguePDU ::= CHOICE {
+ dialogueRequest AARQ-apdu,
+ dialogueResponse AARE-apdu,
+ dialogueAbort ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRQ PDU is currently not used.
+-- It is included for completeness only.
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRE PDU is currently not used.
+-- It is included for completeness only
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+ dialogue-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2)},
+ dialogue-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+-- Release-request-reason is currently not used.
+-- It is included for completeness only.
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}
+
+-- Release-response-reason is currently not used.
+-- It is included for completeness only.
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}
+
+END -- DialoguePDUs
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000000..26367c8f39
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
@@ -0,0 +1,186 @@
+MAP-ApplicationContexts {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ApplicationContexts (2) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+
+-- EXPORTS everything
+
+
+IMPORTS
+ gsm-NetworkId,
+ ac-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+;
+
+-- application-context-names
+
+map-ac OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id}
+
+networkLocUpContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac networkLocUp(1) version3(3)}
+
+locationCancellationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationCancel(2) version3(3)}
+
+roamingNumberEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac roamingNbEnquiry(3) version3(3)}
+
+authenticationFailureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac authenticationFailureReport(39) version3(3)}
+
+locationInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locInfoRetrieval(5) version3(3)}
+
+resetContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac reset(10) version2(2)}
+
+handoverControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac handoverControl(11) version3(3)}
+
+equipmentMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac equipmentMngt(13) version3(3)}
+
+infoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac infoRetrieval(14) version3(3)}
+
+interVlrInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac interVlrInfoRetrieval(15) version3(3)}
+
+subscriberDataMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataMngt(16) version3(3)}
+
+tracingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac tracing(17) version3(3)}
+
+networkFunctionalSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkFunctionalSs(18) version2(2)}
+
+networkUnstructuredSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkUnstructuredSs(19) version2(2)}
+
+shortMsgGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgGateway(20) version3(3)}
+
+shortMsgMO-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMO-Relay(21) version3(3)}
+
+shortMsgAlertContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgAlert(23) version2(2)}
+
+mwdMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mwdMngt(24) version3(3)}
+
+shortMsgMT-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMT-Relay(25) version3(3)}
+
+imsiRetrievalContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac imsiRetrieval(26) version2(2)}
+
+msPurgingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac msPurging(27) version3(3)}
+
+subscriberInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberInfoEnquiry(28) version3(3)}
+
+anyTimeInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoEnquiry(29) version3(3)}
+
+callControlTransferContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac callControlTransfer(6) version4(4)}
+
+ss-InvocationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac ss-InvocationNotification(36) version3(3)}
+
+groupCallControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac groupCallControl(31) version3(3)}
+
+gprsLocationUpdateContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationUpdate(32) version3(3)}
+
+gprsLocationInfoRetrievalContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationInfoRetrieval(33) version4(4)}
+
+failureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac failureReport(34) version3(3)}
+
+gprsNotifyContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsNotify(35) version3(3)}
+
+reportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac reporting(7) version3(3)}
+
+callCompletionContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac callCompletion(8) version3(3)}
+
+istAlertingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac istAlerting(4) version3(3)}
+
+serviceTerminationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac immediateTermination(9) version3(3)}
+
+locationSvcGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcGateway(37) version3(3)}
+
+locationSvcEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcEnquiry(38) version3(3)}
+
+mm-EventReportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mm-EventReporting(42) version3(3)}
+
+anyTimeInfoHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoHandling(43) version3(3)}
+
+subscriberDataModificationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataModificationNotification(22) version3(3)}
+
+secureTransportHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac secureTransportHandling(40) version3(3)}
+
+-- The following Object Identifiers are reserved for application-contexts
+-- existing in previous versions of the protocol
+
+-- AC Name & Version Object Identifier
+--
+-- networkLocUpContext-v1 map-ac networkLocUp (1) version1 (1)
+-- networkLocUpContext-v2 map-ac networkLocUp (1) version2 (2)
+-- locationCancellationContext-v1 map-ac locationCancellation (2) version1 (1)
+-- locationCancellationContext-v2 map-ac locationCancellation (2) version2 (2)
+-- roamingNumberEnquiryContext-v1 map-ac roamingNumberEnquiry (3) version1 (1)
+-- roamingNumberEnquiryContext-v2 map-ac roamingNumberEnquiry (3) version2 (2)
+-- locationInfoRetrievalContext-v1 map-ac locationInfoRetrieval (5) version1 (1)
+-- locationInfoRetrievalContext-v2 map-ac locationInfoRetrieval (5) version2 (2)
+-- resetContext-v1 map-ac reset (10) version1 (1)
+-- handoverControlContext-v1 map-ac handoverControl (11) version1 (1)
+-- handoverControlContext-v2 map-ac handoverControl (11) version2 (2)
+-- sIWFSAllocationContext-v3 map-ac sIWFSAllocation (12) version3 (3)
+-- equipmentMngtContext-v1 map-ac equipmentMngt (13) version1 (1)
+-- equipmentMngtContext-v2 map-ac equipmentMngt (13) version2 (2)
+-- infoRetrievalContext-v1 map-ac infoRetrieval (14) version1 (1)
+-- infoRetrievalContext-v2 map-ac infoRetrieval (14) version2 (2)
+-- interVlrInfoRetrievalContext-v2 map-ac interVlrInfoRetrieval (15) version2 (2)
+-- subscriberDataMngtContext-v1 map-ac subscriberDataMngt (16) version1 (1)
+-- subscriberDataMngtContext-v2 map-ac subscriberDataMngt (16) version2 (2)
+-- tracingContext-v1 map-ac tracing (17) version1 (1)
+-- tracingContext-v2 map-ac tracing (17) version2 (2)
+-- networkFunctionalSsContext-v1 map-ac networkFunctionalSs (18) version1 (1)
+-- shortMsgGatewayContext-v1 map-ac shortMsgGateway (20) version1 (1)
+-- shortMsgGatewayContext-v2 map-ac shortMsgGateway (20) version2 (2)
+-- shortMsgRelayContext-v1 map-ac shortMsgRelay (21) version1 (1)
+-- shortMsgAlertContext-v1 map-ac shortMsgAlert (23) version1 (1)
+-- mwdMngtContext-v1 map-ac mwdMngt (24) version1 (1)
+-- mwdMngtContext-v2 map-ac mwdMngt (24) version2 (2)
+-- shortMsgMT-RelayContext-v2 map-ac shortMsgMT-Relay (25) version2 (2)
+-- msPurgingContext-v2 map-ac msPurging (27) version2 (2)
+-- callControlTransferContext-v3 map-ac callControlTransferContext (6) version3 (3)
+-- gprsLocationInfoRetrievalContext-v3 map-ac gprsLocationInfoRetrievalContext (33) version3 (3)
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-BS-Code.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-BS-Code.asn
new file mode 100644
index 0000000000..d12501098e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-BS-Code.asn
@@ -0,0 +1,126 @@
+MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS 3GPP TS 22.030:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000000..10e9d8ff98
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
@@ -0,0 +1,438 @@
+MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ NumberOfForwarding,
+ SuppressionOfAnnouncement,
+ CallReferenceNumber,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+IST-CommandRes
+;
+
+IMPORTS
+ SubscriberInfo,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ CUG-Interlock,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ IST-SupportIndicator,
+ IST-AlertTimerValue,
+ T-CSI,
+ NumberPortabilityStatus
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ForwardingOptions,
+ SS-List,
+ CCBS-Feature
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ AlertingPattern,
+ NAEA-PreferredCI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+CUG-CheckInfo ::= SEQUENCE {
+ cug-Interlock CUG-Interlock,
+ cug-OutgoingAccess NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfForwarding ::= INTEGER (1..5)
+
+SendRoutingInfoArg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ cug-CheckInfo [1] CUG-CheckInfo OPTIONAL,
+ numberOfForwarding [2] NumberOfForwarding OPTIONAL,
+ interrogationType [3] InterrogationType,
+ or-Interrogation [4] NULL OPTIONAL,
+ or-Capability [5] OR-Phase OPTIONAL,
+ gmsc-OrGsmSCF-Address [6] ISDN-AddressString,
+ callReferenceNumber [7] CallReferenceNumber OPTIONAL,
+ forwardingReason [8] ForwardingReason OPTIONAL,
+ basicServiceGroup [9] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo [10] ExternalSignalInfo OPTIONAL,
+ camelInfo [11] CamelInfo OPTIONAL,
+ suppressionOfAnnouncement [12] SuppressionOfAnnouncement OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ alertingPattern [14] AlertingPattern OPTIONAL,
+ ccbs-Call [15] NULL OPTIONAL,
+ supportedCCBS-Phase [16] SupportedCCBS-Phase OPTIONAL,
+ additionalSignalInfo [17] Ext-ExternalSignalInfo OPTIONAL,
+ istSupportIndicator [18] IST-SupportIndicator OPTIONAL,
+ pre-pagingSupported [19] NULL OPTIONAL,
+ callDiversionTreatmentIndicator [20] CallDiversionTreatmentIndicator OPTIONAL,
+ longFTN-Supported [21] NULL OPTIONAL,
+ suppress-VT-CSI [22] NULL OPTIONAL,
+ suppressIncomingCallBarring [23] NULL OPTIONAL,
+ gsmSCF-InitiatedCall [24] NULL OPTIONAL,
+ basicServiceGroup2 [25] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo2 [26] ExternalSignalInfo OPTIONAL
+ }
+
+SuppressionOfAnnouncement ::= NULL
+
+InterrogationType ::= ENUMERATED {
+ basicCall (0),
+ forwarding (1)}
+
+OR-Phase ::= INTEGER (1..127)
+
+CallReferenceNumber ::= OCTET STRING (SIZE (1..8))
+
+ForwardingReason ::= ENUMERATED {
+ notReachable (0),
+ busy (1),
+ noReply (2)}
+
+SupportedCCBS-Phase ::= INTEGER (1..127)
+-- exception handling:
+-- Only value 1 is used.
+-- Values in the ranges 2-127 are reserved for future use.
+-- If received values 2-127 shall be mapped on to value 1.
+
+CallDiversionTreatmentIndicator ::= OCTET STRING (SIZE(1))
+-- callDiversionAllowed (xxxx xx01)
+-- callDiversionNotAllowed (xxxx xx10)
+-- network default is call diversion allowed
+
+SendRoutingInfoRes ::= [3] SEQUENCE {
+ imsi [9] IMSI OPTIONAL,
+ -- IMSI must be present if SendRoutingInfoRes is not segmented.
+ -- If the TC-Result-NL segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendRoutingInfoRes.
+ extendedRoutingInfo ExtendedRoutingInfo OPTIONAL,
+ cug-CheckInfo [3] CUG-CheckInfo OPTIONAL,
+ cugSubscriptionFlag [6] NULL OPTIONAL,
+ subscriberInfo [7] SubscriberInfo OPTIONAL,
+ ss-List [1] SS-List OPTIONAL,
+ basicService [5] Ext-BasicServiceCode OPTIONAL,
+ forwardingInterrogationRequired [4] NULL OPTIONAL,
+ vmsc-Address [2] ISDN-AddressString OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [10] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ ccbs-Indicators [11] CCBS-Indicators OPTIONAL,
+ msisdn [12] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [13] NumberPortabilityStatus OPTIONAL,
+ istAlertTimer [14] IST-AlertTimerValue OPTIONAL,
+ supportedCamelPhasesInVMSC [15] SupportedCamelPhases OPTIONAL,
+ offeredCamel4CSIsInVMSC [16] OfferedCamel4CSIs OPTIONAL,
+ routingInfo2 [17] RoutingInfo OPTIONAL,
+ ss-List2 [18] SS-List OPTIONAL,
+ basicService2 [19] Ext-BasicServiceCode OPTIONAL,
+ allowedServices [20] AllowedServices OPTIONAL,
+ unavailabilityCause [21] UnavailabilityCause OPTIONAL
+ }
+
+AllowedServices ::= BIT STRING {
+ firstServiceAllowed (0),
+ secondServiceAllowed (1) } (SIZE (2..8))
+ -- firstService is the service indicated in the networkSignalInfo
+ -- secondService is the service indicated in the networkSignalInfo2
+ -- Other bits than listed above shall be discarded
+
+UnavailabilityCause ::= ENUMERATED {
+ bearerServiceNotProvisioned (1),
+ teleserviceNotProvisioned (2),
+ absentSubscriber (3),
+ busySubscriber (4),
+ callBarred (5),
+ cug-Reject (6),
+ ...}
+ -- exception handling:
+ -- Reception of other values than the ones listed shall result in the service
+ -- being unavailable for that call.
+
+CCBS-Indicators ::= SEQUENCE {
+ ccbs-Possible [0] NULL OPTIONAL,
+ keepCCBS-CallIndicator [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfo ::= CHOICE {
+ roamingNumber ISDN-AddressString,
+ forwardingData ForwardingData}
+
+ForwardingData ::= SEQUENCE {
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this datatype is sent from an HLR which supports CAMEL Phase 2
+ -- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the
+ -- format of the number
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [8] FTN-AddressString OPTIONAL}
+
+ProvideRoamingNumberArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msc-Number [1] ISDN-AddressString,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ gsm-BearerCapability [5] ExternalSignalInfo OPTIONAL,
+ networkSignalInfo [6] ExternalSignalInfo OPTIONAL,
+ suppressionOfAnnouncement [7] SuppressionOfAnnouncement OPTIONAL,
+ gmsc-Address [8] ISDN-AddressString OPTIONAL,
+ callReferenceNumber [9] CallReferenceNumber OPTIONAL,
+ or-Interrogation [10] NULL OPTIONAL,
+ extensionContainer [11] ExtensionContainer OPTIONAL,
+ ... ,
+ alertingPattern [12] AlertingPattern OPTIONAL,
+ ccbs-Call [13] NULL OPTIONAL,
+ supportedCamelPhasesInInterrogatingNode [15] SupportedCamelPhases OPTIONAL,
+ additionalSignalInfo [14] Ext-ExternalSignalInfo OPTIONAL,
+ orNotSupportedInGMSC [16] NULL OPTIONAL,
+ pre-pagingSupported [17] NULL OPTIONAL,
+ longFTN-Supported [18] NULL OPTIONAL,
+ suppress-VT-CSI [19] NULL OPTIONAL,
+ offeredCamel4CSIsInInterrogatingNode [20] OfferedCamel4CSIs OPTIONAL
+ }
+
+ProvideRoamingNumberRes ::= SEQUENCE {
+ roamingNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResumeCallHandlingArg ::= SEQUENCE {
+ callReferenceNumber [0] CallReferenceNumber OPTIONAL,
+ basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL,
+ forwardingData [2] ForwardingData OPTIONAL,
+ imsi [3] IMSI OPTIONAL,
+ cug-CheckInfo [4] CUG-CheckInfo OPTIONAL,
+ o-CSI [5] O-CSI OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ccbs-Possible [8] NULL OPTIONAL,
+ msisdn [9] ISDN-AddressString OPTIONAL,
+ uu-Data [10] UU-Data OPTIONAL,
+ allInformationSent [11] NULL OPTIONAL,
+ ...,
+ d-csi [12] D-CSI OPTIONAL,
+ o-BcsmCamelTDPCriteriaList [13] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ basicServiceGroup2 [14] Ext-BasicServiceCode OPTIONAL
+ }
+
+UU-Data ::= SEQUENCE {
+ uuIndicator [0] UUIndicator OPTIONAL,
+ uui [1] UUI OPTIONAL,
+ uusCFInteraction [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+UUIndicator ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to ETS 300 356
+
+UUI ::= OCTET STRING (SIZE (1..131))
+ -- Octets are coded according to ETS 300 356
+
+ResumeCallHandlingRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CamelInfo ::= SEQUENCE {
+ supportedCamelPhases SupportedCamelPhases,
+ suppress-T-CSI NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [0] OfferedCamel4CSIs OPTIONAL }
+
+ExtendedRoutingInfo ::= CHOICE {
+ routingInfo RoutingInfo,
+ camelRoutingInfo [8] CamelRoutingInfo}
+
+CamelRoutingInfo ::= SEQUENCE {
+ forwardingData ForwardingData OPTIONAL,
+ gmscCamelSubscriptionInfo [0] GmscCamelSubscriptionInfo,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+GmscCamelSubscriptionInfo ::= SEQUENCE {
+ t-CSI [0] T-CSI OPTIONAL,
+ o-CSI [1] O-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-CriteriaList [3] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-csi [5] D-CSI OPTIONAL}
+
+SetReportingStateArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ lmsi [1] LMSI OPTIONAL,
+ ccbs-Monitoring [2] ReportingState OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ReportingState ::= ENUMERATED {
+ stopMonitoring (0),
+ startMonitoring (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to 'stopMonitoring'
+ -- reception of values > 10 shall be mapped to 'startMonitoring'
+
+SetReportingStateRes ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CCBS-SubscriberStatus ::= ENUMERATED {
+ ccbsNotIdle (0),
+ ccbsIdle (1),
+ ccbsNotReachable (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'ccbsNotIdle'
+ -- reception of values 11-20 shall be mapped to 'ccbsIdle'
+ -- reception of values > 20 shall be mapped to 'ccbsNotReachable'
+
+StatusReportArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ eventReportData [1] EventReportData OPTIONAL,
+ callReportdata [2] CallReportData OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+EventReportData ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CallReportData ::= SEQUENCE{
+ monitoringMode [0] MonitoringMode OPTIONAL,
+ callOutcome [1] CallOutcome OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+MonitoringMode ::= ENUMERATED {
+ a-side (0),
+ b-side (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped 'a-side'
+ -- reception of values > 10 shall be mapped to 'b-side'
+
+CallOutcome ::= ENUMERATED {
+ success (0),
+ failure (1),
+ busy (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'success'
+ -- reception of values 11-20 shall be mapped to 'failure'
+ -- reception of values > 20 shall be mapped to 'busy'
+
+StatusReportRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ callInfo [1] ExternalSignalInfo,
+ ccbs-Feature [2] CCBS-Feature,
+ translatedB-Number [3] ISDN-AddressString,
+ replaceB-Number [4] NULL OPTIONAL,
+ alertingPattern [5] AlertingPattern OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeRes ::= SEQUENCE{
+ ruf-Outcome [0] RUF-Outcome,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+RUF-Outcome ::= ENUMERATED{
+ accepted (0),
+ rejected (1),
+ noResponseFromFreeMS (2), -- T4 Expiry
+ noResponseFromBusyMS (3), -- T10 Expiry
+ udubFromFreeMS (4),
+ udubFromBusyMS (5),
+ ...}
+ -- exception handling:
+ -- reception of values 6-20 shall be mapped to 'accepted'
+ -- reception of values 21-30 shall be mapped to 'rejected'
+ -- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS'
+ -- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS'
+ -- reception of values 51-60 shall be mapped to 'udubFromFreeMS'
+ -- reception of values > 60 shall be mapped to 'udubFromBusyMS'
+
+IST-AlertArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-AlertRes ::= SEQUENCE{
+ istAlertTimer [0] IST-AlertTimerValue OPTIONAL,
+ istInformationWithdraw [1] NULL OPTIONAL,
+ callTerminationIndicator [2] CallTerminationIndicator OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandRes ::= SEQUENCE{
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CallTerminationIndicator ::= ENUMERATED {
+ terminateCallActivityReferred (0),
+ terminateAllCallActivities (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred '
+ -- reception of values > 10 shall be mapped to ' terminateAllCallActivities '
+
+ -- In MSCs not supporting linkage of all call activities, any value received shall
+ -- be interpreted as ' terminateCallActivityReferred '
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000000..473e968247
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
@@ -0,0 +1,198 @@
+MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ or-NotAllowed,
+ unknownSubscriber,
+ numberChanged,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ noRoamingNumberAvailable,
+ absentSubscriber,
+ busySubscriber,
+ noSubscriberReply,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+ resourceLimitation,
+ incompatibleTerminal,
+ unidentifiedSubscriber
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+ IST-CommandRes
+FROM MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+;
+
+sendRoutingInfo OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the GMSC supports pre-paging.
+ ARGUMENT
+ SendRoutingInfoArg
+ RESULT
+ SendRoutingInfoRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ unknownSubscriber |
+ numberChanged |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ absentSubscriber |
+ busySubscriber |
+ noSubscriberReply |
+ callBarred |
+ cug-Reject |
+ forwardingViolation}
+ CODE local:22 }
+
+provideRoamingNumber OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the HLR supports pre-paging.
+ ARGUMENT
+ ProvideRoamingNumberArg
+ RESULT
+ ProvideRoamingNumberRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ absentSubscriber |
+ noRoamingNumberAvailable}
+ CODE local:4 }
+
+resumeCallHandling OPERATION ::= { --Timer m
+ ARGUMENT
+ ResumeCallHandlingArg
+ RESULT
+ ResumeCallHandlingRes
+ -- optional
+ ERRORS {
+ forwardingFailed |
+ or-NotAllowed |
+ unexpectedDataValue |
+ dataMissing }
+ CODE local:6 }
+
+setReportingState OPERATION ::= { --Timer m
+ ARGUMENT
+ SetReportingStateArg
+ RESULT
+ SetReportingStateRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unidentifiedSubscriber |
+ unexpectedDataValue |
+ dataMissing |
+ resourceLimitation |
+ facilityNotSupported}
+ CODE local:73 }
+
+statusReport OPERATION ::= { --Timer m
+ ARGUMENT
+ StatusReportArg
+ RESULT
+ StatusReportRes
+ -- optional
+ ERRORS {
+ unknownSubscriber |
+ systemFailure |
+ unexpectedDataValue |
+ dataMissing}
+ CODE local:74 }
+
+remoteUserFree OPERATION ::= { --Timer ml
+ ARGUMENT
+ RemoteUserFreeArg
+ RESULT
+ RemoteUserFreeRes
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ incompatibleTerminal |
+ absentSubscriber |
+ systemFailure |
+ busySubscriber}
+ CODE local:75 }
+
+ist-Alert OPERATION ::= { --Timer m
+ ARGUMENT
+ IST-AlertArg
+ RESULT
+ IST-AlertRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:87 }
+
+ist-Command OPERATION::= { --Timer m
+ ARGUMENT
+ IST-CommandArg
+ RESULT
+ IST-CommandRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:88 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..55d234e91f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
@@ -0,0 +1,612 @@
+MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+ TBCD-STRING,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ AdditionalNetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ LAIFixedLength,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+ -- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown;
+ -- if NAI = international the first digits represent the country code (CC)
+ -- and the network destination code (NDC) as for E.164.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see ITU-T Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in clause 7.6.9.1
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ ts3G-48006 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+ -- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35]
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+AdditionalNetworkResource ::= ENUMERATED {
+ sgsn (0),
+ ggsn (1),
+ gmlc (2),
+ gsmSCF (3),
+ nplr (4),
+ auc (5),
+ ...}
+ -- if unknown value is received in AdditionalNetworkResource
+ -- it shall be ignored.
+
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] ISDN-AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+LCSServiceTypeID ::= INTEGER (0..127)
+ -- the integer values 0-63 are reserved for Standard LCS service types
+ -- the integer values 64-127 are reserved for Non Standard LCS service types
+
+-- Standard LCS Service Types
+emergencyServices LCSServiceTypeID ::= 0
+emergencyAlertServices LCSServiceTypeID ::= 1
+personTracking LCSServiceTypeID ::= 2
+fleetManagement LCSServiceTypeID ::= 3
+assetManagement LCSServiceTypeID ::= 4
+trafficCongestionReporting LCSServiceTypeID ::= 5
+roadsideAssistance LCSServiceTypeID ::= 6
+routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7
+navigation LCSServiceTypeID ::= 8
+ --this service type is reserved for use in previous releases
+citySightseeing LCSServiceTypeID ::= 9
+localizedAdvertising LCSServiceTypeID ::= 10
+mobileYellowPages LCSServiceTypeID ::= 11
+trafficAndPublicTransportationInfo LCSServiceTypeID ::= 12
+weather LCSServiceTypeID ::= 13
+assetAndServiceFinding LCSServiceTypeID ::= 14
+gaming LCSServiceTypeID ::= 15
+findYourFriend LCSServiceTypeID ::= 16
+dating LCSServiceTypeID ::= 17
+chatting LCSServiceTypeID ::= 18
+routeFinding LCSServiceTypeID ::= 19
+whereAmI LCSServiceTypeID ::= 20
+
+-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.
+
+-- Non Standard LCS Service Types
+serv64 LCSServiceTypeID ::= 64
+serv65 LCSServiceTypeID ::= 65
+serv66 LCSServiceTypeID ::= 66
+serv67 LCSServiceTypeID ::= 67
+serv68 LCSServiceTypeID ::= 68
+serv69 LCSServiceTypeID ::= 69
+serv70 LCSServiceTypeID ::= 70
+serv71 LCSServiceTypeID ::= 71
+serv72 LCSServiceTypeID ::= 72
+serv73 LCSServiceTypeID ::= 73
+serv74 LCSServiceTypeID ::= 74
+serv75 LCSServiceTypeID ::= 75
+serv76 LCSServiceTypeID ::= 76
+serv77 LCSServiceTypeID ::= 77
+serv78 LCSServiceTypeID ::= 78
+serv79 LCSServiceTypeID ::= 79
+serv80 LCSServiceTypeID ::= 80
+serv81 LCSServiceTypeID ::= 81
+serv82 LCSServiceTypeID ::= 82
+serv83 LCSServiceTypeID ::= 83
+serv84 LCSServiceTypeID ::= 84
+serv85 LCSServiceTypeID ::= 85
+serv86 LCSServiceTypeID ::= 86
+serv87 LCSServiceTypeID ::= 87
+serv88 LCSServiceTypeID ::= 88
+serv89 LCSServiceTypeID ::= 89
+serv90 LCSServiceTypeID ::= 90
+serv91 LCSServiceTypeID ::= 91
+serv92 LCSServiceTypeID ::= 92
+serv93 LCSServiceTypeID ::= 93
+serv94 LCSServiceTypeID ::= 94
+serv95 LCSServiceTypeID ::= 95
+serv96 LCSServiceTypeID ::= 96
+serv97 LCSServiceTypeID ::= 97
+serv98 LCSServiceTypeID ::= 98
+serv99 LCSServiceTypeID ::= 99
+serv100 LCSServiceTypeID ::= 100
+serv101 LCSServiceTypeID ::= 101
+serv102 LCSServiceTypeID ::= 102
+serv103 LCSServiceTypeID ::= 103
+serv104 LCSServiceTypeID ::= 104
+serv105 LCSServiceTypeID ::= 105
+serv106 LCSServiceTypeID ::= 106
+serv107 LCSServiceTypeID ::= 107
+serv108 LCSServiceTypeID ::= 108
+serv109 LCSServiceTypeID ::= 109
+serv110 LCSServiceTypeID ::= 110
+serv111 LCSServiceTypeID ::= 111
+serv112 LCSServiceTypeID ::= 112
+serv113 LCSServiceTypeID ::= 113
+serv114 LCSServiceTypeID ::= 114
+serv115 LCSServiceTypeID ::= 115
+serv116 LCSServiceTypeID ::= 116
+serv117 LCSServiceTypeID ::= 117
+serv118 LCSServiceTypeID ::= 118
+serv119 LCSServiceTypeID ::= 119
+serv120 LCSServiceTypeID ::= 120
+serv121 LCSServiceTypeID ::= 121
+serv122 LCSServiceTypeID ::= 122
+serv123 LCSServiceTypeID ::= 123
+serv124 LCSServiceTypeID ::= 124
+serv125 LCSServiceTypeID ::= 125
+serv126 LCSServiceTypeID ::= 126
+serv127 LCSServiceTypeID ::= 127
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3GPP TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3GPP TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value "0" indicates that the MS is currently in contact with the
+-- network
+-- value "32767" indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-DialogueInformation.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
new file mode 100644
index 0000000000..5854cbe6b8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
@@ -0,0 +1,149 @@
+MAP-DialogueInformation {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-DialogueInformation (3) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ map-DialogueAS,
+ MAP-DialoguePDU,
+ map-ProtectedDialogueAS,
+ MAP-ProtectedDialoguePDU
+
+;
+
+IMPORTS
+ gsm-NetworkId,
+ as-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+
+ AddressString
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network(1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+;
+
+
+-- abstract syntax name for MAP-DialoguePDU
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+MAP-DialoguePDU ::= CHOICE {
+ map-open [0] MAP-OpenInfo,
+ map-accept [1] MAP-AcceptInfo,
+ map-close [2] MAP-CloseInfo,
+ map-refuse [3] MAP-RefuseInfo,
+ map-userAbort [4] MAP-UserAbortInfo,
+ map-providerAbort [5] MAP-ProviderAbortInfo}
+
+MAP-OpenInfo ::= SEQUENCE {
+ destinationReference [0] AddressString OPTIONAL,
+ originationReference [1] AddressString OPTIONAL,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-AcceptInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-CloseInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-RefuseInfo ::= SEQUENCE {
+ reason Reason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ alternativeApplicationContext OBJECT IDENTIFIER OPTIONAL
+ -- alternativeApplicationContext must not be used in version 2
+ }
+
+Reason ::= ENUMERATED {
+ noReasonGiven (0),
+ invalidDestinationReference (1),
+ invalidOriginatingReference (2),
+ encapsulatedAC-NotSupported (3) ,
+ transportProtectionNotAdequate (4)}
+ -- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in
+ -- dialogues with an AC different from secureTransportHandling
+
+MAP-UserAbortInfo ::= SEQUENCE {
+ map-UserAbortChoice MAP-UserAbortChoice,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-UserAbortChoice ::= CHOICE {
+ userSpecificReason [0] NULL,
+ userResourceLimitation [1] NULL,
+ resourceUnavailable [2] ResourceUnavailableReason,
+ applicationProcedureCancellation [3] ProcedureCancellationReason}
+
+ResourceUnavailableReason ::= ENUMERATED {
+ shortTermResourceLimitation (0),
+ longTermResourceLimitation (1)}
+
+ProcedureCancellationReason ::= ENUMERATED {
+ handoverCancellation (0),
+ radioChannelRelease (1),
+ networkPathRelease (2),
+ callRelease (3),
+ associatedProcedureFailure (4),
+ tandemDialogueRelease (5),
+ remoteOperationsFailure (6)}
+
+MAP-ProviderAbortInfo ::= SEQUENCE {
+ map-ProviderAbortReason MAP-ProviderAbortReason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-ProviderAbortReason ::= ENUMERATED {
+ abnormalDialogue (0),
+ invalidPDU (1)}
+
+-- abstract syntax name for MAP-ProtectedDialoguePDU
+
+map-ProtectedDialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-ProtectedDialoguePDU (3) version1 (1)}
+
+MAP-ProtectedDialoguePDU ::= SEQUENCE {
+ encapsulatedAC OBJECT IDENTIFIER,
+ securityHeader SecurityHeader OPTIONAL,
+ protectedPayload ProtectedPayload OPTIONAL,
+ ...}
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported
+ -- MAP-DialoguePDU
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000000..b66702cb61
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
@@ -0,0 +1,405 @@
+MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ CallBarredParam,
+ CUG-RejectParam,
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ OR-NotAllowedParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ AbsentSubscriberDiagnosticSM,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ SecureTransportErrorParam,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param
+
+;
+
+IMPORTS
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SignalInfo,
+ BasicServiceCode,
+ NetworkResource,
+ AdditionalNetworkResource
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+CallBarredParam ::= CHOICE {
+ callBarringCause CallBarringCause,
+ -- call BarringCause must not be used in version 3 and higher
+ extensibleCallBarredParam ExtensibleCallBarredParam
+ -- extensibleCallBarredParam must not be used in version <3
+ }
+
+CallBarringCause ::= ENUMERATED {
+ barringServiceActive (0),
+ operatorBarring (1)}
+
+ExtensibleCallBarredParam ::= SEQUENCE {
+ callBarringCause CallBarringCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ unauthorisedMessageOriginator [1] NULL OPTIONAL }
+
+CUG-RejectParam ::= SEQUENCE {
+ cug-RejectCause CUG-RejectCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-RejectCause ::= ENUMERATED {
+ incomingCallsBarredWithinCUG (0),
+ subscriberNotMemberOfCUG (1),
+ requestedBasicServiceViolatesCUG-Constraints (5),
+ calledPartySS-InteractionViolation (7)}
+
+SS-IncompatibilityCause ::= SEQUENCE {
+ ss-Code [1] SS-Code OPTIONAL,
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+PW-RegistrationFailureCause ::= ENUMERATED {
+ undetermined (0),
+ invalidFormat (1),
+ newPasswordsMismatch (2)}
+
+SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ equipmentProtocolError (1),
+ equipmentNotSM-Equipped (2),
+ unknownServiceCentre (3),
+ sc-Congestion (4),
+ invalidSME-Address (5),
+ subscriberNotSC-Subscriber (6)}
+
+SM-DeliveryFailureCause ::= SEQUENCE {
+ sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause,
+ diagnosticInfo SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberSM-Param ::= SEQUENCE {
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ -- AbsentSubscriberDiagnosticSM can be either for non-GPRS
+ -- or for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- if received, additionalAbsentSubscriberDiagnosticSM
+ -- is for GPRS and absentSubscriberDiagnosticSM is
+ -- for non-GPRS
+
+AbsentSubscriberDiagnosticSM ::= INTEGER (0..255)
+ -- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalNetworkResource [0] AdditionalNetworkResource OPTIONAL }
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FacilityNotSupParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL,
+ neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL }
+
+OR-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...,
+ npdbMismatch (2)}
+ -- if unknown values are received in
+ -- UnknownSubscriberDiagnostic they shall be discarded
+
+NumberChangedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalEquipmentParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+BearerServNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TeleservNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TracingBufferFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoRoamingNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL}
+
+AbsentSubscriberReason ::= ENUMERATED {
+ imsiDetach (0),
+ restrictedArea (1),
+ noPageResponse (2),
+ ... ,
+ purgedMS (3)}
+-- exception handling: at reception of other values than the ones listed the
+-- AbsentSubscriberReason shall be ignored.
+-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature
+-- (see TS 23.116). If this value is received in a Provide Roaming Number response
+-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing
+-- Information response
+
+BusySubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ccbs-Possible [0] NULL OPTIONAL,
+ ccbs-Busy [1] NULL OPTIONAL}
+
+NoSubscriberReplyParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingFailedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATSI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATM-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSS-OperationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-NotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-SubscriptionViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InformationNotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubBusyForMT-SMS-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ gprsConnectionSuspended NULL OPTIONAL }
+ -- If GprsConnectionSuspended is not understood it shall
+ -- be discarded
+
+MessageWaitListFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResourceLimitationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoGroupCallNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IncompatibleTerminalParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ShortTermDenialParam ::= SEQUENCE {
+ ...}
+
+LongTermDenialParam ::= SEQUENCE {
+ ...}
+
+UnauthorizedRequestingNetwork-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnauthorizedLCSClient-Param ::= SEQUENCE {
+ unauthorizedLCSClient-Diagnostic [0] UnauthorizedLCSClient-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {
+ noAdditionalInformation (0),
+ clientNotInMSPrivacyExceptionList (1),
+ callToClientNotSetup (2),
+ privacyOverrideNotApplicable (3),
+ disallowedByLocalRegulatoryRequirements (4),
+ ...,
+ unauthorizedPrivacyClass (5),
+ unauthorizedCallSessionUnrelatedExternalClient (6),
+ unauthorizedCallSessionRelatedExternalClient (7) }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+PositionMethodFailure-Param ::= SEQUENCE {
+ positionMethodFailure-Diagnostic [0] PositionMethodFailure-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+PositionMethodFailure-Diagnostic ::= ENUMERATED {
+ congestion (0),
+ insufficientResources (1),
+ insufficientMeasurementData (2),
+ inconsistentMeasurementData (3),
+ locationProcedureNotCompleted (4),
+ locationProcedureNotSupportedByTargetMS (5),
+ qoSNotAttainable (6),
+ positionMethodNotAvailableInNetwork (7),
+ positionMethodNotAvailableInLocationArea (8),
+ ... }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MM-EventNotSupported-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TargetCellOutsideGCA-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SecureTransportErrorParam ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported error
+ -- parameter
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Errors.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Errors.asn
new file mode 100644
index 0000000000..f0aa2b0a3a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Errors.asn
@@ -0,0 +1,507 @@
+MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- generic errors
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ incompatibleTerminal,
+ resourceLimitation,
+
+ -- identification and numbering errors
+ unknownSubscriber,
+ numberChanged,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+
+ -- subscription errors
+ roamingNotAllowed,
+ illegalSubscriber,
+ illegalEquipment,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+
+ -- handover errors
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ targetCellOutsideGroupCallArea,
+
+ -- operation and maintenance errors
+ tracingBufferFull,
+
+ -- call handling errors
+ or-NotAllowed,
+ noRoamingNumberAvailable,
+ busySubscriber,
+ noSubscriberReply,
+ absentSubscriber,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+
+ -- any time interrogation errors
+ ati-NotAllowed,
+
+ -- any time information handling errors
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ informationNotAvailable,
+
+ -- supplementary service errors
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ unknownAlphabet,
+ ussd-Busy,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ shortTermDenial,
+ longTermDenial,
+
+ -- short message service errors
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM,
+
+ -- Group Call errors
+ noGroupCallNumberAvailable,
+
+ -- location service errors
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ unknownOrUnreachableLCSClient,
+
+ -- Mobility Management errors
+ mm-EventNotSupported,
+
+ -- Secure transport errors
+ secureTransportError
+
+;
+
+IMPORTS
+ ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0) }
+
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ RoamingNotAllowedParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ OR-NotAllowedParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ CallBarredParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ CUG-RejectParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param,
+ SecureTransportErrorParam
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+;
+
+-- generic errors
+
+systemFailure ERROR ::= {
+ PARAMETER
+ SystemFailureParam
+ -- optional
+ CODE local:34 }
+
+dataMissing ERROR ::= {
+ PARAMETER
+ DataMissingParam
+ -- optional
+ -- DataMissingParam must not be used in version <3
+ CODE local:35 }
+
+unexpectedDataValue ERROR ::= {
+ PARAMETER
+ UnexpectedDataParam
+ -- optional
+ -- UnexpectedDataParam must not be used in version <3
+ CODE local:36 }
+
+facilityNotSupported ERROR ::= {
+ PARAMETER
+ FacilityNotSupParam
+ -- optional
+ -- FacilityNotSupParam must not be used in version <3
+ CODE local:21 }
+
+incompatibleTerminal ERROR ::= {
+ PARAMETER
+ IncompatibleTerminalParam
+ -- optional
+ CODE local:28 }
+
+resourceLimitation ERROR ::= {
+ PARAMETER
+ ResourceLimitationParam
+ -- optional
+ CODE local:51 }
+
+-- identification and numbering errors
+
+unknownSubscriber ERROR ::= {
+ PARAMETER
+ UnknownSubscriberParam
+ -- optional
+ -- UnknownSubscriberParam must not be used in version <3
+ CODE local:1 }
+
+numberChanged ERROR ::= {
+ PARAMETER
+ NumberChangedParam
+ -- optional
+ CODE local:44 }
+
+unknownMSC ERROR ::= {
+ CODE local:3 }
+
+unidentifiedSubscriber ERROR ::= {
+ PARAMETER
+ UnidentifiedSubParam
+ -- optional
+ -- UunidentifiedSubParam must not be used in version <3
+ CODE local:5 }
+
+unknownEquipment ERROR ::= {
+ CODE local:7 }
+
+-- subscription errors
+
+roamingNotAllowed ERROR ::= {
+ PARAMETER
+ RoamingNotAllowedParam
+ CODE local:8 }
+
+illegalSubscriber ERROR ::= {
+ PARAMETER
+ IllegalSubscriberParam
+ -- optional
+ -- IllegalSubscriberParam must not be used in version <3
+ CODE local:9 }
+
+illegalEquipment ERROR ::= {
+ PARAMETER
+ IllegalEquipmentParam
+ -- optional
+ -- IllegalEquipmentParam must not be used in version <3
+ CODE local:12 }
+
+bearerServiceNotProvisioned ERROR ::= {
+ PARAMETER
+ BearerServNotProvParam
+ -- optional
+ -- BearerServNotProvParam must not be used in version <3
+ CODE local:10 }
+
+teleserviceNotProvisioned ERROR ::= {
+ PARAMETER
+ TeleservNotProvParam
+ -- optional
+ -- TeleservNotProvParam must not be used in version <3
+ CODE local:11 }
+
+-- handover errors
+
+noHandoverNumberAvailable ERROR ::= {
+ CODE local:25 }
+
+subsequentHandoverFailure ERROR ::= {
+ CODE local:26 }
+
+targetCellOutsideGroupCallArea ERROR ::= {
+ PARAMETER
+ TargetCellOutsideGCA-Param
+ -- optional
+ CODE local:42 }
+
+-- operation and maintenance errors
+
+tracingBufferFull ERROR ::= {
+ PARAMETER
+ TracingBufferFullParam
+ -- optional
+ CODE local: 40 }
+
+-- call handling errors
+
+noRoamingNumberAvailable ERROR ::= {
+ PARAMETER
+ NoRoamingNbParam
+ -- optional
+ CODE local:39 }
+
+absentSubscriber ERROR ::= {
+ PARAMETER
+ AbsentSubscriberParam
+ -- optional
+ -- AbsentSubscriberParam must not be used in version <3
+ CODE local:27 }
+
+busySubscriber ERROR ::= {
+ PARAMETER
+ BusySubscriberParam
+ -- optional
+ CODE local:45 }
+
+noSubscriberReply ERROR ::= {
+ PARAMETER
+ NoSubscriberReplyParam
+ -- optional
+ CODE local:46 }
+
+callBarred ERROR ::= {
+ PARAMETER
+ CallBarredParam
+ -- optional
+ CODE local:13 }
+
+forwardingViolation ERROR ::= {
+ PARAMETER
+ ForwardingViolationParam
+ -- optional
+ CODE local:14 }
+
+forwardingFailed ERROR ::= {
+ PARAMETER
+ ForwardingFailedParam
+ -- optional
+ CODE local:47 }
+
+cug-Reject ERROR ::= {
+ PARAMETER
+ CUG-RejectParam
+ -- optional
+ CODE local:15 }
+
+or-NotAllowed ERROR ::= {
+ PARAMETER
+ OR-NotAllowedParam
+ -- optional
+ CODE local:48 }
+
+-- any time interrogation errors
+ati-NotAllowed ERROR ::= {
+ PARAMETER
+ ATI-NotAllowedParam
+ -- optional
+ CODE local:49 }
+
+-- any time information handling errors
+atsi-NotAllowed ERROR ::= {
+ PARAMETER
+ ATSI-NotAllowedParam
+ -- optional
+ CODE local:60 }
+
+atm-NotAllowed ERROR ::= {
+ PARAMETER
+ ATM-NotAllowedParam
+ -- optional
+ CODE local:61 }
+
+informationNotAvailable ERROR ::= {
+ PARAMETER
+ InformationNotAvailableParam
+ -- optional
+ CODE local:62 }
+
+-- supplementary service errors
+
+illegalSS-Operation ERROR ::= {
+ PARAMETER
+ IllegalSS-OperationParam
+ -- optional
+ -- IllegalSS-OperationParam must not be used in version <3
+ CODE local:16 }
+
+ss-ErrorStatus ERROR ::= {
+ PARAMETER
+ SS-Status
+ -- optional
+ CODE local:17 }
+
+ss-NotAvailable ERROR ::= {
+ PARAMETER
+ SS-NotAvailableParam
+ -- optional
+ -- SS-NotAvailableParam must not be used in version <3
+ CODE local:18 }
+
+ss-SubscriptionViolation ERROR ::= {
+ PARAMETER
+ SS-SubscriptionViolationParam
+ -- optional
+ -- SS-SubscriptionViolationParam must not be used in version <3
+ CODE local:19 }
+
+ss-Incompatibility ERROR ::= {
+ PARAMETER
+ SS-IncompatibilityCause
+ -- optional
+ CODE local:20 }
+
+unknownAlphabet ERROR ::= {
+ CODE local:71 }
+
+ussd-Busy ERROR ::= {
+ CODE local:72 }
+
+pw-RegistrationFailure ERROR ::= {
+ PARAMETER
+ PW-RegistrationFailureCause
+ CODE local:37 }
+
+negativePW-Check ERROR ::= {
+ CODE local:38 }
+
+numberOfPW-AttemptsViolation ERROR ::= {
+ CODE local:43 }
+
+shortTermDenial ERROR ::= {
+ PARAMETER
+ ShortTermDenialParam
+ -- optional
+ CODE local:29 }
+
+longTermDenial ERROR ::= {
+ PARAMETER
+ LongTermDenialParam
+ -- optional
+ CODE local:30 }
+
+-- short message service errors
+
+subscriberBusyForMT-SMS ERROR ::= {
+ PARAMETER
+ SubBusyForMT-SMS-Param
+ -- optional
+ CODE local:31 }
+
+sm-DeliveryFailure ERROR ::= {
+ PARAMETER
+ SM-DeliveryFailureCause
+ CODE local:32 }
+
+messageWaitingListFull ERROR ::= {
+ PARAMETER
+ MessageWaitListFullParam
+ -- optional
+ CODE local:33 }
+
+absentSubscriberSM ERROR ::= {
+ PARAMETER
+ AbsentSubscriberSM-Param
+ -- optional
+ CODE local:6 }
+
+-- Group Call errors
+
+noGroupCallNumberAvailable ERROR ::= {
+ PARAMETER
+ NoGroupCallNbParam
+ -- optional
+ CODE local:50 }
+
+-- location service errors
+
+unauthorizedRequestingNetwork ERROR ::= {
+ PARAMETER
+ UnauthorizedRequestingNetwork-Param
+ -- optional
+ CODE local:52 }
+
+unauthorizedLCSClient ERROR ::= {
+ PARAMETER
+ UnauthorizedLCSClient-Param
+ -- optional
+ CODE local:53 }
+
+positionMethodFailure ERROR ::= {
+ PARAMETER
+ PositionMethodFailure-Param
+ -- optional
+ CODE local:54 }
+
+unknownOrUnreachableLCSClient ERROR ::= {
+ PARAMETER
+ UnknownOrUnreachableLCSClient-Param
+ -- optional
+ CODE local:58 }
+
+mm-EventNotSupported ERROR ::= {
+ PARAMETER
+ MM-EventNotSupported-Param
+ -- optional
+ CODE local:59 }
+
+ -- Secure transport errors
+
+secureTransportError ERROR ::= {
+ PARAMETER
+ SecureTransportErrorParam
+ CODE local:4 }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..ab4cb9c3b1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,65 @@
+MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ PrivateExtension,
+ ExtensionContainer,
+ SLR-ArgExtensionContainer;
+
+
+-- IOC for private MAP extensions
+
+
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+
+-- data types
+
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+
+SLR-ArgExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
+ ...}
+
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+
+PCS-Extensions ::= SEQUENCE {
+ ...}
+
+SLR-Arg-PCS-Extensions ::= SEQUENCE {
+ ...,
+ na-ESRK-Request [0] NULL OPTIONAL }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000000..8ceeea183b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
@@ -0,0 +1,122 @@
+MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+;
+
+IMPORTS
+ ISDN-AddressString,
+ IMSI,
+ EMLPP-Priority,
+ ASCI-CallReference
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ Kc
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+PrepareGroupCallArg ::= SEQUENCE {
+ teleservice Ext-TeleserviceCode,
+ asciCallReference ASCI-CallReference,
+ codec-Info CODEC-Info,
+ cipheringAlgorithm CipheringAlgorithm,
+ groupKeyNumber [0] GroupKeyNumber OPTIONAL,
+ groupKey [1] Kc OPTIONAL,
+ priority [2] EMLPP-Priority OPTIONAL,
+ uplinkFree [3] NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareGroupCallRes ::= SEQUENCE {
+ groupCallNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardGroupCallSignallingArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ uplinkRequestAck [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ uplinkRejectCommand [2] NULL OPTIONAL,
+ uplinkSeizedCommand [3] NULL OPTIONAL,
+ uplinkReleaseCommand [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ stateAttributes [5] StateAttributes OPTIONAL }
+
+ProcessGroupCallSignallingArg ::= SEQUENCE {
+ uplinkRequest [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ releaseGroupCall [2] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupKeyNumber ::= INTEGER (0..15)
+
+CODEC-Info ::= OCTET STRING (SIZE (5..10))
+ -- Refers to channel type
+ -- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length
+
+CipheringAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Refers to 'permitted algorithms' in 'encryption information'
+ -- coded according to 3GPP TS 48.008 [49]:
+
+ -- Bits 8-1
+ -- 8765 4321
+ -- 0000 0001 No encryption
+ -- 0000 0010 GSM A5/1
+ -- 0000 0100 GSM A5/2
+ -- 0000 1000 GSM A5/3
+ -- 0001 0000 GSM A5/4
+ -- 0010 0000 GSM A5/5
+ -- 0100 0000 GSM A5/6
+ -- 1000 0000 GSM A5/7
+
+StateAttributes ::= SEQUENCE {
+ downlinkAttached [5] NULL OPTIONAL,
+ uplinkAttached [6] NULL OPTIONAL,
+ dualCommunication [7] NULL OPTIONAL,
+ callOriginator [8] NULL OPTIONAL }
+
+ -- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields.
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000000..55777fec68
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
@@ -0,0 +1,72 @@
+MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ prepareGroupCall,
+ sendGroupCallEndSignal,
+ forwardGroupCallSignalling,
+ processGroupCallSignalling
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ unexpectedDataValue,
+ noGroupCallNumberAvailable
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+FROM MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+;
+
+prepareGroupCall OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareGroupCallArg
+ RESULT
+ PrepareGroupCallRes
+ ERRORS {
+ systemFailure |
+ noGroupCallNumberAvailable |
+ unexpectedDataValue}
+ CODE local:39 }
+
+sendGroupCallEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendGroupCallEndSignalArg
+ RESULT
+ SendGroupCallEndSignalRes
+ CODE local:40 }
+
+processGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessGroupCallSignallingArg
+ CODE local:41 }
+
+forwardGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardGroupCallSignallingArg
+ CODE local:42 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000000..08962d6874
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
@@ -0,0 +1,533 @@
+MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res,
+ LocationType,
+ DeferredLocationEventType,
+ LCSClientName,
+ LCS-QoS,
+ Horizontal-Accuracy,
+ ResponseTime,
+ Ext-GeographicalInformation,
+ SupportedGADShapes,
+ Add-GeographicalInformation,
+ LCSRequestorID,
+ LCS-ReferenceNumber,
+ LCSCodeword,
+ AreaEventInfo
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ IMEI,
+ IMSI,
+ LMSI,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID,
+ CellGlobalIdOrServiceAreaIdOrLAI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ USSD-DataCodingScheme,
+ USSD-String
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version9 (9)}
+
+ APN,
+ GSN-Address,
+ SupportedLCS-CapabilitySets
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ Additional-Number
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+;
+
+
+RoutingInfoForLCS-Arg ::= SEQUENCE {
+ mlcNumber [0] ISDN-AddressString,
+ targetMS [1] SubscriberIdentity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfoForLCS-Res ::= SEQUENCE {
+ targetMS [0] SubscriberIdentity,
+ lcsLocationInfo [1] LCSLocationInfo,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ h-gmlc-Address [4] GSN-Address OPTIONAL,
+ ppr-Address [5] GSN-Address OPTIONAL,
+ additional-v-gmlc-Address [6] GSN-Address OPTIONAL }
+
+LCSLocationInfo ::= SEQUENCE {
+ networkNode-Number ISDN-AddressString,
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ lmsi [0] LMSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsNodeIndicator [2] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
+ additional-Number [3] Additional-Number OPTIONAL,
+ supportedLCS-CapabilitySets [4] SupportedLCS-CapabilitySets OPTIONAL,
+ additional-LCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL
+ }
+
+ProvideSubscriberLocation-Arg ::= SEQUENCE {
+ locationType LocationType,
+ mlc-Number ISDN-AddressString,
+ lcs-ClientID [0] LCS-ClientID OPTIONAL,
+ privacyOverride [1] NULL OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ msisdn [3] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ lcs-Priority [6] LCS-Priority OPTIONAL,
+ lcs-QoS [7] LCS-QoS OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ supportedGADShapes [9] SupportedGADShapes OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
+ lcsCodeword [12] LCSCodeword OPTIONAL,
+ lcs-PrivacyCheck [13] LCS-PrivacyCheck OPTIONAL,
+ areaEventInfo [14] AreaEventInfo OPTIONAL,
+ h-gmlc-Address [15] GSN-Address OPTIONAL }
+
+ -- one of imsi or msisdn is mandatory
+ -- If a location estimate type indicates activate deferred location or cancel deferred
+ -- location, a lcs-Reference number shall be included.
+
+LocationType ::= SEQUENCE {
+ locationEstimateType [0] LocationEstimateType,
+ ...,
+ deferredLocationEventType [1] DeferredLocationEventType OPTIONAL }
+
+LocationEstimateType ::= ENUMERATED {
+ currentLocation (0),
+ currentOrLastKnownLocation (1),
+ initialLocation (2),
+ ...,
+ activateDeferredLocation (3),
+ cancelDeferredLocation (4) }
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+DeferredLocationEventType ::= BIT STRING {
+ msAvailable (0) ,
+ enteringIntoArea (1),
+ leavingFromArea (2),
+ beingInsideArea (3) } (SIZE (1..16))
+-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value
+-- of occurrenceInfo inside areaEventInfo.
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing other values than listed above in
+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+
+LCS-ClientID ::= SEQUENCE {
+ lcsClientType [0] LCSClientType,
+ lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [2] AddressString OPTIONAL,
+ lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
+ lcsClientName [4] LCSClientName OPTIONAL,
+ ...,
+ lcsAPN [5] APN OPTIONAL,
+ lcsRequestorID [6] LCSRequestorID OPTIONAL }
+
+LCSClientType ::= ENUMERATED {
+ emergencyServices (0),
+ valueAddedServices (1),
+ plmnOperatorServices (2),
+ lawfulInterceptServices (3),
+ ... }
+ -- exception handling:
+ -- unrecognized values may be ignored if the LCS client uses the privacy override
+ -- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
+ -- a return error shall then be returned if received in a MAP invoke
+
+LCSClientName ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ nameString [2] NameString,
+ ...,
+ lcs-FormatIndicator [3] LCS-FormatIndicator OPTIONAL }
+
+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
+-- following encoding
+-- bit 7 6 5 4 3 2 1 0
+-- 0 0 0 0 1 1 1 1
+
+NameString ::= USSD-String (SIZE (1..maxNameStringLength))
+
+maxNameStringLength INTEGER ::= 63
+
+LCSRequestorID ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ requestorIDString [1] RequestorIDString,
+ ...,
+ lcs-FormatIndicator [2] LCS-FormatIndicator OPTIONAL }
+
+RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))
+
+maxRequestorIDStringLength INTEGER ::= 63
+
+LCS-FormatIndicator ::= ENUMERATED {
+ logicalName (0),
+ e-mailAddress (1),
+ msisdn (2),
+ url (3),
+ sipUrl (4),
+ ... }
+
+LCS-Priority ::= OCTET STRING (SIZE (1))
+ -- 0 = highest priority
+ -- 1 = normal priority
+ -- all other values treated as 1
+
+LCS-QoS ::= SEQUENCE {
+ horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
+ verticalCoordinateRequest [1] NULL OPTIONAL,
+ vertical-accuracy [2] Vertical-Accuracy OPTIONAL, responseTime [3] ResponseTime OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+Horizontal-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
+ -- error should be less than the error indicated by the uncertainty code with 67%
+ -- confidence.
+
+Vertical-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
+ -- The vertical location error should be less than the error indicated
+ -- by the uncertainty code with 67% confidence.
+
+ResponseTime ::= SEQUENCE {
+ responseTimeCategory ResponseTimeCategory,
+ ...}
+-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
+
+ResponseTimeCategory ::= ENUMERATED {
+ lowdelay (0),
+ delaytolerant (1),
+ ... }
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
+
+SupportedGADShapes ::= BIT STRING {
+ ellipsoidPoint (0),
+ ellipsoidPointWithUncertaintyCircle (1),
+ ellipsoidPointWithUncertaintyEllipse (2),
+ polygon (3),
+ ellipsoidPointWithAltitude (4),
+ ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),
+ ellipsoidArc (6) } (SIZE (7..16))
+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
+-- exception handling: bits 7 to 15 shall be ignored if received.
+
+LCS-ReferenceNumber::= OCTET STRING (SIZE(1))
+
+LCSCodeword ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lcsCodewordString [1] LCSCodewordString,
+ ...}
+
+LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))
+
+maxLCSCodewordStringLength INTEGER ::= 20
+
+LCS-PrivacyCheck ::= SEQUENCE {
+ callSessionUnrelated [0] PrivacyCheckRelatedAction,
+ callSessionRelated [1] PrivacyCheckRelatedAction OPTIONAL,
+ ...}
+
+PrivacyCheckRelatedAction ::= ENUMERATED {
+ allowedWithoutNotification (0),
+ allowedWithNotification (1),
+ allowedIfNoResponse (2),
+ restrictedIfNoResponse (3),
+ notAllowed (4),
+ ...}
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+AreaEventInfo ::= SEQUENCE {
+ areaDefinition [0] AreaDefinition,
+ occurrenceInfo [1] OccurrenceInfo OPTIONAL,
+ intervalTime [2] IntervalTime OPTIONAL,
+ ...}
+
+AreaDefinition ::= SEQUENCE {
+ areaList [0] AreaList,
+ ...}
+
+AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area
+
+maxNumOfAreas INTEGER ::= 10
+
+Area ::= SEQUENCE {
+ areaType [0] AreaType,
+ areaIdentification [1] AreaIdentification,
+ ...}
+
+AreaType ::= ENUMERATED {
+ countryCode (0),
+ plmnId (1),
+ locationAreaId (2),
+ routingAreaId (3),
+ cellGlobalId (4),
+ ...}
+
+AreaIdentification ::= OCTET STRING (SIZE (2..7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included
+ -- or filler (1111)
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code (LAC)
+ -- octet 6 Routing Area Code (RAC) for Routing Area Id
+ -- octets 6 and 7 Cell Identity (CI) for Cell Global Id
+
+OccurrenceInfo ::= ENUMERATED {
+ oneTimeEvent (0),
+ multipleTimeEvent (1),
+ ...}
+
+IntervalTime ::= INTEGER (1..32767)
+ -- minimum interval time between area reports in seconds
+
+ProvideSubscriberLocation-Res ::= SEQUENCE {
+ locationEstimate Ext-GeographicalInformation,
+ ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrResponseIndicator [3] NULL OPTIONAL,
+ geranPositioningData [4] PositioningDataInformation OPTIONAL,
+ utranPositioningData [5] UtranPositioningDataInfo OPTIONAL,
+ cellIdOrSai [6] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ sai-Present [7] NULL OPTIONAL }
+
+-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.
+
+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the
+-- geographic shapes supported in the ProvideSubscriberLocation-Arg
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported.
+-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:
+ -- (a) Ellipsoid point with uncertainty circle
+ -- (b) Ellipsoid point with uncertainty ellipse
+ -- (c) Ellipsoid point with altitude and uncertainty ellipsoid
+ -- (d) Ellipsoid Arc
+ -- (e) Ellipsoid Point
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty code 1 octet
+ -- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse:
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Altitude 2 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Uncertainty altitude 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 13 for case (d) - Ellipsoid Arc
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Inner radius 2 octets
+ -- Uncertainty radius 1 octet
+ -- Offset angle 1 octet
+ -- Included angle 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 7 for case (e) - Ellipsoid Point
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+
+ --
+ -- An Ext-GeographicalInformation parameter comprising more than one octet and
+ -- containing any other shape or an incorrect number of octets or coding according
+ -- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be discarded
+ -- by the receiver if an Add-GeographicalInformation parameter is received
+ -- in the same message.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be treated as
+ -- invalid data by the receiver if an Add-GeographicalInformation parameter is not
+ -- received in the same message.
+
+maxExt-GeographicalInformation INTEGER ::= 20
+ -- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later
+ -- versions of 3GPP TS 29.002
+
+PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation))
+ -- Refers to the Positioning Data defined in 3GPP TS 49.031.
+ -- This is composed of 2 or more octets with an internal structure according to
+ -- 3GPP TS 49.031.
+
+maxPositioningDataInformation INTEGER ::= 10
+ --
+
+UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the positioningDataDiscriminator and the positioningDataSet
+ -- included in positionData as defined in 3GPP TS 25.413.
+
+maxUtranPositioningDataInfo INTEGER ::= 11
+ --
+
+Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:
+ -- Octets 2 to n (where n is the total number of octets necessary to encode the shape
+ -- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the
+ -- encoding defined in 3GPP TS 23.032
+ --
+ -- An Add-GeographicalInformation parameter, whether valid or invalid, received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message
+ -- shall be discarded.
+ --
+ -- An Add-GeographicalInformation parameter containing any shape not defined in
+ -- 3GPP TS 23.032 or an incorrect number of octets or coding according to
+ -- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message.
+
+maxAdd-GeographicalInformation INTEGER ::= 91
+ -- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032
+
+SubscriberLocationReport-Arg ::= SEQUENCE {
+ lcs-Event LCS-Event,
+ lcs-ClientID LCS-ClientID,
+ lcsLocationInfo LCSLocationInfo,
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ imei [2] IMEI OPTIONAL,
+ na-ESRD [3] ISDN-AddressString OPTIONAL,
+ na-ESRK [4] ISDN-AddressString OPTIONAL,
+ locationEstimate [5] Ext-GeographicalInformation OPTIONAL,
+ ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrData [9] Deferredmt-lrData OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ geranPositioningData [11] PositioningDataInformation OPTIONAL,
+ utranPositioningData [12] UtranPositioningDataInfo OPTIONAL,
+ na-ESRK-Request [16] NULL OPTIONAL,
+ cellIdOrSai [13] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ h-gmlc-Address [14] GSN-Address OPTIONAL,
+ lcsServiceTypeID [15] LCSServiceTypeID OPTIONAL,
+ sai-Present [17] NULL OPTIONAL }
+
+ -- one of msisdn or imsi is mandatory
+ -- a location estimate that is valid for the locationEstimate parameter should
+ -- be transferred in this parameter in preference to the add-LocationEstimate.
+ -- the deferredmt-lrData parameter shall be included if and only if the lcs-Event
+ -- indicates a deferredmt-lrResponse.
+ -- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate
+ -- and the add-locationEstimate parameters shall not be sent if the
+ -- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg
+ -- and the shape encoded in locationEstimate or add-LocationEstimate was not marked
+ -- as supported in supportedGADShapes. In such a case terminationCause
+ -- in deferredmt-lrData shall be present with value
+ -- shapeOfLocationEstimateNotSupported.
+ -- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be
+ -- included.
+ -- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Deferredmt-lrData ::= SEQUENCE {
+ deferredLocationEventType DeferredLocationEventType,
+ terminationCause [0] TerminationCause OPTIONAL,
+ lcsLocationInfo [1] LCSLocationInfo OPTIONAL,
+ ...}
+ -- lcsLocationInfo may be included only if a terminationCause is present
+ -- indicating mt-lrRestart.
+
+LCS-Event ::= ENUMERATED {
+ emergencyCallOrigination (0),
+ emergencyCallRelease (1),
+ mo-lr (2),
+ ...,
+ deferredmt-lrResponse (3) }
+ -- exception handling:
+ -- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event
+ -- shall be rejected by a receiver with a return error cause of unexpected data value
+
+TerminationCause ::= ENUMERATED {
+ normal (0),
+ errorundefined (1),
+ internalTimeout (2),
+ congestion (3),
+ mt-lrRestart (4),
+ privacyViolation (5),
+ ...,
+ shapeOfLocationEstimateNotSupported (6) }
+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure,
+-- either because the sending node knows that the terminal has moved under coverage
+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber
+-- has been deregistered due to a Cancel Location received from HLR.
+--
+-- exception handling
+-- an unrecognized value shall be treated the same as value 1 (errorundefined)
+
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ na-ESRK [0] ISDN-AddressString OPTIONAL }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000000..c28ac884ce
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
@@ -0,0 +1,103 @@
+MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ provideSubscriberLocation,
+sendRoutingInfoForLCS,
+subscriberLocationReport
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ absentSubscriber,
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ resourceLimitation,
+ unknownOrUnreachableLCSClient,
+ unidentifiedSubscriber,
+ illegalEquipment,
+ illegalSubscriber
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res
+FROM MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+;
+
+sendRoutingInfoForLCS OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForLCS-Arg
+ RESULT
+ RoutingInfoForLCS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ absentSubscriber |
+ unauthorizedRequestingNetwork }
+ CODE local:85 }
+
+provideSubscriberLocation OPERATION ::= { --Timer ml
+ ARGUMENT
+ ProvideSubscriberLocation-Arg
+ RESULT
+ ProvideSubscriberLocation-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ absentSubscriber |
+ unauthorizedRequestingNetwork |
+ unauthorizedLCSClient |
+ positionMethodFailure }
+ CODE local:83 }
+
+subscriberLocationReport OPERATION ::= { --Timer m
+ ARGUMENT
+ SubscriberLocationReport-Arg
+ RESULT
+ SubscriberLocationReport-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ resourceLimitation |
+ unexpectedDataValue |
+ unknownSubscriber |
+ unauthorizedRequestingNetwork |
+ unknownOrUnreachableLCSClient}
+ CODE local:86 }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000000..e905c44077
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
@@ -0,0 +1,2458 @@
+MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+ SupportedLCS-CapabilitySets,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ Kc,
+
+ -- equipment management types
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ OfferedCamel4Functionalities,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Info,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ QoS-Subscribed,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+ APN,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+ GeographicalInformation,
+ MS-Classmark2,
+ GPRSMSClass,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ LocationInformationGPRS,
+ RAIdentity,
+ SubscriberState,
+ GPRSChargingID,
+ MNPInfoRes,
+ RouteingNumber,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+ NoteMM-EventArg,
+ NoteMM-EventRes,
+ NumberPortabilityStatus
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ IMEI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status,
+ LCSServiceTypeID,
+ ASCI-CallReference,
+ TBCD-STRING
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+;
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL,
+ informPreviousNetworkEntity [11] NULL OPTIONAL,
+ cs-LCS-NotSupportedByUE [12] NULL OPTIONAL,
+ v-gmlc-Address [2] GSN-Address OPTIONAL,
+ add-info [13] ADD-Info OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+SupportedLCS-CapabilitySets ::= BIT STRING {
+ lcsCapabilitySet1 (0),
+ lcsCapabilitySet2 (1),
+ lcsCapabilitySet3 (2),
+ lcsCapabilitySet4 (3) } (SIZE (2..16))
+-- Core network signalling capability set1 indicates LCS Release98 or Release99 version.
+-- Core network signalling capability set2 indicates LCS Release4.
+-- Core network signalling capability set3 indicates LCS Release5.
+-- Core network signalling capability set4 indicates LCS Release6 or later version.
+-- A node shall mark in the BIT STRING all LCS capability sets it supports.
+-- If no bit is set then the sending node does not support LCS.
+-- If the parameter is not sent by an VLR then the VLR may support at most capability set1.
+-- If the parameter is not sent by an SGSN then no support for LCS is assumed.
+-- An SGSN is not allowed to indicate support of capability set1.
+-- Other bits than listed above shall be discarded.
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+ADD-Info ::= SEQUENCE {
+ imeisv [0] IMEI,
+ skipSubscriberDataUpdate [1] NULL OPTIONAL,
+ ...}
+
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- within a dialogue numberOfRequestedVectors shall be present in
+ -- the first service request and shall not be present in subsequent service requests.
+ -- If received in a subsequent service request it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ msc-Number ISDN-AddressString OPTIONAL }
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI shall be present in the first (or only) service response of a dialogue.
+ -- If multiple service requests are present in a dialogue then IMSI
+ -- shall not be present in any service response other than the first one.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ re-attempt BOOLEAN OPTIONAL,
+ accessType AccessType OPTIONAL,
+ rand RAND OPTIONAL,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL }
+
+AccessType ::= ENUMERATED {
+ call (0),
+ emergencyCall (1),
+ locationUpdating (2),
+ supplementaryService (3),
+ shortMessage (4),
+ gprsAttach (5),
+ routingAreaUpdating (6),
+ serviceRequest (7),
+ pdpContextActivation (8),
+ pdpContextDeactivation (9),
+ ...,
+ gprsDetach (10)}
+ -- exception handling:
+ -- received values greater than 10 shall be ignored.
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL,
+ informPreviousNetworkEntity [1] NULL OPTIONAL,
+ ps-LCS-NotSupportedByUE [2] NULL OPTIONAL,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ add-info [4] ADD-Info OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL,
+ smsCallBarringSupportIndicator [7] NULL OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ allowedGSM-Algorithms [4] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [5] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceInformation [6] RadioResourceInformation OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ radioResourceList [7] RadioResourceList OPTIONAL,
+ bssmap-ServiceHandover [9] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [8] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [10] BSSMAP-ServiceHandoverList OPTIONAL,
+ currentlyUsedCodec [11] Codec OPTIONAL,
+ iuSupportedCodecsList [12] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [13] NULL OPTIONAL,
+ iuSelectedCodec [14] Codec OPTIONAL }
+
+AllowedGSM-Algorithms ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from
+ -- Permitted Algorithms defined in 3GPP TS 48.008
+ -- A node shall mark all GSM algorithms that are allowed in MSC-B
+
+AllowedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithms [0] PermittedIntegrityProtectionAlgorithms OPTIONAL,
+ encryptionAlgorithms [1] PermittedEncryptionAlgorithms OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+PermittedIntegrityProtectionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength))
+ -- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413.
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= 9
+
+PermittedEncryptionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedEncryptionAlgorithmsLength))
+ -- Octets contain a complete PermittedEncryptionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedEncryptionAlgorithmsLength INTEGER ::= 9
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ allowedGSM-Algorithms [9] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [10] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceList [11] RadioResourceList OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ rab-Id [12] RAB-Id OPTIONAL,
+ bssmap-ServiceHandover [13] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [14] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [15] BSSMAP-ServiceHandoverList OPTIONAL,
+ asciCallReference [20] ASCI-CallReference OPTIONAL,
+ geran-classmark [16] GERAN-Classmark OPTIONAL,
+ iuCurrentlyUsedCodec [17] Codec OPTIONAL,
+ iuSupportedCodecsList [18] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [19] NULL OPTIONAL,
+ uesbi-Iu [21] UESBI-Iu OPTIONAL }
+
+BSSMAP-ServiceHandoverList ::= SEQUENCE SIZE (1.. maxNumOfServiceHandovers) OF
+ BSSMAP-ServiceHandoverInfo
+
+BSSMAP-ServiceHandoverInfo ::= SEQUENCE {
+ bssmap-ServiceHandover BSSMAP-ServiceHandover,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the service handovers with the radio access bearers.
+ ...}
+
+maxNumOfServiceHandovers INTEGER ::= 7
+
+BSSMAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Service Handover information element in
+ -- 3GPP TS 48.008.
+
+RANAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete Service-Handover data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+
+RadioResourceList ::= SEQUENCE SIZE (1.. maxNumOfRadioResources) OF
+ RadioResource
+
+RadioResource ::= SEQUENCE {
+ radioResourceInformation RadioResourceInformation,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the radio resources with the radio access bearers.
+ ...}
+
+maxNumOfRadioResources INTEGER ::= 7
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ selectedUMTS-Algorithms [5] SelectedUMTS-Algorithms OPTIONAL,
+ chosenRadioResourceInformation [6] ChosenRadioResourceInformation OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ iuSelectedCodec [7] Codec OPTIONAL,
+ iuAvailableCodecsList [8] CodecList OPTIONAL }
+
+SelectedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithm [0] ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ encryptionAlgorithm [1] ChosenEncryptionAlgorithm OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ChosenIntegrityProtectionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete IntegrityProtectionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenEncryptionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete EncryptionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenRadioResourceInformation ::= SEQUENCE {
+ chosenChannelInfo [0] ChosenChannelInfo OPTIONAL,
+ chosenSpeechVersion [1] ChosenSpeechVersion OPTIONAL,
+ ...}
+
+ChosenChannelInfo ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008
+
+ChosenSpeechVersion ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Speech Version (chosen) information element in 3GPP TS
+ -- 48.008
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ geran-classmark [6] GERAN-Classmark OPTIONAL,
+ rab-ConfigurationIndicator [7] NULL OPTIONAL }
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ selectedUMTS-Algorithms [1] SelectedUMTS-Algorithms OPTIONAL,
+ selectedGSM-Algorithm [2] SelectedGSM-Algorithm OPTIONAL,
+ chosenRadioResourceInformation [3] ChosenRadioResourceInformation OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ iUSelectedCodec [5] Codec OPTIONAL,
+ iuAvailableCodecsList [6] CodecList OPTIONAL }
+
+SupportedCodecsList ::= SEQUENCE {
+ utranCodecList [0] CodecList OPTIONAL,
+ geranCodecList [1] CodecList OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+CodecList ::= SEQUENCE {
+ codec1 [1] Codec,
+ codec2 [2] Codec OPTIONAL,
+ codec3 [3] Codec OPTIONAL,
+ codec4 [4] Codec OPTIONAL,
+ codec5 [5] Codec OPTIONAL,
+ codec6 [6] Codec OPTIONAL,
+ codec7 [7] Codec OPTIONAL,
+ codec8 [8] Codec OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+ -- Codecs are sent in priority order where codec1 has highest priority
+
+Codec ::= OCTET STRING (SIZE (1..4))
+
+ -- The internal structure is defined as follows:
+ -- octet 1 Coded as Codec Identification code in 3GPP TS 26.103
+ -- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS
+ -- 26.103, if available, length depending on the codec
+
+GERAN-Classmark ::= OCTET STRING (SIZE (2..87))
+ -- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008
+
+SelectedGSM-Algorithm ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from Chosen Encryption
+ -- Algorithm defined in 3GPP TS 48.008
+ -- A node shall mark only the selected GSM algorithm
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 RNC Id value according to 3GPP TS 25.413
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (3..13))
+ -- Octets are coded according the Channel Type information element in 3GPP TS 48.008
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (18..maxNumOfIntegrityInfo))
+ -- Octets contain a complete IntegrityProtectionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (18..maxNumOfEncryptionInfo))
+ -- Octets contain a complete EncryptionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ requestingNodeType [3] RequestingNodeType OPTIONAL,
+ requestingPLMN-Id [4] PLMN-Id OPTIONAL }
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RequestingNodeType ::= ENUMERATED {
+ vlr (0),
+ sgsn (1),
+ ...}
+ -- exception handling:
+ -- received values in the range 2-15 shall be treated as "vlr"
+ -- received values greater than 15 shall be treated as "sgsn"
+
+-- equipment management types
+
+CheckIMEI-Arg ::= SEQUENCE {
+ imei IMEI,
+ requestedEquipmentInfo RequestedEquipmentInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CheckIMEI-Res ::= SEQUENCE {
+ equipmentStatus EquipmentStatus OPTIONAL,
+ bmuef UESBI-Iu OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedEquipmentInfo::= BIT STRING {
+ equipmentStatus (0),
+ bmuef (1)} (SIZE (2..8))
+ -- exception handling: reception of unknown bit assignments in the
+ -- RequestedEquipmentInfo data type shall be discarded by the receiver
+
+UESBI-Iu ::= SEQUENCE {
+ uesbi-IuA [0] UESBI-IuA OPTIONAL,
+ uesbi-IuB [1] UESBI-IuB OPTIONAL,
+ ...}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL,
+ accessRestrictionData [19] AccessRestrictionData OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+AccessRestrictionData ::= BIT STRING {
+ utranNotAllowed (0),
+ geranNotAllowed (1) } (SIZE (2..8))
+ -- exception handling:
+ -- bits 2 to 7 shall be ignored if received and not understood
+
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...,
+ add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL }
+ -- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is
+ -- present and contains four instances of LCS-PrivacyClass. If the mentioned condition
+ -- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList.
+ -- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in
+ -- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected
+ -- data value shall be returned.
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL,
+ ext2-QoS-Subscribed [2] Ext2-QoS-Subscribed OPTIONAL
+ -- ext2-QoS-Subscribed may be present only if ext-QoS-Subscribed is present.
+ }
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ mt-sms-CSI [3] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [4] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [5] MG-CSI OPTIONAL
+ }
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 3-5.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 6-13.
+
+Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))
+ -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.
+ -- If Quality of Service information is structured with 14 octet length, then
+ -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3GPP TS 32.215.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS 3GPP TS 48.008 [49]
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in ITU-T Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14),
+ allPacketOrientedServicesBarred (15),
+ roamerAccessToHPLMN-AP-Barred (16),
+ roamerAccessToVPLMN-AP-Barred (17),
+ roamingOutsidePLMNOG-CallsBarred (18),
+ allIC-CallsBarred (19),
+ roamingOutsidePLMNIC-CallsBarred (20),
+ roamingOutsidePLMNICountryIC-CallsBarred (21),
+ roamingOutsidePLMN-Barred (22),
+ roamingOutsidePLMN-CountryBarred (23),
+ registrationAllCF-Barred (24),
+ registrationCFNotToHPLMN-Barred (25),
+ registrationInterzonalCF-Barred (26),
+ registrationInterzonalCFNotToHPLMN-Barred (27),
+ registrationInternationalCF-Barred (28)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+ -- When the ODB-GeneralData type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+ -- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser may be sent only for SS-codes callSessionRelated
+ -- and callSessionUnrelated. If not received for SS-codes callSessionRelated
+ -- and callSessionUnrelated,
+ -- the default values according to 3GPP TS 23.271 shall be assumed.
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList may be sent only for SS-code callSessionUnrelated to a
+ -- visited node that does not support LCS Release 4 or later versions.
+ -- externalClientList may be sent only for SS-codes callSessionUnrelated and
+ -- callSessionRelated to a visited node that supports LCS Release 4 or later versions.
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList may be sent only for SS-code plmnoperator.
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ ext-externalClientList [4] Ext-ExternalClientList OPTIONAL,
+ -- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or
+ -- later versions, the user did specify more than 5 clients, and White Book SCCP is used.
+ serviceTypeList [5] ServiceTypeList OPTIONAL
+ -- serviceTypeList may be sent only for SS-code serviceType and if the visited node
+ -- supports LCS Release 5 or later versions.
+ --
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+Ext-ExternalClientList ::= SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF
+ ExternalClient
+
+maxNumOfExt-ExternalClient INTEGER ::= 35
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ...,
+ locationNotAllowed (3) }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF
+ ServiceType
+
+maxNumOfServiceType INTEGER ::= 32
+
+ServiceType ::= SEQUENCE {
+ serviceTypeIdentity LCSServiceTypeID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS 3GPP TS 23.003 [17]
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [8] OfferedCamel4CSIs OPTIONAL }
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ mo-sms-csi (5),
+ m-csi (6),
+ gprs-csi (7),
+ t-csi (8),
+ mt-sms-csi (9),
+ mg-csi (10),
+ o-IM-CSI (11),
+ d-IM-CSI (12),
+ vt-IM-CSI (13) } (SIZE(8..32))
+-- exception handling:
+-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity.
+-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity.
+-- bits 11-13 are only applicable in an IP Multimedia Core Network.
+-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation.
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ mo-sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL,
+ mt-sms-CSI [10] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [11] MT-smsCAMELTDP-CriteriaList OPTIONAL
+ }
+
+MT-smsCAMELTDP-CriteriaList ::= SEQUENCE SIZE (1.. maxNumOfCamelTDPData) OF
+ MT-smsCAMELTDP-Criteria
+
+MT-smsCAMELTDP-Criteria ::= SEQUENCE {
+ sms-TriggerDetectionPoint SMS-TriggerDetectionPoint,
+ tpdu-TypeCriterion [0] TPDU-TypeCriterion OPTIONAL,
+ ... }
+
+TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF
+ MT-SMS-TPDU-Type
+
+
+maxNumOfTPDUTypes INTEGER ::= 5
+
+MT-SMS-TPDU-Type ::= ENUMERATED {
+ sms-DELIVER (0),
+ sms-SUBMIT-REPORT (1),
+ sms-STATUS-REPORT (2),
+ ... }
+
+-- exception handling:
+-- For TPDU-TypeCriterion sequences containing this parameter with any
+-- other value than the ones listed above the receiver shall ignore
+-- the whole TPDU-TypeCriterion sequence.
+-- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion
+-- sequence containing sms-SUBMIT-REPORT shall be wholly ignored.
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, then the first segment shall contain dp-AnalysedInfoCriteriaList
+-- and camelCapabilityHandling. Subsequent segments shall not contain
+-- camelCapabilityHandling, but may contain dp-AnalysedInfoCriteriaList.
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- O-CSI shall not be segmented.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3,
+ -- value 4 = CAMEL phase 4:
+ -- reception of values greater than 4 shall be treated as CAMEL phase 4.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1),
+ phase3 (2),
+ phase4 (3)} (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4CSIs ::= BIT STRING {
+ o-csi (0),
+ d-csi (1),
+ vt-csi (2),
+ t-csi (3),
+ mt-sms-csi (4),
+ mg-csi (5),
+ psi-enhancements (6)
+} (SIZE (7..16))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs
+-- it offers.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4Functionalities ::= BIT STRING {
+ initiateCallAttempt (0),
+ splitLeg (1),
+ moveLeg (2),
+ disconnectLeg (3),
+ entityReleased (4),
+ dfc-WithArgument (5),
+ playTone (6),
+ dtmf-MidCall (7),
+ chargingIndicator (8),
+ alertingDP (9),
+ locationAtAlerting (10),
+ changeOfPositionDP (11),
+ or-Interactions (12),
+ warningToneEnhancements (13),
+ cf-Enhancements (14),
+ subscribedEnhancedDialledServices (15),
+ servingNetworkEnhancedDialledServices (16),
+ criteriaForChangeOfPositionDP (17),
+ serviceChangeDP (18)
+} (SIZE (15..64))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all CAMEL4
+-- functionalities it offers.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present
+-- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ...,
+ sms-DeliveryRequest (2)
+ }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this
+-- parameter with any other value than the ones listed the receiver shall ignore
+-- the whole sequence.
+--
+-- If this parameter is received with any other value than sms-CollectedInfo
+-- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall
+-- ignore the whole MT-smsCAMELTDP-Criteria sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MG-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following MM-Code values are defined in CAMEL Phase 4:
+--
+-- CS domain MM events:
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- PS domain MM events:
+-- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B
+-- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN
+-- MM-Code ::= '10000001'B
+-- Routeing-Area-update-to-other-SGSN-disconnect-by-detach
+-- MM-Code ::= '10000010'B
+-- GPRS-Attach MM-Code ::= '10000011'B
+-- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B
+-- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B
+-- Network-initiated-transfer-to-MS-not-reachable-for-paging
+-- MM-Code ::= '10000110'B
+--
+-- If the MSC receives any other MM-code than the ones listed above for the
+-- CS domain, then the MSC shall ignore that MM-code.
+-- If the SGSN receives any other MM-code than the ones listed above for the
+-- PS domain, then the SGSN shall ignore that MM-code.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- T-CSI shall not be segmented.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP's are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+-- gprs location information retrieval types
+
+SendRoutingInfoForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ ggsn-Number [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+SendRoutingInfoForGprsRes ::= SEQUENCE {
+ sgsn-Address [0] GSN-Address,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ mobileNotReachableReason [2] AbsentSubscriberDiagnosticSM OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= TBCD-STRING (SIZE (3))
+ -- When Group-Id is less than six characters in length, the TBCD filler (1111)
+ -- is used to fill unused half octets.
+ -- Refers to the Group Identification as specified in 3GPP TS 23.003
+ -- and 3GPP TS 43.068/ 43.069
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... ,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ ps-SubscriberState [4] PS-SubscriberState OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ ms-Classmark2 [6] MS-Classmark2 OPTIONAL,
+ gprs-MS-Class [7] GPRSMSClass OPTIONAL,
+ mnpInfoRes [8] MNPInfoRes OPTIONAL }
+
+-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN
+-- it shall discard them.
+-- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from
+-- a VLR it shall discard them.
+-- If the HLR receives parameters which it has not requested, it shall discard them.
+
+MNPInfoRes ::= SEQUENCE {
+ routeingNumber [0] RouteingNumber OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [3] NumberPortabilityStatus OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... }
+-- The IMSI parameter contains a generic IMSI, i.e. it is not tied necessarily to the
+-- Subscriber. MCC and MNC values in this IMSI shall point to the Subscription Network of
+-- the Subscriber. See 3GPP TS 23.066 [108].
+
+RouteingNumber ::= TBCD-STRING (SIZE (1..5))
+
+
+NumberPortabilityStatus ::= ENUMERATED {
+ notKnownToBePorted (0),
+ ownNumberPortedOut (1),
+ foreignNumberPortedToForeignNetwork (2),
+ ...,
+ ownNumberNotPortedOut (4),
+ foreignNumberPortedIn (5)
+ }
+ -- exception handling:
+ -- reception of other values than the ones listed the receiver shall ignore the
+ -- whole NumberPortabilityStatus;
+ -- ownNumberNotPortedOut or foreignNumberPortedIn may only be included in Any Time
+ -- Interrogation message.
+
+MS-Classmark2 ::= OCTET STRING (SIZE (3))
+ -- This parameter carries the value part of the MS Classmark 2 IE defined in
+ -- 3GPP TS 24.008 [35].
+
+GPRSMSClass ::= SEQUENCE {
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL
+ }
+
+MSNetworkCapability ::= OCTET STRING (SIZE (1..8))
+ -- This parameter carries the value part of the MS Network Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50))
+ -- This parameter carries the value part of the MS Radio Access Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL,
+ requestedDomain [4] DomainType OPTIONAL,
+ imei [6] NULL OPTIONAL,
+ ms-classmark [5] NULL OPTIONAL,
+ mnpRequestedInfo [7] NULL OPTIONAL }
+
+-- currentLocation shall be absent if locationInformation is absent
+
+DomainType ::= ENUMERATED {
+ cs-Domain (0),
+ ps-Domain (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to 'cs-Domain'
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+LocationInformationGPRS ::= SEQUENCE {
+ cellGlobalIdOrServiceAreaIdOrLAI [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ routeingAreaIdentity [1] RAIdentity OPTIONAL,
+ geographicalInformation [2] GeographicalInformation OPTIONAL,
+ sgsn-Number [3] ISDN-AddressString OPTIONAL,
+ selectedLSAIdentity [4] LSAIdentity OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ sai-Present [6] NULL OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present if the location information
+-- was retrieved after successful paging.
+
+RAIdentity ::= OCTET STRING (SIZE (6))
+-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105].
+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060
+-- type identifier octet shall not be included.
+
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in 3GPP TS 23.032 is allowed to be used
+-- The internal structure according to 3GPP TS 23.032 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in ITU-T Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+PS-SubscriberState ::= CHOICE {
+ notProvidedFromSGSN [0] NULL,
+ ps-Detached [1] NULL,
+ ps-AttachedNotReachableForPaging [2] NULL,
+ ps-AttachedReachableForPaging [3] NULL,
+ ps-PDP-ActiveNotReachableForPaging [4] PDP-ContextInfoList,
+ ps-PDP-ActiveReachableForPaging [5] PDP-ContextInfoList,
+ netDetNotReachable NotReachableReason }
+
+PDP-ContextInfoList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-ContextInfo
+
+PDP-ContextInfo ::= SEQUENCE {
+ pdp-ContextIdentifier [0] ContextId,
+ pdp-ContextActive [1] NULL OPTIONAL,
+ pdp-Type [2] PDP-Type,
+ pdp-Address [3] PDP-Address OPTIONAL,
+ apn-Subscribed [4] APN OPTIONAL,
+ apn-InUse [5] APN OPTIONAL,
+ nsapi [6] NSAPI OPTIONAL,
+ transactionId [7] TransactionId OPTIONAL,
+ teid-ForGnAndGp [8] TEID OPTIONAL,
+ teid-ForIu [9] TEID OPTIONAL,
+ ggsn-Address [10] GSN-Address OPTIONAL,
+ qos-Subscribed [11] Ext-QoS-Subscribed OPTIONAL,
+ qos-Requested [12] Ext-QoS-Subscribed OPTIONAL,
+ qos-Negotiated [13] Ext-QoS-Subscribed OPTIONAL,
+ chargingId [14] GPRSChargingID OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics OPTIONAL,
+ rnc-Address [16] GSN-Address OPTIONAL,
+ extensionContainer [17] ExtensionContainer OPTIONAL,
+ ...,
+ qos2-Subscribed [18] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Subscribed may be present only if qos-Subscribed is present.
+ qos2-Requested [19] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Requested may be present only if qos-Requested is present.
+ qos2-Negotiated [20] Ext2-QoS-Subscribed OPTIONAL
+ -- qos2-Negotiated may be present only if qos-Negotiated is present.
+ }
+
+NSAPI ::= INTEGER (0..15)
+-- This type is used to indicate the Network layer Service Access Point
+
+TransactionId ::= OCTET STRING (SIZE (1..2))
+-- This type carries the value part of the transaction identifier which is used in the
+-- session management messages on the access interface. The encoding is defined in
+-- 3GPP TS 24.008
+
+TEID ::= OCTET STRING (SIZE (4))
+-- This type carries the value part of the Tunnel Endpoint Identifier which is used to
+-- distinguish between different tunnels between the same pair of entities which communicate
+-- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060.
+
+GPRSChargingID ::= OCTET STRING (SIZE (4))
+-- The Charging ID is a unique four octet value generated by the GGSN when
+-- a PDP Context is activated. A Charging ID is generated for each activated context.
+-- The encoding is defined in 3GPP TS 29.060.
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIsInVLR [8] OfferedCamel4CSIs OPTIONAL,
+ offeredCamel4CSIsInSGSN [9] OfferedCamel4CSIs OPTIONAL }
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [7] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ mo-sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ mt-sms-CSI (0),
+ mg-csi (1),
+ o-IM-CSI (2),
+ d-IM-CSI (3),
+ vt-IM-CSI (4),
+ ...}
+-- exception handling: unknown values shall be discarded by the receiver.
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password OPTIONAL,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ specificCSIDeletedList [14] SpecificCSI-Withdraw OPTIONAL,
+ mt-sms-CSI [15] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [16] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [17] MG-CSI OPTIONAL,
+ o-IM-CSI [18] O-CSI OPTIONAL,
+ o-IM-BcsmCamelTDP-CriteriaList [19] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-IM-CSI [20] D-CSI OPTIONAL,
+ vt-IM-CSI [21] T-CSI OPTIONAL,
+ vt-IM-BCSM-CAMEL-TDP-CriteriaList [22] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL
+ }
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...,
+ modificationRequestFor-ODB-data [7] ModificationRequestFor-ODB-data OPTIONAL }
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ odb-Info [3] ODB-Info OPTIONAL }
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-ODB-data ::= SEQUENCE {
+ odb-data [0] ODB-Data OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [4] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+-- requestedCamel-SubscriptionInfo shall be discarded if
+-- additionalRequestedCAMEL-SubscriptionInfo is received
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ locationInformationGPRS [7] LocationInformationGPRS OPTIONAL,
+ offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL
+}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE [4] NULL OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000000..b91eac7cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
@@ -0,0 +1,506 @@
+MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration operations
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+
+ -- gprs location registration operations
+ updateGprsLocation,
+
+ -- subscriber information enquiry operations
+ provideSubscriberInfo,
+
+ -- any time information enquiry operations
+ anyTimeInterrogation,
+
+ -- any time information handling operations
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+
+ -- subscriber data modification notification operations
+ noteSubscriberDataModified,
+
+
+ -- handover operations
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+
+ -- authentication management operations
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+
+ -- IMEI management operations
+ checkIMEI,
+
+ -- subscriber management operations
+ insertSubscriberData,
+ deleteSubscriberData,
+
+ -- fault recovery operations
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+
+-- gprs location information retrieval operations
+ sendRoutingInfoForGprs,
+
+ -- failure reporting operations
+ failureReport,
+
+ -- gprs notification operations
+ noteMsPresentForGprs,
+
+-- Mobility Management operations
+ noteMM-Event
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+ roamingNotAllowed,
+ ati-NotAllowed,
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ absentSubscriber,
+ mm-EventNotSupported,
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-Incompatibility,
+ ss-SubscriptionViolation,
+ informationNotAvailable,
+ targetCellOutsideGroupCallArea
+
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ForwardAccessSignalling-Arg,
+ProcessAccessSignalling-Arg,
+SendEndSignal-Arg,
+SendEndSignal-Res,
+PrepareSubsequentHO-Res,
+ PrepareSubsequentHO-Arg,
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+ FailureReportArg,
+ FailureReportRes,
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+ NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+;
+
+
+-- location registration operations
+
+updateLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateLocationArg
+ RESULT
+ UpdateLocationRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:2 }
+
+cancelLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ CancelLocationArg
+ RESULT
+ CancelLocationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:3 }
+
+purgeMS OPERATION ::= { --Timer m
+ ARGUMENT
+ PurgeMS-Arg
+ RESULT
+ PurgeMS-Res
+ -- optional
+ ERRORS{
+ dataMissing |
+ unexpectedDataValue|
+ unknownSubscriber}
+ CODE local:67 }
+
+sendIdentification OPERATION ::= { --Timer s
+ ARGUMENT
+ SendIdentificationArg
+ RESULT
+ SendIdentificationRes
+ ERRORS {
+ dataMissing |
+ unidentifiedSubscriber}
+ CODE local:55 }
+
+-- gprs location registration operations
+
+updateGprsLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateGprsLocationArg
+ RESULT
+ UpdateGprsLocationRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:23 }
+
+-- subscriber information enquiry operations
+
+provideSubscriberInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ ProvideSubscriberInfoArg
+ RESULT
+ ProvideSubscriberInfoRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:70 }
+
+-- any time information enquiry operations
+
+anyTimeInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeInterrogationArg
+ RESULT
+ AnyTimeInterrogationRes
+ ERRORS {
+ systemFailure |
+ ati-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:71 }
+
+-- any time information handling operations
+
+anyTimeSubscriptionInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeSubscriptionInterrogationArg
+ RESULT
+ AnyTimeSubscriptionInterrogationRes
+ ERRORS {
+ atsi-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable |
+ informationNotAvailable}
+ CODE local:62 }
+
+anyTimeModification OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeModificationArg
+ RESULT
+ AnyTimeModificationRes
+ ERRORS {
+ atm-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-SubscriptionViolation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ informationNotAvailable}
+ CODE local:65 }
+
+-- subscriber data modification notification operations
+
+noteSubscriberDataModified OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteSubscriberDataModifiedArg
+ RESULT
+ NoteSubscriberDataModifiedRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:5 }
+
+-- handover operations
+
+prepareHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareHO-Arg
+ RESULT
+ PrepareHO-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ noHandoverNumberAvailable |
+ targetCellOutsideGroupCallArea }
+ CODE local:68 }
+
+sendEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendEndSignal-Arg
+ RESULT
+ SendEndSignal-Res
+ CODE local:29 }
+
+processAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessAccessSignalling-Arg
+ CODE local:33 }
+
+forwardAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardAccessSignalling-Arg
+ CODE local:34 }
+
+prepareSubsequentHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareSubsequentHO-Arg
+ RESULT
+ PrepareSubsequentHO-Res
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ unknownMSC |
+ subsequentHandoverFailure}
+ CODE local:69 }
+
+-- authentication management operations
+
+sendAuthenticationInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ SendAuthenticationInfoArg
+ -- optional
+ -- within a dialogue sendAuthenticationInfoArg shall not be present in
+ -- subsequent invoke components. If received in a subsequent invoke component
+ -- it shall be discarded.
+
+ RESULT
+ SendAuthenticationInfoRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:56 }
+
+authenticationFailureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ AuthenticationFailureReportArg
+ RESULT
+ AuthenticationFailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:15 }
+
+-- IMEI management operations
+
+checkIMEI OPERATION ::= { --Timer m
+ ARGUMENT
+ CheckIMEI-Arg
+ RESULT
+ CheckIMEI-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unknownEquipment}
+ CODE local:43 }
+
+-- subscriber management operations
+
+insertSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ InsertSubscriberDataArg
+ RESULT
+ InsertSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:7 }
+
+deleteSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ DeleteSubscriberDataArg
+ RESULT
+ DeleteSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:8 }
+
+-- fault recovery operations
+
+reset OPERATION ::= { --Timer m
+ ARGUMENT
+ ResetArg
+ CODE local:37 }
+
+forwardCheckSS-Indication OPERATION ::= { --Timer s
+ CODE local:38 }
+
+restoreData OPERATION ::= { --Timer m
+ ARGUMENT
+ RestoreDataArg
+ RESULT
+ RestoreDataRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:57 }
+
+-- gprs location information retrieval operations
+
+sendRoutingInfoForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ SendRoutingInfoForGprsArg
+ RESULT
+ SendRoutingInfoForGprsRes
+ ERRORS {
+ absentSubscriber |
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ callBarred }
+ CODE local:24 }
+
+-- failure reporting operations
+
+failureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ FailureReportArg
+ RESULT
+ FailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:25 }
+
+-- gprs notification operations
+
+noteMsPresentForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMsPresentForGprsArg
+ RESULT
+ NoteMsPresentForGprsRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:26 }
+
+noteMM-Event OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMM-EventArg
+ RESULT
+ NoteMM-EventRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ mm-EventNotSupported}
+ CODE local:89 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000000..3866b1e6e5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
@@ -0,0 +1,62 @@
+MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+;
+
+IMPORTS
+ AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+;
+
+ActivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ traceType [2] TraceType,
+ omc-Id [3] AddressString OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+TraceReference ::= OCTET STRING (SIZE (1..2))
+
+TraceType ::= INTEGER
+ (0..255)
+ -- Trace types are fully defined in TS GSM 12.08.
+
+ActivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000000..adc50bd436
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,91 @@
+MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ tracingBufferFull
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+FROM MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+ ISDN-AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+
+activateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ ActivateTraceModeArg
+ RESULT
+ ActivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ tracingBufferFull}
+ CODE local:50 }
+
+deactivateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ DeactivateTraceModeArg
+ RESULT
+ DeactivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber}
+ CODE local:51 }
+
+sendIMSI OPERATION ::= { --Timer m
+ ARGUMENT
+ ISDN-AddressString
+ RESULT
+ IMSI
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:58 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Protocol.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Protocol.asn
new file mode 100644
index 0000000000..68dfb986c8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-Protocol.asn
@@ -0,0 +1,176 @@
+MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+ updateGprsLocation,
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+ checkIMEI,
+ insertSubscriberData,
+ deleteSubscriberData,
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+ provideSubscriberInfo,
+ anyTimeInterrogation,
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+ sendRoutingInfoForGprs,
+ failureReport,
+ noteMsPresentForGprs,
+ noteMM-Event,
+ noteSubscriberDataModified
+
+
+FROM MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+FROM MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+FROM MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+FROM MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+ prepareGroupCall,
+ processGroupCallSignalling,
+ forwardGroupCallSignalling,
+ sendGroupCallEndSignal
+FROM MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+ provideSubscriberLocation,
+ sendRoutingInfoForLCS,
+ subscriberLocationReport
+FROM MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+secureTransportClass1,
+secureTransportClass2,
+secureTransportClass3,
+secureTransportClass4
+
+FROM MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+;
+Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | purgeMS |
+sendIdentification | updateGprsLocation | prepareHandover | sendEndSignal |
+processAccessSignalling | forwardAccessSignalling | prepareSubsequentHandover |
+sendAuthenticationInfo | authenticationFailureReport | checkIMEI | insertSubscriberData |
+deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | provideSubscriberInfo |
+anyTimeInterrogation | anyTimeSubscriptionInterrogation | anyTimeModification |
+sendRoutingInfoForGprs | failureReport |noteMsPresentForGprs | noteMM-Event |
+noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | sendIMSI |
+sendRoutingInfo | provideRoamingNumber | resumeCallHandling | setReportingState | statusReport | remoteUserFree | ist-Alert |
+ist-Command | registerSS | eraseSS | activateSS | deactivateSS | interrogateSS |
+processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify |
+registerPassword | getPassword | ss-InvocationNotification | registerCC-Entry | eraseCC-Entry |
+sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus |
+alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall |
+processGroupCallSignalling | forwardGroupCallSignalling | sendGroupCallEndSignal |
+provideSubscriberLocation | sendRoutingInfoForLCS | subscriberLocationReport |
+secureTransportClass1 |secureTransportClass2 | secureTransportClass3 | secureTransportClass4}
+
+
+
+-- The following operation codes are reserved for operations
+-- existing in previous versions of the protocol
+
+-- Operation Name AC used Oper. Code
+--
+-- sendParameters map-ac infoRetrieval (14) version1 (1) local:9
+-- processUnstructuredSS-Data map-ac networkFunctionalSs (18) version1 (1) local:19
+-- performHandover map-ac handoverControl (11) version1 (1) local:28
+-- performSubsequentHandover map-ac handoverControl (11) version1 (1) local:30
+-- provideSIWFSNumber map-ac sIWFSAllocation (12) version3 (3) local:31
+-- siwfs-SignallingModify map-ac sIWFSAllocation (12) version3 (3) local:32
+-- noteInternalHandover map-ac handoverControl (11) version1 (1) local:35
+-- noteSubscriberPresent map-ac mwdMngt (24) version1 (1) local:48
+-- alertServiceCentreWithoutResult map-ac shortMsgAlert (23) version1 (1) local:49
+-- traceSubscriberActivity map-ac handoverControl (11) version1 (1) local:52
+-- beginSubscriberActivity map-ac networkFunctionalSs (18) version1 (1) local:54
+
+-- The following error codes are reserved for errors
+-- existing in previous versions of the protocol
+
+-- Error Name AC used Error Code
+--
+-- unknownBaseStation map-ac handoverControl (11) version1 (1) local:2
+-- invalidTargetBaseStation map-ac handoverControl (11) version1 (1) local:23
+-- noRadioResourceAvailable map-ac handoverControl (11) version1 (1) local:24
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000000..664baa1b41
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
@@ -0,0 +1,217 @@
+MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res,
+ SM-DeliveryOutcome,
+ AlertReason,
+ Additional-Number
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ SignalInfo,
+ IMSI,
+ LMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+RoutingInfoForSM-Arg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ sm-RP-PRI [1] BOOLEAN,
+ serviceCentreAddress [2] AddressString,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsSupportIndicator [7] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- receiving of two numbers from the HLR
+ sm-RP-MTI [8] SM-RP-MTI OPTIONAL,
+ sm-RP-SMEA [9] SM-RP-SMEA OPTIONAL }
+
+SM-RP-MTI ::= INTEGER (0..10)
+ -- 0 SMS Deliver
+ -- 1 SMS Status Report
+ -- other values are reserved for future use and shall be discarded if
+ -- received
+
+SM-RP-SMEA ::= OCTET STRING (SIZE (1..12))
+ -- this parameter contains an address field which is encoded
+ -- as defined in 3GPP TS 23.040. An address field contains 3 elements :
+ -- address-length
+ -- type-of-address
+ -- address-value
+
+RoutingInfoForSM-Res ::= SEQUENCE {
+ imsi IMSI,
+ locationInfoWithLMSI [0] LocationInfoWithLMSI,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+LocationInfoWithLMSI ::= SEQUENCE {
+ networkNode-Number [1] ISDN-AddressString,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ gprsNodeIndicator [5] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the
+ -- Network Node Number
+ additional-Number [6] Additional-Number OPTIONAL
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ }
+
+Additional-Number ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString}
+ -- additional-number can be either msc-number or sgsn-number
+ -- if received networkNode-number is msc-number then the
+ -- additional number is sgsn-number
+ -- if received networkNode-number is sgsn-number then the
+ -- additional number is msc-number
+
+MO-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ imsi IMSI OPTIONAL }
+
+MO-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ moreMessagesToSend NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SM-RP-DA ::= CHOICE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI,
+ serviceCentreAddressDA [4] AddressString,
+ noSM-RP-DA [5] NULL}
+
+SM-RP-OA ::= CHOICE {
+ msisdn [2] ISDN-AddressString,
+ serviceCentreAddressOA [4] AddressString,
+ noSM-RP-OA [5] NULL}
+
+ReportSM-DeliveryStatusArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ sm-DeliveryOutcome SM-DeliveryOutcome,
+ absentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM
+ OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSupportIndicator [2] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- handling of two delivery outcomes
+ deliveryOutcomeIndicator [3] NULL OPTIONAL,
+ -- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome
+ -- is for GPRS
+ additionalSM-DeliveryOutcome [4] SM-DeliveryOutcome OPTIONAL,
+ -- If received, additionalSM-DeliveryOutcome is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent
+ additionalAbsentSubscriberDiagnosticSM [5] AbsentSubscriberDiagnosticSM OPTIONAL
+ -- If received additionalAbsentSubscriberDiagnosticSM is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM
+ -- shall be absent
+ }
+
+SM-DeliveryOutcome ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ absentSubscriber (1),
+ successfulTransfer (2)}
+
+ReportSM-DeliveryStatusRes ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertServiceCentreArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ ...}
+
+InformServiceCentreArg ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ mw-Status MW-Status OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- additionalAbsentSubscriberDiagnosticSM may be present only if
+ -- absentSubscriberDiagnosticSM is present.
+ -- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and
+ -- absentSubscriberDiagnosticSM is for non-GPRS
+
+MW-Status ::= BIT STRING {
+ sc-AddressNotIncluded (0),
+ mnrf-Set (1),
+ mcef-Set (2) ,
+ mnrg-Set (3)} (SIZE (6..16))
+ -- exception handling:
+ -- bits 4 to 15 shall be ignored if received and not understood
+
+ReadyForSM-Arg ::= SEQUENCE {
+ imsi [0] IMSI,
+ alertReason AlertReason,
+ alertReasonIndicator NULL OPTIONAL,
+ -- alertReasonIndicator is set only when the alertReason
+ -- sent to HLR is for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ReadyForSM-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertReason ::= ENUMERATED {
+ ms-Present (0),
+ memoryAvailable (1)}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-Code.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-Code.asn
new file mode 100644
index 0000000000..d3f0957648
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-Code.asn
@@ -0,0 +1,183 @@
+MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN Country
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callSessionRelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call/session
+ -- is established from the target MS
+callSessionUnrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+serviceType SS-Code ::= '10110101'B
+ -- allow location by LCS clients of a designated LCS service type
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000000..5cf9178353
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
@@ -0,0 +1,337 @@
+MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS 3GPP TS 23.038 [25]
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
new file mode 100644
index 0000000000..2eac16551d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
@@ -0,0 +1,98 @@
+MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ SecureTransportArg,
+ SecureTransportRes,
+ SecurityHeader,
+ ProtectedPayload
+;
+
+IMPORTS
+ IMSI
+
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+SecureTransportArg ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
+ -- transported operation
+
+SecureTransportRes ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the result of the securely
+ -- transported operation
+
+SecurityHeader ::= SEQUENCE {
+ securityParametersIndex SecurityParametersIndex,
+ originalComponentIdentifier OriginalComponentIdentifier,
+ initialisationVector InitialisationVector OPTIONAL,
+ ...}
+
+ProtectedPayload ::= OCTET STRING(SIZE(1.. 3438))
+ -- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
+ -- syntax value of the component parameter identified by the
+ -- originalComponentIdentifier.
+ -- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
+ -- the transfer syntax value of the component
+ -- parameter identified by the originalComponentIdentifier, followed by
+ -- the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the transfer syntax value of the component parameter.
+ -- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
+ -- payload carries the encrypted transfer syntax
+ -- value of the component parameter identified by the
+ -- originalComponentIdentifier, followed by the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the encrypted transfer syntax value of the component parameter.
+ -- See 33.200.
+ -- The length of the protectedPayload is adjusted according to the capabilities of
+ -- the lower protocol layers
+
+SecurityParametersIndex ::= OCTET STRING (SIZE(4))
+
+InitialisationVector ::= OCTET STRING (SIZE(14))
+ -- the internal structure is defined as follows:
+ -- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
+ -- and indicates the number of intervals of 100 milliseconds
+ -- elapsed since 1st January 2002, 0:00:00 UTC
+ -- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
+ -- within the PLMN. It is the entity's E.164 number without CC and
+ -- NDC. It is TBCD-coded, padded with zeros.
+ -- Octets 11 to 14: PROP. This 32 bit value is used to make the
+ -- InitialisationVector unique within the same TVP period.
+ -- The content is not standardized.
+
+
+OriginalComponentIdentifier ::= CHOICE {
+ operationCode [0] OperationCode,
+ errorCode [1] ErrorCode,
+ userInfo [2] NULL}
+
+OperationCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+ErrorCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+END
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
new file mode 100644
index 0000000000..dfb830cddd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
@@ -0,0 +1,78 @@
+MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ secureTransportClass1,
+ secureTransportClass2,
+ secureTransportClass3,
+ secureTransportClass4
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ dataMissing,
+ secureTransportError,
+ unexpectedDataValue
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ SecureTransportArg,
+ SecureTransportRes
+
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+;
+
+secureTransportClass1 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:78 }
+
+secureTransportClass2 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:79 }
+
+secureTransportClass3 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ CODE local:80 }
+
+secureTransportClass4 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ CODE local:81 }
+
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000000..0cca86ceac
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,155 @@
+-- asn1ct:compile("MAP-ShortMessageServiceOperations",[ber_bin, {outdir, "../compiled/umts_map"}]).
+
+MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ teleserviceNotProvisioned,
+ callBarred,
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+;
+
+sendRoutingInfoForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForSM-Arg
+ RESULT
+ RoutingInfoForSM-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ teleserviceNotProvisioned |
+ callBarred |
+ absentSubscriberSM}
+ CODE local:45 }
+
+mo-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MO-ForwardSM-Arg
+ RESULT
+ MO-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ facilityNotSupported |
+ sm-DeliveryFailure}
+ CODE local:46 }
+
+mt-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MT-ForwardSM-Arg
+ RESULT
+ MT-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ subscriberBusyForMT-SMS |
+ sm-DeliveryFailure |
+ absentSubscriberSM}
+ CODE local:44 }
+
+reportSM-DeliveryStatus OPERATION ::= { --Timer s
+ ARGUMENT
+ ReportSM-DeliveryStatusArg
+ RESULT
+ ReportSM-DeliveryStatusRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ messageWaitingListFull}
+ CODE local:47 }
+
+alertServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ AlertServiceCentreArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:64 }
+
+informServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ InformServiceCentreArg
+ CODE local:63 }
+
+readyForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ ReadyForSM-Arg
+ RESULT
+ ReadyForSM-Res
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber}
+ CODE local:66 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000000..7c89273c8b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,295 @@
+MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ unknownAlphabet,
+ ussd-Busy,
+ absentSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ shortTermDenial,
+ longTermDenial,
+ facilityNotSupported
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RegisterSS-Arg,
+ SS-Info,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ Password,
+ GuidanceInfo,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+-- supplementary service handling operations
+
+registerSS OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterSS-Arg
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility}
+ CODE local:10 }
+
+eraseSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus
+ }
+ CODE local:11 }
+
+activateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ ss-Incompatibility |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:12 }
+
+deactivateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:13 }
+
+interrogateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ InterrogateSS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable}
+ CODE local:14 }
+
+processUnstructuredSS-Request OPERATION ::= { --Timer 10 minutes
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownAlphabet |
+ callBarred}
+ CODE local:59 }
+
+unstructuredSS-Request OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:60 }
+
+unstructuredSS-Notify OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:61 }
+
+registerPassword OPERATION ::= { --Timer ml
+ ARGUMENT
+ SS-Code
+ RESULT
+ Password
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ ss-SubscriptionViolation |
+ pw-RegistrationFailure |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ LINKED {
+ getPassword}
+ CODE local:17 }
+
+getPassword OPERATION ::= { --Timer m
+ ARGUMENT
+ GuidanceInfo
+ RESULT
+ Password
+ CODE local:18 }
+
+ss-InvocationNotification OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-InvocationNotificationArg
+ RESULT
+ SS-InvocationNotificationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:72 }
+
+registerCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterCC-EntryArg
+ RESULT
+ RegisterCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ shortTermDenial |
+ longTermDenial |
+ facilityNotSupported}
+ CODE local:76 }
+
+eraseCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ EraseCC-EntryArg
+ RESULT
+ EraseCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus}
+ CODE local:77 }
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-TS-Code.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-TS-Code.asn
new file mode 100644
index 0000000000..eface38b31
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MAP-TS-Code.asn
@@ -0,0 +1,87 @@
+MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS 3GPP TS 22.030:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/MobileDomainDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
new file mode 100644
index 0000000000..30e7143882
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
@@ -0,0 +1,38 @@
+MobileDomainDefinitions {itu-t (0) identified-organization (4) etsi (0)
+ mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+-- Mobile DomainId
+mobileDomainId OBJECT IDENTIFIER ::=
+ {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)}
+
+-- Mobile Subdomains
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+gsm-AccessId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Access (2)}
+
+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Operation-Maintenance (3)}
+
+gsm-MessagingId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Messaging (4)}
+
+-- Common Component Ids for structuring Mobile Subdomains
+CommonComponentId ::= INTEGER (0..9)
+
+ac-Id CommonComponentId ::= 0
+
+as-Id CommonComponentId ::= 1
+
+ase-Id CommonComponentId ::= 2
+
+moduleId CommonComponentId ::= 3
+
+er-Id CommonComponentId ::= 4
+
+END -- MobileDomainDefinitions \ No newline at end of file
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..d4d2eecea1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,167 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..74be149bb0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,127 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..714b96b5c3
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,99 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/TC-Notation-Extensions.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
new file mode 100644
index 0000000000..89bfd105ef
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
@@ -0,0 +1,87 @@
+-- Module TC-Notation-Extensions (Q.775:06/1997)
+
+TC-Notation-Extensions {itu-t recommendation q 775 modules(2)
+ notation-extension(4) version1(1)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ TCMessage{}
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+ Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}, combine{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ CONTRACT, OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ UniDialoguePDU, uniDialogue-as-id
+ FROM UnidialoguePDUs {itu-t recommendation q 773 modules(2)
+ unidialoguePDUs(3) version1(1)}
+ DialoguePDU, dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &dialogueMode DialogueMode,
+ &termination Termination OPTIONAL,
+ &componentGrouping BOOLEAN DEFAULT TRUE,
+ &dialogueAndComponentGrouping BOOLEAN DEFAULT TRUE,
+ &AdditionalASEs OBJECT IDENTIFIER OPTIONAL,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ DIALOGUE MODE &dialogueMode
+ [TERMINATION &termination]
+ [COMPONENT GROUPING ALLOWED &componentGrouping]
+ [DIALOGUE WITH COMPONENTS ALLOWED &dialogueAndComponentGrouping]
+ [ADDITIONAL ASES &AdditionalASEs]
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+DialogueMode ::= ENUMERATED {structured(1), unstructured(2)}
+
+Termination ::= ENUMERATED {basic(1), prearranged(2)}
+
+dialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ DialoguePDU
+ IDENTIFIED BY dialogue-as-id
+}
+
+uniDialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ UniDialoguePDU
+ IDENTIFIED BY uniDialogue-as-id
+}
+
+TCSingleAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{AllOperations {package}}, {AllOperations {package}}}
+
+TCConsumerAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{ConsumerPerforms {package}}, {ConsumerPerforms {package}}}
+
+TCSupplierAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{SupplierPerforms {package}}, {SupplierPerforms {package}}}
+
+AllPackagesAS{APPLICATION-CONTEXT:ac} ::=
+ TCSingleAS
+ {combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&InitiatorSupplierOf},
+ {...}, --was illegaly empty, needs to be changed
+ { -- Information Object of class OPERATION-PACKAGE to be defined --}}}
+
+ConnectionAS{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Examples.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Examples.asn
new file mode 100644
index 0000000000..17667af920
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Examples.asn
@@ -0,0 +1,72 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Examples {itu-t recommendation q 775 modules(2) examples(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+provideRoutingInformation OPERATION ::= {
+ ARGUMENT RequestArgument
+ RESULT RoutingInformation
+ ERRORS
+ {invalidCalledNumber | subscriberNotReachable | calledBarred |
+ processingFailure}
+ LINKED {getCallingPartyAddress}
+}
+
+-- timer T-pi = 10 s
+getCallingPartyAddress OPERATION ::= {
+ RESULT CallingPartyAddress
+ ERRORS {callingPartyAddressNotAvailable | processingFailure}
+}
+
+-- timer T-gp = 5 s
+invalidCalledNumber ERROR ::= {CODE local:1
+}
+
+subscriberNotReachable ERROR ::= {CODE local:2
+}
+
+calledBarred ERROR ::= {CODE local:3
+}
+
+callingPartyAddressNotAvailable ERROR ::= {CODE local:4
+}
+
+processingFailure ERROR ::= {CODE local:5
+}
+
+-- data types
+RequestArgument ::= SEQUENCE {
+ calledNumber IsdnNumber,
+ basicService BasicServiceIndicator OPTIONAL
+}
+
+RoutingInformation ::= CHOICE {
+ reroutingNumber [0] IMPLICIT IsdnNumber,
+ forwardedToNumber [1] IMPLICIT IsdnNumber
+}
+
+BasicServiceIndicator ::= ENUMERATED {speech(0), unrestrictedDigital(1)}
+
+CallingPartyAddress ::= IsdnNumber
+
+IsdnNumber ::= SEQUENCE {
+ typeOfAddress TypeOfAddress,
+ digits TelephonyString
+}
+
+TypeOfAddress ::= ENUMERATED {national(0), international(1), private(2)}
+
+TelephonyString ::=
+ IA5String
+ (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" |
+ "#"))(SIZE (1..15))
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Tools.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Tools.asn
new file mode 100644
index 0000000000..09ea9d936f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAP-Tools.asn
@@ -0,0 +1,47 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Tools {itu-t recommendation q 775 modules(2) tools(1) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ cancel,
+ cancelFailed,
+ cancelled
+;
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+
+ TCInvokeIdSet
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+;
+
+cancel OPERATION ::= {
+ ARGUMENT present < TCInvokeIdSet
+ -- a TC-user may redefine this type to include
+ -- an empty result so that it becomes a Class 1 operation
+ ERRORS {cancelFailed}
+}
+
+-- timer = 15 s
+cancelFailed ERROR ::= {
+ PARAMETER
+ SET {problem [0] CancelProblem,
+ invokeId [1] present < TCInvokeIdSet}
+}
+
+CancelProblem ::= ENUMERATED {
+ unknownInvocation(0), tooLate(1), notCancellable(2)}
+
+-- a TC-user may redefine this type to include application-specific problems
+cancelled ERROR ::=
+ {}
+
+-- an error of this type should be included in the error list of cancellable operations
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAPMessages.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAPMessages.asn
new file mode 100644
index 0000000000..906cac23c8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/TCAPMessages.asn
@@ -0,0 +1,149 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module TCAPMessages (Q.773:06/1997)
+-- asn1ct:compile("TCAPMessages",[ber_bin]).
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- Start - Added by Eranga
+ dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)}
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+ FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+ gsm-MessagingId
+ FROM MobileDomainDefinitions {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- End - Added by Eranga
+;
+
+-- Start - Added by Eranga
+
+mapSpecificAS ABSTRACT-SYNTAX ::= {
+ MapSpecificPDUs
+ IDENTIFIED BY gsm-MessagingId
+}
+
+MapSpecificPDUs ::=
+ TCMessage{{MAPOperations-Invokable}, {MAPOperations-Returnable}}
+
+
+MAPOperations-Invokable OPERATION ::=
+ {sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM}
+MAPOperations-Returnable OPERATION ::=
+ {reportSM-DeliveryStatus | alertServiceCentre | informServiceCentre | readyForSM}
+
+-- End - Added by Eranga
+
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/tcapsystem/UnidialoguePDUs.asn b/lib/asn1/test/asn1_SUITE_data/tcapsystem/UnidialoguePDUs.asn
new file mode 100644
index 0000000000..4244cc8e65
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/tcapsystem/UnidialoguePDUs.asn
@@ -0,0 +1,26 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module UnidialoguePDUs (Q.773:06/1997)
+UnidialoguePDUs {itu-t recommendation q 773 modules(2) unidialoguePDUs(3)
+ version1(1)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS uniDialogue-as-id, UniDialoguePDU;
+
+-- Abstract syntax name for unstructured dialogue APDUs
+uniDialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)}
+
+UniDialoguePDU ::= CHOICE {unidialoguePDU AUDT-apdu
+}
+
+AUDT-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+END -- UNIDialoguePDU
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/test_records.erl b/lib/asn1/test/asn1_SUITE_data/test_records.erl
new file mode 100644
index 0000000000..b2c9797fdc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/test_records.erl
@@ -0,0 +1,87 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(test_records).
+
+-export(['check_record_names_OTP-5812'/1]).
+
+%-include("test_server.hrl").
+%-include_lib("test_server/include/test_server.hrl").
+
+-define(line,put(test_server_loc,{?MODULE,?LINE}),).
+
+-include("NBAP-PDU-Discriptions.hrl").
+-include("NBAP-PDU-Contents.hrl").
+-include("NBAP-Containers.hrl").
+-include("NBAP-CommonDataTypes.hrl").
+-include("NBAP-IEs.hrl").
+
+
+
+
+'check_record_names_OTP-5812'(Msg) ->
+ io:format("Msg: ~n~p~n",[Msg]),
+ check_record_names(Msg).
+
+check_record_names({initiatingMessage,
+ #'InitiatingMessage'{procedureID = ProcedureID,
+ criticality = _Criticality,
+ messageDiscriminator = _MessageDisc,
+ transactionID = _TransactionID,
+ value = Value}}) ->
+
+ ?line ok = check_record_ProcedureID(ProcedureID),
+ ?line ok = check_record_Value(Value).
+
+check_record_ProcedureID(#'ProcedureID'{}) ->
+ ok;
+check_record_ProcedureID(_) -> false.
+
+check_record_Value(#'ResourceStatusIndication'{protocolIEs = ProtocolIEs}) ->
+ ?line ok = check_record_ProtocolIEs(ProtocolIEs);
+check_record_Value(_) -> false.
+
+check_record_ProtocolIEs([#'ProtocolIE-Field'{value =IndicationType}|_]) ->
+ ?line ok = check_record_NFResourceStatusInd(IndicationType);
+check_record_ProtocolIEs(_) -> false.
+
+check_record_NFResourceStatusInd({'no-Failure',#'No-Failure-ResourceStatusInd'{'local-Cell-InformationList'=[LCIPF]}}) ->
+ 'check_record_NFResourceStatusInd_ProtocolIE-Field'(LCIPF);
+check_record_NFResourceStatusInd(_) -> false.
+
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(#'ProtocolIE-Field'{value=LCI}) ->
+ ?line ok = check_record_LCInfoResourceStatusInd(LCI);
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(_) -> false.
+
+check_record_LCInfoResourceStatusInd(#'Local-Cell-InformationItem-ResourceStatusInd'{commonChannelsCapacityConsumptionLaw=[CCCCL],dedicatedChannelsCapacityConsumptionLaw=[DCCCL],'iE-Extensions' = [LCIRE]}) ->
+ ?line ok = check_record_CCCCL(CCCCL),
+ ?line ok = check_record_DCCCL(DCCCL),
+ ?line ok = check_record_LCIRE(LCIRE).
+
+check_record_CCCCL(#'CommonChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_CCCCL(_) -> false.
+
+check_record_DCCCL(#'DedicatedChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_DCCCL(_) -> false.
+check_record_LCIRE(#'ProtocolExtensionField'{}) ->
+ ok;
+check_record_LCIRE(_) -> false.
diff --git a/lib/asn1/test/asn1_SUITE_data/testobj.erl b/lib/asn1/test/asn1_SUITE_data/testobj.erl
new file mode 100644
index 0000000000..be7ceee7d1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/testobj.erl
@@ -0,0 +1,1443 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testobj).
+
+-include("RANAP.hrl").
+
+-compile(export_all).
+
+-define(ranap, 'RANAP').
+
+
+%% These are possible Reason-values for sccp_disconnect_req in RANPM
+%%
+%% 0,0,0,0,0,1,0,0, % Message-type
+%% 0,0,0,0,0,0,0,0, % Dest local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,0,1,
+%% 0,0,0,0,0,0,0,0, % Source local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,1,0,
+
+run() ->
+ ok = run_com_id(),
+ ok = run_dir_tsf_2cn(),
+ ok = run_dir_tsf_2rnc(),
+ ok = run_init_ue(),
+ ok = run_iu_rel_cmd(),
+ ok = run_iu_rel_cmp(),
+ ok = run_rab_ass_rsp_delete(),
+ ok = run_rab_ass_rsp_setup(),
+ ok = run_rab_create(),
+ ok = run_rab_rel(),
+ ok = run_reset(),
+ ok = run_reset_res(),
+ ok = run_sm_cmd(),
+ ok = run_sm_cmp(),
+ ok = run_sm_rej().
+
+
+ranap_pdu_contents(Enc,Type) ->
+ {initiatingMessage, #'InitiatingMessage'{
+ procedureCode = Type,
+ criticality = ignore, %{'Criticality', ignore}, %XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_outcome(Enc,Type) ->
+ {outcome, #'Outcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_suc(Enc,Type) ->
+ {successfulOutcome, #'SuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_unsuc(Enc,Type) ->
+ {unsuccessfulOutcome, #'UnsuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+
+
+run_rab_rel() ->
+ RAS = rab_release_request(),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecRel}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecRel])
+ end,
+ case DecRel of
+ [[{_ProtIEField1,_Code1,_Crit1,DecRelList}]] ->
+ io:format("~w~n~n", [DecRelList])
+ end,
+ ok.
+
+run_rab_create() ->
+ RabID = [0,1,0,1,0,1,0,1],
+ Teid = [0,13,83,211],
+ SgsnIP = [0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0],
+ RAS = rab_create_request(RabID, Teid, SgsnIP),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecSetOrMod}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{'ProtocolIE-FieldPair',_Code1,_Crit1,DecSetOrModFirst,_Crit2,DecSetOrModSecond}]] ->
+ io:format("~w~n~n", [DecSetOrModFirst]),
+ io:format("~w~n~n", [DecSetOrModSecond])
+ end,
+ ok.
+
+decode_initiating_ras(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentRequest',Val)
+ end.
+
+
+run_rab_ass_rsp_setup() ->
+ RAR = rab_assignment_response_setup(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField,52,_Crit,DecSetOrMod}], _ASN1novalue} ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{_ProtIEField1,51,_Crit1,DecSetOrModFirst}]] ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrModFirst])
+ end,
+ ok.
+
+run_rab_ass_rsp_delete() ->
+ RAR = rab_assignment_response_delete(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField2,43,_Crit2,DecRelsd}], _ASN1novalue} ->
+ io:format("Released: ~w~n~n", [DecRelsd])
+ end,
+ case DecRelsd of
+ [[{_ProtIEField3,_Code3,_Crit3,DecRelsdItem}]] ->
+ io:format("Released: ~w~n~n", [DecRelsdItem])
+ end,
+ ok.
+
+decode_initiating_rar(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentResponse',Val)
+ end.
+
+
+
+run_init_ue() ->
+ INI = initial_ue(),
+ io:format("~w~n~n", [INI]),
+ RanapINI = ranap_pdu_contents(INI, 19), % 19 = InitialUE-Message
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapINI),
+ EncRanapINI = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapINI]),
+
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapINI),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'InitialUE-Message',[{_ProtIEField,Code,_Crit,DecCN},
+ {_ProtIEField1,Code1,_Crit1,
+ {_LAI,LaiPlmnid,LaiLac,_ASN1novalue}},
+ {_ProtIEField2,Code2,_Crit2,DecRAC},
+ {_ProtIEField3,Code3,_Crit3,
+ {_SAI,SaiPlmnid,SaiLac,SaiSac,_ASN1novalue}},
+ {_ProtIEField4,Code4,_Crit4,DecNASPDU},
+ {_ProtIEField5,Code5,_Crit5,DecIUSCID},
+ {_ProtIEField6,Code6,_Crit6,
+ {_GRI,GlPlmnid,GlRNCID}}],_ASN1novalue} ->
+ io:format("CN Dom Ind: ~w~n", [DecCN]),
+ io:format("Code: ~w~n~n", [Code]),
+ io:format("LaiPlmnid: ~w~n", [LaiPlmnid]),
+ io:format("LaiLac: ~w~n", [LaiLac]),
+ io:format("Code: ~w~n~n", [Code1]),
+ io:format("RAC: ~w~n", [DecRAC]),
+ io:format("Code: ~w~n~n", [Code2]),
+ io:format("SaiPlmnid: ~w~n", [SaiPlmnid]),
+ io:format("SaiLac: ~w~n", [SaiLac]),
+ io:format("SaiSac: ~w~n", [SaiSac]),
+ io:format("Code: ~w~n~n", [Code3]),
+ io:format("NAS-PDU: ~w~n", [DecNASPDU]),
+ io:format("Code: ~w~n~n", [Code4]),
+ io:format("Iu Sign Con Id: ~w~n", [DecIUSCID]),
+ io:format("Code: ~w~n~n", [Code5]),
+ io:format("GlPlmnid: ~w~n", [GlPlmnid]),
+ io:format("GlRNCID: ~w~n", [GlRNCID]),
+ io:format("Code: ~w~n~n", [Code6])
+ end,
+ ok.
+
+% NasPdu = extract_ie({init_ue},'InitUE-MessageIEsNAS-PDU',ListsinLists),
+% io:format("Tebax~n~w~n~n", [NasPdu]),
+% ok.
+
+decode_initiating_ini(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 19 -> % InitialUE-Message
+ wrapper_decode(?ranap, 'InitialUE-Message',Val)
+ end.
+
+
+run_dir_tsf_2cn() ->
+ DIR = direct_transfer_cn(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecLAI},
+ {_ProtIEField3,_Code3,_Crit3,DecRAC}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("LAI: ~w~n~n", [DecLAI]),
+ io:format("RAC: ~w~n~n", [DecRAC])
+ end,
+ ok.
+
+run_dir_tsf_2rnc() ->
+ DIR = direct_transfer_rnc(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecSAPI}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("SAPI: m~w~n~n", [DecSAPI])
+ end,
+ ok.
+
+decode_initiating_dir(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 20 -> % DirectTransfer
+ wrapper_decode(?ranap, 'DirectTransfer',Val)
+ end.
+
+% List = tuple2list(Dec),
+% io:format("~w~n~n", [List]),
+% NasPdu = extract_ie({dir_trans},'DirTransIEs-NAS-PDU',List),
+% io:format("~w~n~n", [NasPdu]),
+% ok.
+
+
+run_iu_rel_cmd() ->
+ IUR = iu_release_command(),
+ io:format("~w~n~n", [IUR]),
+ RanapIUR = ranap_pdu_contents(IUR, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUR),
+ EncRanapIUR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUR),
+ io:format("General: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'Iu-ReleaseCommand',[{_ProtIEField,_Code,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause])
+ end.
+
+run_iu_rel_cmp() ->
+ IUP = iu_release_complete(),
+ io:format("~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents_suc(IUP, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUP]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("~w~n~n", [DecGeneral]).
+
+% run_iu_rel_req() ->
+% IUP = iu_release_request(),
+% io:format("~w~n~n", [IUP]),
+% {ok, Tmp} = wrapper_encode(?ranap, 'Iu-ReleaseRequest', IUP),
+% EncIUP = lists:flatten(Tmp),
+% RanapIUP = ranap_pdu_contents(EncIUP, 1), % 1 = Iu-Release
+% {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+% EncRanapIUP = lists:flatten(Tmp2),
+% io:format("~w~n~n", [EncRanapIUP]),
+% case wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP) of
+% {ok,{initiatingMessage,
+% #'InitiatingMessage'{procedureCode=ProcedureCode,
+% criticality=Criticality,
+% value=Value}}} ->
+% DecGeneral = decode_initiating_iu(ProcedureCode,Criticality,Value)
+% end,
+% io:format("~w~n~n", [DecGeneral]).
+
+decode_initiating_iu(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 1 -> % Iu-Release
+ wrapper_decode(?ranap, 'Iu-ReleaseComplete',Val)
+ end.
+
+
+
+
+
+run_com_id() ->
+ COM = common_id(),
+ io:format("~w~n~n", [COM]),
+ RanapCOM = ranap_pdu_contents(COM, 15), % 15 = CommonID
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapCOM),
+ EncRanapCOM = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapCOM]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapCOM),
+ io:format("DecGeneral: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'CommonID',[{_ProtIEField,23,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause]);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+decode_common_id(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 15 -> % Common ID
+ wrapper_decode(?ranap, 'CommonID',Val);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+
+
+run_sm_cmd() ->
+ DIR = security_mode_cmd(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeCommand',
+ [{_ProtIEField1,12,_Crit1,DecIPI},
+ {_ProtIEField2,11,_Crit2,DecEI},
+ {_ProtIEField3,75,_Crit3,DecKS}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPI]),
+ io:format("Encryption Information: ~w~n~n", [DecEI]),
+ io:format("Key Status: ~w~n~n", [DecKS])
+ end,
+ ok.
+
+run_sm_cmp() ->
+ DIR = security_mode_cmp(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_suc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeComplete',
+ [{_ProtIEField1,6,_Crit1,DecIPA},
+ {_ProtIEField2,5,_Crit2,DecEI}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+ io:format("Encryption Information: ~w~n~n", [DecEI])
+ end,
+ ok.
+
+run_sm_rej() ->
+ DIR = security_mode_rej(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_unsuc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{unsuccessfulOutcome,
+ #'UnsuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'SecurityModeReject',
+% [{_ProtIEField1,6,_Crit1,Value1},
+% {_ProtIEField2,5,_Crit2,Value2}],
+% _ASN1novalue}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'IntegrityProtectionAlgorithm', Value1),
+% {ok,DecEI} = wrapper_decode(?ranap, 'EncryptionAlgorithm', Value2),
+% io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+% io:format("Encryption Information: ~w~n~n", [DecEI])
+% end,
+ ok.
+
+decode_initiating_sm(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeCommand',Val)
+ end.
+
+decode_suc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeComplete',Value)
+ end.
+
+decode_unsuc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeReject',Value)
+ end.
+
+
+
+
+
+
+
+run_reset() ->
+ IUP = reset(),
+ io:format("Reset: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 9), % 9 = Reset
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset: ~w~n~n", [DecGeneral]),
+
+ IUP1 = reset_ack(),
+ io:format("Reset Ack:~w~n~n", [IUP1]),
+ RanapIUP1 = ranap_pdu_contents_suc(IUP1, 9), % 9 = Reset
+ {ok, Tmp21} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP1),
+ EncRanapIUP1 = lists:flatten(Tmp21),
+ io:format("Coded Reset Ack: ~w~n~n", [EncRanapIUP1]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP1),
+ io:format("Decoded Reset Ack: ~w~n~n", [DecGeneral1]).
+
+% decode_init_reset(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'Reset',Val)
+% end.
+
+% decode_init_reset_ack(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'ResetAcknowledge',Val)
+% end.
+
+
+
+
+
+
+
+
+
+run_reset_res() ->
+ IUP = reset_res([12,13,14,15,16,17,18,19,20]),
+ io:format("Reset Rsource: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 27), % 27 = Reset Res
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset Resource: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset Resource: ~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'ResetResource',
+% [{'ProtocolIE-Field',3,ignore,Value1},
+% {'ProtocolIE-Field',4,ignore,Value2},
+% {'ProtocolIE-Field',77,ignore,Value3},
+% {'ProtocolIE-Field',86,ignore,Value4}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% io:format("Value3: ~w~n~n", [Value3]),
+% io:format("Value4: ~w~n~n", [Value4]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value1),
+% {ok,{_Radio,DecEI}} = wrapper_decode(?ranap, 'Cause', Value2),
+% {ok,DecRR} = wrapper_decode(?ranap, 'ResetResourceList', Value3),
+% DecRRI = case DecRR of
+% [[{'ProtocolIE-Field',78,ignore,Value5}]] ->
+% {ok,{_apa,DecRI,_asn1novalue}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value5),
+% DecRI
+% end,
+% {ok,{_Gl_id,PLMN_ID,RNC_ID}} = wrapper_decode(?ranap, 'GlobalRNC-ID', Value4),
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA]),
+% io:format("Cause: ~w~n~n", [DecEI]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI]),
+% io:format("GlobalRNC-ID: PLMN_ID: ~w, RNC_ID: ~w~n~n", [PLMN_ID,RNC_ID])
+% end,
+
+ RSA = reset_res_ack([12,13,14,15,16,17,18,19,20]),
+ io:format("~n~nReset Resource Ack:~w~n~n", [RSA]),
+ RanapRSA = ranap_pdu_contents_suc(RSA, 27), % 27 = Reset Res
+ {ok, Tmp12} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRSA),
+ EncRanapRSA = lists:flatten(Tmp12),
+ io:format("Coded Reset Resource Ack: ~w~n~n", [EncRanapRSA]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRSA),
+ io:format("Decoded Reset Resource Ack: ~w~n~n", [DecGeneral1]).
+% case DecGeneral1 of
+% {ok,{'ResetResourceAcknowledge',
+% [{'ProtocolIE-Field',3,ignore,Value12},
+% {'ProtocolIE-Field',77,ignore,Value32}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value12]),
+% io:format("Value3: ~w~n~n", [Value32]),
+% {ok,DecIPA2} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value12),
+% {ok,DecRR2} = wrapper_decode(?ranap, 'ResetResourceList', Value32),
+% DecRRI2 = case DecRR2 of
+% [[{'ProtocolIE-Field',78,ignore,Value52}]] ->
+% {ok,{_apa2,DecRI2,_asn1novalue2}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value52),
+% DecRI2
+% end,
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA2]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR2]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI2])
+% end.
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Kod f�r att s�tta ihop RANAP-meddelanden
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+rab_release_request() ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs = rab_assign_request_release_ies()
+ }.
+
+rab_assign_request_release_ies() ->
+ [rab_assign_release_rab_release_list()].
+
+rab_assign_release_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 41, % 41 = id-RAB-ReleaseList
+ criticality = ignore,%XXX
+ value = rab_release_list()
+ }.
+
+rab_release_list() ->
+ [release_lists()].
+
+release_lists() ->
+ [rab_release_item_ies()].
+
+rab_release_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 40, % 40 = id-RAB-ReleaseItem
+ criticality = ignore,%XXX
+ value = rab_release_item()}.
+
+rab_release_item() ->
+ #'RAB-ReleaseItem'{'rAB-ID' = rab_id(),
+ cause = cause_nas()}.
+
+cause_nas() ->
+ {nAS, 'normal-release'}.
+
+
+
+
+
+
+rab_create_request(Rabid, Teid, SgsnIP) ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs =
+ rab_assign_create_request_ies(Rabid, Teid, SgsnIP)
+ }.
+
+rab_assign_create_request_ies(Rabid, Teid, SgsnIP) ->
+ [rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP)].
+
+rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-Field'{
+ id = 54, %id-RAB-SetupOrModifyList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modify_list(Rabid, Teid, SgsnIP)
+ }.
+
+rab_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ [setup_or_modify_lists(Rabid, Teid, SgsnIP)].
+
+setup_or_modify_lists(Rabid, Teid, SgsnIP) ->
+ [rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP)].
+
+rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-FieldPair'{
+ id = 53,
+ firstCriticality = reject, %{'Criticality',reject},
+ firstValue = rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP),
+ secondCriticality = ignore, %{'Criticality', ignore}
+ secondValue = rab_setup_or_modify_item_second()
+ }.
+
+rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP) ->
+ #'RAB-SetupOrModifyItemFirst'{
+ 'rAB-ID' = Rabid, %ras_rab_id(Rabid),
+ 'rAB-Parameters' = rab_parameters(),
+ userPlaneInformation = user_plane_information(),
+ transportLayerAddress = SgsnIP,
+ iuTransportAssociation = ras_iu_transport_association(Teid)
+ }.
+
+ras_iu_transport_association(Teid) ->
+ {'gTP-TEI', Teid}.
+
+rab_id() ->
+ [0,1,0,1,0,1,0,1].
+
+rab_parameters() ->
+ #'RAB-Parameters'{
+ trafficClass = background,
+ 'rAB-AsymmetryIndicator' = 'symmetric-bidirectional',
+ maxBitrate = [200000],
+ deliveryOrder = 'delivery-order-not-requested',
+ 'maxSDU-Size' = 11,
+ 'sDU-Parameters' = sdu_parameters(),
+ trafficHandlingPriority = 14 %{'TrafficHandlingPriority', 14} %14=lowest
+ }.
+
+user_plane_information() ->
+ #'UserPlaneInformation'{
+ userPlaneMode = 'support-mode-for-predefined-SDU-sizes',
+ 'uP-ModeVersions' = 2#1010101010101010
+ }.
+
+transport_layer_address() ->
+ [1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1,1,1].
+% 1 2 3 4
+
+iu_transport_association() ->
+ {'gTP-TEI', [31,32,33,34]}.
+
+sdu_parameters() ->
+ [#'SDU-Parameters_SEQOF'{
+ 'sDU-ErrorRatio' = sdu_error_ratio(),
+ residualBitErrorRatio = residual_bit_error_ratio(),
+ deliveryOfErroneousSDU = no
+ }].
+
+sdu_error_ratio() ->
+ #'SDU-ErrorRatio'{
+ mantissa = 9,
+ exponent = 4
+ }.
+
+residual_bit_error_ratio() ->
+ #'ResidualBitErrorRatio'{
+ mantissa = 9,
+ exponent = 5
+ }.
+
+%allocationOrRetentionPriority() ->
+% #'AllocationOrRetentionPriority'{
+% priorityLevel = lowest,
+% 'pre-emptionCapability' = {'Pre-emptionCapability','can-trigger-pre-emption'},
+% 'pre-emptionVulnerability' = {'Pre-emptionVulnerability','not-vulnerable-to-pre-emption'},
+% queuingAllowed = {'QueuingAllowed','queueing-allowed'}
+% }.
+
+rab_setup_or_modify_item_second() -> % returns OpenType value
+ #'RAB-SetupOrModifyItemSecond'{
+ 'pDP-TypeInformation' = ['ipv4'],
+ dataVolumeReportingIndication = 'do-not-report',
+ 'dl-GTP-PDU-SequenceNumber' = 1,
+ 'ul-GTP-PDU-SequenceNumber' = 2,
+ 'dl-N-PDU-SequenceNumber' = 0,
+ 'ul-N-PDU-SequenceNumber' = 0
+ }.
+
+
+
+
+rab_assignment_response_setup() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_setup()
+ }.
+
+rab_assignement_response_ies_setup() ->
+ [rab_ass_rsp_setup_or_modified_list()].
+
+rab_ass_rsp_setup_or_modified_list() ->
+ #'ProtocolIE-Field'{
+ id = 52, % 52=RAB-AssignRABSetupOrModifiedList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modified_list()
+ }.
+
+rab_setup_or_modified_list() ->
+ [rab_setup_or_modified_item_list()].
+
+rab_setup_or_modified_item_list() ->
+ [rab_setup_or_modified_item_ies()].
+
+rab_setup_or_modified_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 51, % 51 = RAB-SetupOrModifiedItemIEs
+ criticality = reject, %{'Criticality', reject},
+ value = rab_setup_or_modified_item()
+ }.
+
+rab_setup_or_modified_item() ->
+ #'RAB-SetupOrModifiedItem'{
+ 'rAB-ID' = rab_id(),
+ transportLayerAddress = transport_layer_address(),
+ iuTransportAssociation = iu_transport_association()
+ }.
+
+
+
+
+
+
+rab_assignment_response_delete() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_delete()
+ }.
+
+rab_assignement_response_ies_delete() ->
+ [rab_ass_rsp_rab_release_list()].
+
+rab_ass_rsp_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 43, % 41 = RAB-AssignRABReleasedList
+ criticality = ignore,%XXX
+ value = rab_released_list()
+ }.
+
+rab_released_list() ->
+ [released_lists()].
+
+released_lists() ->
+ [rab_released_item_ies()]. % 'ReleasedLists'
+
+rab_released_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 42, % 42 = RAB-ReleaseItemIEs
+ criticality = ignore,%XXX
+ value = rab_released_item()
+ }.
+
+rab_released_item() ->
+ #'RAB-ReleasedItem'{
+ 'rAB-ID' = rab_id()
+ }.
+
+
+
+initial_ue() ->
+ #'InitialUE-Message'{
+ protocolIEs = initial_ue_ies()
+ }.
+
+initial_ue_ies() ->
+ [cn_domain_ind(),
+ init_lai(),
+ init_rac(),
+ init_sai(),
+ init_nas_pdu(),
+ init_iu_sign_con_id(),
+ init_global_rnc_id_initial_ue()].
+
+
+cn_domain_indicator() ->
+ {'CN-DomainIndicator', 'ps-domain'}.
+
+init_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+lai() ->
+ #'LAI'{'pLMN-ID' = [25,26,27],
+ lAC = [25,26]}.
+
+init_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+rac() ->
+ [25].
+
+init_sai() ->
+ #'ProtocolIE-Field'{
+ id = 58, % 58 = SAI
+ criticality = ignore,%XXX
+ value = sai()
+ }.
+
+sai() ->
+ #'SAI'{'pLMN-ID' = [28,29,30], %KOLLA!!!!
+ lAC = [30,31],
+ sAC = [32,33]}.
+
+init_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_ar()
+ }.
+
+pdu_ac()->
+ [16#08,
+ 16#03].
+
+pdu_ar() ->
+ [16#08, % Skip indicator | Protocol discriminator
+ 16#01, % Attach Request
+ 16#01,16#b7, % MsNetworkCapability
+ 16#21, % Cksn | AttachType
+ 16#55,16#06, % DrxParameter
+ 16#05,16#61,16#86,16#14,16#09,16#f7, % MsId
+ 16#21,16#63,16#54,16#ac,16#dc,16#d5, % OldRai
+ 16#0a,16#f0,16#f1,16#f2,16#f3,16#f4, % MsRaCap
+ 16#f5,16#f6,16#f7,16#f8,16#f9 % MsRaCap continues
+ %%16#19,16#ab,16#cd,16#ef, % P-TMSI signature
+ %%16#17,16#5b, % Requested READY timer
+ %%16#91 % TMSI status
+ ].
+
+pdu_pdp() ->
+ [2#01001010, % Transaction_id | Protocol_disc
+ 2#01000001, % Message_type
+ 2#00001001, % Nsapi
+ 1, % Llc_sapi (dummie_value)
+ 1,1,1,1, % QoS dummie_value=1 (19 octets)
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 7, % PDP_Address (Ltot=7),
+ 2#00000001, % ietf/etsi organisation
+ 2#00100001, % IPv4
+ 198, % IP address MSD
+ 124,
+ 56,
+ 124, % IP address LSD
+ 1, % APN optional (octet1=IEI)
+ 25, % APN total length
+ 4, % length lable1
+ 116,101,115,116, % lable1 = test
+ 4, % length lable2
+ 116,101,115,116, % lable2 = test
+ 4, % lenght lable3
+ 116,101,115,116, % lable3 = test
+ 4, % length lable3
+ 116,101,115,116, % lable4 = test
+ 4, % length label5
+ 103,112,114,115
+ ].
+
+pdu_auth_rsp() ->
+ [8,16#13,0,1,2,3,16#21,2,0,1].
+
+pdu_auth_fail() ->
+ [8,16#1C,1,16#22,2,0,1].
+
+init_iu_sign_con_id() ->
+ #'ProtocolIE-Field'{
+ id = 79, % 79 = id-IuSigConId
+ criticality = ignore,%XXX
+ value = iu_sign_con_id()
+ }.
+
+iu_sign_con_id() ->
+ 53245.
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,1]
+
+init_global_rnc_id_initial_ue() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+global_rnc_id() ->
+ #'GlobalRNC-ID'{'pLMN-ID' = [10,11,12], 'rNC-ID' = 2048}.
+
+direct_transfer_cn() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_cn_ies()
+ }.
+
+direct_transfer_cn_ies() ->
+ [dir_cn_nas_pdu(),
+ dir_lai(),
+ dir_rac()].
+
+dir_cn_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_fail()
+ }.
+
+dir_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = id-LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+dir_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = id-RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+
+
+
+
+
+direct_transfer_rnc() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_rnc_ies()
+ }.
+
+direct_transfer_rnc_ies() ->
+ [dir_rnc_nas_pdu(),
+ dir_sapi()].
+
+dir_rnc_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_rsp()
+ }.
+
+dir_sapi() ->
+ #'ProtocolIE-Field'{
+ id = 59, % 59 = id-SAPI
+ criticality = ignore,%XXX
+ value = sapi()
+ }.
+
+sapi() ->
+ 'normal-priority'.
+
+
+
+
+
+iu_release_command() ->
+ #'Iu-ReleaseCommand'{
+ protocolIEs = iu_rel_command_ies()
+ }.
+
+iu_rel_command_ies() ->
+ [iu_relcomcause_nas()].
+
+iu_relcomcause_nas() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause()
+ }.
+
+cause() ->
+ cause_nas().
+
+% cause() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'CauseNAS',
+% {'CauseNAS', 'normal-release'}),
+% Bytes.
+
+
+
+
+
+
+iu_release_complete() ->
+ #'Iu-ReleaseComplete'{
+ protocolIEs = iu_rel_comp_ies()
+ }.
+
+iu_rel_comp_ies() ->
+ [].
+% 'iu-RelCompRABDataVolumeReportList' = asn1_NOVALUE,
+% 'iu-RelCompRABReleasedListIuRelComp' = asn1_NOVALUE,
+% 'iu-RelCompCriticalityDiagnostics' = asn1_NOVALUE
+% }.
+
+
+
+
+
+
+
+
+common_id() ->
+ #'CommonID'{
+ protocolIEs = common_id_ies()
+ }.
+
+common_id_ies() ->
+ [common_id_imsi()].
+
+common_id_imsi() ->
+ #'ProtocolIE-Field'{
+ id = 23, % 23 = Perm. NAS ID (IMSI)
+ criticality = ignore, %ignore,%XXX %XXX
+ value = imsi()
+ }.
+
+imsi() ->
+ {iMSI, [1,2,3,4,5,6,7,8]}.
+
+
+
+
+
+
+
+
+
+
+security_mode_cmd() ->
+ #'SecurityModeCommand'{
+ protocolIEs = security_mode_cmd_ies()
+ }.
+
+security_mode_cmd_ies() ->
+ [security_mode_cmd_integ(),
+ security_mode_cmd_encr(),
+ security_mode_cmd_keystat()
+ ].
+
+security_mode_cmd_integ() ->
+ #'ProtocolIE-Field'{
+ id = 12, % 12 = Integ info
+ criticality = ignore,%{'Criticality', ignore},
+ value = integ_info()
+ }.
+
+integ_info() ->
+ #'IntegrityProtectionInformation'{
+ permittedAlgorithms = perm_integ_algs(),
+ key = key() }.
+
+perm_integ_algs() ->
+ [integ_prot_alg()].
+
+integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+key() ->
+ [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0].
+
+
+
+security_mode_cmd_encr() ->
+ #'ProtocolIE-Field'{
+ id = 11, % 11 = Encr info
+ criticality = ignore,%{'Criticality', ignore},
+ value = encr_info()
+ }.
+
+encr_info() ->
+ #'EncryptionInformation'{
+ permittedAlgorithms = perm_encr_algs(),
+ key = key() }.
+
+perm_encr_algs() ->
+ [encr_prot_alg()].
+
+encr_prot_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+security_mode_cmd_keystat() ->
+ #'ProtocolIE-Field'{
+ id = 75, % 75 = id-KeyStatus
+ criticality = ignore,%{'Criticality', ignore},
+ value = key_status()
+ }.
+
+key_status() ->
+ new.
+
+
+
+
+
+security_mode_cmp() ->
+ #'SecurityModeComplete'{
+ protocolIEs = security_mode_cmp_ies()
+ }.
+
+security_mode_cmp_ies() ->
+ [security_mode_cmp_ch_integ_prot_alg(),
+ security_mode_cmp_ch_encr_alg()
+ ].
+
+security_mode_cmp_ch_integ_prot_alg() ->
+ #'ProtocolIE-Field'{
+ id = 6, % 6 = Chosen Integ prot alg
+ criticality = ignore,%XXX
+ value = ch_integ_prot_alg()
+ }.
+
+ch_integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+
+security_mode_cmp_ch_encr_alg() ->
+ #'ProtocolIE-Field'{
+ id = 5, % 5 = Chosen Encr alg
+ criticality = ignore,%XXX
+ value = ch_encr_alg()
+ }.
+
+ch_encr_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+
+
+
+security_mode_rej() ->
+ #'SecurityModeReject'{
+ protocolIEs = security_mode_rej_ies()
+ }.
+
+security_mode_rej_ies() ->
+ [security_mode_rej_cause()].
+
+
+security_mode_rej_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio() % Se Reset
+ }.
+
+
+
+
+
+
+
+
+reset() ->
+ #'Reset'{
+ protocolIEs = reset_ies()
+ }.
+reset_ies() ->
+ {'Reset_protocolIEs', % this identifier is very unneccesary here
+ [reset_cause(),
+ cn_domain_ind(), % Se initial Ue
+ init_global_rnc_id() % ---- " ----
+ ]}.
+init_global_rnc_id() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio()
+ }.
+%cause_open() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'Cause', cause_radio()),
+% Bytes.
+cause_radio() ->
+ {radioNetwork, 'release-due-to-utran-generated-reason'}.
+
+
+cn_domain_ind(IEs) when atom(IEs)->
+ setelement(1,cn_domain_ind(),IEs).
+
+cn_domain_ind() ->
+ #'ProtocolIE-Field'{
+ id = 3, % 3 = InitUE-MessageIEsCN-DomainIndicator
+ criticality = ignore,%XXX
+ value = cn_domain_indicator()
+ }.
+
+
+
+
+reset_ack() ->
+ #'ResetAcknowledge'{
+ protocolIEs = reset_ack_ies()
+ }.
+reset_ack_ies() ->
+ {'ResetAcknowledge_protocolIEs', % very unneccesary
+ [cn_domain_ind()]}. % Se initial Ue
+
+
+
+
+
+reset_res(IuSCId) ->
+ #'ResetResource'{
+ protocolIEs = reset_res_ies(IuSCId)
+ }.
+
+reset_res_ies(IuSCId) ->
+ {'ResetResource_protocolIEs', % very unneccesary
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_cause() % Se reset
+ ,reset_res_list(IuSCId)
+ ,init_global_rnc_id_reset_res() % ---- " ----
+ ]}.
+
+init_global_rnc_id_reset_res() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_res_list(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 77, % 77 = id-IuSigConIdList
+ criticality = ignore,%XXX
+ value = res_list(IuSCId)
+ }.
+
+res_list(IuSCId) ->
+ iu_Sig_Con_Id_list(IuSCId,[]).
+
+iu_Sig_Con_Id_list([],List) ->
+ List;
+
+iu_Sig_Con_Id_list([IuSCId|T],List) ->
+ Ie = [iu_Sig_Con_Id_ie(IuSCId)],
+ iu_Sig_Con_Id_list(T,[Ie|List]).
+
+iu_Sig_Con_Id_ie(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 78, % 78 = id-IuSigConIdItem
+ criticality = ignore,%XXX
+ value = iu_Sig_Con_Id_item(IuSCId)}.
+
+iu_Sig_Con_Id_item(IuSCId) ->
+ #'ResetResourceItem'{
+ iuSigConId = IuSCId
+% 53432
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0]
+ }.
+
+
+reset_res_ack(IuSCId) ->
+ #'ResetResourceAcknowledge'{
+ protocolIEs = reset_res_ack_ies(IuSCId)
+ }.
+reset_res_ack_ies(IuSCId) ->
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_res_list(IuSCId) % Se Reset Ressource
+ ].
+
+
+int2bin(Int) ->
+ EmptyList = [],
+ BitList_b1 = [Int band 2#1 | EmptyList],
+ BitList_b2 = [(Int bsr 1) band 2#1 | BitList_b1],
+ BitList_b3 = [(Int bsr 2) band 2#1 | BitList_b2],
+ BitList_b4 = [(Int bsr 3) band 2#1 | BitList_b3],
+ BitList_b5 = [(Int bsr 4) band 2#1 | BitList_b4],
+ BitList_b6 = [(Int bsr 5) band 2#1 | BitList_b5],
+ BitList_b7 = [(Int bsr 6) band 2#1 | BitList_b6],
+ BitList = [(Int bsr 7) band 2#1 | BitList_b7],
+ io:format("~n~w~n", [BitList]).
+
+
+%%%%%%%%%%%%%%%%% wrappers %%%%%%%%%%%%%%%%%%%%%%%%
+
+wrapper_encode(Module,Type,Value) ->
+ case asn1rt:encode(Module,Type,Value) of
+ {ok,X} when binary(X) ->
+ {ok, binary_to_list(X)};
+ {ok,X} ->
+ {ok, binary_to_list(list_to_binary(X))};
+ Error ->
+ Error
+ end.
+
+wrapper_decode(Module,Type,Bytes) ->
+ case Module:encoding_rule() of
+ ber ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ ber_bin_v2 when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin_v2 ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ per ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ uper_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes))
+ end.
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn b/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn
new file mode 100644
index 0000000000..3f1385323a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn
@@ -0,0 +1,253 @@
+-- Module ACSE-1 (X.237:04/1995)
+ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)}
+-- ACSE-1 refers to ACSE version 1
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ acse-as-id, ACSE-apdu, aCSE-id, Application-context-name, AP-title,
+ AE-qualifier, AE-title, AP-invocation-identifier, AE-invocation-identifier,
+ Mechanism-name, Authentication-value, ACSE-requirements, ObjectSet;
+
+IMPORTS
+ Name, RelativeDistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- The data types Name and RelativeDistinguishedName are imported from ISO/IEC 9594-2.
+-- object identifier assignments
+acse-as-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+
+-- may be used to reference the abstract syntax of the ACSE APDUs
+aCSE-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}
+
+-- may be used to identify the Association Control ASE.
+-- top level CHOICE
+ACSE-apdu ::= CHOICE {
+ aarq AARQ-apdu,
+ aare AARE-apdu,
+ rlrq RLRQ-apdu,
+ rlre RLRE-apdu,
+ abrt ABRT-apdu,
+ ...
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ called-AP-title [2] AP-title OPTIONAL,
+ called-AE-qualifier [3] AE-qualifier OPTIONAL,
+ called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL,
+ called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL,
+ calling-AP-title [6] AP-title OPTIONAL,
+ calling-AE-qualifier [7] AE-qualifier OPTIONAL,
+ calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL,
+ calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [13] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ responding-AP-title [4] AP-title OPTIONAL,
+ responding-AE-qualifier [5] AE-qualifier OPTIONAL,
+ responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL,
+ responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL,
+ -- This following field shall only be present if the Authentication functional unit is selected.
+ responding-authentication-value
+ [10] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [11] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information
+ [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ abort-diagnostic [1] IMPLICIT ABRT-diagnostic OPTIONAL,
+ -- This field shall not be present if only the Kernel is used.
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-diagnostic ::= ENUMERATED {
+ no-reason-given(1), protocol-error(2),
+ authentication-mechanism-name-not-recognized(3),
+ authentication-mechanism-name-required(4), authentication-failure(5),
+ authentication-required(6), ...
+ }
+
+ABRT-source ::= INTEGER {acse-service-user(0), acse-service-provider(1)
+}(0..1, ...)
+
+ACSE-requirements ::= BIT STRING {
+ authentication(0), application-context-negotiation(1)}
+
+Application-context-name-list ::= SEQUENCE OF Application-context-name
+
+Application-context-name ::= OBJECT IDENTIFIER
+
+-- Application-entity title productions follow (not in alphabetical order)
+AP-title ::= CHOICE {
+ ap-title-form1 AP-title-form1,
+ ap-title-form2 AP-title-form2,
+ ...
+}
+
+AE-qualifier ::= CHOICE {
+ ae-qualifier-form1 AE-qualifier-form1,
+ ae-qualifier-form2 AE-qualifier-form2,
+ ...
+}
+
+-- When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must
+-- have the same form to allow the construction of an AE-title as discussed in CCITT Rec. X.665 |
+-- ISO/IEC 9834-6.
+AP-title-form1 ::=
+ Name
+
+-- The value assigned to AP-title-form1 is The Directory Name of an application-process title.
+AE-qualifier-form1 ::=
+ RelativeDistinguishedName
+
+-- The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular
+-- application-entity of the application-process identified by AP-title-form1.
+AP-title-form2 ::= OBJECT IDENTIFIER
+
+AE-qualifier-form2 ::= INTEGER
+
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in CCITT Rec. X.650 | ISO 7498-3, an application-entity title is composed of an application-
+-- process title and an application-entity qualifier. The ACSE protocol provides for the transfer of an
+-- application-entity title value by the transfer of its component values. However, the following data type
+-- is provided for International Standards that reference a single syntactic structure for AE titles.
+AE-title-form1 ::=
+ Name
+
+-- For access to The Directory (ITU-T Rec. X.500-Series | ISO/IEC 9594), an AE title has AE-title-form1.
+-- This value can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an
+-- AARQ or AARE APDU. A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier-
+-- form1 may be found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-title-form2 ::= OBJECT IDENTIFIER
+
+-- A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be
+-- found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-invocation-identifier ::= INTEGER
+
+AP-invocation-identifier ::= INTEGER
+
+-- End of Application-entity title productions
+Associate-result ::= INTEGER {
+ accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)
+
+Associate-source-diagnostic ::= CHOICE {
+ acse-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2),
+ calling-AP-title-not-recognized(3),
+ calling-AP-invocation-identifier-not-recognized(4),
+ calling-AE-qualifier-not-recognized(5),
+ calling-AE-invocation-identifier-not-recognized(6),
+ called-AP-title-not-recognized(7),
+ called-AP-invocation-identifier-not-recognized(8),
+ called-AE-qualifier-not-recognized(9),
+ called-AE-invocation-identifier-not-recognized(10),
+ authentication-mechanism-name-not-recognized(11),
+ authentication-mechanism-name-required(12),
+ authentication-failure(13), authentication-required(14)}
+ (0..14, ...),
+ acse-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
+ (0..2, ...)
+}
+
+Association-information ::= SEQUENCE SIZE (1, ..., 0 | 2..MAX) OF EXTERNAL
+
+Authentication-value ::= CHOICE {
+ charstring [0] IMPLICIT GraphicString,
+ bitstring [1] IMPLICIT BIT STRING,
+ external [2] IMPLICIT EXTERNAL,
+ other
+ [3] IMPLICIT SEQUENCE {other-mechanism-name
+ MECHANISM-NAME.&id({ObjectSet}),
+ other-mechanism-value
+ MECHANISM-NAME.&Type
+ ({ObjectSet}{@.other-mechanism-name})}
+}
+
+-- The abstract syntax of (calling/responding) authentication-value is determined by the authentication
+-- mechanism used during association establishment. The authentication mechanism is either explicitly
+-- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism belonging to the class
+-- MECHANISM-NAME, or it is known implicitly by
+-- prior agreement between the communicating partners. If the "other" component is chosen, then
+-- the "mechanism-name" component must be present in accordance with
+-- ITU-T Rec. X.680 | ISO/IEC 8824. If the value "mechanism-name" occurs in the AARQ-apdu or the
+-- AARE-apdu, then that value must be the same as the value for "other-mechanism-name"
+Implementation-data ::= GraphicString
+
+Mechanism-name ::= OBJECT IDENTIFIER
+
+MECHANISM-NAME ::= TYPE-IDENTIFIER
+
+ObjectSet MECHANISM-NAME ::=
+ {...}
+
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}(0 | 1 | 30, ...)
+
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}(0 | 1 | 30, ...)
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn b/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn
new file mode 100644
index 0000000000..04060cf060
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn
@@ -0,0 +1,17 @@
+-- Module Character-Coding-Attributes (T.416:03/1993)
+
+Character-Coding-Attributes {2 8 1 6 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Character-Coding-Attributes;
+
+Character-Coding-Attributes ::= SET {
+}
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn
new file mode 100644
index 0000000000..aed48ac26b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn
@@ -0,0 +1,125 @@
+-- Module Character-Presentation-Attributes (T.416:03/1993)
+
+Character-Presentation-Attributes {2 8 1 6 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning;
+
+Character-Attributes ::= SET {
+ character-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ character-spacing [6] IMPLICIT INTEGER OPTIONAL,
+ line-spacing [7] IMPLICIT INTEGER OPTIONAL,
+ alignment [8] IMPLICIT Alignment OPTIONAL,
+ line-layout-table [9] IMPLICIT Layout-Table OPTIONAL,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition OPTIONAL,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator OPTIONAL,
+ character-fonts [12] IMPLICIT Character-Fonts OPTIONAL,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER OPTIONAL,
+ itemization [14] IMPLICIT Itemization OPTIONAL,
+ widow-size [15] IMPLICIT INTEGER OPTIONAL,
+ orphan-size [16] IMPLICIT INTEGER OPTIONAL,
+ graphic-character-sets [17] IMPLICIT OCTET STRING OPTIONAL,
+ indentation [19] IMPLICIT INTEGER OPTIONAL,
+ kerning-offset [20] IMPLICIT Kerning-Offset OPTIONAL,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing OPTIONAL,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning OPTIONAL,
+ first-line-offset [23] IMPLICIT INTEGER OPTIONAL,
+ code-extension-announcers [24] IMPLICIT OCTET STRING OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [1] IMPLICIT INTEGER
+}
+
+Alignment ::= INTEGER {
+ start-aligned(0), end-aligned(1), centred(2), justified(3)}
+
+Layout-Table ::= SET OF Tabulation-Stop
+
+Tabulation-Stop ::= SET {
+ tabulation-reference [0] IMPLICIT NumericString,
+ tabulation-position [1] IMPLICIT INTEGER,
+ alignment
+ [2] IMPLICIT INTEGER {start-aligned(0), end-aligned(1), centred(2),
+ aligned-around(3)},
+ alignment-character-string [3] IMPLICIT OCTET STRING OPTIONAL
+}
+
+-- string of graphic characters
+-- from the set of graphic elements
+-- specified by the presentation
+-- attributes "graphic character
+-- sets" and "graphic character
+-- subrepertoire"
+Graphic-Rendition ::= SET OF Graphic-Rendition-Aspect
+
+Character-Fonts ::= SET {
+ primary-font [0] IMPLICIT Font-Type OPTIONAL,
+ first-alternative-font [1] IMPLICIT Font-Type OPTIONAL,
+ second-alternative-font [2] IMPLICIT Font-Type OPTIONAL,
+ third-alternative-font [3] IMPLICIT Font-Type OPTIONAL,
+ fourth-alternative-font [4] IMPLICIT Font-Type OPTIONAL,
+ fifth-alternative-font [5] IMPLICIT Font-Type OPTIONAL,
+ sixth-alternative-font [6] IMPLICIT Font-Type OPTIONAL,
+ seventh-alternative-font [7] IMPLICIT Font-Type OPTIONAL,
+ eighth-alternative-font [8] IMPLICIT Font-Type OPTIONAL,
+ ninth-alternative-font [9] IMPLICIT Font-Type OPTIONAL
+}
+
+Font-Type ::= SET {
+ font-size [0] IMPLICIT INTEGER,
+ font-identifier [1] IMPLICIT INTEGER
+}
+
+Graphic-Rendition-Aspect ::= INTEGER {
+ cancel(0), increased-intensity(1), decreased-intensity(2), italicized(3),
+ underlined(4), slowly-blinking(5), rapidly-blinking(6), negative-image(7),
+ crossed-out(9), primary-font(10), first-alternative-font(11),
+ second-alternative-font(12), third-alternative-font(13),
+ fourth-alternative-font(14), fifth-alternative-font(15),
+ sixth-alternative-font(16), seventh-alternative-font(17),
+ eighth-alternative-font(18), ninth-alternative-font(19),
+ doubly-underlined(21), normal-intensity(22), not-italicized(23),
+ not-underlined(24), steady(25), variable-spacing(26), positive-image(27),
+ not-crossed-out(29), black-foreground(30), red-foreground(31),
+ green-foreground(32), yellow-foreground(33), blue-foreground(34),
+ magenta-foreground(35), cyan-foreground(36), white-foreground(37),
+ select-char-foreground-colour(38), black-background(40), red-background(41),
+ green-background(42), yellow-background(43), blue-background(44),
+ magenta-background(45), cyan-background(46), white-background(47),
+ select-char-background-colour(48), not-variable-spacing(50)}
+
+Formatting-Indicator ::= INTEGER {no(0), yes(1)}
+
+Itemization ::= SET {
+ identifier-alignment
+ [0] IMPLICIT INTEGER {no-itemization(0), start-aligned(1), end-aligned(2)},
+ identifier-start-offset [1] IMPLICIT INTEGER OPTIONAL,
+ identifier-end-offset [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Kerning-Offset ::= SET {
+ start-offset [0] IMPLICIT INTEGER,
+ end-offset [1] IMPLICIT INTEGER
+}
+
+Proportional-Line-Spacing ::= INTEGER {no(0), yes(1)}
+
+Pairwise-Kerning ::= INTEGER {no(0), yes(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn
new file mode 100644
index 0000000000..7ba5bf194a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn
@@ -0,0 +1,54 @@
+-- Module Character-Profile-Attributes (T.416:03/1993)
+
+Character-Profile-Attributes {2 8 1 6 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Presentation-Feature, Character-Coding-Attribute,
+ Character-Content-Defaults;
+
+IMPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning
+ FROM Character-Presentation-Attributes;
+
+-- see 11.2
+Character-Presentation-Feature ::= CHOICE {
+ character-path [0] IMPLICIT One-Of-Four-Angles,
+ line-progression [1] IMPLICIT One-Of-Two-Angles,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles,
+ initial-offset [3] IMPLICIT Measure-Pair,
+ character-spacing [6] IMPLICIT INTEGER,
+ line-spacing [7] IMPLICIT INTEGER,
+ alignment [8] IMPLICIT Alignment,
+ line-layout-table [9] IMPLICIT Layout-Table,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator,
+ character-fonts [12] IMPLICIT Character-Fonts,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER,
+ itemization [14] IMPLICIT Itemization,
+ widow-size [15] IMPLICIT INTEGER,
+ orphan-size [16] IMPLICIT INTEGER,
+ graphic-character-sets [17] IMPLICIT OCTET STRING,
+ indentation [19] IMPLICIT INTEGER,
+ kerning-offset [20] IMPLICIT Kerning-Offset,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning,
+ first-line-offset [23] IMPLICIT INTEGER,
+ code-extension-announcers [24] IMPLICIT OCTET STRING
+}
+
+Character-Coding-Attribute ::= NULL
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+Character-Content-Defaults ::=
+ Character-Attributes
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn
new file mode 100644
index 0000000000..24c7fafc38
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn
@@ -0,0 +1,192 @@
+-- Module Colour-Attributes (T.415:03/1993)
+
+Colour-Attributes {2 8 1 5 14} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Colour-Expression, Colour-Table, Colour-Spaces-List, Colour-Characteristics;
+
+IMPORTS Character-Data
+ FROM Document-Profile-Descriptor; -- see 7.7
+
+Real-Or-Int ::= CHOICE {a REAL,
+ b INTEGER
+}
+
+Colour-Expression ::= SEQUENCE {
+ colour-access-mode [0] IMPLICIT INTEGER {direct(0), indexed(1)},
+ a
+ [1] CHOICE {direct-colour [0] IMPLICIT Direct-Colour,
+ indexed-colour [1] IMPLICIT Indexed-Colour}
+}
+
+Direct-Colour ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER OPTIONAL,
+ colour-specification [1] Colour-Specification OPTIONAL,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+}
+
+Colour-Specification ::= CHOICE {
+ cmyk-colour [0] IMPLICIT CMYK-Colour,
+ rgb-colour [1] IMPLICIT RGB-Colour,
+ cie-colour [2] IMPLICIT CIE-Colour
+}
+
+CMYK-Colour ::= SET {
+ c-value [0] Real-Or-Int,
+ m-value [1] Real-Or-Int,
+ y-value [2] Real-Or-Int,
+ k-value [3] Real-Or-Int OPTIONAL
+}
+
+RGB-Colour ::= SET {
+ r-value [0] Real-Or-Int,
+ g-value [1] Real-Or-Int,
+ b-value [2] Real-Or-Int
+}
+
+CIE-Colour ::= SET {
+ x-value [0] Real-Or-Int,
+ y-value [1] Real-Or-Int,
+ z-value [2] Real-Or-Int
+}
+
+Colour-Tolerance ::= CHOICE {
+ unspecified-tolerance [0] IMPLICIT NULL,
+ specified-tolerance [1] IMPLICIT Specified-Tolerance
+}
+
+Specified-Tolerance ::= SET {
+ tolerance-value [0] Real-Or-Int,
+ tolerance-space [1] IMPLICIT INTEGER {cieluv(3), cielab(4)}
+}
+
+Indexed-Colour ::= SET {index [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Table ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-table-entries
+ [1] IMPLICIT SET OF
+ SET {index [0] IMPLICIT INTEGER,
+ colour-coordinates [1] Colour-Specification,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+ }
+}
+
+Colour-Characteristics ::= SET {
+ colour-spaces-present
+ [0] IMPLICIT SEQUENCE OF
+ SET {colour-space-type [0] IMPLICIT Colour-Space-Type,
+ colour-calibration-type
+ [1] IMPLICIT Colour-Space-Calibration-Type},
+ colour-modes-present [1] IMPLICIT Colour-Modes-Present,
+ minimum-colour-tolerance [2] Colour-Tolerance OPTIONAL,
+ maximum-colour-table-length [3] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of colour table entries"
+ maximum-rgb-lut-length [4] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of look-up table entries"
+ maximum-cmy-k-grid-size [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Space-Type ::= INTEGER {rgb(0), cmyk(1), cmy(2), cieluv(3), cielab(4)}
+
+Colour-Space-Calibration-Type ::= INTEGER {
+ no-calibration(0), matrices(1), lookup-tables(2),
+ matrices-and-lookup-tables(3)}
+
+Colour-Modes-Present ::= INTEGER {direct(0), indexed(1), both(2)}
+
+Colour-Spaces-List ::= SET OF Colour-Space
+
+Colour-Space ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-space-type [1] IMPLICIT Colour-Space-Type,
+ colour-space-name [2] IMPLICIT Character-Data OPTIONAL,
+ colour-data-scaling [3] Colour-Data-Scaling OPTIONAL,
+ calibration-data [4] Calibration-Data OPTIONAL
+}
+
+Colour-Data-Scaling ::= SET {
+ first-component [0] IMPLICIT Scale-And-Offset,
+ second-component [1] IMPLICIT Scale-And-Offset,
+ third-component [2] IMPLICIT Scale-And-Offset,
+ fourth-component [3] IMPLICIT Scale-And-Offset OPTIONAL
+}
+
+Scale-And-Offset ::= SET {
+ colour-scale [0] Real-Or-Int,
+ colour-offset [1] Real-Or-Int
+}
+
+Calibration-Data ::= CHOICE {
+ rgb [0] IMPLICIT RGB-Calibration,
+ cmyk [1] IMPLICIT CMY-K-Calibration,
+ cmy [2] IMPLICIT CMY-K-Calibration,
+ cieluv [3] IMPLICIT CIE-Calibration,
+ cielab [4] IMPLICIT CIE-Calibration
+}
+
+CIE-Calibration ::= SET {reference-white [0] IMPLICIT CIE-Ref
+}
+
+RGB-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ matrix1 [1] IMPLICIT Three-by-Three-Matrix OPTIONAL,
+ lookup-table [3] IMPLICIT Colour-Lookup-Table OPTIONAL,
+ matrix2 [2] IMPLICIT Three-by-Three-Matrix OPTIONAL
+}
+
+Three-by-Three-Matrix ::= SEQUENCE {
+ row-1 Three-Nums,
+ row-2 Three-Nums,
+ row-3 Three-Nums
+}
+
+Three-Nums ::= SEQUENCE {
+ column-1 Real-Or-Int,
+ column-2 Real-Or-Int,
+ column-3 Real-Or-Int
+}
+
+Colour-Lookup-Table ::= SET {
+ number-of-entries [0] IMPLICIT INTEGER,
+ m [1] IMPLICIT INTEGER,
+ n [2] IMPLICIT INTEGER,
+ colour-table [3] IMPLICIT SET OF Colour-Table-Entry
+}
+
+Colour-Table-Entry ::= SET {
+ index [3] IMPLICIT INTEGER,
+ r [0] Real-Or-Int,
+ g [1] Real-Or-Int,
+ b [2] Real-Or-Int
+}
+
+CMY-K-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ comment [1] IMPLICIT Character-Data OPTIONAL,
+ cmyk-lut [2] IMPLICIT Grid-Specification
+}
+
+Grid-Specification ::=
+ SET OF
+ SET {grid-location [0] IMPLICIT CMYK-Colour,
+ grid-value [1] IMPLICIT Grid-Value}
+
+Grid-Value ::= SET {
+ x-value [0] IMPLICIT REAL,
+ y-value [1] IMPLICIT REAL,
+ z-value [2] IMPLICIT REAL
+}
+
+CIE-Ref ::= SET {
+ xn-value [0] Real-Or-Int,
+ yn-value [1] Real-Or-Int,
+ zn-value [2] Real-Or-Int
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn b/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn
new file mode 100644
index 0000000000..cd3330dc56
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn
@@ -0,0 +1,134 @@
+-- Module DOR-definition (ISO|IEC 10031-2:1991)
+DOR-definition {joint-iso-itu-t dor(4) reference-definition(0)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ AE-Identifier, Altered-value, DOR, dor-abstract-syntax, dor-syntax-asn1,
+ dorx, Extend-QoS, Local-reference, Locational-identifier, Produce-QoS,
+ QoS-level, Quality-of-Service, Requested-QoS-level,
+ Single-use-of-reference, Token;
+
+IMPORTS
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ PresentationAddress
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3};
+
+-- Defined Object Identifiers
+dorx OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t dor(11)}
+
+-- Object identifier for abstract syntax of DOR
+dor-abstract-syntax OBJECT IDENTIFIER ::=
+ {dorx reference-abstract-syntax(1)}
+
+-- Object identifier for abstract syntax of DOR with basic ASN.1 encodings in
+-- EXTERNAL
+dor-syntax-asn1 OBJECT IDENTIFIER ::=
+ {dorx reference-syntax(2) asn1(0)}
+
+-- Definition of DOR type
+DOR ::= SEQUENCE {
+ ae-identifier [0] AE-Identifier OPTIONAL,
+ -- mandatory in case of produce-operations and consume-operations
+ local-reference [1] Local-reference,
+ data-object-type OBJECT IDENTIFIER,
+ -- identifying the abstract syntax and the transfer syntax of the
+ -- referenced data value
+ quality-of-service [2] Quality-of-Service DEFAULT {},
+ token [3] Token OPTIONAL
+}
+
+AE-Identifier ::= SEQUENCE { -- at least one component shall be present
+ locational-identifier [0] Locational-identifier OPTIONAL,
+ direct-logical-identifier [1] DistinguishedName OPTIONAL,
+ indirect-logical-identifier [2] DistinguishedName OPTIONAL
+}
+
+Locational-identifier ::= SEQUENCE {
+ presentation-address [0] PresentationAddress,
+ ae-title [1] AE-title OPTIONAL,
+ -- as defined in ISO 8650:1988/Cor.1:1990
+ application-contexts SET OF OBJECT IDENTIFIER
+}
+
+Local-reference ::= SEQUENCE {
+ application [0] OCTET STRING OPTIONAL,
+ specific-reference [1] OCTET STRING
+}
+
+Quality-of-Service ::= SEQUENCE {
+ qoS-level [0] QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT GeneralizedTime,
+ -- specifying the produce time
+ level-3
+ [3] IMPLICIT SEQUENCE {produce-time GeneralizedTime,
+ fidelity-time GeneralizedTime}
+}
+
+Single-use-of-reference ::= BOOLEAN
+
+Token ::= CHOICE {
+ simpletoken OCTET STRING,
+ -- used to validate an access which use this DOR
+ externaltoken EXTERNAL -- for future proxy mechanism
+}
+
+-- Data types for produce-operations
+Produce-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+Requested-QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT NULL,
+ level-3 [3] IMPLICIT GeneralizedTime
+ -- specifying the requested fidelity-time
+}
+
+-- Data types for extending a specific QoS
+Extend-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level OPTIONAL,
+ -- if omitted, no change required
+ usage-of-reference Single-use-of-reference OPTIONAL
+ -- if omitted, no change required
+}
+
+-- Data types for requesting / indicating value alteration in produce-operation
+-- or access-operation
+Altered-value ::= ENUMERATED {
+ value-not-altered(1), value-altered(2), undefined(3)}
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END -- of DOR-definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn
new file mode 100644
index 0000000000..df5e8489ea
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn
@@ -0,0 +1,186 @@
+-- Module DSAOperationalAttributeTypes (X.501:08/1997)
+DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-doa, id-kmr, informationFramework, distributedOperations,
+ opBindingManagement, selectedAttributeTypes
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, MATCHING-RULE, Name
+ FROM InformationFramework informationFramework
+ OperationalBindingID
+ FROM OperationalBindingManagement opBindingManagement
+ AccessPoint, MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ bitStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- data types
+DSEType ::= BIT STRING {
+ root(0), -- root DSE
+ glue(1), -- represents knowledge of a name only
+ cp(2), -- context prefix
+ entry(3), -- object entry
+ alias(4), -- alias entry
+ subr(5), -- subordinate reference
+ nssr(6), -- non-specific subordinate reference
+ supr(7), -- superior reference
+ xr(8), -- cross reference
+ admPoint(9), -- administrative point
+ subentry(10), -- subentry
+ shadow(11), -- shadow copy
+ immSupr(13), -- immediate superior reference
+ rhob(14), -- rhob information
+ sa(15), -- subordinate reference to alias entry
+ dsSubentry(16), -- DSA Specific subentry
+ familyMember(17)} -- family member
+
+SupplierOrConsumer ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier or consumer
+ agreementID [4] OperationalBindingID
+}
+
+SupplierInformation ::= SET {
+ COMPONENTS OF SupplierOrConsumer, -- supplier
+ supplier-is-master [5] BOOLEAN DEFAULT TRUE,
+ non-supplying-master [6] AccessPoint OPTIONAL
+}
+
+ConsumerInformation ::= SupplierOrConsumer -- consumer
+
+SupplierAndConsumers ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier
+ consumers [4] SET OF AccessPoint
+}
+
+-- attribute types
+dseType ATTRIBUTE ::= {
+ WITH SYNTAX DSEType
+ EQUALITY MATCHING RULE bitStringMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-dseType
+}
+
+myAccessPoint ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-myAccessPoint
+}
+
+superiorKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-superiorKnowledge
+}
+
+specificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-specificKnowledge
+}
+
+nonSpecificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-nonSpecificKnowledge
+}
+
+supplierKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX SupplierInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-supplierKnowledge
+}
+
+consumerKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX ConsumerInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-consumerKnowledge
+}
+
+secondaryShadows ATTRIBUTE ::= {
+ WITH SYNTAX SupplierAndConsumers
+ EQUALITY MATCHING RULE supplierAndConsumersMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-secondaryShadows
+}
+
+-- matching rules
+accessPointMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-accessPointMatch
+}
+
+masterAndShadowAccessPointsMatch MATCHING-RULE ::= {
+ SYNTAX SET OF Name
+ ID id-kmr-masterShadowMatch
+}
+
+supplierOrConsumerInformationMatch MATCHING-RULE ::= {
+ SYNTAX
+ SET {ae-title [0] Name,
+ agreement-identifier [2] INTEGER}
+ ID id-kmr-supplierConsumerMatch
+}
+
+supplierAndConsumersMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-supplierConsumersMatch
+}
+
+-- object identifier assignments
+-- dsa operational attributes
+id-doa-dseType OBJECT IDENTIFIER ::=
+ {id-doa 0}
+
+id-doa-myAccessPoint OBJECT IDENTIFIER ::= {id-doa 1}
+
+id-doa-superiorKnowledge OBJECT IDENTIFIER ::= {id-doa 2}
+
+id-doa-specificKnowledge OBJECT IDENTIFIER ::= {id-doa 3}
+
+id-doa-nonSpecificKnowledge OBJECT IDENTIFIER ::= {id-doa 4}
+
+id-doa-supplierKnowledge OBJECT IDENTIFIER ::= {id-doa 5}
+
+id-doa-consumerKnowledge OBJECT IDENTIFIER ::= {id-doa 6}
+
+id-doa-secondaryShadows OBJECT IDENTIFIER ::= {id-doa 7}
+
+-- knowledge matching rules
+id-kmr-accessPointMatch OBJECT IDENTIFIER ::=
+ {id-kmr 0}
+
+id-kmr-masterShadowMatch OBJECT IDENTIFIER ::= {id-kmr 1}
+
+id-kmr-supplierConsumerMatch OBJECT IDENTIFIER ::= {id-kmr 2}
+
+id-kmr-supplierConsumersMatch OBJECT IDENTIFIER ::= {id-kmr 3}
+
+END -- DSAOperationalAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn b/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn
new file mode 100644
index 0000000000..ef1187ba8c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn
@@ -0,0 +1,143 @@
+-- Module Default-Value-Lists (T.415:03/1993)
+
+Default-Value-Lists {2 8 1 5 11} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Default-Value-Lists-Logical, Default-Value-Lists-Layout;
+
+IMPORTS
+ Style-Identifier, Category-Name
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, One-Of-Four-Angles, Medium-Type, Dimension-Pair, Transparency,
+ Colour, Border, Content-Background-Colour, Content-Foreground-Colour,
+ Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes; -- see 7.14
+
+Default-Value-Lists-Layout ::= SET {
+ page-set-attributes [1] IMPLICIT Page-Set-Attributes OPTIONAL,
+ page-attributes [2] IMPLICIT Page-Attributes OPTIONAL,
+ frame-attributes [3] IMPLICIT Frame-Attributes OPTIONAL,
+ block-attributes [4] IMPLICIT Block-Attributes OPTIONAL
+}
+
+Default-Value-Lists-Logical ::= SET {
+ composite-logical-attributes
+ [5] IMPLICIT Composite-Logical-Attributes OPTIONAL,
+ basic-logical-attributes [6] IMPLICIT Basic-Logical-Attributes OPTIONAL
+}
+
+Page-Set-Attributes ::= SET {
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL
+}
+
+Page-Attributes ::= SET {
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ page-position page-position < Attribute OPTIONAL,
+ medium-type medium-type < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Frame-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ layout-path layout-path < Attribute OPTIONAL,
+ permitted-categories permitted-categories < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Block-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colou colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Composite-Logical-Attributes ::= SET {
+ protection protection < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Basic-Logical-Attributes ::= SET {
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ protection protection < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Attribute ::= CHOICE {
+ position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Dimension-Pair,
+ transparency [2] IMPLICIT Transparency,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes,
+ layout-path [4] IMPLICIT One-Of-Four-Angles,
+ page-position [5] IMPLICIT Measure-Pair,
+ medium-type [6] IMPLICIT Medium-Type,
+ permitted-categories [7] IMPLICIT SET OF Category-Name,
+ layout-stream-categories [19] IMPLICIT SET OF Category-Name,
+ layout-stream-sub-categories [20] IMPLICIT SET OF Category-Name,
+ protection [8] IMPLICIT Protection,
+ presentation-style [9] IMPLICIT Style-Identifier,
+ layout-style [10] IMPLICIT Style-Identifier,
+ colour [11] IMPLICIT Colour,
+ colour-of-layout-object [14] Colour-Expression,
+ object-colour-table [15] IMPLICIT Colour-Table,
+ content-background-colour [16] Content-Background-Colour,
+ content-foreground-colour [17] Content-Foreground-Colour,
+ content-colour-table [18] IMPLICIT Colour-Table,
+ border [12] IMPLICIT Border,
+ sealed [13] IMPLICIT Sealed
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn
new file mode 100644
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn
new file mode 100644
index 0000000000..10d6979f6d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn
@@ -0,0 +1,162 @@
+-- Module DirectoryAccessProtocol (X.519 TC2:08/1997)
+
+DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryAccessAC, id-rosObject-dua, id-rosObject-directory,
+ id-rosObject-dapDSA, id-contract-dap, id-package-dapConnection,
+ id-package-read, id-package-search, id-package-modify,
+ id-as-directoryAccessAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- application contexts
+directoryAccessAC APPLICATION-CONTEXT ::= {
+ CONTRACT dapContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryAccessAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryAccessAC
+}
+
+-- ROS objects
+dua ROS-OBJECT-CLASS ::= {INITIATES {dapContract}
+ ID id-rosObject-dua
+}
+
+directory ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-directory
+}
+
+dap-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-dapDSA
+}
+
+-- contracts
+dapContract CONTRACT ::= {
+ CONNECTION dapConnectionPackage
+ INITIATOR CONSUMER OF {readPackage | searchPackage | modifyPackage}
+ ID id-contract-dap
+}
+
+-- connection package
+dapConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND directoryBind
+ UNBIND directoryUnbind
+ ID id-package-dapConnection
+}
+
+-- read package
+readPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {read | compare | abandon}
+ ID id-package-read
+}
+
+-- search package
+searchPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {list | search}
+ ID id-package-search
+}
+
+-- modify Package
+modifyPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {addEntry | removeEntry | modifyEntry | modifyDN}
+ ID id-package-modify
+}
+
+-- abstract syntaxes
+directoryAccessAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DAP-PDUs
+ IDENTIFIED BY id-as-directoryAccessAS
+}
+
+DAP-PDUs ::= CHOICE {
+ basicRos ROS{{DAP-InvokeIDSet}, {DAP-Invokable}, {DAP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DAP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DAP-Invokable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+DAP-Returnable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+-- remote operation codes
+id-opcode-read Code ::= local:1
+
+id-opcode-compare Code ::= local:2
+
+id-opcode-abandon Code ::= local:3
+
+id-opcode-list Code ::= local:4
+
+id-opcode-search Code ::= local:5
+
+id-opcode-addEntry Code ::= local:6
+
+id-opcode-removeEntry Code ::= local:7
+
+id-opcode-modifyEntry Code ::= local:8
+
+id-opcode-modifyDN Code ::= local:9
+
+-- remote error codes
+id-errcode-attributeError Code ::= local:1
+
+id-errcode-nameError Code ::= local:2
+
+id-errcode-serviceError Code ::= local:3
+
+id-errcode-referral Code ::= local:4
+
+id-errcode-abandoned Code ::= local:5
+
+id-errcode-securityError Code ::= local:6
+
+id-errcode-abandonFailed Code ::= local:7
+
+id-errcode-updateError Code ::= local:8
+
+-- remote error code for DSP
+id-errcode-dsaReferral Code ::= local:9
+
+END -- DirectoryAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
new file mode 100644
index 0000000000..91c0a865f7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
@@ -0,0 +1,246 @@
+-- Module DirectoryInformationShadowProtocol (X.519 TC2:08/1997)
+
+DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1) disp(16) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData, association-by-RTSE, transfer-by-RTSE
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-shadowSupplierInitiatedAC, id-ac-shadowSupplierInitiatedAsynchronousAC,
+ id-ac-shadowConsumerInitiatedAC,
+ id-ac-shadowConsumerInitiatedAsynchronousAC,
+ id-ac-reliableShadowSupplierInitiatedAC,
+ id-ac-reliableShadowConsumerInitiatedAC,
+ id-rosObject-initiatingConsumerDSA, id-rosObject-respondingSupplierDSA,
+ id-rosObject-initiatingSupplierDSA, id-rosObject-respondingConsumerDSA,
+ id-contract-shadowConsumer, id-contract-shadowSupplier,
+ id-package-dispConnection, id-package-shadowConsumer,
+ id-package-shadowSupplier, id-as-directoryShadowAS,
+ id-as-directoryReliableShadowAS, id-as-reliableShadowBindingAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSAShadowBind, dSAShadowUnbind, requestShadowUpdate, updateShadow,
+ coordinateShadowUpdate
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- application contexts
+shadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAC
+}
+
+shadowSupplierInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAsynchronousAC
+}
+
+shadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAC
+}
+
+shadowConsumerInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAsynchronousAC
+}
+
+reliableShadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowSupplierInitiatedAC
+}
+
+reliableShadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowConsumerInitiatedAC
+}
+
+-- ROS objects
+initiating-consumer-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowConsumerContract}
+ ID id-rosObject-initiatingConsumerDSA
+}
+
+responding-supplier-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowConsumerContract}
+ ID id-rosObject-respondingSupplierDSA
+}
+
+initiating-supplier-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowSupplierContract}
+ ID id-rosObject-initiatingSupplierDSA
+}
+
+responding-consumer-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowSupplierContract}
+ ID id-rosObject-respondingConsumerDSA
+}
+
+-- contracts
+shadowConsumerContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ INITIATOR CONSUMER OF {shadowConsumerPackage}
+ ID id-contract-shadowConsumer
+}
+
+shadowSupplierContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ RESPONDER CONSUMER OF {shadowSupplierPackage}
+ ID id-contract-shadowSupplier
+}
+
+-- connection package
+dispConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAShadowBind
+ UNBIND dSAShadowUnbind
+ ID id-package-dispConnection
+}
+
+-- packages
+shadowConsumerPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {requestShadowUpdate}
+ SUPPLIER INVOKES {updateShadow}
+ ID id-package-shadowConsumer
+}
+
+shadowSupplierPackage OPERATION-PACKAGE ::= {
+ SUPPLIER INVOKES {coordinateShadowUpdate | updateShadow}
+ ID id-package-shadowSupplier
+}
+
+-- abstract syntaxes
+directoryShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DISP-PDUs
+ IDENTIFIED BY id-as-directoryShadowAS
+}
+
+directoryReliableShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ Reliable-DISP-PDUs
+ IDENTIFIED BY id-as-directoryReliableShadowAS
+}
+
+reliableShadowBindingAbstractSyntax ABSTRACT-SYNTAX ::= {
+ ReliableShadowBinding-PDUs
+ IDENTIFIED BY id-as-reliableShadowBindingAS
+}
+
+DISP-PDUs ::= CHOICE {
+ basicROS ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}},
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+Reliable-DISP-PDUs ::=
+ ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}}
+
+ReliableShadowBinding-PDUs ::= CHOICE {
+ rTS [0] RTSE-apdus,
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+DISP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DISP-Invokable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+DISP-Returnable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+-- remote operation codes
+id-opcode-requestShadowUpdate Code ::= local:1
+
+id-opcode-updateShadow Code ::= local:2
+
+id-opcode-coordinateShadowUpdate Code ::= local:3
+
+-- remote error codes
+id-errcode-shadowError Code ::= local:1
+
+END -- DirectoryInformationShadowProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
new file mode 100644
index 0000000000..e3e1f95621
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
@@ -0,0 +1,117 @@
+-- Module DirectoryOperationalBindingManagementProtocol (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingManagementProtocol {joint-iso-itu-t ds(5)
+ module(1) dop(17) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ protocolObjectIdentifiers, directoryAbstractService, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ directoryBind, directoryUnbind
+ FROM DirectoryAbstractService directoryAbstractService
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryOperationalBindingManagementAC, id-rosObject-dopDSA,
+ id-contract-dop, id-package-dopConnection,
+ id-package-operationalBindingManagement,
+ id-as-directoryOperationalBindingManagementAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ establishOperationalBinding, modifyOperationalBinding,
+ terminateOperationalBinding, dSAOperationalBindingManagementBind,
+ dSAOperationalBindingManagementUnbind
+ FROM OperationalBindingManagement opBindingManagement;
+
+-- application contexts
+directoryOperationalBindingManagementAC APPLICATION-CONTEXT ::= {
+ CONTRACT dopContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax |
+ directoryOperationalBindingManagementAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryOperationalBindingManagementAC
+}
+
+-- ROS objects
+dop-dsa ROS-OBJECT-CLASS ::= {BOTH {dopContract}
+ ID id-rosObject-dopDSA
+}
+
+-- contracts
+dopContract CONTRACT ::= {
+ CONNECTION dopConnectionPackage
+ OPERATIONS OF {dopPackage}
+ ID id-contract-dop
+}
+
+-- connection package
+dopConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAOperationalBindingManagementBind
+ UNBIND dSAOperationalBindingManagementUnbind
+ ID id-package-dopConnection
+}
+
+-- packages
+dopPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+ ID id-package-operationalBindingManagement
+}
+
+-- abstract syntaxes
+directoryOperationalBindingManagementAbstractSyntax ABSTRACT-SYNTAX ::=
+{DOP-PDUs
+ IDENTIFIED BY id-as-directoryOperationalBindingManagementAS
+}
+
+DOP-PDUs ::= CHOICE {
+ basicRos ROS{{DOP-InvokeIDSet}, {DOP-Invokable}, {DOP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DOP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DOP-Invokable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+DOP-Returnable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+-- remote operation codes
+id-op-establishOperationalBinding Code ::= local:100
+
+id-op-modifyOperationalBinding Code ::= local:102
+
+id-op-terminateOperationalBinding Code ::= local:101
+
+-- remote error codes
+id-err-operationalBindingError Code ::= local:100
+
+END -- DirectoryOperationalBindingManagementProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
new file mode 100644
index 0000000000..9df5d2783a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
@@ -0,0 +1,26 @@
+-- Module DirectoryOperationalBindingTypes (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-ob
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+id-op-binding-shadow OBJECT IDENTIFIER ::= {id-ob 1}
+
+id-op-binding-hierarchical OBJECT IDENTIFIER ::= {id-ob 2}
+
+id-op-binding-non-specific-hierarchical OBJECT IDENTIFIER ::= {id-ob 3}
+
+END -- DirectoryOperationalBindingTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn
new file mode 100644
index 0000000000..37c6cac261
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn
@@ -0,0 +1,70 @@
+-- Module DirectoryProtectionMappings (X.830:04/1995)
+
+DirectoryProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ dirProtectionMappings(4)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings generate bit-compatible encodings
+-- to the parameterized types in the Directory Authentication
+-- Framework
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, dirSignedTransformation,
+ dirSignatureTransformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **************************************
+-- Directory encrypted Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, encrypted}
+-- to replace the notation
+-- ENCRYPTED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: confidentiality
+encrypted PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+}
+
+-- ***********************************
+-- Directory signed Protection Mapping
+-- ***********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signed}
+-- to replace the notation
+-- SIGNED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignedTransformation}
+}
+
+-- **************************************
+-- Directory signature Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signature}
+-- to provide a functionally-equivalent replacement of the notation
+-- SIGNATURE BaseType
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignatureTransformation}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn
new file mode 100644
index 0000000000..acbb692b6f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn
@@ -0,0 +1,324 @@
+-- Module DirectoryShadowAbstractService (X.525:08/1997)
+DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryShadowAbstractService(15) 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the directory service.
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, directoryOperationalBindingTypes,
+ informationFramework, disp, distributedOperations,
+ dsaOperationalAttributeTypes, enhancedSecurity, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, AttributeType, CONTEXT, DistinguishedName,
+ RelativeDistinguishedName, SubtreeSpecification
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ OPERATIONAL-BINDING, OperationalBindingID
+ FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3}
+ DSEType, SupplierAndConsumers
+ FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3}
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 1}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ CommonResultsSeq, ContextSelection, directoryBind, directoryUnbind,
+ EntryModification, SecurityParameters
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 3}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-op-binding-shadow
+ FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3}
+ id-errcode-shadowError, id-opcode-coordinateShadowUpdate,
+ id-opcode-requestShadowUpdate, id-opcode-updateShadow,
+ reliableShadowSupplierInitiatedAC, reliableShadowConsumerInitiatedAC,
+ shadowConsumerInitiatedAC, shadowSupplierInitiatedAC
+ FROM DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1)
+ disp(16) 3}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ ERROR, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- bind and unbind operations
+dSAShadowBind OPERATION ::= directoryBind
+
+dSAShadowUnbind OPERATION ::= directoryUnbind
+
+-- shadow operational binding
+shadowOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT ShadowingAgreementInfo
+ APPLICATION CONTEXTS
+ {{shadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {shadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}} |
+ {reliableShadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {reliableShadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}}}
+ ASYMMETRIC ROLE-A
+ { -- shadow supplier roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- shadow consumer roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER ModificationParameter
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-shadow
+}
+
+-- types
+ModificationParameter ::= SEQUENCE {
+ secondaryShadows SET OF SupplierAndConsumers
+}
+
+AgreementID ::= OperationalBindingID
+
+ShadowingAgreementInfo ::= SEQUENCE {
+ shadowSubject UnitOfReplication,
+ updateMode UpdateMode DEFAULT supplierInitiated:onChange:TRUE,
+ master AccessPoint OPTIONAL,
+ secondaryShadows [2] BOOLEAN DEFAULT FALSE
+}
+
+UnitOfReplication ::= SEQUENCE {
+ area AreaSpecification,
+ attributes AttributeSelection,
+ knowledge Knowledge OPTIONAL,
+ subordinates BOOLEAN DEFAULT FALSE,
+ contextSelection ContextSelection OPTIONAL,
+ supplyContexts
+ [0] CHOICE {allContexts NULL,
+ selectedContexts SET SIZE (1..MAX) OF CONTEXT.&id} OPTIONAL
+}
+
+AreaSpecification ::= SEQUENCE {
+ contextPrefix DistinguishedName,
+ replicationArea SubtreeSpecification
+}
+
+Knowledge ::= SEQUENCE {
+ knowledgeType ENUMERATED {master(0), shadow(1), both(2)},
+ extendedKnowledge BOOLEAN DEFAULT FALSE
+}
+
+AttributeSelection ::= SET OF ClassAttributeSelection
+
+ClassAttributeSelection ::= SEQUENCE {
+ class OBJECT IDENTIFIER OPTIONAL,
+ classAttributes ClassAttributes DEFAULT allAttributes:NULL
+}
+
+ClassAttributes ::= CHOICE {
+ allAttributes NULL,
+ include [0] AttributeTypes,
+ exclude [1] AttributeTypes
+}
+
+AttributeTypes ::= SET OF AttributeType
+
+UpdateMode ::= CHOICE {
+ supplierInitiated [0] SupplierUpdateMode,
+ consumerInitiated [1] ConsumerUpdateMode
+}
+
+SupplierUpdateMode ::= CHOICE {
+ onChange BOOLEAN,
+ scheduled SchedulingParameters
+}
+
+ConsumerUpdateMode ::= SchedulingParameters
+
+SchedulingParameters ::= SEQUENCE {
+ periodic PeriodicStrategy OPTIONAL, -- must be present if othertimes is set to FALSE
+ othertimes BOOLEAN DEFAULT FALSE
+}
+
+PeriodicStrategy ::= SEQUENCE {
+ beginTime Time OPTIONAL,
+ windowSize INTEGER,
+ updateInterval INTEGER
+}
+
+Time ::= GeneralizedTime
+
+-- as per 34.2 b) and c) of CCITT Rec. X.208 and ISO/IEC 8824
+-- shadow operations, arguments, and results
+All-operations-consumer-initiated OPERATION ::=
+ {requestShadowUpdate | updateShadow}
+
+All-operations-supplier-initiated OPERATION ::=
+ {coordinateShadowUpdate | updateShadow}
+
+coordinateShadowUpdate OPERATION ::= {
+ ARGUMENT CoordinateShadowUpdateArgument
+ RESULT CoordinateShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-coordinateShadowUpdate
+}
+
+CoordinateShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ updateStrategy
+ CHOICE {standard
+ ENUMERATED {noChanges(0), incremental(1),
+ total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+CoordinateShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {greementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+requestShadowUpdate OPERATION ::= {
+ ARGUMENT RequestShadowUpdateArgument
+ RESULT RequestShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-requestShadowUpdate
+}
+
+RequestShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ requestedStrategy
+ CHOICE {standard ENUMERATED {incremental(1), total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+RequestShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+updateShadow OPERATION ::= {
+ ARGUMENT UpdateShadowArgument
+ RESULT UpdateShadowResult
+ ERRORS {shadowError}
+ CODE id-opcode-updateShadow
+}
+
+UpdateShadowArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ updateTime Time,
+ updateWindow UpdateWindow OPTIONAL,
+ updatedInfo RefreshInformation,
+ securityParameters SecurityParameters OPTIONAL}}
+
+UpdateShadowResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+UpdateWindow ::= SEQUENCE {start Time,
+ stop Time
+}
+
+RefreshInformation ::= CHOICE {
+ noRefresh NULL,
+ total [0] TotalRefresh,
+ incremental [1] IncrementalRefresh,
+ otherStrategy EXTERNAL
+}
+
+TotalRefresh ::= SEQUENCE {
+ sDSE SDSEContent OPTIONAL,
+ subtree SET SIZE (1..MAX) OF Subtree OPTIONAL
+}
+
+SDSEContent ::= SEQUENCE {
+ sDSEType SDSEType,
+ subComplete [0] BOOLEAN DEFAULT FALSE,
+ attComplete [1] BOOLEAN OPTIONAL,
+ attributes SET OF Attribute,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SDSEType ::= DSEType
+
+Subtree ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ COMPONENTS OF TotalRefresh
+}
+
+IncrementalRefresh ::= SEQUENCE OF IncrementalStepRefresh
+
+IncrementalStepRefresh ::= SEQUENCE {
+ sDSEChanges
+ CHOICE {add [0] SDSEContent,
+ remove NULL,
+ modify [1] ContentChange} OPTIONAL,
+ subordinateUpdates SEQUENCE SIZE (1..MAX) OF SubordinateChanges OPTIONAL
+}
+
+ContentChange ::= SEQUENCE {
+ rename
+ CHOICE {newRDN RelativeDistinguishedName,
+ newDN DistinguishedName} OPTIONAL,
+ attributeChanges
+ CHOICE {replace [0] SET SIZE (1..MAX) OF Attribute,
+ changes [1] SEQUENCE SIZE (1..MAX) OF EntryModification
+ } OPTIONAL,
+ sDSEType SDSEType,
+ subComplete [2] BOOLEAN DEFAULT FALSE,
+ attComplete [3] BOOLEAN OPTIONAL,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SubordinateChanges ::= SEQUENCE {
+ subordinate RelativeDistinguishedName,
+ changes IncrementalStepRefresh
+}
+
+-- errors and parameters
+shadowError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {problem ShadowProblem,
+ lastUpdate Time OPTIONAL,
+ updateWindow UpdateWindow OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+ CODE id-errcode-shadowError
+}
+
+ShadowProblem ::= INTEGER {
+ invalidAgreementID(1), inactiveAgreement(2), invalidInformationReceived(3),
+ unsupportedStrategy(4), missedPrevious(5), fullUpdateRequired(6),
+ unwillingToPerform(7), unsuitableTiming(8), updateAlreadyReceived(9),
+ invalidSequencing(10), insufficientResources(11)}
+
+END -- DirectoryShadowAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn
new file mode 100644
index 0000000000..cace79d109
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn
@@ -0,0 +1,118 @@
+-- Module DirectorySystemProtocol (X.519 TC2:08/1997)
+
+DirectorySystemProtocol {joint-iso-itu-t ds(5) module(1) dsp(12) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ distributedOperations, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directorySystemAC, id-rosObject-dspDSA, id-contract-dsp,
+ id-package-dspConnection, id-package-chainedRead, id-package-chainedSearch,
+ id-package-chainedModify, id-as-directorySystemAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSABind, dSAUnbind, chainedRead, chainedCompare, chainedAbandon, chainedList,
+ chainedSearch, chainedAddEntry, chainedRemoveEntry, chainedModifyEntry,
+ chainedModifyDN
+ FROM DistributedOperations distributedOperations;
+
+-- application contexts
+directorySystemAC APPLICATION-CONTEXT ::= {
+ CONTRACT dspContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directorySystemAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directorySystemAC
+}
+
+-- ROS objects
+dsp-dsa ROS-OBJECT-CLASS ::= {BOTH {dspContract}
+ ID id-rosObject-dspDSA
+}
+
+-- contracts
+dspContract CONTRACT ::= {
+ CONNECTION dspConnectionPackage
+ OPERATIONS OF
+ {chainedReadPackage | chainedSearchPackage | chainedModifyPackage}
+ ID id-contract-dsp
+}
+
+-- connection package
+dspConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSABind
+ UNBIND dSAUnbind
+ ID id-package-dspConnection
+}
+
+-- chained read package
+chainedReadPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedRead | chainedCompare | chainedAbandon}
+ ID id-package-chainedRead
+}
+
+-- chained search package
+chainedSearchPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedList | chainedSearch}
+ ID id-package-chainedSearch
+}
+
+-- chained modify package
+chainedModifyPackage OPERATION-PACKAGE ::= {
+ OPERATIONS
+ {chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+ ID id-package-chainedModify
+}
+
+-- abstract syntaxes
+directorySystemAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DSP-PDUs
+ IDENTIFIED BY id-as-directorySystemAS
+}
+
+DSP-PDUs ::= CHOICE {
+ basicRos ROS{{DSP-InvokeIDSet}, {DSP-Invokable}, {DSP-Returnable}},
+ bind Bind{dSABind},
+ unbind Unbind{dSAUnbind}
+}
+
+DSP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DSP-Invokable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+DSP-Returnable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+END -- DirectorySystemProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn b/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn
new file mode 100644
index 0000000000..72e791f10c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn
@@ -0,0 +1,181 @@
+-- Module DistributedOperations (X.518 TC2:08/1997)
+
+DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, directoryAbstractService, distributedOperations,
+ selectedAttributeTypes, basicAccessControl, dap, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ DistinguishedName, Name, RDNSequence, SearchRuleId, MRMapping
+ FROM InformationFramework informationFramework
+ PresentationAddress, ProtocolInformation, UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN, referral, SecurityParameters,
+ CommonResults
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-errcode-dsaReferral
+ FROM DirectoryAccessProtocol dap;
+
+-- parameterized type for deriving chained operations
+chained{OPERATION:operation} OPERATION ::= {
+ ARGUMENT OPTIONALLY-PROTECTED
+ {SET {chainedArgument ChainingArguments,
+ argument [0] operation.&ArgumentType}}
+ RESULT OPTIONALLY-PROTECTED
+ {SET {chainedResult ChainingResults,
+ result [0] operation.&ResultType}}
+ ERRORS
+ {operation.&Errors EXCEPT referral | dsaReferral}
+ CODE operation.&operationCode
+}
+
+-- bind and unbind operations
+dSABind OPERATION ::= directoryBind
+
+dSAUnbind OPERATION ::= directoryUnbind
+
+-- chained operations
+chainedRead OPERATION ::= chained{read}
+
+chainedCompare OPERATION ::= chained{compare}
+
+chainedAbandon OPERATION ::= abandon
+
+chainedList OPERATION ::= chained{list}
+
+chainedSearch OPERATION ::= chained{search}
+
+chainedAddEntry OPERATION ::= chained{addEntry}
+
+chainedRemoveEntry OPERATION ::= chained{removeEntry}
+
+chainedModifyEntry OPERATION ::= chained{modifyEntry}
+
+chainedModifyDN OPERATION ::= chained{modifyDN}
+
+-- errors and parameters
+dsaReferral ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {reference [0] ContinuationReference,
+ contextPrefix [1] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-dsaReferral
+}
+
+-- common arguments and results
+ChainingArguments ::= SET {
+ originator [0] DistinguishedName OPTIONAL,
+ targetObject [1] DistinguishedName OPTIONAL,
+ operationProgress
+ [2] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ traceInformation [3] TraceInformation,
+ aliasDereferenced [4] BOOLEAN DEFAULT FALSE,
+ aliasedRDNs [5] INTEGER OPTIONAL,
+ -- only present in 1988 systems
+ returnCrossRefs [6] BOOLEAN DEFAULT FALSE,
+ referenceType [7] ReferenceType DEFAULT superior,
+ info [8] DomainInfo OPTIONAL,
+ timeLimit [9] Time OPTIONAL,
+ securityParameters [10] SecurityParameters DEFAULT {},
+ entryOnly [11] BOOLEAN DEFAULT FALSE,
+ uniqueIdentifier [12] UniqueIdentifier OPTIONAL,
+ authenticationLevel [13] AuthenticationLevel OPTIONAL,
+ exclusions [14] Exclusions OPTIONAL,
+ excludeShadows [15] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [16] BOOLEAN DEFAULT FALSE,
+ operationIdentifier [17] INTEGER OPTIONAL,
+ searchRuleId [18] SearchRuleId OPTIONAL,
+ chainedRelaxation [19] MRMapping OPTIONAL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ChainingResults ::= SET {
+ info [0] DomainInfo OPTIONAL,
+ crossReferences [1] SEQUENCE (SIZE (1..MAX)) OF CrossReference OPTIONAL,
+ securityParameters [2] SecurityParameters DEFAULT {},
+ alreadySearched [3] Exclusions OPTIONAL
+}
+
+CrossReference ::= SET {
+ contextPrefix [0] DistinguishedName,
+ accessPoint [1] AccessPointInformation,
+ chainingRequired [2] BOOLEAN DEFAULT FALSE
+}
+
+ReferenceType ::= ENUMERATED {
+ superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
+ supplier(5), master(6), immediateSuperior(7), self(8)}
+
+TraceInformation ::= SEQUENCE OF TraceItem
+
+TraceItem ::= SET {
+ dsa [0] Name,
+ targetObject [1] Name OPTIONAL,
+ operationProgress [2] OperationProgress
+}
+
+OperationProgress ::= SET {
+ nameResolutionPhase
+ [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)},
+ nextRDNToBeResolved [1] INTEGER OPTIONAL
+}
+
+DomainInfo ::= ABSTRACT-SYNTAX.&Type
+
+ContinuationReference ::= SET {
+ targetObject [0] Name,
+ aliasedRDNs [1] INTEGER OPTIONAL, -- only present in 1988 systems
+ operationProgress [2] OperationProgress,
+ rdnsResolved [3] INTEGER OPTIONAL,
+ referenceType [4] ReferenceType,
+ accessPoints [5] SET OF AccessPointInformation,
+ entryOnly [6] BOOLEAN DEFAULT FALSE,
+ exclusions [7] Exclusions OPTIONAL,
+ returnToDUA [8] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [9] BOOLEAN DEFAULT FALSE
+}
+
+AccessPoint ::= SET {
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET OF ProtocolInformation OPTIONAL,
+ chainingRequired [3] BOOLEAN DEFAULT FALSE
+}
+
+AccessPointInformation ::= SET {
+ COMPONENTS OF MasterOrShadowAccessPoint,
+ additionalPoints [5] MasterAndShadowAccessPoints OPTIONAL
+}
+
+MasterOrShadowAccessPoint ::= SET {
+ COMPONENTS OF AccessPoint,
+ category [4] ENUMERATED {master(0), shadow(1)} DEFAULT master
+}
+
+MasterAndShadowAccessPoints ::= SET OF MasterOrShadowAccessPoint
+
+Exclusions ::= SET OF RDNSequence
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn b/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn
new file mode 100644
index 0000000000..d8c15b7afa
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn
@@ -0,0 +1,464 @@
+-- Module Document-Profile-Descriptor (T.415:03/1993)
+
+Document-Profile-Descriptor {2 8 1 5 6} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Document-Profile-Descriptor, Character-Data, Document-Reference,
+ Date-and-Time, Dates-and-Times, Personal-Name, Originators,
+ Other-User-Information, Local-File-References, Security-Information,
+ Document-Description,
+ External-References ,
+ Sealed-Doc-Bodyparts, ODA-Version;
+
+IMPORTS
+ Resource-Name, Object-or-Class-Identifier, Protected-Part-Identifier,
+ Style-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, Transparency, Colour, Dimension-Pair, One-Of-Four-Angles,
+ Border, Medium-Type, Comment-String, Content-Background-Colour,
+ Content-Foreground-Colour
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Content-Architecture-Class, Content-Type, Block-Alignment, Fill-Order
+ FROM Style-Descriptors -- see 7.11
+
+ Type-Of-Coding
+ FROM Text-Units -- see 7.13
+
+ Colour-Characteristics, Colour-Spaces-List, Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Content-Defaults, Character-Presentation-Feature,
+ Character-Coding-Attribute
+ FROM Character-Profile-Attributes {2 8 1 6 4
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Content-Defaults, Ra-Gr-Presentation-Feature,
+ Ra-Gr-Coding-Attribute
+ FROM Raster-Gr-Profile-Attributes {2 8 1 7 4
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Content-Defaults, Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute
+ FROM Geo-Gr-Profile-Attributes {2 8 1 8 4
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Font-Attribute-Set
+ FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2
+ } -- see ISO/IEC 9541-2
+ Document-Presentation-Time, Time-Scaling
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Document-Profile-Descriptor ::= SET {
+ generic-layout-structure [0] IMPLICIT NumericString OPTIONAL,
+ specific-layout-structure [1] IMPLICIT NumericString OPTIONAL,
+ generic-logical-structure [4] IMPLICIT NumericString OPTIONAL,
+ specific-logical-structure [5] IMPLICIT NumericString OPTIONAL,
+ presentation-styles [6] IMPLICIT NumericString OPTIONAL,
+ layout-styles [7] IMPLICIT NumericString OPTIONAL,
+ sealed-profiles [12] IMPLICIT NumericString OPTIONAL,
+ enciphered-profiles [13] IMPLICIT NumericString OPTIONAL,
+ preenciphered-bodyparts [14] IMPLICIT NumericString OPTIONAL,
+ postenciphered-bodyparts [15] IMPLICIT NumericString OPTIONAL,
+ -- for the generic structures,
+ -- 'partial-generator-set' is represented by "0", 'complete-generator-set'
+ -- is represented by "1", 'factor-set' is represented by "2";
+ -- for the other cases, the numeric string has the value 'present'
+ -- represented by "1"
+ external-document-class [9] Document-Reference OPTIONAL,
+ resource-document [10] Document-Reference OPTIONAL,
+ resources
+ [11] IMPLICIT SET OF
+ SET {resource-identifier Resource-Name,
+ object-class-identifier Object-or-Class-Identifier
+ } OPTIONAL,
+ document-characteristics [2] IMPLICIT Document-Characteristics,
+ document-management-attributes
+ [3] IMPLICIT Document-Management-Attributes OPTIONAL,
+ document-security-attributes
+ [16] IMPLICIT Document-Security-Attributes OPTIONAL,
+ links [17] IMPLICIT NumericString OPTIONAL,
+ link-classes [18] IMPLICIT NumericString OPTIONAL,
+ enciphered-links [19] IMPLICIT NumericString OPTIONAL,
+ temporal-relations [20] IMPLICIT NumericString OPTIONAL
+}
+
+Document-Characteristics ::= SET {
+ document-application-profile
+ CHOICE {a [0] IMPLICIT INTEGER {group-4-facsimile(2)},
+ b [4] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ doc-appl-profile-defaults
+ [10] IMPLICIT Doc-Appl-Profile-Defaults OPTIONAL,
+ document-architecture-class
+ [1] IMPLICIT INTEGER {formatted(0), processable(1),
+ formatted-processable(2)},
+ content-architecture-classes [5] IMPLICIT SET OF OBJECT IDENTIFIER,
+ interchange-format-class [6] IMPLICIT INTEGER {if-a(0), if-b(1)},
+ oda-version [8] IMPLICIT ODA-Version,
+ alternative-feature-sets
+ [11] IMPLICIT SET OF SET OF OBJECT IDENTIFIER OPTIONAL,
+ non-basic-doc-characteristics
+ [2] IMPLICIT Non-Basic-Doc-Characteristics OPTIONAL,
+ non-basic-struc-characteristics
+ [3] IMPLICIT Non-Basic-Struc-Characteristics OPTIONAL,
+ additional-doc-characteristics
+ [9] IMPLICIT Additional-Doc-Characteristics OPTIONAL
+}
+
+ODA-Version ::= SEQUENCE {
+ standard-or-recommendation Character-Data,
+ publication-date Date-and-Time
+}
+
+Doc-Appl-Profile-Defaults ::= SET {
+ document-architecture-defaults
+ [0] IMPLICIT Document-Architecture-Defaults OPTIONAL,
+ character-content-defaults
+ [1] IMPLICIT Character-Content-Defaults OPTIONAL,
+ raster-gr-content-defaults
+ [2] IMPLICIT Raster-Gr-Content-Defaults OPTIONAL,
+ geo-gr-content-defaults
+ [3] IMPLICIT Geo-Gr-Content-Defaults OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of content defaults:
+ -- [4] videotex, for use in conjunction with CCITT Recommendations
+ -- [5] audio
+ -- [6] dynamic-graphics
+ external-content-architecture-defaults
+ [7] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Document-Architecture-Defaults ::= SET {
+ content-architecture-class
+ CHOICE {a [0] IMPLICIT Content-Architecture-Class,
+ b [1] IMPLICIT Content-Type} OPTIONAL,
+ page-dimensions [2] IMPLICIT Measure-Pair OPTIONAL,
+ transparency [3] IMPLICIT Transparency OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [11] Colour-Expression OPTIONAL,
+ object-colour-table [12] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [13] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [14] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [15] IMPLICIT Colour-Table OPTIONAL,
+ layout-path [5] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ medium-type [6] IMPLICIT Medium-Type OPTIONAL,
+ block-alignment [7] IMPLICIT Block-Alignment OPTIONAL,
+ border [8] IMPLICIT Border OPTIONAL,
+ page-position [9] IMPLICIT Measure-Pair OPTIONAL,
+ type-of-coding [10] Type-Of-Coding OPTIONAL
+}
+
+Non-Basic-Doc-Characteristics ::= SET {
+ profile-character-sets [5] IMPLICIT OCTET STRING OPTIONAL,
+ comments-character-sets [1] IMPLICIT OCTET STRING OPTIONAL,
+ alternative-repr-char-sets [6] IMPLICIT OCTET STRING OPTIONAL,
+ -- each of these octet strings represents a string of escape sequences
+ page-dimensions [2] IMPLICIT SET OF Dimension-Pair OPTIONAL,
+ medium-types [8] IMPLICIT SET OF Medium-Type OPTIONAL,
+ layout-paths
+ [21] IMPLICIT SET OF One-Of-Four-Angles OPTIONAL,
+ transparencies [22] IMPLICIT SET OF Transparency OPTIONAL,
+ protections [23] IMPLICIT SET OF Protection OPTIONAL,
+ block-alignments
+ [24] IMPLICIT SET OF Block-Alignment OPTIONAL,
+ fill-orders [25] IMPLICIT SET OF Fill-Order OPTIONAL,
+ colours [26] IMPLICIT SET OF Colour OPTIONAL,
+ colours-of-layout-object
+ [30] IMPLICIT SET OF Colour-Expression OPTIONAL,
+ object-colour-tables [31] IMPLICIT SET OF Colour-Table OPTIONAL,
+ content-background-colours
+ [32] IMPLICIT SET OF Content-Background-Colour OPTIONAL,
+ content-foreground-colours
+ [33] IMPLICIT SET OF Content-Foreground-Colour OPTIONAL,
+ content-colour-tables [34] IMPLICIT SET OF Colour-Table OPTIONAL,
+ borders [27] IMPLICIT SET OF Border OPTIONAL,
+ page-positions [28] IMPLICIT SET OF Measure-Pair OPTIONAL,
+ types-of-coding [29] IMPLICIT SET OF Type-Of-Coding OPTIONAL,
+ character-presentation-features
+ [9] IMPLICIT SET OF Character-Presentation-Feature OPTIONAL,
+ ra-gr-presentation-features
+ [4] IMPLICIT SET OF Ra-Gr-Presentation-Feature OPTIONAL,
+ geo-gr-presentation-features
+ [12] IMPLICIT SET OF Geo-Gr-Presentation-Feature OPTIONAL,
+ character-coding-attributes
+ [16] IMPLICIT SET OF Character-Coding-Attribute OPTIONAL,
+ ra-gr-coding-attributes
+ [3] IMPLICIT SET OF Ra-Gr-Coding-Attribute OPTIONAL,
+ geo-gr-coding-attributes
+ [17] IMPLICIT SET OF Geo-Gr-Coding-Attribute OPTIONAL,
+ ext-non-basic-pres-features [10] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL,
+ ext-non-basic-coding-attributes [11] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Non-Basic-Struc-Characteristics ::= SET {
+ number-of-objects-per-page [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Additional-Doc-Characteristics ::= SET {
+ unit-scaling [3] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER} OPTIONAL,
+ fonts-list [2] IMPLICIT Fonts-List OPTIONAL,
+ colour-characteristics [0] IMPLICIT Colour-Characteristics OPTIONAL,
+ colour-spaces-list [1] IMPLICIT Colour-Spaces-List OPTIONAL,
+ assured-reproduction-areas [5] IMPLICIT Assured-Reproduction-Areas OPTIONAL,
+ time-scaling [6] IMPLICIT Time-Scaling OPTIONAL,
+ document-presentation-time [7] IMPLICIT Document-Presentation-Time OPTIONAL
+}
+
+Fonts-List ::=
+ SET OF SET {font-identifier INTEGER,
+ font-reference Font-Reference}
+
+Font-Reference ::= SET {
+ user-visible-name [0] IMPLICIT Comment-String OPTIONAL,
+ user-readable-comment [1] IMPLICIT Comment-String OPTIONAL,
+ reference-properties
+ [2] IMPLICIT SET OF
+ SET {precedence-number [0] IMPLICIT INTEGER OPTIONAL,
+ properties [1] IMPLICIT Font-Attribute-Set,
+ user-readable-comment
+ [2] IMPLICIT Comment-String OPTIONAL}
+}
+
+Assured-Reproduction-Areas ::=
+ SET OF
+ SET {nominal-page-size [0] IMPLICIT Measure-Pair,
+ assured-reproduction-area
+ [1] SET {position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Measure-Pair}}
+
+Document-Management-Attributes ::= SET {
+ document-description [7] IMPLICIT Document-Description OPTIONAL,
+ dates-and-times [0] IMPLICIT Dates-and-Times OPTIONAL,
+ originators [1] IMPLICIT Originators OPTIONAL,
+ other-user-information [2] IMPLICIT Other-User-Information OPTIONAL,
+ external-references [3] IMPLICIT External-References OPTIONAL,
+ local-file-references [4] IMPLICIT Local-File-References OPTIONAL,
+ content-attributes [5] IMPLICIT Content-Attributes OPTIONAL,
+ security-information [6] IMPLICIT Security-Information OPTIONAL
+}
+
+Document-Description ::= SET {
+ title [0] IMPLICIT Character-Data OPTIONAL,
+ subject [1] IMPLICIT Character-Data OPTIONAL,
+ document-type [2] IMPLICIT Character-Data OPTIONAL,
+ abstract [3] IMPLICIT Character-Data OPTIONAL,
+ keywords [4] IMPLICIT SET OF Character-Data OPTIONAL,
+ document-reference [5] Document-Reference OPTIONAL
+}
+
+Character-Data ::= [APPLICATION 3] IMPLICIT OCTET STRING
+
+-- string of characters from the sets designated by the attribute
+-- "profile character sets", plus space, carriage return and line feed
+Document-Reference ::= CHOICE {
+ unique-reference OBJECT IDENTIFIER,
+ descriptive-reference Character-Data
+}
+
+Dates-and-Times ::= SET {
+ document-date-and-time [0] IMPLICIT Date-and-Time OPTIONAL,
+ creation-date-and-time [1] IMPLICIT Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] IMPLICIT SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] IMPLICIT Date-and-Time OPTIONAL,
+ start-date-and-time [4] IMPLICIT Date-and-Time OPTIONAL,
+ purge-date-and-time [5] IMPLICIT Date-and-Time OPTIONAL,
+ release-date-and-time [6] IMPLICIT Date-and-Time OPTIONAL,
+ revision-history
+ [7] IMPLICIT SEQUENCE OF
+ SET {revision-date-and-time
+ [0] IMPLICIT Date-and-Time OPTIONAL,
+ version-identifier
+ [1] IMPLICIT Character-Data OPTIONAL,
+ revisers
+ [2] IMPLICIT SET OF
+ SET {names
+ [0] IMPLICIT SET OF
+ Personal-Name
+ OPTIONAL,
+ position
+ [1] IMPLICIT Character-Data
+ OPTIONAL,
+ organization
+ [2] IMPLICIT Character-Data
+ OPTIONAL} OPTIONAL,
+ version-reference
+ [3] Document-Reference OPTIONAL,
+ user-comments
+ [4] IMPLICIT Character-Data OPTIONAL} OPTIONAL
+}
+
+Date-and-Time ::= [APPLICATION 4] IMPLICIT PrintableString
+
+Originators ::= SET {
+ organizations [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ preparers
+ [1] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ owners
+ [2] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ authors
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL
+}
+
+Personal-Name ::= [APPLICATION 6] IMPLICIT SET {
+ surname [0] IMPLICIT Character-Data,
+ givenname [1] IMPLICIT Character-Data OPTIONAL,
+ initials [2] IMPLICIT Character-Data OPTIONAL,
+ generation-qualifier [3] IMPLICIT Character-Data OPTIONAL
+}
+
+Other-User-Information ::= SET {
+ copyright
+ [0] IMPLICIT SET OF
+ SET {copyright-information
+ [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ copyright-dates
+ [1] IMPLICIT SET OF Date-and-Time OPTIONAL} OPTIONAL,
+ status [1] IMPLICIT Character-Data OPTIONAL,
+ user-specific-codes [2] IMPLICIT SET OF Character-Data OPTIONAL,
+ distribution-list
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ additional-information [5] TYPE-IDENTIFIER.&Type OPTIONAL
+}
+
+External-References ::=
+ SET {
+ references-to-other-documents
+ [0] IMPLICIT SET OF Document-Reference OPTIONAL,
+ superseded-documents
+ [1] IMPLICIT SET OF Document-Reference OPTIONAL
+}
+
+Local-File-References ::=
+ SET OF
+ SET {file-name [0] IMPLICIT Character-Data OPTIONAL,
+ location [1] IMPLICIT Character-Data OPTIONAL,
+ user-comments [2] IMPLICIT Character-Data OPTIONAL}
+
+Content-Attributes ::= SET {
+ document-size [1] IMPLICIT INTEGER OPTIONAL,
+ number-of-pages [2] IMPLICIT INTEGER OPTIONAL,
+ languages [4] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Security-Information ::= SET {
+ authorization
+ CHOICE {person [0] IMPLICIT Personal-Name,
+ organization [4] IMPLICIT Character-Data} OPTIONAL,
+ security-classification [1] IMPLICIT Character-Data OPTIONAL,
+ access-rights [2] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Document-Security-Attributes ::= SET {
+ sealed-info-encoding [7] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ oda-security-label [0] IMPLICIT Oda-Security-Label OPTIONAL,
+ sealed-doc-profiles [1] IMPLICIT Sealed-Doc-Profiles OPTIONAL,
+ presealed-doc-bodyparts [2] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ postsealed-doc-bodyparts [3] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ enciphered-doc-profiles [4] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ preenciphered-doc-bodyparts [5] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ postenciphered-doc-bodyparts [6] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ sealed-links [8] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL
+}
+
+Oda-Security-Label ::= SEQUENCE {
+ oda-label-text [0] IMPLICIT Character-Data OPTIONAL,
+ oda-label-data [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Seal-Data ::= SEQUENCE {
+ seal-method [0] IMPLICIT Seal-Method OPTIONAL,
+ sealed-information [1] IMPLICIT Sealed-Information OPTIONAL,
+ seal [2] IMPLICIT OCTET STRING
+}
+
+Seal-Method ::= SEQUENCE {
+ fingerprint-method [0] IMPLICIT Method-Information OPTIONAL,
+ fingerprint-key-information [1] IMPLICIT Key-Information OPTIONAL,
+ sealing-method [2] IMPLICIT Method-Information OPTIONAL,
+ sealing-key-information [3] IMPLICIT Key-Information OPTIONAL
+}
+
+Sealed-Information ::= SEQUENCE {
+ fingerprint [0] IMPLICIT OCTET STRING OPTIONAL,
+ time [1] IMPLICIT Date-and-Time OPTIONAL,
+ sealing-orig-id [2] IMPLICIT Personal-Name OPTIONAL,
+ location [3] IMPLICIT Location OPTIONAL
+}
+
+Method-Information ::= SEQUENCE {
+ unique-method-info [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-method-info [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Key-Information ::= SEQUENCE {
+ method-information [0] IMPLICIT Method-Information OPTIONAL,
+ additional-information [1] IMPLICIT Additional-Information OPTIONAL
+}
+
+Additional-Information ::= SEQUENCE {
+ descriptive-information [0] IMPLICIT Character-Data OPTIONAL,
+ octet-string [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Location ::= SEQUENCE {
+ unique-location [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-location [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Sealed-Doc-Profiles ::=
+ SET OF
+ SEQUENCE {sealed-doc-prof-descriptor-id
+ [0] IMPLICIT Protected-Part-Identifier,
+ privileged-recipients
+ [1] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-prof-seal [2] IMPLICIT Seal-Data}
+
+Sealed-Doc-Bodyparts ::=
+ SET OF
+ SEQUENCE {seal-id [0] IMPLICIT INTEGER,
+ sealed-constituents [1] IMPLICIT Sealed-Constituents,
+ privileged-recipients [2] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-bodypart-seal [3] IMPLICIT Seal-Data}
+
+Sealed-Constituents ::= SEQUENCE {
+ object-class-identifiers
+ [0] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ presentation-style-identifiers
+ [1] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ layout-style-identifiers
+ [2] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ object-identifiers
+ [3] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL
+}
+
+Protected-Doc-Parts ::=
+ SET OF
+ SEQUENCE {protected-doc-part-id [0] IMPLICIT Protected-Part-Identifier,
+ priv-recipients-info [1] IMPLICIT SET OF Priv-Recipients-Info
+ }
+
+Priv-Recipients-Info ::= SEQUENCE {
+ privileged-recipients [0] IMPLICIT SET OF Personal-Name OPTIONAL,
+ encipherment-method-info [1] IMPLICIT Method-Information OPTIONAL,
+ encipherment-key-info [2] IMPLICIT Key-Information OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn b/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn
new file mode 100644
index 0000000000..9991a59454
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn
@@ -0,0 +1,363 @@
+-- Module EnhancedSecurity (X.501:08/1997)
+EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 1}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ authenticationFramework, basicAccessControl, certificateExtensions,
+ id-at, id-avc, id-mr, informationFramework, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, AttributeType, Context, CONTEXT, MATCHING-RULE,
+ Name, objectIdentifierMatch, SupportedAttributes
+ FROM InformationFramework informationFramework
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ AlgorithmIdentifier, CertificateSerialNumber, ENCRYPTED{}, HASH{},
+ SIGNED{}
+ FROM AuthenticationFramework authenticationFramework
+ GeneralName, KeyIdentifier
+ FROM CertificateExtensions certificateExtensions
+ ub-privacy-mark-length
+ FROM UpperBounds upperBounds;
+
+-- from GULS
+-- SECURITY-TRANSFORMATION, PROTECTION-MAPPING, PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+--dirSignedTransformation, KEY-INFORMATION
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- gulsSecurityTransformations (3) }
+-- signed
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- dirProtectionMappings (4) };
+-- The "signed" Protection Mapping and associated "dirSignedTransformations" imported
+-- from the Generic Upper Layers Security specification (ITU-T Rec. X.830 | ISO/IEC 11586-1)
+-- results in identical encoding as the same data type used with the SIGNED as defined in
+-- ITU-T REC. X.509 | ISO/IEC 9594-8
+-- The three statements below are provided temporarily to allow signed operations to be supported as in edition 3.
+OPTIONALLY-PROTECTED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+OPTIONALLY-PROTECTED-SEQ{Type} ::= CHOICE {
+ unsigned Type,
+ signed [0] SIGNED{Type}
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- genEncryptedTransform {KEY-INFORMATION: SupportedKIClasses } SECURITY-TRANSFORMATION ::=
+-- {
+-- IDENTIFIER { enhancedSecurity gen-encrypted(2) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1(1) ber(1) }
+-- This default for initial encoding rules may be overridden
+-- using a static protected parameter (initEncRules).
+-- XFORMED-DATA-TYPE SEQUENCE {
+-- initEncRules OBJECT IDENTIFIER DEFAULT { joint-iso-itu-t asn1(1) ber(1) },
+-- encAlgorithm AlgorithmIdentifier OPTIONAL, -- -- Identifies the encryption algorithm,
+-- keyInformation SEQUENCE {
+-- kiClass KEY-INFORMATION.&kiClass ({SupportedKIClasses}),
+-- keyInfo KEY-INFORMATION.&KiType ({SupportedKIClasses} {@kiClass})
+-- } OPTIONAL,
+-- Key information may assume various formats, governed by supported members
+-- of the KEY-INFORMATION information object class (defined in ITU-T
+-- Rec. X.830 | ISO/IEC 11586-1)
+-- encData BIT STRING ( CONSTRAINED BY {
+-- the encData value must be generated following
+-- the procedure specified in 17.3.1-- -- })
+-- }
+-- }
+-- encrypted PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { genEncryptedTransform } }
+-- signedAndEncrypt PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { signedAndEncryptedTransform } }
+-- signedAndEncryptedTransform {KEY-INFORMATION: SupportedKIClasses}
+-- SECURITY-TRANSFORMATION ::= {
+-- IDENTIFIER { enhancedSecurity dir-encrypt-sign (1) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1 (1) ber-derived (2) distinguished-encoding (1) }
+-- XFORMED-DATA-TYPE
+-- PROTECTED
+-- {
+-- PROTECTED
+-- {
+-- ABSTRACT-SYNTAX.&Type,
+-- signed
+-- },
+-- encrypted
+-- }
+-- }
+-- OPTIONALLY-PROTECTED {ToBeProtected, PROTECTION-MAPPING:generalProtection} ::=
+-- CHOICE {
+-- toBeProtected ToBeProtected,
+--no DIRQOP specified for operation
+-- signed PROTECTED {ToBeProtected, signed},
+--DIRQOP is Signed
+-- protected [APPLICATION 0]
+-- PROTECTED { ToBeProtected, generalProtection } }
+--DIRQOP is other than Signed
+-- defaultDirQop ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- USAGE directoryOperation
+-- ID id-at-defaultDirQop }
+-- DIRQOP ::= CLASS
+-- This information object class is used to define the quality of protection
+-- required throughout directory operation.
+-- The Quality Of Protection can be signed, encrypted, signedAndEncrypt
+-- {
+-- &dirqop-Id OBJECT IDENTIFIER UNIQUE,
+-- &dirBindError-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dirErrors-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dspChainedOp-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispShadowAgreeInfo-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindRes-QOP PROTECTION-MAPPING:protectionReqd
+-- }
+-- WITH SYNTAX
+-- {
+-- DIRQOP-ID &dirqop-Id
+-- DIRECTORYBINDERROR-QOP &dirBindError-QOP
+-- DIRERRORS-QOP &dirErrors-QOP
+-- DAPREADARG-QOP &dapReadArg-QOP
+-- DAPREADRES-QOP &dapReadRes-QOP
+-- DAPCOMPAREARG-QOP &dapCompareArg-QOP
+-- DAPCOMPARERES-QOP &dapCompareRes-QOP
+-- DAPLISTARG-QOP &dapListArg-QOP
+-- DAPLISTRES-QOP &dapListRes-QOP
+-- DAPSEARCHARG-QOP &dapSearchArg-QOP
+-- DAPSEARCHRES-QOP &dapSearchRes-QOP
+-- DAPABANDONARG-QOP &dapAbandonArg-QOP
+-- DAPABANDONRES-QOP &dapAbandonRes-QOP
+-- DAPADDENTRYARG-QOP &dapAddEntryArg-QOP
+-- DAPADDENTRYRES-QOP &dapAddEntryRes-QOP
+-- DAPREMOVEENTRYARG-QOP &dapRemoveEntryArg-QOP
+-- DAPREMOVEENTRYRES-QOP &dapRemoveEntryRes-QOP
+-- DAPMODIFYENTRYARG-QOP &dapModifyEntryArg-QOP
+-- DAPMODIFYENTRYRES-QOP &dapModifyEntryRes-QOP
+-- DAPMODIFYDNARG-QOP &dapModifyDNArg-QOP
+-- DAPMODIFYDNRES-QOP &dapModifyDNRes-QOP
+-- DSPCHAINEDOP-QOP &dspChainedOp-QOP
+-- DISPSHADOWAGREEINFO-QOP &dispShadowAgreeInfo-QOP
+-- DISPCOORSHADOWARG-QOP &dispCoorShadowArg-QOP
+-- DISPCOORSHADOWRES-QOP &dispCoorShadowRes-QOP
+-- DISPUPDATESHADOWARG-QOP &dispUpdateShadowArg-QOP
+-- DISPUPDATESHADOWRES-QOP &dispUpdateShadowRes-QOP
+-- DISPREQUESTSHADOWUPDATEARG-QOP &dispRequestShadowUpdateArg-QOP
+-- DISPREQUESTSHADOWUPDATERES-QOP &dispRequestShadowUpdateRes-QOP
+-- DOPESTABLISHOPBINDARG-QOP &dopEstablishOpBindArg-QOP
+-- DOPESTABLISHOPBINDRES-QOP &dopEstablishOpBindRes-QOP
+-- DOPMODIFYOPBINDARG-QOP &dopModifyOpBindArg-QOP
+-- DOPMODIFYOPBINDRES-QOP &dopModifyOpBindRes-QOP
+-- DOPTERMINATEOPBINDARG-QOP &dopTermOpBindArg-QOP
+-- DOPTERMINATEOPBINDRES-QOP &dopTermOpBindRes-QOP
+-- }
+attributeValueSecurityLabelContext CONTEXT ::= {
+ WITH SYNTAX
+ SignedSecurityLabel -- At most one security label context can be assigned to an
+ -- attribute value
+ ID id-avc-attributeValueSecurityLabelContext
+}
+
+SignedSecurityLabel ::=
+ SIGNED
+ {SEQUENCE {attHash HASH{AttributeTypeAndValue},
+ issuer Name OPTIONAL, -- name of labelling authority
+ keyIdentifier KeyIdentifier OPTIONAL,
+ securityLabel SecurityLabel}}
+
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}(ALL EXCEPT ({ --none, at least one component shall be presen--}))
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..MAX) OF SecurityCategory
+
+clearance ATTRIBUTE ::= {WITH SYNTAX Clearance
+ ID id-at-clearance
+}
+
+Clearance ::= SEQUENCE {
+ policyId OBJECT IDENTIFIER,
+ classList ClassList DEFAULT {unclassified},
+ securityCategories SET SIZE (1..MAX) OF SecurityCategory OPTIONAL
+}
+
+ClassList ::= BIT STRING {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ topSecret(5)}
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] EXPLICIT SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+attributeIntegrityInfo ATTRIBUTE ::= {
+ WITH SYNTAX AttributeIntegrityInfo
+ ID id-at-attributeIntegrityInfo
+}
+
+AttributeIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {scope Scope, -- Identifies the attributes protected
+ signer Signer OPTIONAL, -- Authority or data originators name
+ attribsHash AttribsHash}} -- Hash value of protected attributes
+
+Signer ::= CHOICE {
+ thisEntry [0] EXPLICIT ThisEntry,
+ thirdParty [1] SpecificallyIdentified
+}
+
+ThisEntry ::= CHOICE {onlyOne NULL,
+ specific IssuerAndSerialNumber
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serial CertificateSerialNumber
+}
+
+SpecificallyIdentified ::= SEQUENCE {
+ name GeneralName,
+ issuer GeneralName OPTIONAL,
+ serial CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ issuer PRESENT,
+ serial PRESENT
+ } | (WITH COMPONENTS {
+ ...,
+ issuer ABSENT,
+ serial ABSENT
+ }))
+
+Scope ::= CHOICE {
+ wholeEntry [0] NULL, -- Signature protects all attribute values in this entry
+ selectedTypes [1] SelectedTypes
+ -- Signature protects all attribute values of the selected attribute types
+}
+
+SelectedTypes ::= SEQUENCE SIZE (1..MAX) OF AttributeType
+
+AttribsHash ::= HASH{SEQUENCE SIZE (1..MAX) OF Attribute}
+
+-- Attribute type and values with associated context values for the selected Scope
+attributeValueIntegrityInfoContext CONTEXT ::= {
+ WITH SYNTAX AttributeValueIntegrityInfo
+ ID id-avc-attributeValueIntegrityInfoContext
+}
+
+AttributeValueIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {signer Signer OPTIONAL, -- Authority or data originators name
+ aVIHash AVIHash}} -- Hash value of protected attribute
+
+AVIHash ::= HASH{AttributeTypeValueContexts}
+
+-- Attribute type and value with associated context values
+AttributeTypeValueContexts ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context OPTIONAL
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- EncryptedAttributeSyntax {AttributeSyntax} ::= SEQUENCE {
+-- keyInfo SEQUENCE OF KeyIdOrProtectedKey,
+-- encAlg AlgorithmIdentifier,
+-- encValue ENCRYPTED { AttributeSyntax } }
+-- KeyIdOrProtectedKey ::= SEQUENCE {
+-- keyIdentifier [0] KeyIdentifier OPTIONAL,
+-- protectedKeys [1] ProtectedKey OPTIONAL }
+-- At least one key identifier or protected key must be present
+-- ProtectedKey ::= SEQUENCE {
+-- authReaders AuthReaders,-- -- if absent, use attribute in authorized reader entry
+-- keyEncAlg AlgorithmIdentifier OPTIONAL, -- -- algorithm to encrypt encAttrKey
+-- encAttKey EncAttKey }
+-- confidentiality key protected with authorized user's
+-- protection mechanism
+-- AuthReaders ::= SEQUENCE OF Name
+-- EncAttKey ::= PROTECTED {SymmetricKey, keyProtection}
+-- SymmetricKey ::= BIT STRING
+-- keyProtection PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION {genEncryption} }
+-- confKeyInfo ATTRIBUTE ::= {
+-- WITH SYNTAX ConfKeyInfo
+-- EQUALITY MATCHING RULE readerAndKeyIDMatch
+-- ID id-at-confKeyInfo }
+-- ConfKeyInfo ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- protectedKey ProtectedKey }
+-- readerAndKeyIDMatch MATCHING-RULE ::= {
+-- SYNTAX ReaderAndKeyIDAssertion
+-- ID id-mr-readerAndKeyIDMatch }
+-- ReaderAndKeyIDAssertion ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- authReaders AuthReaders OPTIONAL }
+-- Object identifier assignments
+-- attributes
+id-at-clearance OBJECT IDENTIFIER ::=
+ {id-at 55}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+-- matching rules
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+-- contexts
+id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::=
+ {id-avc 3}
+
+id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+
+END -- EnhancedSecurity
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn b/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn
new file mode 100644
index 0000000000..9a7d4936a6
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn
@@ -0,0 +1,49 @@
+-- Module External-References (T.422:08/1995)
+
+External-References {2 8 1 12 1} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS External-References-List, Reference-Name;
+
+IMPORTS
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see 7.4
+ DOR
+ FROM DOR-definition {2 4 0}
+ -- see ISO/IEC 10031-2
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- see ITU-T Rec. X.501 � ISO/IEC 9594-2
+External-References-List ::=
+ SET OF
+ SET {reference-name [1] Reference-Name,
+ external-entity [2] External-Entity,
+ location-rule [3] Location-Expression OPTIONAL}
+
+Reference-Name ::= PrintableString
+
+External-Entity ::= CHOICE {
+ external-info [0] External-Information-Name,
+ object-id [1] OBJECT IDENTIFIER,
+ dor [2] DOR,
+ distinguished [3] DistinguishedName,
+ associated-info [4] Associated-Information-Name
+}
+
+External-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+Associated-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn b/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn
new file mode 100644
index 0000000000..9b6a426ca2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn
@@ -0,0 +1,71 @@
+-- Module GULSProtectionMappings (X.830:04/1995)
+
+GULSProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ gulsProtectionMappings(5)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings are more versatile that the
+-- preceding protection mappings which were specifically designed
+-- to generate identical bit-encodings as the Directory
+-- Authentication Framework parameterized types.
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, gulsSignedTransformation{},
+ gulsSignatureTransformation, symmetricKeyInformation,
+ asymmetricKeyInformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **********************************
+-- confidentiality Protection Mapping
+-- **********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, confidentiality}
+-- to map to either dirEncryptedTransformation or to no transformation
+-- at the choice of the encoding system, dependent upon local security
+-- policy and other local environment considerations.
+-- Security Service: confidentiality
+confidentiality PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+ BYPASS-PERMITTED TRUE
+}
+
+-- ******************************
+-- GULS signed Protection Mapping
+-- ******************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signed}
+-- to map to the gulsSignedTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignedTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+-- *********************************
+-- GULS signature Protection Mapping
+-- *********************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signature}
+-- to map to the gulsSignatureTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignatureTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn b/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn
new file mode 100644
index 0000000000..c59451dcdb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn
@@ -0,0 +1,66 @@
+-- Module GenericProtectingTransferSyntax (X.833:04/1995)
+
+GenericProtectingTransferSyntax {joint-iso-itu-t genericULS(20) modules(1)
+ genericProtectingTransferSyntax(7)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SyntaxStructure{};
+
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, ExternalSAID
+ FROM Notation notation;
+
+SyntaxStructure{SECURITY-TRANSFORMATION:ValidSTs} ::= CHOICE {
+ firstPdvExplicit FirstPdvExplicit{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of a presentation-context-bound or
+ -- single-item-bound security association.
+ firstPdvExternal FirstPdvExternal{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of an externally established
+ -- security association.
+ subsequentPdv SubsequentPdv{{ValidSTs}}
+ -- To be used on a subsequent PDV in a protecting
+ -- presentation context.
+}
+
+FirstPdvExplicit{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ transformationId SECURITY-TRANSFORMATION.&sT-Identifier({ValidSTs}),
+ staticUnprotParm
+ SECURITY-TRANSFORMATION.&StaticUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ xformedData
+ SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}{@transformationId})
+}
+
+FirstPdvExternal{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ externalSAID ExternalSAID,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+}
+
+SubsequentPdv{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is implied
+ -- by presentation context
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..60acbb3b5c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
@@ -0,0 +1,16 @@
+-- Module Geo-Gr-Coding-Attributes (T.418:03/1993)
+
+Geo-Gr-Coding-Attributes {2 8 1 8 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Geo-Gr-Coding-Attributes;
+
+Geo-Gr-Coding-Attributes ::= SET {
+}
+
+-- no geometric graphics coding attributes are defined
+-- in this Specification
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..84c1ee9851
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
@@ -0,0 +1,265 @@
+-- Module Geo-Gr-Presentation-Attributes (T.418:03/1993)
+
+Geo-Gr-Presentation-Attributes {2 8 1 8 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geometric-Graphics-Attributes, Line-Rendition, Marker-Rendition,
+ Text-Rendition, Filled-Area-Rendition, Edge-Rendition,
+ Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles;
+
+Geometric-Graphics-Attributes ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+ASF-Type ::= ENUMERATED {bundled(0), individual(1)}
+
+Colour ::= CHOICE {indexed [0] INTEGER,
+ direct [1] RGB
+}
+
+RGB ::= SEQUENCE {red REAL,
+ green REAL,
+ blue REAL
+}
+
+SpecificationMode ::= ENUMERATED {absolute(0), scaled(1)}
+
+Line-Rendition ::= SEQUENCE {
+ line-width-specification-mode [0] SpecificationMode OPTIONAL,
+ line-bundle-index [1] INTEGER OPTIONAL,
+ line-type [2] INTEGER OPTIONAL,
+ line-width [3] Scaled-or-Absolute OPTIONAL,
+ line-colour [4] Colour OPTIONAL,
+ line-aspect-source-flags
+ [5] SEQUENCE {line-type-asf ASF-Type,
+ line-width-asf ASF-Type,
+ line-colour-asf ASF-Type} OPTIONAL,
+ line-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {line-bundle-index INTEGER,
+ line-bundle-representation
+ SEQUENCE {line-type INTEGER,
+ line-width Scaled-or-Absolute,
+ line-colour Colour}} OPTIONAL
+}
+
+Scaled-or-Absolute ::= CHOICE {
+ absolute
+ [0] CHOICE { -- absolute--vdc-int [0] INTEGER, -- for VDC Type INTEGER--
+ vdc-real [1] REAL}, -- for VDC Type REAL
+ scaled [1] REAL
+} -- scaled
+
+Marker-Rendition ::= SEQUENCE {
+ marker-size-specification-mode [0] SpecificationMode OPTIONAL,
+ marker-bundle-index [1] INTEGER OPTIONAL,
+ marker-type [2] INTEGER OPTIONAL,
+ marker-size [3] Scaled-or-Absolute OPTIONAL,
+ marker-colour [4] Colour OPTIONAL,
+ marker-aspect-source-flags
+ [5] SEQUENCE {marker-type-asf ASF-Type,
+ marker-size-asf ASF-Type,
+ marker-colour-asf ASF-Type} OPTIONAL,
+ marker-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {marker-bundle-index INTEGER,
+ marker-bundle-representation
+ SEQUENCE {marker-type INTEGER,
+ marker-size Scaled-or-Absolute,
+ marker-colour Colour}} OPTIONAL
+}
+
+Text-Rendition ::= SEQUENCE {
+ font-list [0] SEQUENCE OF GeneralString OPTIONAL,
+ character-set-list
+ [1] SEQUENCE {character-set-type
+ ENUMERATED {n94-char-sets(0), n96-char-sets(1),
+ n94-char-multibyte-sets(2),
+ n96-char-multibyte-sets(3), comp-code(4)},
+ designation-sequence-tail GeneralString} OPTIONAL,
+ character-coding-announcer
+ [2] ENUMERATED {basic-7-bit(0), basic-8-bit(1), extended-7-bit(2),
+ extended-8-bit(3)} OPTIONAL,
+ text-bundle-index [3] INTEGER OPTIONAL,
+ text-font-index [4] INTEGER OPTIONAL,
+ text-precision
+ [5] ENUMERATED {string(0), character(1), stroke(2)} OPTIONAL,
+ character-expansion-factor [6] REAL OPTIONAL,
+ character-spacing [7] REAL OPTIONAL,
+ text-colour [8] Colour OPTIONAL,
+ character-height [9] VDC-Value OPTIONAL,
+ character-orientation [10] SEQUENCE {a VDC-Pair,
+ b VDC-Pair} OPTIONAL,
+ text-path
+ [11] ENUMERATED {right(0), left(1), up(2), down(3)} OPTIONAL,
+ text-alignment
+ [12] SEQUENCE {horizontal-alignment
+ ENUMERATED {normal-horizontal(0), left(1), centre(2),
+ right(3), continuous-horizontal(4)},
+ vertical-alignment
+ ENUMERATED {normal-vertical(0), top(1), cap(2),
+ half(3), base(4), bottom(5),
+ continuous-vertical(6)},
+ continuous-horizontal-alignment [0] REAL OPTIONAL,
+ continuous-vertical-alignment [1] REAL OPTIONAL
+ } OPTIONAL,
+ character-set-index [13] INTEGER OPTIONAL,
+ alternate-character-set-index [14] INTEGER OPTIONAL,
+ text-aspect-source-flags
+ [15] SEQUENCE {text-font-asf ASF-Type,
+ text-precision-asf ASF-Type,
+ character-expansion-factor-asf ASF-Type,
+ character-spacing-asf ASF-Type,
+ text-colour-asf ASF-Type} OPTIONAL,
+ text-bundle-specifications
+ [16] SEQUENCE OF
+ SEQUENCE {text-bundle-index INTEGER,
+ text-bundle-representation
+ SEQUENCE {text-font-index INTEGER,
+ text-precision
+ ENUMERATED {string(0), character(1),
+ stroke(2)},
+ character-expansion-factor REAL,
+ character-spacing REAL,
+ text-colour Colour}
+ } OPTIONAL
+}
+
+VDC-Value ::= CHOICE {a INTEGER,
+ b REAL
+}
+
+VDC-Pair ::= SEQUENCE {x VDC-Value,
+ y VDC-Value
+}
+
+Filled-Area-Rendition ::= SEQUENCE {
+ fill-bundle-index [1] INTEGER OPTIONAL,
+ interior-style
+ [2] ENUMERATED {hollow(0), solid(1), pattern(2), hatch(3), empty(4)}
+ OPTIONAL,
+ fill-colour [3] Colour OPTIONAL,
+ hatch-index [4] INTEGER OPTIONAL,
+ pattern-index [5] INTEGER OPTIONAL,
+ fill-reference-point [6] VDC-Pair OPTIONAL,
+ pattern-size
+ [7] SEQUENCE {height-x-component VDC-Value,
+ height-y-component VDC-Value,
+ width-x-component VDC-Value,
+ width-y-component VDC-Value} OPTIONAL,
+ pattern-table-specifications [8] SEQUENCE OF PatternTableElement OPTIONAL,
+ fill-aspect-source-flags
+ [9] SEQUENCE {interior-style-asf ASF-Type,
+ fill-colour-asf ASF-Type,
+ hatch-index-asf ASF-Type,
+ pattern-index-asf ASF-Type} OPTIONAL,
+ fill-bundle-specifications
+ [10] SEQUENCE {fill-bundle-index INTEGER,
+ fill-bundle-representation
+ SEQUENCE {interior-style
+ ENUMERATED {hollow(0), solid(1), pattern(2),
+ hatch(3), empty(4)},
+ fill-colour Colour,
+ hatch-index INTEGER,
+ patttern-index INTEGER}} OPTIONAL
+}
+
+PatternTableElement ::= SEQUENCE {
+ pattern-table-index INTEGER,
+ nx INTEGER,
+ ny INTEGER,
+ local-colour-precision INTEGER,
+ colour SEQUENCE OF Colour
+}
+
+Edge-Rendition ::= SEQUENCE {
+ edge-width-spec-mode [0] SpecificationMode OPTIONAL,
+ edge-visibility [1] On-or-Off OPTIONAL,
+ edge-bundle-index [2] INTEGER OPTIONAL,
+ edge-type [3] INTEGER OPTIONAL,
+ edge-width [4] Scaled-or-Absolute OPTIONAL,
+ edge-colour [5] Colour OPTIONAL,
+ edge-aspect-source-flags
+ [6] SEQUENCE {edge-type-asf ASF-Type,
+ edge-width-asf ASF-Type,
+ edge-colour-asf ASF-Type} OPTIONAL,
+ edge-bundle-specifications
+ [7] SEQUENCE OF
+ SEQUENCE {edge-bundle-index INTEGER,
+ edge-bundle-representation
+ SEQUENCE {edge-type INTEGER,
+ edge-width Scaled-or-Absolute,
+ edge-colour Colour}} OPTIONAL
+}
+
+On-or-Off ::= ENUMERATED {off(0), on(1)}
+
+Colour-Representations ::= SEQUENCE {
+ background-colour [0] RGB OPTIONAL,
+ colour-table-specification
+ [1] SEQUENCE OF
+ SEQUENCE {starting-index INTEGER,
+ colour-list SEQUENCE OF RGB} OPTIONAL
+}
+
+Transparency-Specification ::= SEQUENCE {
+ transparency [0] On-or-Off OPTIONAL,
+ auxiliary-colour [1] Colour OPTIONAL
+}
+
+Transformation-Specification ::= SEQUENCE {
+ vdc-extent [0] Rectangle OPTIONAL,
+ clip-rectangle [1] Rectangle OPTIONAL,
+ clip-indicator [2] On-or-Off OPTIONAL
+}
+
+Rectangle ::= SEQUENCE {first-corner VDC-Pair,
+ second-corner VDC-Pair
+}
+
+Region-Of-Interest-Specification ::= CHOICE {
+ automatic [0] NULL,
+ rectangle [1] SEQUENCE {a VDC-Pair,
+ b VDC-Pair}
+}
+
+Picture-Orientation ::= One-Of-Four-Angles
+
+One-Of-Four-Angles ::= ENUMERATED {d0(0), d90(1), d180(2), d270(3)}
+
+Picture-Dimensions ::= CHOICE {
+ width-controlled
+ [0] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER},
+ height-controlled
+ [1] SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag ENUMERATED {fixed(0), variable(1)}
+ },
+ automatic [3] NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..28daa467e1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
@@ -0,0 +1,44 @@
+-- Module Geo-Gr-Profile-Attributes (T.418:03/1993)
+
+Geo-Gr-Profile-Attributes {2 8 1 8 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute, Geo-Gr-Content-Defaults;
+
+IMPORTS
+ Line-Rendition, Marker-Rendition, Text-Rendition, Filled-Area-Rendition,
+ Edge-Rendition, Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see 10.2
+
+Geo-Gr-Presentation-Feature ::= CHOICE {
+ null NULL,
+ text-rendition [3] Text-Rendition
+}
+
+Geo-Gr-Coding-Attribute ::= NULL
+
+-- no non-basic values are defined for the
+-- geometric graphics coding attributes in this Specification
+Geo-Gr-Content-Defaults ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn
new file mode 100644
index 0000000000..336b824174
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn
@@ -0,0 +1,79 @@
+-- Module GulsSecurityExchanges (X.830:04/1995)
+
+GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityExchanges, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-EXCHANGE, SEC-EXCHG-ITEM, SE-ERROR
+ FROM Notation notation
+ Credentials, SecurityProblem
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3};
+
+-- *******************************************
+-- Directory Authentication Exchange (One-way)
+-- *******************************************
+dirAuthenticationOneWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {credentials}
+ IDENTIFIER global:{securityExchanges dir-authent-one-way(1)}
+}
+
+credentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+}
+
+-- *******************************************
+-- Directory Authentication Exchange (Two-way)
+-- *******************************************
+dirAuthenticationTwoWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {initiatorCredentials | responderCredentials}
+ IDENTIFIER global:{securityExchanges dir-authent-two-way(2)}
+}
+
+initiatorCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+ ERRORS {authenticationFailure}
+}
+
+responderCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 2
+}
+
+authenticationFailure SE-ERROR ::= {
+ PARAMETER DirectoryAbstractService.SecurityProblem
+ ERROR-CODE local:1
+}
+
+-- ***************************
+-- Simple Negotiation Exchange
+-- ***************************
+simpleNegotiationSE SECURITY-EXCHANGE ::= {
+ SE-ITEMS {offeredIds | acceptedIds}
+ IDENTIFIER global:{securityExchanges simple-negotiation-se(3)}
+}
+
+offeredIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 1
+}
+
+acceptedIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 2
+}
+
+Negotiation-SEI ::= SEQUENCE OF OBJECT IDENTIFIER
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn
new file mode 100644
index 0000000000..db2725c37d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn
@@ -0,0 +1,212 @@
+-- Module GulsSecurityTransformations (X.830:04/1995)
+
+GulsSecurityTransformations {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityTransformations(3)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityTransformations, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, SecurityIdentity
+ FROM Notation notation
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- ***************************************
+-- Notation for specifying key information
+-- ***************************************
+KEY-INFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying key information relating to particular classes
+ -- of protection mechanisms (e.g. symmetric, asymmetric).
+ -- It may be useful in defining various security transformations.
+ {
+ &kiClass CHOICE {local INTEGER,
+ -- local objects can only be defined within this
+ -- ASN.1 module.
+ global OBJECT IDENTIFIER
+ -- global objects are defined elsewhere
+ } UNIQUE,
+ &KiType
+}WITH SYNTAX {KEY-INFO-CLASS &kiClass
+ KEY-INFO-TYPE &KiType
+}
+
+symmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:0
+ KEY-INFO-TYPE
+ SEQUENCE {entityId SecurityIdentity,
+ keyIdentifier INTEGER}
+}
+
+asymmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:1
+ KEY-INFO-TYPE
+ SEQUENCE {issuerCAName SecurityIdentity OPTIONAL,
+ certSerialNumber INTEGER OPTIONAL,
+ signerName SecurityIdentity OPTIONAL,
+ keyIdentifier BIT STRING OPTIONAL}
+}
+
+-- *******************************************
+-- Directory ENCRYPTED Security Transformation
+-- *******************************************
+dirEncryptedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-encrypted(1)}
+ -- This transformation transforms a string of octets to a
+ -- new bit string using an encipherment process.
+ INITIAL-ENCODING-RULES {joint-iso-itu-t asn1(1) ber(1)}
+ XFORMED-DATA-TYPE BIT STRING
+}
+
+-- ****************************************
+-- Directory SIGNED Security Transformation
+-- ****************************************
+dirSignedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signed(2)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {toBeSigned
+ ABSTRACT-SYNTAX.&Type
+ (CONSTRAINED BY {
+
+ -- this type is constrained to being the to-be-signed type -- }),
+ algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- *******************************************
+-- Directory SIGNATURE Security Transformation
+-- *******************************************
+dirSignatureTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signature(3)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- ***********************************
+-- GULS SIGNED Security Transformation
+-- ***********************************
+gulsSignedTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signed(4)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {intermediateValue
+ EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ -- The transfer syntax to be used is that
+ -- indicated by the initEncRules value within
+ -- the intermediate value -- })PRESENT
+ }),
+ data-value (CONTAINING IntermediateType{{SupportedKIClasses}})
+
+ -- The data value encoded is a value of type
+ -- IntermediateType
+ }),
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.4 of DIS 11586-1 -- })
+ }
+}
+
+IntermediateType{KEY-INFORMATION:SupportedKIClasses} ::= SEQUENCE {
+ unprotectedItem ABSTRACT-SYNTAX.&Type-- this type is constrained to being
+ -- the type of the unprotected item, or
+ -- BIT STRING if the unprotected item is
+ -- not derived from an ASN.1 abstract
+ -- syntax --,
+ initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm
+ -- parameters.
+ keyInformation
+ SEQUENCE {kiClass KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo KEY-INFORMATION.&KiType({SupportedKIClasses}{@.kiClass})
+ } OPTIONAL
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+}
+
+-- **************************************
+-- GULS SIGNATURE Security Transformation
+-- **************************************
+gulsSignatureTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signature(5)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT
+ {joint-iso-itu-t asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm parameters.
+ keyInformation
+ SEQUENCE {kiClass
+ KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo
+ KEY-INFORMATION.&KiType
+ ({SupportedKIClasses}{@.kiClass})} OPTIONAL,
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.5 of DIS 11586-1 -- })
+ }
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn b/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn
new file mode 100644
index 0000000000..4e0084b079
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn
@@ -0,0 +1,123 @@
+-- Module HierarchicalOperationalBindings (X.518 TC2:08/1997)
+
+HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1)
+ hierarchicalOperationalBindings(20) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations,
+ directoryOperationalBindingTypes, opBindingManagement, dsp
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, RelativeDistinguishedName, DistinguishedName
+ FROM InformationFramework informationFramework
+ MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ directorySystemAC
+ FROM DirectorySystemProtocol dsp
+ OPERATIONAL-BINDING
+ FROM OperationalBindingManagement opBindingManagement
+ id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical
+ FROM DirectoryOperationalBindingTypes directoryOperationalBindingTypes;
+
+-- types
+HierarchicalAgreement ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ immediateSuperior [1] DistinguishedName
+}
+
+NonSpecificHierarchicalAgreement ::= SEQUENCE {
+ immediateSuperior [1] DistinguishedName
+}
+
+SuperiorToSubordinate ::= SEQUENCE {
+ contextPrefixInfo [0] DITcontext,
+ entryInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ immediateSuperiorInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL
+}
+
+DITcontext ::= SEQUENCE OF Vertex
+
+Vertex ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ admPointInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [2] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL,
+ accessPoints [3] MasterAndShadowAccessPoints OPTIONAL
+}
+
+SubentryInfo ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ info [1] SET OF Attribute
+}
+
+SubordinateToSuperior ::= SEQUENCE {
+ accessPoints [0] MasterAndShadowAccessPoints OPTIONAL,
+ alias [1] BOOLEAN DEFAULT FALSE,
+ entryInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+SuperiorToSubordinateModification ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSuperiorToSubordinate ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSubordinateToSuperior ::= SEQUENCE {
+ accessPoint [0] MasterAndShadowAccessPoints OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+-- operational binding information objects
+hierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT HierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SuperiorToSubordinateModification
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-hierarchical
+}
+
+nonSpecificHierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT NonSpecificHierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSuperiorToSubordinate
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-non-specific-hierarchical
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn
new file mode 100644
index 0000000000..3fec8ae64a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn
@@ -0,0 +1,148 @@
+-- Module IPMSAbstractService (X.420:06/1999)
+IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AutoForwardComment, Heading, InformationObject, IPM, NRN, ON, RN
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-pt-management, id-pt-origination, id-pt-reception
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, MessageDeliveryEnvelope,
+ MessageSubmissionEnvelope, MessageSubmissionIdentifier,
+ MessageSubmissionTime, ORName, PORT, ProbeSubmissionEnvelope,
+ ProbeSubmissionIdentifier, ProbeSubmissionTime,
+ recipient-improperly-specified, ReportDeliveryEnvelope,
+ SupplementaryInformation
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Ports
+origination PORT ::= {
+ CONSUMER INVOKES
+ {originate-probe | originate-ipm | originate-rn | originate-on}
+ ID id-pt-origination
+}
+
+reception PORT ::= {
+ SUPPLIER INVOKES
+ {receive-report | receive-ipm | receive-rn | receive-nrn | receive-on}
+ ID id-pt-reception
+}
+
+management PORT ::= {
+ CONSUMER INVOKES
+ {change-auto-discard | change-auto-acknowledgment | change-auto-forwarding}
+ ID id-pt-management
+}
+
+-- Origination abstract operations
+originate-probe ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] ProbeSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] ProbeSubmissionIdentifier,
+ submission-time [1] ProbeSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] RN}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] ON}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Reception abstract operations
+receive-report ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {envelope [0] ReportDeliveryEnvelope,
+ undelivered-object [1] InformationObject OPTIONAL}
+}
+
+receive-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] IPM}
+}
+
+receive-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] RN}
+}
+
+receive-nrn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] NRN}
+}
+
+receive-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] ON}
+}
+
+-- Management abstract operations
+change-auto-discard ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-discard-expired-IPMs [0] BOOLEAN,
+ auto-discard-obsolete-IPMs [1] BOOLEAN}
+}
+
+change-auto-acknowledgment ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-acknowledge-IPMs [0] BOOLEAN,
+ auto-acknowledge-suppl-receipt-info
+ [1] SupplementaryInformation OPTIONAL}
+ ERRORS {subscription-error}
+}
+
+change-auto-forwarding ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-forward-IPMs [0] BOOLEAN,
+ auto-forward-recipients [1] SEQUENCE OF ORName OPTIONAL,
+ auto-forward-heading [2] Heading OPTIONAL,
+ auto-forward-comment [3] AutoForwardComment OPTIONAL}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Abstract errors
+subscription-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] SubscriptionProblem}
+}
+
+SubscriptionProblem ::= ENUMERATED {
+ ipms-eos-not-subscribed(0), mts-eos-not-subscribed(1)}
+
+END -- of IPMSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn
new file mode 100644
index 0000000000..8c0c8138e2
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn
@@ -0,0 +1,234 @@
+-- Module IPMSAutoActionTypes (X.420:06/1999)
+IPMSAutoActionTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) auto-actions(13)
+ version-1999(1)} DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AdviceNotifications, AutoForwardComment, BodyPart, Heading, IA5TextBodyPart,
+ IPMSExtension, SupplReceiptInfoField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Upper Bounds
+ ub-ipm-identifier-suffix
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-aa-ipm-auto-acknowledgement, id-aa-ipm-auto-advise,
+ id-aa-ipm-auto-correlate, id-aa-ipm-auto-discard,
+ id-aae-auto-discard-error, id-aae-auto-forwarding-loop,
+ id-aae-duplicate-ipn
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Auto-action information object class
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS Abstract Service data-types and abstract-errors
+ Filter, EntryInformationSelection, ms-extension-error, MSSubmissionOptions,
+ service-error
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS object identifier
+ id-act-ipm-auto-forward
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service data-types and abstract-errors
+ ContentIdentifier, DeferredDeliveryTime, element-of-service-not-subscribed,
+ ExplicitConversion, ExtensionField{}, inconsistent-request,
+ MessageSubmissionEnvelope, originator-invalid, OriginatorName,
+ OriginatorReportRequest, PerMessageIndicators,
+ PerMessageSubmissionExtensions, PerRecipientMessageSubmissionExtensions,
+ Priority, recipient-improperly-specified, RecipientName, remote-bind-error,
+ security-error, submission-control-violated, unsupported-critical-function
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS upper bounds
+ ub-recipients
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- IPM auto-actions information object set
+IPMAutoActions AUTO-ACTION ::=
+ {ipm-auto-forward, ... -- 1994 extension additions --,
+ ipm-auto-acknowledgement | ipm-auto-correlate | ipm-auto-discard |
+ ipm-auto-advise}
+
+-- Auto-actions
+ipm-auto-forward AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS
+ CHOICE {ipm-auto-forward-registration-parameter
+ IPMAutoForwardRegistrationParameter-- used in 1994 Application Contexts only -- ,
+ auto-forward-registration-parameter-88
+ AutoForwardRegistrationParameter88
+ } -- used in 1988 Application Contexts only
+ ERRORS
+ {auto-forwarding-loop | element-of-service-not-subscribed |
+ inconsistent-request | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated |
+ unsupported-critical-function, ...}
+ IDENTIFIED BY id-act-ipm-auto-forward
+}
+
+-- Auto-forward 1994
+IPMAutoForwardRegistrationParameter ::= SEQUENCE {
+ filter [0] Filter OPTIONAL,
+ forwarding-envelope [1] MessageSubmissionEnvelope,
+ forwarding-heading [2] Heading,
+ forwarding-cover-note [3] BodyPart OPTIONAL,
+ submission-options [4] MSSubmissionOptions OPTIONAL,
+ nrn-comment [5] AutoForwardComment OPTIONAL,
+ ipm-auto-forward-options [6] IPMAutoForwardOptions DEFAULT {}
+}
+
+IPMAutoForwardOptions ::= BIT STRING {
+ forward-all-object-types(0), -- forward-all-object-types 'one', forward IPMs only 'zero'
+ include-returned-content(1), -- include-returned-content 'one', exclude 'zero'
+ include-returned-ipm(2), -- include-returned-ipm 'one', exclude 'zero'
+ forwarded-content-prohibited(3), -- forwarded-content-prohibited 'one', allowed'zero'
+ preserve-retrieval-status(4), -- preserve-retrieval-status 'one', change 'zero'
+ delete-delivered-object(5)
+} -- delete-delivered-object 'one', no deletion 'zero'
+
+-- Auto-forward 1988
+AutoForwardRegistrationParameter88 ::= SET {
+ filter [0] Filter OPTIONAL,
+ auto-forward-arguments [1] AutoForwardArguments,
+ delete-after-auto-forwarding [2] BOOLEAN DEFAULT FALSE,
+ forwarding-information [3] EncodedForwardingInformation
+}
+
+AutoForwardArguments ::= SET {
+ COMPONENTS OF PerMessageAutoForwardFields,
+ per-recipient-fields
+ [1] IMPLICIT SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientAutoForwardFields
+}
+
+PerMessageAutoForwardFields ::= SET {
+ originator-name OriginatorName,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority OPTIONAL,
+ per-message-indicators PerMessageIndicators OPTIONAL,
+ deferred-delivery-time [0] IMPLICIT DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF ExtensionField{{PerMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientAutoForwardFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] IMPLICIT OriginatorReportRequest,
+ explicit-conversion [1] IMPLICIT ExplicitConversion OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF
+ ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+EncodedForwardingInformation ::=
+ OCTET STRING -- contains ForwardingInformation1988
+
+ForwardingInformation1988 ::= SET {
+ auto-forwarding-comment [0] IMPLICIT AutoForwardComment OPTIONAL,
+ ia5-cover-note [1] IMPLICIT IA5TextBodyPart OPTIONAL,
+ this-ipm-prefix
+ [2] IMPLICIT PrintableString(SIZE (1..ub-ipm-identifier-suffix)) OPTIONAL
+}
+
+--
+ipm-auto-acknowledgement AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAcknowledgementRegistrationParameter
+ ERRORS
+ {originator-invalid | submission-control-violated |
+ element-of-service-not-subscribed | recipient-improperly-specified |
+ remote-bind-error | inconsistent-request | security-error |
+ unsupported-critical-function | duplicate-ipn}
+ IDENTIFIED BY id-aa-ipm-auto-acknowledgement
+}
+
+IPMAutoAcknowledgementRegistrationParameter ::= SET {
+ auto-acknowledge-suppl-receipt-info [0] SupplReceiptInfoField OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL
+}
+
+--
+ipm-auto-correlate AUTO-ACTION ::= {IDENTIFIED BY id-aa-ipm-auto-correlate
+}
+
+--
+ipm-auto-discard AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoDiscardRegistrationParameter
+ ERRORS
+ {submission-control-violated | ipm-auto-discard-error | originator-invalid
+ | recipient-improperly-specified | inconsistent-request | security-error
+ | unsupported-critical-function | remote-bind-error |
+ element-of-service-not-subscribed}
+ IDENTIFIED BY id-aa-ipm-auto-discard
+}
+
+IPMAutoDiscardRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL,
+ auto-discard-expired-ipms [2] BOOLEAN,
+ auto-discard-obsoleted-ipms [3] BOOLEAN,
+ restrict-obsoleting-to-originator [4] BOOLEAN
+}
+
+--
+ipm-auto-advise AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAdviseRegistrationParameter
+ ERRORS
+ {inconsistent-request | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified | remote-bind-error |
+ security-error | submission-control-violated |
+ unsupported-critical-function}
+ IDENTIFIED BY id-aa-ipm-auto-advise
+}
+
+IPMAutoAdviseRegistrationParameter ::= SET {
+ enabled [0] BOOLEAN DEFAULT TRUE,
+ filter [1] Filter OPTIONAL,
+ advice-notifications
+ [2] SET OF IPMSExtension{{AdviceNotifications}},
+ suppress-subsequent-notifications [3] BOOLEAN DEFAULT TRUE,
+ use-ipm-if-an-not-supported [4] BOOLEAN DEFAULT FALSE,
+ submission-options [5] MSSubmissionOptions OPTIONAL
+}
+
+-- IPM auto-action-error-table information object set
+IPMAutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {... -- 1994 extension additions --, auto-forwarding-loop | duplicate-ipn |
+ element-of-service-not-subscribed | inconsistent-request |
+ ipm-auto-discard-error | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated | unsupported-critical-function}
+
+-- Auto-action-error-types
+auto-forwarding-loop AUTO-ACTION-ERROR ::= {
+ CODE global:id-aae-auto-forwarding-loop
+}
+
+duplicate-ipn AUTO-ACTION-ERROR ::= {CODE global:id-aae-duplicate-ipn
+}
+
+ipm-auto-discard-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SET {problem [0] AutoDiscardProblem}
+ CODE global:id-aae-auto-discard-error
+}
+
+AutoDiscardProblem ::= INTEGER {not-obsoleted-by-originator(0)}
+
+END -- of IPMSAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
new file mode 100644
index 0000000000..9805a6189d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
@@ -0,0 +1,102 @@
+-- Module IPMSExtendedBodyPartTypes (X.420:06/1999)
+IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ BilaterallyDefinedBodyPart, EncryptedData, EncryptedParameters,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileData, G3FacsimileParameters,
+ G4Class1BodyPart, IA5TextData, IA5TextParameters, MessageData,
+ MessageParameters, MixedModeBodyPart, NationallyDefinedBodyPart,
+ TeletexData, TeletexParameters, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-encrypted, id-ep-g3-facsimile, id-ep-ia5-text, id-ep-message,
+ id-ep-teletex, id-ep-videotex, id-et-bilaterally-defined, id-et-encrypted,
+ id-et-g3-facsimile, id-et-g4-class1, id-et-ia5-text, id-et-message,
+ id-et-mixed-mode, id-et-nationally-defined, id-et-teletex, id-et-videotex
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended IA5 Text body part
+ia5-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {IA5TextParameters
+ IDENTIFIED BY id-ep-ia5-text},
+ DATA {IA5TextData
+ IDENTIFIED BY id-et-ia5-text}
+}
+
+-- Extended G3 Facsimile body part
+g3-facsimile-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {G3FacsimileParameters
+ IDENTIFIED BY id-ep-g3-facsimile},
+ DATA {G3FacsimileData
+ IDENTIFIED BY id-et-g3-facsimile}
+}
+
+-- Extended G4 Class 1 body part
+g4-class1-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {G4Class1BodyPart
+ IDENTIFIED BY id-et-g4-class1}
+}
+
+-- Extended Teletex body part
+teletex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {TeletexParameters
+ IDENTIFIED BY id-ep-teletex},
+ DATA {TeletexData
+ IDENTIFIED BY id-et-teletex}
+}
+
+-- Extended Videotex body part
+videotex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VideotexParameters
+ IDENTIFIED BY id-ep-videotex},
+ DATA {VideotexData
+ IDENTIFIED BY id-et-videotex}
+}
+
+-- Extended Encrypted body part
+encrypted-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {EncryptedParameters
+ IDENTIFIED BY id-ep-encrypted},
+ DATA {EncryptedData
+ IDENTIFIED BY id-et-encrypted}
+}
+
+-- Extended Message body part
+message-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-message},
+ DATA {MessageData
+ IDENTIFIED BY id-et-message}
+}
+
+-- Extended Mixed-mode body part
+mixed-mode-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {MixedModeBodyPart
+ IDENTIFIED BY id-et-mixed-mode}
+}
+
+-- Extended Bilaterally Defined body part
+bilaterally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {BilaterallyDefinedBodyPart
+ IDENTIFIED BY id-et-bilaterally-defined}
+}
+
+-- Extended Nationally Defined body part
+nationally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {NationallyDefinedBodyPart
+ IDENTIFIED BY id-et-nationally-defined}
+}
+
+END -- of IPMSExtendedBodyPartTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
new file mode 100644
index 0000000000..b39e03c3b6
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
@@ -0,0 +1,37 @@
+-- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999)
+IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0)
+ extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-general-text, id-et-general-text
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- General Text body part
+general-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {GeneralTextParameters
+ IDENTIFIED BY id-ep-general-text},
+ DATA {GeneralTextData
+ IDENTIFIED BY id-et-general-text}
+}
+
+GeneralTextParameters ::= SET OF CharacterSetRegistration
+
+GeneralTextData ::= GeneralString
+
+CharacterSetRegistration ::= INTEGER(1..32767)
+
+END -- of IPMSExtendedBodyPartTypes2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
new file mode 100644
index 0000000000..171f4b4223
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
@@ -0,0 +1,39 @@
+-- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999)
+IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-voice, id-et-voice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended Voice body part
+voice-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VoiceParameters
+ IDENTIFIED BY id-ep-voice},
+ DATA {VoiceData
+ IDENTIFIED BY id-et-voice}
+}
+
+VoiceParameters ::= SEQUENCE {
+ voice-message-duration [0] INTEGER OPTIONAL, -- In seconds
+ voice-encoding-type [1] OBJECT IDENTIFIER,
+ supplementary-information [2] IA5String OPTIONAL
+}
+
+VoiceData ::= OCTET STRING
+
+END -- of IPMSExtendedVoiceBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
new file mode 100644
index 0000000000..59de6d1b04
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
@@ -0,0 +1,253 @@
+-- Module IPMSFileTransferBodyPartType (X.420:06/1999)
+IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ file-transfer-body-part-type(9)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- FTAM Attribute Types
+ Attribute-Extensions, Concurrency-Access, Date-and-Time-Attribute,
+ Legal-Qualification-Attribute, Object-Availability-Attribute,
+ Object-Size-Attribute, Pathname, Permitted-Actions-Attribute,
+ Private-Use-Attribute
+ --==
+ FROM ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)}
+ -- ACSE definitions of AP-title and AE-qualifier
+ AE-qualifier, AP-title
+ --==
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, ExtensionsField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-file-transfer, id-et-file-transfer
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ORName
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- File Transfer body part
+file-transfer-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {FileTransferParameters
+ IDENTIFIED BY id-ep-file-transfer},
+ DATA {FileTransferData
+ IDENTIFIED BY id-et-file-transfer}
+}
+
+FileTransferParameters ::= SEQUENCE {
+ related-stored-file [0] RelatedStoredFile OPTIONAL,
+ contents-type
+ [1] ContentsTypeParameter
+ DEFAULT
+ document-type:
+ {document-type-name
+ {iso standard 8571 document-type(5) unstructured-binary(3)}},
+ environment [2] EnvironmentParameter OPTIONAL,
+ compression [3] CompressionParameter OPTIONAL,
+ file-attributes [4] FileAttributes OPTIONAL,
+ extensions [5] ExtensionsField OPTIONAL
+}
+
+FileTransferData ::= SEQUENCE OF EXTERNAL
+
+-- This conveys a sequence of data values representing file contents;
+-- The rules for generating this sequence are implied by the value of the contents-type parameter.
+RelatedStoredFile ::=
+ SET OF
+ SEQUENCE {file-identifier FileIdentifier,
+ relationship
+ Relationship DEFAULT explicit-relationship:unspecified
+ }
+
+FileIdentifier ::= CHOICE {
+ pathname-and-version [0] PathnameandVersion,
+ cross-reference [1] CrossReference
+}
+
+PathnameandVersion ::= SEQUENCE {
+ pathname [0] Pathname-Attribute,
+ file-version [1] GraphicString OPTIONAL
+}
+
+CrossReference ::= SEQUENCE {
+ application-cross-reference [0] OCTET STRING,
+ message-reference [1] MessageReference OPTIONAL,
+ body-part-reference [2] INTEGER OPTIONAL
+}
+
+MessageReference ::= SET {
+ user [0] ORName OPTIONAL,
+ -- Defined in 8.5.5 of ITU-T Rec. X.411 | ISO/IEC 10021-4
+ user-relative-identifier [1] PrintableString
+}
+
+Relationship ::= CHOICE {
+ explicit-relationship [0] ExplicitRelationship,
+ descriptive-relationship [1] GraphicString
+}
+
+ExplicitRelationship ::= INTEGER {
+ unspecified(0), new-file(1), replacement(2), extension(3)}
+
+ContentsTypeParameter ::= Contents-Type-Attribute
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] SEQUENCE {document-type-name Document-Type-Name,
+ parameter [0] DOCUMENT-PARAMETER.&Type OPTIONAL
+ },
+ -- The actual types to be used for values of the parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-syntax
+ [1] SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-syntax-name Abstract-Syntax-Name}
+}
+
+Document-Type-Name ::= OBJECT IDENTIFIER
+
+DOCUMENT-PARAMETER ::= CLASS {&Type
+}
+
+Constraint-Set-Name ::= OBJECT IDENTIFIER
+
+Abstract-Syntax-Name ::= OBJECT IDENTIFIER
+
+EnvironmentParameter ::= SEQUENCE {
+ application-reference [0] GeneralIdentifier OPTIONAL,
+ machine [1] GeneralIdentifier OPTIONAL,
+ operating-system [2] OBJECT IDENTIFIER OPTIONAL,
+ user-visible-string [3] SEQUENCE OF GraphicString OPTIONAL
+}
+
+GeneralIdentifier ::= CHOICE {
+ registered-identifier [0] OBJECT IDENTIFIER,
+ descriptive-identifier [1] SEQUENCE OF GraphicString
+}
+
+CompressionParameter ::= SEQUENCE {
+ compression-algorithm-id
+ [0] COMPRESSION-ALGORITHM.&id({CompressionAlgorithmTable}),
+ compression-algorithm-param
+ [1] COMPRESSION-ALGORITHM.&Type
+ ({CompressionAlgorithmTable}{@compression-algorithm-id})
+}
+
+COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER
+
+CompressionAlgorithmTable COMPRESSION-ALGORITHM ::=
+ {...}
+
+FileAttributes ::= SEQUENCE {
+ pathname Pathname-Attribute OPTIONAL,
+ permitted-actions
+ [1] Permitted-Actions-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-of-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ legal-qualifications
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ attribute-extensions
+ [22] Attribute-Extensions OPTIONAL
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] Pathname,
+ complete-pathname [23] Pathname
+}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute
+ actual-values Account
+}
+
+Account ::= GraphicString
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values User-Identity
+}
+
+User-Identity ::= GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values [1] SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute are described in ISO 8571-2
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] Access-Request,
+ concurrency-access [1] Concurrency-Access OPTIONAL,
+ identity [2] User-Identity OPTIONAL,
+ passwords [3] Access-Passwords OPTIONAL,
+ location [4] Application-Entity-Title OPTIONAL
+}
+
+Access-Request ::= BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-object(7)}
+
+Access-Passwords ::= SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] Pass-Passwords,
+ link-password [9] Password
+}
+
+Password ::= CHOICE {
+ graphic-string GraphicString,
+ octet-string OCTET STRING
+}
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+Application-Entity-Title ::= SEQUENCE {
+ ap-title AP-title,
+ ae-qualifier AE-qualifier
+}
+
+END -- of IPMSFileTransferBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
new file mode 100644
index 0000000000..57faac6587
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
@@ -0,0 +1,53 @@
+-- Module IPMSForwardedContentBodyPartType (X.420:06/1999)
+IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime,
+ MessageSubmissionEnvelope, OriginatingMTACertificate,
+ OtherMessageDeliveryFields, ProofOfSubmission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-content, id-et-content
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Forwarded Content body part
+content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::=
+ {
+ PARAMETERS
+ {ForwardedContentParameters
+ IDENTIFIED BY {id-ep-content content-type}},
+ DATA {Content
+ IDENTIFIED BY {id-et-content content-type}}
+}
+
+ForwardedContentParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL,
+ mts-identifier [2] MessageDeliveryIdentifier OPTIONAL,
+ submission-proof [3] SubmissionProof OPTIONAL
+}
+
+SubmissionProof ::= SET {
+ proof-of-submission [0] ProofOfSubmission,
+ originating-MTA-certificate [1] OriginatingMTACertificate,
+ message-submission-envelope MessageSubmissionEnvelope
+}
+
+END -- of IPMSForwardedContentBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
new file mode 100644
index 0000000000..4e46c7679b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
@@ -0,0 +1,41 @@
+-- Module IPMSForwardedReportBodyPartType (X.420:06/1999)
+IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-report-body-part-type(12)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ ReportDeliveryArgument
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, IPN, MessageParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-notification, id-et-report, id-et-notification
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Report body part
+report-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ReportDeliveryArgument
+ IDENTIFIED BY id-et-report}
+}
+
+-- Notification body part
+notification-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-notification},
+ DATA {IPN IDENTIFIED BY id-et-notification}
+}
+
+END -- of IPMSForwardedReportBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn
new file mode 100644
index 0000000000..09ef4de282
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn
@@ -0,0 +1,47 @@
+-- Module IPMSFunctionalObjects (X.420:06/1999)
+IPMSFunctionalObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ functional-objects(1) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Abstract Service
+ management, origination, reception
+ --==
+ FROM IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)}
+ -- IPMS Object Identifiers
+ id-ot-ipms, id-ot-ipms-user
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ MHS-OBJECT
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- Primary object types
+ipms-user MHS-OBJECT ::= {
+ INITIATES {ipms-access-contract}
+ ID id-ot-ipms-user
+}
+
+ipms-access-contract CONTRACT ::= {
+ INITIATOR CONSUMER OF {origination | reception | management}
+}
+
+ipms MHS-OBJECT ::= {RESPONDS {ipms-access-contract}
+ ID id-ot-ipms
+}
+
+END -- of IPMSFunctionalObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn
new file mode 100644
index 0000000000..752e8d05e1
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn
@@ -0,0 +1,246 @@
+-- Module IPMSHeadingExtensions (X.420:06/1999)
+IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- MTS Abstract Service
+ ExtendedCertificates, SecurityLabel, UniversalOrBMPString{}
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, SIGNATURE{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS upper bounds
+ ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes,
+ ub-extended-subject-length, ub-information-categories,
+ ub-information-category-length, ub-manual-handling-instruction-length,
+ ub-manual-handling-instructions, ub-originators-reference-length,
+ ub-precedence
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-hex-authorization-time, id-hex-auto-submitted,
+ id-hex-body-part-signatures, id-hex-circulation-list-recipients,
+ id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy,
+ id-hex-information-category, id-hex-ipm-security-label, id-hex-languages,
+ id-hex-manual-handling-instructions, id-hex-originators-reference,
+ id-hex-precedence-policy-id, id-rex-circulation-list-indicator,
+ id-rex-precedence
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Incomplete Copy
+incomplete-copy IPMS-EXTENSION ::= {
+ VALUE IncompleteCopy,
+ IDENTIFIED BY id-hex-incomplete-copy
+}
+
+IncompleteCopy ::= NULL
+
+-- Languages
+languages IPMS-EXTENSION ::= {
+ VALUE SET OF Language,
+ IDENTIFIED BY id-hex-languages
+}
+
+Language ::= PrintableString(SIZE (2 | 5))
+
+-- Auto-submitted
+auto-submitted IPMS-EXTENSION ::= {
+ VALUE AutoSubmitted,
+ IDENTIFIED BY id-hex-auto-submitted
+}
+
+AutoSubmitted ::= ENUMERATED {
+ not-auto-submitted(0), auto-generated(1), auto-replied(2)}
+
+body-part-signatures IPMS-EXTENSION ::= {
+ VALUE BodyPartSignatures,
+ IDENTIFIED BY id-hex-body-part-signatures
+}
+
+BodyPartSignatures ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-signature BodyPartSignature,
+ originator-certificate-selector [1] CertificateAssertion OPTIONAL,
+ originator-certificates [0] ExtendedCertificates OPTIONAL,
+ ...}
+
+BodyPartNumber ::= INTEGER(1..MAX)
+
+BodyPartSignature ::=
+ SIGNATURE
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ body-part BodyPart,
+ body-part-security-label SecurityLabel OPTIONAL
+ }}
+
+ipm-security-label IPMS-EXTENSION ::= {
+ VALUE IPMSecurityLabel,
+ IDENTIFIED BY id-hex-ipm-security-label
+}
+
+IPMSecurityLabel ::= SEQUENCE {
+ content-security-label [0] SecurityLabel,
+ heading-security-label [1] SecurityLabel OPTIONAL,
+ body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL
+}
+
+BodyPartSecurityLabel ::= CHOICE {
+ body-part-unlabelled [0] NULL,
+ body-part-security-label [1] SecurityLabel
+}
+
+-- Authorization Time
+authorization-time IPMS-EXTENSION ::= {
+ VALUE AuthorizationTime,
+ IDENTIFIED BY id-hex-authorization-time
+}
+
+AuthorizationTime ::= GeneralizedTime
+
+-- Circulation List
+circulation-list-recipients IPMS-EXTENSION ::= {
+ VALUE CirculationList,
+ IDENTIFIED BY id-hex-circulation-list-recipients
+}
+
+CirculationList ::=
+ SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember
+
+CirculationMember ::= SET {
+ circulation-recipient
+ RecipientSpecifier
+ (WITH COMPONENTS {
+ ...,
+ recipient (WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+ }),
+ checked Checkmark OPTIONAL
+}
+
+Checkmark ::= CHOICE {
+ simple NULL,
+ timestamped CirculationTime,
+ signed CirculationSignature
+}
+
+CirculationTime ::= GeneralizedTime
+
+CirculationSignature ::=
+ SIGNED
+ {SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier,
+ this-IPM ThisIPMField,
+ timestamp CirculationTime}}
+
+CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Circulation List Indicator
+circulation-list-indicator IPMS-EXTENSION ::= {
+ VALUE NULL,
+ IDENTIFIED BY id-rex-circulation-list-indicator
+}
+
+-- Distribution Codes
+distribution-codes IPMS-EXTENSION ::= {
+ VALUE DistributionCodes,
+ IDENTIFIED BY id-hex-distribution-codes
+}
+
+DistributionCodes ::=
+ SEQUENCE (SIZE (1..ub-distribution-codes)) OF DistributionCode
+
+DistributionCode ::= SEQUENCE {
+ oid-code OBJECT IDENTIFIER OPTIONAL,
+ alphanumeric-code AlphaCode OPTIONAL,
+ or-descriptor [0] ORDescriptor OPTIONAL
+}
+
+AlphaCode ::= UniversalOrBMPString{ub-alpha-code-length}
+
+-- Extended Subject
+extended-subject IPMS-EXTENSION ::= {
+ VALUE ExtendedSubject,
+ IDENTIFIED BY id-hex-extended-subject
+}
+
+ExtendedSubject ::= UniversalOrBMPString{ub-extended-subject-length}
+
+-- Information category
+information-category IPMS-EXTENSION ::= {
+ VALUE InformationCategories,
+ IDENTIFIED BY id-hex-information-category
+}
+
+InformationCategories ::=
+ SEQUENCE (SIZE (1..ub-information-categories)) OF InformationCategory
+
+InformationCategory ::= SEQUENCE {
+ reference [0] OBJECT IDENTIFIER OPTIONAL,
+ description [1] DescriptionString OPTIONAL
+}
+
+DescriptionString ::= UniversalOrBMPString{ub-information-category-length}
+
+-- Manual handling Instructions
+manual-handling-instructions IPMS-EXTENSION ::= {
+ VALUE ManualHandlingInstructions,
+ IDENTIFIED BY id-hex-manual-handling-instructions
+}
+
+ManualHandlingInstructions ::=
+ SEQUENCE (SIZE (1..ub-manual-handling-instructions)) OF
+ ManualHandlingInstruction
+
+ManualHandlingInstruction ::=
+ UniversalOrBMPString{ub-manual-handling-instruction-length}
+
+-- Originator's Reference
+originators-reference IPMS-EXTENSION ::= {
+ VALUE OriginatorsReference,
+ IDENTIFIED BY id-hex-originators-reference
+}
+
+OriginatorsReference ::= UniversalOrBMPString{ub-originators-reference-length}
+
+-- Precedence Policy Identifier
+precedence-policy-identifier IPMS-EXTENSION ::= {
+ VALUE PrecedencePolicyIdentifier,
+ IDENTIFIED BY id-hex-precedence-policy-id
+}
+
+PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER
+
+-- Precedence
+precedence IPMS-EXTENSION ::= {
+ VALUE Precedence,
+ IDENTIFIED BY id-rex-precedence
+}
+
+Precedence ::= INTEGER(0..ub-precedence)
+
+END -- of IPMSHeadingExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn
new file mode 100644
index 0000000000..3fb0463ee7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn
@@ -0,0 +1,626 @@
+-- Module IPMSInformationObjects (X.420:06/1999)
+IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Extended Body Parts
+ bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
+ g4-class1-body-part, ia5-text-body-part, message-body-part,
+ mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
+ videotex-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)}
+ general-text-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7)
+ modules(0) extended-body-part-types-2(1)}
+ file-transfer-body-part
+ --==
+ FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) file-transfer-body-part-type(9)}
+ voice-body-part
+ --==
+ FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) extended-voice-body-part-type(11)}
+ notification-body-part, report-body-part
+ --==
+ FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-report-body-part-type(12)}
+ content-body-part{}
+ --==
+ FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-content-body-part-type(15)}
+ pkcs7-body-part
+ --==
+ FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)}
+ -- IPMS Heading Extensions
+ authorization-time, auto-submitted, body-part-signatures,
+ circulation-list-indicator, circulation-list-recipients,
+ distribution-codes, extended-subject, incomplete-copy,
+ information-category, ipm-security-label, languages,
+ manual-handling-instructions, originators-reference, precedence,
+ precedence-policy-identifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ body-part-encryption-token, BodyPartTokens, forwarded-content-token,
+ ForwardedContentToken, ipn-security-response, recipient-security-request
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Upper bounds
+ ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
+ ub-subject-field, ub-telephone-number
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- ODIF
+ Interchange-Data-Element
+ --==
+ FROM Interchange-Data-Elements {2 8 1 5 5}
+ -- MTS Abstract Service
+ EncodedInformationTypes, ExtendedCertificates, EXTENSION,
+ G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
+ OtherMessageDeliveryFields, SupplementaryInformation,
+ TeletexNonBasicParameters
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MS Abstract Service
+ MS-EXTENSION, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- IPMS Object Identifiers
+ id-mst-assembly-capability, id-mst-assembly-instructions,
+ id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
+ id-mst-originator-body-part-encryption-token,
+ id-mst-originator-forwarded-content-token,
+ id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
+ id-on-absence-advice, id-on-change-of-address-advice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+Time ::= UTCTime
+
+-- Information object
+InformationObject ::= CHOICE {ipm [0] IPM,
+ ipn [1] IPN
+}
+
+-- IPM
+IPM ::= SEQUENCE {heading Heading,
+ body Body
+}
+
+-- MTS Extensions
+IPMPerRecipientEnvelopeExtensions EXTENSION ::=
+ {blind-copy-recipients | body-part-encryption-token |
+ forwarded-content-token, ...}
+
+-- IPMS Extensions
+IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type IPMS-EXTENSION.&id({ChosenFrom}),
+ value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Type DEFAULT NULL
+}WITH SYNTAX {[VALUE &Type,]
+ IDENTIFIED BY &id
+}
+
+PrivateIPMSExtensions IPMS-EXTENSION ::=
+ {...}
+
+-- Heading
+Heading ::= SET {
+ this-IPM ThisIPMField,
+ originator [0] OriginatorField OPTIONAL,
+ authorizing-users [1] AuthorizingUsersField OPTIONAL,
+ primary-recipients [2] PrimaryRecipientsField DEFAULT {},
+ copy-recipients [3] CopyRecipientsField DEFAULT {},
+ blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL,
+ replied-to-IPM [5] RepliedToIPMField OPTIONAL,
+ obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {},
+ related-IPMs [7] RelatedIPMsField DEFAULT {},
+ subject [8] EXPLICIT SubjectField OPTIONAL,
+ expiry-time [9] ExpiryTimeField OPTIONAL,
+ reply-time [10] ReplyTimeField OPTIONAL,
+ reply-recipients [11] ReplyRecipientsField OPTIONAL,
+ importance [12] ImportanceField DEFAULT normal,
+ sensitivity [13] SensitivityField OPTIONAL,
+ auto-forwarded [14] AutoForwardedField DEFAULT FALSE,
+ extensions [15] ExtensionsField DEFAULT {}
+}
+
+-- Heading component types
+IPMIdentifier ::= [APPLICATION 11] SET {
+ user ORName OPTIONAL,
+ user-relative-identifier LocalIPMIdentifier
+}
+
+LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
+
+RecipientSpecifier ::= SET {
+ recipient [0] ORDescriptor,
+ notification-requests [1] NotificationRequests DEFAULT {},
+ reply-requested [2] BOOLEAN DEFAULT FALSE,
+ recipient-extensions [3] RecipientExtensionsField OPTIONAL
+}
+
+ORDescriptor ::= SET {
+ formal-name ORName OPTIONAL,
+ free-form-name [0] FreeFormName OPTIONAL,
+ telephone-number [1] TelephoneNumber OPTIONAL
+}
+
+FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
+
+TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
+
+NotificationRequests ::= BIT STRING {
+ rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
+
+RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}}
+
+RecipientExtensions IPMS-EXTENSION ::=
+ {circulation-list-indicator | precedence | recipient-security-request |
+ PrivateIPMSExtensions, ...}
+
+-- This IPM heading field
+ThisIPMField ::= IPMIdentifier
+
+-- Originator heading field
+OriginatorField ::= ORDescriptor
+
+-- Authorizing Users heading field
+AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
+
+AuthorizingUsersSubfield ::= ORDescriptor
+
+-- Primary Recipients heading field
+PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
+
+PrimaryRecipientsSubfield ::= RecipientSpecifier
+
+-- Copy Recipients heading field
+CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
+
+CopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients heading field
+BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
+
+BlindCopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients envelope field
+blind-copy-recipients EXTENSION ::= {
+ BlindCopyRecipientsField,
+ IDENTIFIED BY standard-extension:41
+}
+
+-- Replied-to IPM heading field
+RepliedToIPMField ::= IPMIdentifier
+
+-- Obsoleted IPMs heading field
+ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
+
+ObsoletedIPMsSubfield ::= IPMIdentifier
+
+-- Related IPMs heading field
+RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
+
+RelatedIPMsSubfield ::= IPMIdentifier
+
+-- Subject heading field
+SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
+
+-- Expiry Time heading field
+ExpiryTimeField ::= Time
+
+-- Reply Time heading field
+ReplyTimeField ::= Time
+
+-- Reply Recipients heading field
+ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
+
+ReplyRecipientsSubfield ::=
+ ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+
+-- Importance heading field
+ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
+
+-- Sensitivity heading field
+SensitivityField ::= ENUMERATED {
+ personal(1), private(2), company-confidential(3)}
+
+-- Auto-forwarded heading field
+AutoForwardedField ::= BOOLEAN
+
+-- Extensions heading field
+ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}}
+
+HeadingExtensions IPMS-EXTENSION ::=
+ {authorization-time | auto-submitted | body-part-signatures |
+ circulation-list-recipients | distribution-codes | extended-subject |
+ incomplete-copy | information-category | ipm-security-label | languages |
+ manual-handling-instructions | originators-reference |
+ precedence-policy-identifier | PrivateIPMSExtensions, ...}
+
+-- Body
+Body ::= SEQUENCE OF BodyPart
+
+BodyPart ::= CHOICE {
+ basic
+ CHOICE {ia5-text [0] IA5TextBodyPart,
+ g3-facsimile [3] G3FacsimileBodyPart,
+ g4-class1 [4] G4Class1BodyPart,
+ teletex [5] TeletexBodyPart,
+ videotex [6] VideotexBodyPart,
+ encrypted [8] EncryptedBodyPart,
+ message [9] MessageBodyPart,
+ mixed-mode [11] MixedModeBodyPart,
+ bilaterally-defined [14] BilaterallyDefinedBodyPart,
+ nationally-defined [7] NationallyDefinedBodyPart},
+ extended [15] ExtendedBodyPart{{IPMBodyPartTable}}
+}
+
+-- Extended body part
+ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE {
+ parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ data INSTANCE OF TYPE-IDENTIFIER
+}
+(CONSTRAINED BY { -- must correspond to the &parameters field and &data field of a member of --
+ IPMBodyPartTable})
+
+IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
+ {StandardBodyParts | ApplicationSpecificBodyParts}
+
+StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
+ teletex-body-part | videotex-body-part | encrypted-body-part |
+ message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
+ nationally-defined-body-part | general-text-body-part |
+ file-transfer-body-part | voice-body-part | report-body-part |
+ notification-body-part |
+ content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} |
+ pkcs7-body-part, ...}
+
+ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {--any body part defined in other Specifications, or for proprietary or private use
+ ...}
+
+EXTENDED-BODY-PART-TYPE ::= CLASS {
+ &parameters TYPE-IDENTIFIER OPTIONAL,
+ &data TYPE-IDENTIFIER
+}WITH SYNTAX {[PARAMETERS &parameters,]
+ DATA &data
+}
+
+-- IA5 Text body part
+IA5TextBodyPart ::= SEQUENCE {
+ parameters IA5TextParameters,
+ data IA5TextData
+}
+
+IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5
+}
+
+IA5TextData ::= IA5String
+
+Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
+
+-- G3 Facsimile body part
+G3FacsimileBodyPart ::= SEQUENCE {
+ parameters G3FacsimileParameters,
+ data G3FacsimileData
+}
+
+G3FacsimileParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL
+}
+
+G3FacsimileData ::= SEQUENCE OF BIT STRING
+
+-- G4 Class 1 and Mixed-mode body parts
+G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+-- Teletex body part
+TeletexBodyPart ::= SEQUENCE {
+ parameters TeletexParameters,
+ data TeletexData
+}
+
+TeletexParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ telex-compatible [1] BOOLEAN DEFAULT FALSE,
+ non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL
+}
+
+TeletexData ::= SEQUENCE OF TeletexString
+
+-- Videotex body part
+VideotexBodyPart ::= SEQUENCE {
+ parameters VideotexParameters,
+ data VideotexData
+}
+
+VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL
+}
+
+VideotexSyntax ::= INTEGER {
+ ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
+
+VideotexData ::= VideotexString
+
+-- Encrypted body part
+EncryptedBodyPart ::= SEQUENCE {
+ parameters EncryptedParameters,
+ data EncryptedData
+}
+
+EncryptedParameters ::= SET {
+ algorithm-identifier AlgorithmIdentifier,
+ originator-certificates ExtendedCertificates OPTIONAL,
+ ...
+}
+
+EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
+
+-- Message body part
+MessageBodyPart ::= SEQUENCE {
+ parameters MessageParameters,
+ data MessageData
+}
+
+MessageParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL
+}
+
+MessageData ::= IPM
+
+-- Bilaterally Defined body part
+BilaterallyDefinedBodyPart ::= OCTET STRING
+
+-- Nationally Defined body part
+NATIONAL-BODY-PARTS ::= CLASS {&Type
+}
+
+NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
+
+-- Provided for Historic reasons. Use is strongly deprecated.
+-- IPN
+IPN ::= SET {
+ -- common-fields --COMPONENTS OF CommonFields,
+ choice
+ [0] CHOICE {non-receipt-fields [0] NonReceiptFields,
+ receipt-fields [1] ReceiptFields,
+ other-notification-type-fields
+ [2] OtherNotificationTypeFields}
+}
+
+RN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ receipt-fields PRESENT
+ })
+ })
+
+NRN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ non-receipt-fields PRESENT
+ })
+ })
+
+ON ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ other-notification-type-fields PRESENT
+ })
+ })
+
+CommonFields ::= SET {
+ subject-ipm SubjectIPMField,
+ ipn-originator [1] IPNOriginatorField OPTIONAL,
+ ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL,
+ conversion-eits ConversionEITsField OPTIONAL,
+ notification-extensions [3] NotificationExtensionsField OPTIONAL
+}
+
+NonReceiptFields ::= SET {
+ non-receipt-reason [0] NonReceiptReasonField,
+ discard-reason [1] DiscardReasonField OPTIONAL,
+ auto-forward-comment [2] AutoForwardCommentField OPTIONAL,
+ returned-ipm [3] ReturnedIPMField OPTIONAL,
+ nrn-extensions [4] NRNExtensionsField OPTIONAL
+}
+
+ReceiptFields ::= SET {
+ receipt-time [0] ReceiptTimeField,
+ acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual,
+ suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL,
+ rn-extensions [3] RNExtensionsField OPTIONAL
+}
+
+-- Common fields
+SubjectIPMField ::= IPMIdentifier
+
+IPNOriginatorField ::= ORDescriptor
+
+IPMIntendedRecipientField ::= ORDescriptor
+
+ConversionEITsField ::= EncodedInformationTypes
+
+NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}}
+
+NotificationExtensions IPMS-EXTENSION ::=
+ {ipn-security-response | PrivateIPMSExtensions, ...}
+
+-- Non-receipt fields
+NonReceiptReasonField ::= ENUMERATED {
+ ipm-discarded(0), ipm-auto-forwarded(1), ...
+ }
+
+-- ITU-T version:
+DiscardReasonField ::= ENUMERATED {
+ ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
+ not-used(3)}
+
+-- ISO/IEC version:
+--DiscardReasonField ::= ENUMERATED {
+-- ipm-expired (0),
+-- ipm-obsoleted (1),
+-- user-subscription-terminated (2),
+-- The following value may not be supported by implementations of earlier versions of this Specification
+-- ipm-deleted (3),
+-- ... }
+AutoForwardCommentField ::=
+ AutoForwardComment
+
+AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
+
+ReturnedIPMField ::= IPM
+
+NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}}
+
+NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Receipt fields
+ReceiptTimeField ::= Time
+
+AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
+
+SupplReceiptInfoField ::= SupplementaryInformation
+
+RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}}
+
+RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Other Notification Type fields
+OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}}
+
+OtherNotifications IPMS-EXTENSION ::=
+ {AdviceNotifications | PrivateIPMSExtensions, ...}
+
+AdviceNotifications IPMS-EXTENSION ::=
+ {absence-advice | change-of-address-advice, ...}
+
+-- Advice Notification fields
+absence-advice IPMS-EXTENSION ::= {
+ VALUE AbsenceAdvice,
+ IDENTIFIED BY id-on-absence-advice
+}
+
+AbsenceAdvice ::= SEQUENCE {
+ advice BodyPart OPTIONAL,
+ next-available Time OPTIONAL
+}
+
+-- at least one component shall be present
+change-of-address-advice IPMS-EXTENSION ::= {
+ VALUE ChangeOfAddressAdvice,
+ IDENTIFIED BY id-on-change-of-address-advice
+}
+
+ChangeOfAddressAdvice ::= SEQUENCE {
+ new-address
+ [0] ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ }),
+ effective-from [1] Time OPTIONAL
+}
+
+-- Message Store Realization
+prevent-nrn-generation MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-prevent-nrn-generation
+}
+
+suspend-auto-acknowledgement MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-suspend-auto-acknowledgement
+}
+
+assembly-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-assembly-capability
+}
+
+IPMSubmissionOptions MS-EXTENSION ::=
+ {ipm-assembly-instructions | originator-body-part-encryption-token |
+ originator-forwarded-content-token, ...} -- For future extension additions
+
+ipm-assembly-instructions MS-EXTENSION ::= {
+ IPMAssemblyInstructions
+ IDENTIFIED BY id-mst-assembly-instructions
+}
+
+IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences
+}
+
+BodyPartReferences ::= SEQUENCE OF BodyPartReference
+
+BodyPartReference ::= CHOICE {
+ stored-entry [0] SequenceNumber,
+ stored-content [1] SequenceNumber,
+ submitted-body-part [2] INTEGER(1..MAX),
+ stored-body-part
+ [3] SEQUENCE {message-entry SequenceNumber,
+ body-part-number INTEGER(1..MAX)}
+}
+
+originator-body-part-encryption-token MS-EXTENSION ::= {
+ BodyPartTokens
+ IDENTIFIED BY id-mst-originator-body-part-encryption-token
+}
+
+originator-forwarded-content-token MS-EXTENSION ::= {
+ ForwardedContentToken
+ IDENTIFIED BY id-mst-originator-forwarded-content-token
+}
+
+IPMSubmissionErrors MS-EXTENSION ::=
+ {invalid-assembly-instructions | invalid-ipn, ...
+ } -- For future extension additions
+
+invalid-assembly-instructions MS-EXTENSION ::= {
+ BodyPartReferences
+ IDENTIFIED BY id-mst-invalid-assembly-instructions
+}
+
+invalid-ipn MS-EXTENSION ::= {NULL
+ IDENTIFIED BY id-mst-invalid-ipn
+}
+
+END -- of IPMSInformationObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn
new file mode 100644
index 0000000000..719bca4987
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn
@@ -0,0 +1,1120 @@
+-- Module IPMSMessageStoreAttributes (X.420:06/1999)
+IPMSMessageStoreAttributes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ message-store-attributes(8) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Heading Extensions
+ AuthorizationTime, AutoSubmitted, BodyPartNumber, BodyPartSecurityLabel,
+ BodyPartSignatures, CirculationMember, DistributionCode, ExtendedSubject,
+ IncompleteCopy, InformationCategory, IPMSecurityLabel, Language,
+ ManualHandlingInstruction, OriginatorsReference, Precedence,
+ PrecedencePolicyIdentifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ BodyPartTokens, ForwardedContentToken
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Information Objects
+ AcknowledgmentModeField, AuthorizingUsersSubfield, AutoForwardCommentField,
+ AutoForwardedField, BilaterallyDefinedBodyPart,
+ BlindCopyRecipientsSubfield, Body, ConversionEITsField,
+ CopyRecipientsSubfield, DiscardReasonField, EncryptedBodyPart,
+ EncryptedData, EncryptedParameters, ExpiryTimeField,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileBodyPart, G3FacsimileData,
+ G3FacsimileParameters, G4Class1BodyPart, Heading, IA5TextBodyPart,
+ IA5TextData, IA5TextParameters, ImportanceField, IPMIdentifier,
+ IPMIntendedRecipientField, IPMSExtension{}, IPNOriginatorField,
+ MessageBodyPart, MessageData, MessageParameters, MixedModeBodyPart,
+ NationallyDefinedBodyPart, NonReceiptReasonField, NotificationExtensions,
+ NRNExtensions, ObsoletedIPMsSubfield, ORDescriptor, OriginatorField,
+ OtherNotifications, PrimaryRecipientsSubfield, ReceiptTimeField,
+ RecipientSpecifier, RelatedIPMsSubfield, RepliedToIPMField,
+ ReplyRecipientsSubfield, ReplyTimeField, ReturnedIPMField, RNExtensions,
+ SensitivityField, SubjectField, SubjectIPMField, SupplReceiptInfoField,
+ TeletexBodyPart, TeletexData, TeletexParameters, ThisIPMField,
+ VideotexBodyPart, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-bat-bilaterally-defined-body-parts, id-bat-body,
+ id-bat-encrypted-body-parts, id-bat-encrypted-data,
+ id-bat-encrypted-parameters, id-bat-extended-body-part-types,
+ id-bat-g3-facsimile-body-parts, id-bat-g3-facsimile-data,
+ id-bat-g3-facsimile-parameters, id-bat-g4-class1-body-parts,
+ id-bat-ia5-text-body-parts, id-bat-ia5-text-data,
+ id-bat-ia5-text-parameters, id-bat-message-body-parts, id-bat-message-data,
+ id-bat-message-parameters, id-bat-mixed-mode-body-parts,
+ id-bat-nationally-defined-body-parts, id-bat-teletex-body-parts,
+ id-bat-teletex-data, id-bat-teletex-parameters, id-bat-videotex-body-parts,
+ id-bat-videotex-data, id-bat-videotex-parameters,
+ id-cat-correlated-delivered-ipns, id-cat-correlated-delivered-replies,
+ id-cat-delivered-ipn-summary, id-cat-delivered-replies-summary,
+ id-cat-forwarded-ipms, id-cat-forwarding-ipms, id-cat-ipm-recipients,
+ id-cat-obsoleted-ipms, id-cat-obsoleting-ipms, id-cat-related-ipms,
+ id-cat-relating-ipms, id-cat-replied-to-ipm, id-cat-recipient-category,
+ id-cat-replying-ipms, id-cat-revised-reply-time, id-cat-subject-ipm,
+ id-cat-submitted-ipn-status, id-cat-submitted-ipns,
+ id-cat-submitted-reply-status, id-hat-authorization-time,
+ id-hat-authorizing-users, id-hat-auto-forwarded, id-hat-auto-submitted,
+ id-hat-blind-copy-recipients, id-hat-body-part-encryption-token,
+ id-hat-body-part-security-label,
+ id-hat-body-part-signature-verification-status,
+ id-hat-body-part-signatures, id-hat-circulation-list-recipients,
+ id-hat-copy-recipients, id-hat-distribution-codes, id-hat-expiry-time,
+ id-hat-extended-subject, id-hat-forwarded-content-token,
+ id-hat-forwarding-token, id-hat-heading, id-hat-importance,
+ id-hat-incomplete-copy, id-hat-information-category,
+ id-hat-ipm-security-label, id-hat-languages,
+ id-hat-manual-handling-instructions, id-hat-nrn-requestors,
+ id-hat-obsoleted-IPMs, id-hat-originator, id-hat-originators-reference,
+ id-hat-precedence, id-hat-precedence-policy-id, id-hat-primary-recipients,
+ id-hat-related-IPMs, id-hat-replied-to-IPM, id-hat-reply-recipients,
+ id-hat-reply-requestors, id-hat-reply-time, id-hat-rn-requestors,
+ id-hat-sensitivity, id-hat-subject, id-hat-this-ipm, id-mr-ipm-identifier,
+ id-mr-ipm-location, id-mr-or-descriptor, id-mr-or-descriptor-elements,
+ id-mr-or-descriptor-single-element, id-mr-or-descriptor-substring-elements,
+ id-mr-circulation-member, id-mr-circulation-member-checkmark,
+ id-mr-circulation-member-elements, id-mr-circulation-member-single-element,
+ id-mr-circulation-member-substring-elements, id-mr-distribution-code,
+ id-mr-information-category, id-mr-recipient-specifier,
+ id-mr-recipient-specifier-elements,
+ id-mr-recipient-specifier-single-element,
+ id-mr-recipient-specifier-substring-elements, id-nat-acknowledgment-mode,
+ id-nat-auto-forward-comment, id-nat-conversion-eits, id-nat-discard-reason,
+ id-nat-ipm-intended-recipient, id-nat-ipn-originator,
+ id-nat-non-receipt-reason, id-nat-notification-extensions,
+ id-nat-nrn-extensions, id-nat-other-notification-type-fields,
+ id-nat-receipt-time, id-nat-returned-ipm, id-nat-rn-extensions,
+ id-nat-subject-ipm, id-nat-suppl-receipt-info, id-sat-body-parts-summary,
+ id-sat-ipm-auto-discarded, id-sat-ipm-entry-type, id-sat-ipm-synopsis
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Abstract Service
+ X413ATTRIBUTE, MS-EIT, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS General Attribute Types
+ SignatureStatus
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching-rules
+ MSString{}, mSStringMatch, mSSubstringsMatch
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MTS Abstract Service
+ EncodedInformationTypes, MessageToken
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Information Framework
+ objectIdentifierMatch, MATCHING-RULE
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Abstract Service
+ booleanMatch, generalizedTimeMatch, generalizedTimeOrderingMatch,
+ integerMatch, integerOrderingMatch, uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ ub-msstring-match
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)};
+
+-- IPMS attribute table information object set
+IPMSAttributeTable X413ATTRIBUTE ::=
+ {acknowledgment-mode | authorizing-users | auto-forward-comment |
+ auto-forwarded | auto-submitted | bilaterally-defined-body-parts |
+ blind-copy-recipients | body | conversion-eits | copy-recipients |
+ discard-reason | encrypted-body-parts | encrypted-data |
+ encrypted-parameters | expiry-time | extended-body-part-types |
+ g3-facsimile-body-parts | g3-facsimile-data | g3-facsimile-parameters |
+ g4-class1-body-parts | heading | ia5-text-body-parts | ia5-text-data |
+ ia5-text-parameters | importance | incomplete-copy | ipm-entry-type |
+ ipm-intended-recipient | ipm-synopsis | ipn-originator | languages |
+ message-body-parts | message-data | message-parameters |
+ mixed-mode-body-parts | nationally-defined-body-parts | non-receipt-reason |
+ nrn-requestors | obsoleted-IPMs | originator | primary-recipients |
+ receipt-time | related-IPMs | replied-to-IPM | reply-recipients |
+ reply-requestors | reply-time | returned-ipm | rn-requestors | sensitivity |
+ subject | subject-ipm | suppl-receipt-info | teletex-body-parts |
+ teletex-data | teletex-parameters | this-ipm | videotex-body-parts |
+ videotex-data | videotex-parameters, ... -- 1994 extension additions --,
+ ac-correlated-delivered-ipns | ac-correlated-delivered-replies |
+ ac-delivered-ipn-summary | ac-delivered-replies-summary | ac-forwarded-ipms
+ | ac-forwarding-ipms | ac-ipm-recipients | ac-obsoleted-ipms |
+ ac-obsoleting-ipms | ac-related-ipms | ac-relating-ipms | ac-replied-to-ipm
+ | ac-replying-ipms | ac-subject-ipm | ac-submitted-ipn-status |
+ ac-submitted-ipns | ac-submitted-reply-status | authorization-time |
+ body-part-encryption-token | body-part-security-label |
+ body-part-signature-verification-status | body-part-signatures |
+ body-parts-summary | circulation-list-recipients | distribution-codes |
+ extended-subject | forwarded-content-token | forwarding-token |
+ information-category | ipm-auto-discarded | ipm-security-label |
+ manual-handling-instructions | notification-extensions | nrn-extensions |
+ originators-reference | other-notification-type-fields | precedence |
+ precedence-policy-identifier | recipient-category | revised-reply-time |
+ rn-extensions}
+
+-- SUMMARY ATTRIBUTES
+-- IPM entry type
+ipm-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMEntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-entry-type
+}
+
+IPMEntryType ::= ENUMERATED {ipm(0), rn(1), nrn(2), on(3)}
+
+-- IPM synopsis
+ipm-synopsis X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSynopsis,
+ NUMERATION single-valued,
+ ID id-sat-ipm-synopsis
+}
+
+IPMSynopsis ::= SEQUENCE OF BodyPartSynopsis
+
+BodyPartSynopsis ::= CHOICE {
+ message [0] MessageBodyPartSynopsis,
+ non-message [1] NonMessageBodyPartSynopsis
+}
+
+MessageBodyPartSynopsis ::= SEQUENCE {
+ number [0] SequenceNumber,
+ synopsis [1] IPMSynopsis
+}
+
+NonMessageBodyPartSynopsis ::= SEQUENCE {
+ type [0] OBJECT IDENTIFIER,
+ parameters [1] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ size [2] INTEGER,
+ processed [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Body part summary
+body-parts-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartDescriptor,
+ NUMERATION multi-valued,
+ ID id-sat-body-parts-summary
+}
+
+BodyPartDescriptor ::= SEQUENCE {
+ data [0] OBJECT IDENTIFIER,
+ parameters [1] OBJECT IDENTIFIER OPTIONAL,
+ this-child-entry [2] SequenceNumber OPTIONAL,
+ position [3] INTEGER,
+ size [4] INTEGER,
+ processed [5] BOOLEAN DEFAULT FALSE
+}
+
+-- IPM auto discarded
+ipm-auto-discarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-auto-discarded
+}
+
+-- Body part signature verification status
+body-part-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatureVerification,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signature-verification-status
+}
+
+BodyPartSignatureVerification ::=
+ SET OF
+ SET {body-part-sequence-number [0] BodyPartNumber,
+ body-part-signature [1] SignatureStatus}
+
+-- HEADING ATTRIBUTES
+-- Heading
+heading X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Heading,
+ NUMERATION single-valued,
+ ID id-hat-heading
+}
+
+-- Heading analyses
+rn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-rn-requestors
+}
+
+nrn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-nrn-requestors
+}
+
+reply-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-reply-requestors
+}
+
+-- Heading fields
+this-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ThisIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-this-ipm
+}
+
+originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-hat-originator
+}
+
+replied-to-IPM X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RepliedToIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-replied-to-IPM
+}
+
+subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-subject
+}
+
+expiry-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExpiryTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-expiry-time
+}
+
+reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-reply-time
+}
+
+importance X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ImportanceField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-importance
+}
+
+sensitivity X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SensitivityField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-sensitivity
+}
+
+auto-forwarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardedField,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-forwarded
+}
+
+-- Heading sub-fields
+authorizing-users X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizingUsersSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-authorizing-users
+}
+
+primary-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrimaryRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-primary-recipients
+}
+
+copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-copy-recipients
+}
+
+blind-copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BlindCopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-blind-copy-recipients
+}
+
+obsoleted-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ObsoletedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-obsoleted-IPMs
+}
+
+related-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RelatedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-related-IPMs
+}
+
+reply-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyRecipientsSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-reply-recipients
+}
+
+-- Heading extensions
+incomplete-copy X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IncompleteCopy,
+ NUMERATION
+ single-valued, -- An equality match is specified for 1988
+
+
+ -- Application Contexts
+ ID id-hat-incomplete-copy
+}
+
+languages X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Language,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE
+ mSSubstringsMatch, -- Not defined for 1988 Application Contexts
+
+ NUMERATION multi-valued,
+ ID id-hat-languages
+}
+
+auto-submitted X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoSubmitted,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-submitted
+}
+
+body-part-signatures X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatures,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signatures
+}
+
+ipm-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSecurityLabel,
+ NUMERATION single-valued,
+ ID id-hat-ipm-security-label
+}
+
+body-part-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSecurityLabel,
+ NUMERATION multi-valued,
+ ID id-hat-body-part-security-label
+}
+
+authorization-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizationTime,
+ EQUALITY MATCHING-RULE generalizedTimeMatch,
+ ORDERING MATCHING-RULE generalizedTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-authorization-time
+}
+
+circulation-list-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CirculationMember,
+ EQUALITY MATCHING-RULE circulationMemberMatch,
+ OTHER MATCHING-RULES
+ {circulationMemberElementsMatch | circulationMemberSubstringElementsMatch |
+ circulationMemberSingleElementMatch | circulationMemberCheckmarkMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-hat-circulation-list-recipients
+}
+
+distribution-codes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DistributionCode,
+ EQUALITY MATCHING-RULE distributionCodeMatch,
+ NUMERATION multi-valued,
+ ID id-hat-distribution-codes
+}
+
+extended-subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedSubject,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-extended-subject
+}
+
+information-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InformationCategory,
+ EQUALITY MATCHING-RULE informationCategoryMatch,
+ NUMERATION multi-valued,
+ ID id-hat-information-category
+}
+
+manual-handling-instructions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ManualHandlingInstruction,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION multi-valued,
+ ID id-hat-manual-handling-instructions
+}
+
+originators-reference X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorsReference,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION single-valued,
+ ID id-hat-originators-reference
+}
+
+precedence-policy-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrecedencePolicyIdentifier,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence-policy-id
+}
+
+-- Recipient extensions
+precedence X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Precedence,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence
+}
+
+-- Envelope extensions
+body-part-encryption-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartTokens,
+ NUMERATION single-valued,
+ ID id-hat-body-part-encryption-token
+}
+
+forwarded-content-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ForwardedContentToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarded-content-token
+}
+
+forwarding-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarding-token
+}
+
+-- BODY ATTRIBUTES
+-- Body
+body X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Body,
+ NUMERATION single-valued,
+ ID id-bat-body
+}
+
+-- Extended body part types
+extended-body-part-types X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-bat-extended-body-part-types
+}
+
+-- Extended body parts
+-- (These attributes cannot be enumerated. See 19.6.3.3.)
+-- (They may be derived using the following parameterized object assignments:)
+extended-body-part-data-attribute{EXTENDED-BODY-PART-TYPE:ebpt} X413ATTRIBUTE
+ ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&data.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&data.&id
+}
+
+extended-body-part-parameters-attribute{EXTENDED-BODY-PART-TYPE:ebpt}
+ X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&parameters.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&parameters.&id
+}
+
+-- Basic body parts
+ia5-text-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-body-parts
+}
+
+g3-facsimile-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-body-parts
+}
+
+g4-class1-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G4Class1BodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g4-class1-body-parts
+}
+
+teletex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-body-parts
+}
+
+videotex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-body-parts
+}
+
+encrypted-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-body-parts
+}
+
+message-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-bat-message-body-parts
+}
+
+mixed-mode-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MixedModeBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-mixed-mode-body-parts
+}
+
+bilaterally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BilaterallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-bilaterally-defined-body-parts
+}
+
+nationally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NationallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-nationally-defined-body-parts
+}
+
+-- Basic body part parameters components
+ia5-text-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextParameters,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-parameters
+}
+
+g3-facsimile-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileParameters,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-parameters
+}
+
+teletex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-parameters
+}
+
+videotex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-parameters
+}
+
+encrypted-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedParameters,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-parameters
+}
+
+message-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageParameters,
+ NUMERATION multi-valued,
+ ID id-bat-message-parameters
+}
+
+-- Basic body part data components
+ia5-text-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextData,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-data
+}
+
+g3-facsimile-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileData,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-data
+}
+
+teletex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexData,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-data
+}
+
+videotex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexData,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-data
+}
+
+encrypted-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedData,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-data
+}
+
+message-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageData,
+ NUMERATION multi-valued,
+ ID id-bat-message-data
+}
+
+-- NOTIFICATION ATTRIBUTES
+-- Common fields
+subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-nat-subject-ipm
+}
+
+ipn-originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPNOriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipn-originator
+}
+
+ipm-intended-recipient X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMIntendedRecipientField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipm-intended-recipient
+}
+
+conversion-eits X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-nat-conversion-eits
+}
+
+notification-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NotificationExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-notification-extensions
+}
+
+-- Non-receipt fields
+non-receipt-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NonReceiptReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-non-receipt-reason
+}
+
+discard-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DiscardReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-discard-reason
+}
+
+auto-forward-comment X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardCommentField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-auto-forward-comment
+}
+
+returned-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReturnedIPMField,
+ NUMERATION single-valued,
+ ID id-nat-returned-ipm
+}
+
+nrn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NRNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-nrn-extensions
+}
+
+-- Receipt fields
+receipt-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReceiptTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-nat-receipt-time
+}
+
+acknowledgment-mode X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AcknowledgmentModeField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-acknowledgment-mode
+}
+
+suppl-receipt-info X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SupplReceiptInfoField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-suppl-receipt-info
+}
+
+rn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{RNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-rn-extensions
+}
+
+-- Other notification type fields
+other-notification-type-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{OtherNotifications}},
+ NUMERATION multi-valued,
+ ID id-nat-other-notification-type-fields
+}
+
+-- CORRELATION ATTRIBUTES
+-- Common attributes
+ac-forwarding-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarding-ipms
+}
+
+ac-forwarded-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarded-ipms
+}
+
+ac-obsoleting-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-obsoleting-ipms
+}
+
+ac-obsoleted-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-obsoleted-ipms
+}
+
+IPMLocation ::= CHOICE {stored SET OF SequenceNumber,
+ absent NULL,
+ ...
+}
+
+ac-relating-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-relating-ipms
+}
+
+ac-related-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-related-ipms
+}
+
+ac-replied-to-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replied-to-ipm
+}
+
+ac-replying-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replying-ipms
+}
+
+ac-subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-subject-ipm
+}
+
+-- Submitted message correlation
+ac-ipm-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-ipm-recipients
+}
+
+ac-delivered-replies-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-replies-summary
+}
+
+DeliveredReplyStatus ::= INTEGER {
+ no-reply-requested(0) -- reply not requested --,
+ reply-outstanding(1) -- reply requested --, reply-received(2)}
+
+ac-correlated-delivered-replies X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredReplies,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-replies
+}
+
+CorrelatedDeliveredReplies ::= CHOICE {
+ no-reply-received [0] NULL,
+ received-replies [1] SEQUENCE OF SequenceNumber
+}
+
+ac-delivered-ipn-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-ipn-summary
+}
+
+DeliveredIPNStatus ::= INTEGER {
+ no-ipn-requested(0), an-requested(3), nrn-requested(5), rn-requested(10),
+ an-received(13), ipm-auto-forwarded(15), ipm-discarded(20), rn-received(25)
+}
+
+ac-correlated-delivered-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredIPNs,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-ipns
+}
+
+CorrelatedDeliveredIPNs ::= CHOICE {
+ no-ipn-received [0] NULL,
+ ipns-received [1] SEQUENCE OF SequenceNumber
+}
+
+-- Delivered message correlation
+ac-submitted-reply-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-reply-status
+}
+
+SubmittedReplyStatus ::= INTEGER {
+ no-reply-requested(0), no-reply-intended(1), reply-pending(2), reply-sent(3)
+}
+
+ac-submitted-ipn-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-ipn-status
+}
+
+SubmittedIPNStatus ::= INTEGER {
+ no-ipn-requested(0), nrn-requested(5), nrn-with-ipm-return-requested(10),
+ rn-requested(15), rn-with-ipm-return-requested(20), ipm-auto-forwarded(25),
+ ipm-discarded(30), rn-sent(35)}
+
+ac-submitted-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-submitted-ipns
+}
+
+recipient-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientCategory,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-recipient-category
+}
+
+RecipientCategory ::= INTEGER {
+ primary-recipient(0), copy-recipient(1), blind-copy-recipient(2),
+ category-unknown(3), circulation-list(4)}
+
+revised-reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-revised-reply-time
+}
+
+-- MATCHING-RULES
+IPMMatchingRuleTable MATCHING-RULE ::=
+ {iPMIdentifierMatch | oRDescriptorMatch | recipientSpecifierMatch,
+ ... -- 1994 extension additions --, circulationMemberCheckmarkMatch |
+ circulationMemberElementsMatch | circulationMemberMatch |
+ circulationMemberSingleElementMatch |
+ circulationMemberSubstringElementsMatch | distributionCodeMatch |
+ informationCategoryMatch | iPMLocationMatch | oRDescriptorElementsMatch |
+ oRDescriptorSingleElementMatch | oRDescriptorSubstringElementsMatch |
+ recipientSpecifierElementsMatch | recipientSpecifierSingleElementMatch |
+ recipientSpecifierSubstringElementsMatch}
+
+iPMIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX IPMIdentifier
+ ID id-mr-ipm-identifier
+}
+
+iPMLocationMatch MATCHING-RULE ::= {
+ SYNTAX SequenceNumber
+ ID id-mr-ipm-location
+}
+
+oRDescriptorMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor
+}
+
+oRDescriptorElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-elements
+}
+
+oRDescriptorSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-substring-elements
+}
+
+oRDescriptorSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-or-descriptor-single-element
+}
+
+recipientSpecifierMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier
+}
+
+recipientSpecifierElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-elements
+}
+
+recipientSpecifierSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-substring-elements
+}
+
+recipientSpecifierSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-recipient-specifier-single-element
+}
+
+circulationMemberMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member
+}
+
+circulationMemberElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-elements
+}
+
+circulationMemberSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-substring-elements
+}
+
+circulationMemberSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-circulation-member-single-element
+}
+
+circulationMemberCheckmarkMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-checkmark
+}
+
+distributionCodeMatch MATCHING-RULE ::= {
+ SYNTAX DistributionCode
+ ID id-mr-distribution-code
+}
+
+informationCategoryMatch MATCHING-RULE ::= {
+ SYNTAX InformationCategory
+ ID id-mr-information-category
+}
+
+END -- of IPMSMessageStoreAttributes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn
new file mode 100644
index 0000000000..6e5c01ab40
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn
@@ -0,0 +1,507 @@
+-- Module IPMSObjectIdentifiers (X.420:06/1999)
+IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (not definitive)
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)} -- not definitive
+
+-- Categories
+id-mod ID ::= {id-ipms 0} -- modules; not definitive
+
+id-ot ID ::= {id-ipms 1} -- object types
+
+id-pt ID ::= {id-ipms 2} -- port types
+
+id-et ID ::= {id-ipms 4} -- extended body part types
+
+id-hex ID ::= {id-ipms 5} -- heading extensions
+
+id-sat ID ::= {id-ipms 6} -- summary attributes
+
+id-hat ID ::= {id-ipms 7} -- heading attributes
+
+id-bat ID ::= {id-ipms 8} -- body attributes
+
+id-nat ID ::= {id-ipms 9} -- notification attributes
+
+id-mct ID ::= {id-ipms 10} -- message content types
+
+id-ep ID ::= {id-ipms 11} -- extended body part parameters
+
+id-eit ID ::= {id-ipms 12} -- encoded information types
+
+id-cat ID ::= {id-ipms 13} -- correlation attributes
+
+id-mr ID ::= {id-ipms 14} -- matching-rules
+
+id-aa ID ::= {id-ipms 15} -- auto-actions
+
+id-aae ID ::= {id-ipms 16} -- auto-action errors
+
+id-mst ID ::= {id-ipms 17} -- message store types
+
+id-sec ID ::= {id-ipms 18} -- ipm security extensions
+
+id-on ID ::= {id-ipms 19} -- other notification type extensions
+
+id-rex ID ::= {id-ipms 20} -- recipient extensions
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-functional-objects ID ::= {id-mod 1} -- not definitive
+
+id-mod-information-objects ID ::= {id-mod 2} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 3} -- not definitive
+
+id-mod-heading-extensions ID ::= {id-mod 6} -- not definitive
+
+id-mod-extended-body-part-types ID ::= {id-mod 7} -- not definitive
+
+id-mod-message-store-attributes ID ::= {id-mod 8} -- not definitive
+
+id-mod-file-transfer-body-part-type ID ::= {id-mod 9} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 10} -- not definitive
+
+id-mod-extended-voice-body-part-type ID ::= {id-mod 11} -- not definitive
+
+id-mod-forwarded-report-body-part-type ID ::= {id-mod 12} -- not definitive
+
+id-mod-auto-actions ID ::= {id-mod 13} -- not definitive
+
+id-mod-ipm-security-extensions ID ::= {id-mod 14} -- not definitive
+
+id-mod-forwarded-content-body-part-type ID ::= {id-mod 15} -- not definitive
+
+id-mod-pkcs7-body-part-type ID ::= {id-mod 16} -- not definitive
+
+-- Object types
+id-ot-ipms-user ID ::= {id-ot 1}
+
+id-ot-ipms ID ::= {id-ot 2}
+
+-- Port types
+id-pt-origination ID ::= {id-pt 0}
+
+id-pt-reception ID ::= {id-pt 1}
+
+id-pt-management ID ::= {id-pt 2}
+
+-- Extended body part types
+id-et-ia5-text ID ::= {id-et 0}
+
+id-et-g3-facsimile ID ::= {id-et 2}
+
+id-et-g4-class1 ID ::= {id-et 3}
+
+id-et-teletex ID ::= {id-et 4}
+
+id-et-videotex ID ::= {id-et 5}
+
+id-et-encrypted ID ::= {id-et 6}
+
+id-et-message ID ::= {id-et 7}
+
+id-et-mixed-mode ID ::= {id-et 8}
+
+id-et-bilaterally-defined ID ::= {id-et 9}
+
+id-et-nationally-defined ID ::= {id-et 10}
+
+id-et-general-text ID ::= {id-et 11}
+
+id-et-file-transfer ID ::= {id-et 12}
+
+-- Value {id-et 13} is no longer defined
+id-et-report ID ::= {id-et 14}
+
+id-et-notification ID ::= {id-et 15}
+
+id-et-voice ID ::= {id-et 16}
+
+id-et-content ID ::=
+ {id-et 17} -- This value is not used directly, only as a prefix
+
+id-et-pkcs7 ID ::= {id-et 18}
+
+-- Heading extensions
+id-hex-incomplete-copy ID ::= {id-hex 0}
+
+id-hex-languages ID ::= {id-hex 1}
+
+id-hex-auto-submitted ID ::= {id-hex 2}
+
+id-hex-body-part-signatures ID ::= {id-hex 3}
+
+id-hex-ipm-security-label ID ::= {id-hex 4}
+
+id-hex-authorization-time ID ::= {id-hex 5}
+
+id-hex-circulation-list-recipients ID ::= {id-hex 6}
+
+id-hex-distribution-codes ID ::= {id-hex 7}
+
+id-hex-extended-subject ID ::= {id-hex 8}
+
+id-hex-information-category ID ::= {id-hex 9}
+
+id-hex-manual-handling-instructions ID ::= {id-hex 10}
+
+id-hex-originators-reference ID ::= {id-hex 11}
+
+id-hex-precedence-policy-id ID ::= {id-hex 12}
+
+-- Summary attributes
+id-sat-ipm-entry-type ID ::= {id-sat 0}
+
+id-sat-ipm-synopsis ID ::= {id-sat 1}
+
+id-sat-body-parts-summary ID ::= {id-sat 2}
+
+id-sat-ipm-auto-discarded ID ::= {id-sat 3}
+
+-- Heading attributes
+id-hat-heading ID ::= {id-hat 0}
+
+id-hat-this-ipm ID ::= {id-hat 1}
+
+id-hat-originator ID ::= {id-hat 2}
+
+id-hat-replied-to-IPM ID ::= {id-hat 3}
+
+id-hat-subject ID ::= {id-hat 4}
+
+id-hat-expiry-time ID ::= {id-hat 5}
+
+id-hat-reply-time ID ::= {id-hat 6}
+
+id-hat-importance ID ::= {id-hat 7}
+
+id-hat-sensitivity ID ::= {id-hat 8}
+
+id-hat-auto-forwarded ID ::= {id-hat 9}
+
+id-hat-authorizing-users ID ::= {id-hat 10}
+
+id-hat-primary-recipients ID ::= {id-hat 11}
+
+id-hat-copy-recipients ID ::= {id-hat 12}
+
+id-hat-blind-copy-recipients ID ::= {id-hat 13}
+
+id-hat-obsoleted-IPMs ID ::= {id-hat 14}
+
+id-hat-related-IPMs ID ::= {id-hat 15}
+
+id-hat-reply-recipients ID ::= {id-hat 16}
+
+id-hat-incomplete-copy ID ::= {id-hat 17}
+
+id-hat-languages ID ::= {id-hat 18}
+
+id-hat-rn-requestors ID ::= {id-hat 19}
+
+id-hat-nrn-requestors ID ::= {id-hat 20}
+
+id-hat-reply-requestors ID ::= {id-hat 21}
+
+id-hat-auto-submitted ID ::= {id-hat 22}
+
+id-hat-body-part-signatures ID ::= {id-hat 23}
+
+id-hat-ipm-security-label ID ::= {id-hat 24}
+
+id-hat-body-part-security-label ID ::= {id-hat 25}
+
+id-hat-body-part-encryption-token ID ::= {id-hat 26}
+
+id-hat-authorization-time ID ::= {id-hat 27}
+
+id-hat-circulation-list-recipients ID ::= {id-hat 28}
+
+id-hat-distribution-codes ID ::= {id-hat 29}
+
+id-hat-extended-subject ID ::= {id-hat 30}
+
+id-hat-information-category ID ::= {id-hat 31}
+
+id-hat-manual-handling-instructions ID ::= {id-hat 32}
+
+id-hat-originators-reference ID ::= {id-hat 33}
+
+id-hat-precedence-policy-id ID ::= {id-hat 34}
+
+id-hat-forwarded-content-token ID ::= {id-hat 35}
+
+id-hat-forwarding-token ID ::= {id-hat 36}
+
+id-hat-precedence ID ::= {id-hat 37}
+
+id-hat-body-part-signature-verification-status ID ::= {id-hat 38}
+
+-- Body attributes
+id-bat-body ID ::= {id-bat 0}
+
+id-bat-ia5-text-body-parts ID ::= {id-bat 1}
+
+id-bat-g3-facsimile-body-parts ID ::= {id-bat 3}
+
+id-bat-g4-class1-body-parts ID ::= {id-bat 4}
+
+id-bat-teletex-body-parts ID ::= {id-bat 5}
+
+id-bat-videotex-body-parts ID ::= {id-bat 6}
+
+id-bat-encrypted-body-parts ID ::= {id-bat 7}
+
+id-bat-message-body-parts ID ::= {id-bat 8}
+
+id-bat-mixed-mode-body-parts ID ::= {id-bat 9}
+
+id-bat-bilaterally-defined-body-parts ID ::= {id-bat 10}
+
+id-bat-nationally-defined-body-parts ID ::= {id-bat 11}
+
+id-bat-extended-body-part-types ID ::= {id-bat 12}
+
+id-bat-ia5-text-parameters ID ::= {id-bat 13}
+
+id-bat-g3-facsimile-parameters ID ::= {id-bat 15}
+
+id-bat-teletex-parameters ID ::= {id-bat 16}
+
+id-bat-videotex-parameters ID ::= {id-bat 17}
+
+id-bat-encrypted-parameters ID ::= {id-bat 18}
+
+id-bat-message-parameters ID ::= {id-bat 19}
+
+id-bat-ia5-text-data ID ::= {id-bat 20}
+
+id-bat-g3-facsimile-data ID ::= {id-bat 22}
+
+id-bat-teletex-data ID ::= {id-bat 23}
+
+id-bat-videotex-data ID ::= {id-bat 24}
+
+id-bat-encrypted-data ID ::= {id-bat 25}
+
+id-bat-message-data ID ::= {id-bat 26}
+
+-- Notification attributes
+id-nat-subject-ipm ID ::= {id-nat 0}
+
+id-nat-ipn-originator ID ::= {id-nat 1}
+
+id-nat-ipm-intended-recipient ID ::= {id-nat 2}
+
+id-nat-conversion-eits ID ::= {id-nat 3}
+
+id-nat-non-receipt-reason ID ::= {id-nat 4}
+
+id-nat-discard-reason ID ::= {id-nat 5}
+
+id-nat-auto-forward-comment ID ::= {id-nat 6}
+
+id-nat-returned-ipm ID ::= {id-nat 7}
+
+id-nat-receipt-time ID ::= {id-nat 8}
+
+id-nat-acknowledgment-mode ID ::= {id-nat 9}
+
+id-nat-suppl-receipt-info ID ::= {id-nat 10}
+
+id-nat-notification-extensions ID ::= {id-nat 11}
+
+id-nat-nrn-extensions ID ::= {id-nat 12}
+
+id-nat-rn-extensions ID ::= {id-nat 13}
+
+id-nat-other-notification-type-fields ID ::= {id-nat 14}
+
+-- Correlation attributes
+id-cat-correlated-delivered-ipns ID ::= {id-cat 0}
+
+id-cat-correlated-delivered-replies ID ::= {id-cat 1}
+
+id-cat-delivered-ipn-summary ID ::= {id-cat 2}
+
+id-cat-delivered-replies-summary ID ::= {id-cat 3}
+
+id-cat-forwarded-ipms ID ::= {id-cat 4}
+
+id-cat-forwarding-ipms ID ::= {id-cat 5}
+
+id-cat-ipm-recipients ID ::= {id-cat 6}
+
+id-cat-obsoleted-ipms ID ::= {id-cat 7}
+
+id-cat-obsoleting-ipms ID ::= {id-cat 8}
+
+id-cat-related-ipms ID ::= {id-cat 9}
+
+id-cat-relating-ipms ID ::= {id-cat 10}
+
+id-cat-replied-to-ipm ID ::= {id-cat 11}
+
+id-cat-replying-ipms ID ::= {id-cat 12}
+
+id-cat-revised-reply-time ID ::= {id-cat 13}
+
+id-cat-submitted-ipn-status ID ::= {id-cat 14}
+
+id-cat-submitted-ipns ID ::= {id-cat 15}
+
+id-cat-submitted-reply-status ID ::= {id-cat 16}
+
+id-cat-subject-ipm ID ::= {id-cat 17}
+
+id-cat-recipient-category ID ::= {id-cat 18}
+
+-- Message content types (for use by MS and Directory)
+id-mct-p2-1984 ID ::=
+ {id-mct 0} -- P2 1984
+
+id-mct-p2-1988 ID ::= {id-mct 1} -- P2 1988
+
+-- Extended body part parameters
+id-ep-ia5-text ID ::= {id-ep 0}
+
+id-ep-g3-facsimile ID ::= {id-ep 2}
+
+id-ep-teletex ID ::= {id-ep 4}
+
+id-ep-videotex ID ::= {id-ep 5}
+
+id-ep-encrypted ID ::= {id-ep 6}
+
+id-ep-message ID ::= {id-ep 7}
+
+id-ep-general-text ID ::= {id-ep 11}
+
+id-ep-file-transfer ID ::= {id-ep 12}
+
+-- Value {id-ep 13} is no longer defined
+id-ep-notification ID ::= {id-ep 15}
+
+id-ep-voice ID ::= {id-ep 16}
+
+id-ep-content ID ::=
+ {id-ep 17} -- This value is not used directly, only as a prefix
+
+-- Encoded Information Types
+id-eit-file-transfer ID ::= {id-eit 0}
+
+id-eit-voice ID ::= {id-eit 1}
+
+-- Voice Encoded Information Types
+id-voice-11khz-sample ID ::=
+ {id-eit-voice 0}
+
+id-voice-22khz-sample ID ::= {id-eit-voice 1}
+
+id-voice-cd-quality ID ::= {id-eit-voice 2}
+
+id-voice-g711-mu-law ID ::= {id-eit-voice 3}
+
+id-voice-g726-32k-adpcm ID ::= {id-eit-voice 4}
+
+id-voice-g728-16k-ld-celp ID ::= {id-eit-voice 5}
+
+-- Matching-rules
+id-mr-ipm-identifier ID ::= {id-mr 0}
+
+id-mr-or-descriptor ID ::= {id-mr 1}
+
+id-mr-or-descriptor-elements ID ::= {id-mr 2}
+
+id-mr-or-descriptor-substring-elements ID ::= {id-mr 3}
+
+id-mr-recipient-specifier ID ::= {id-mr 4}
+
+id-mr-recipient-specifier-elements ID ::= {id-mr 5}
+
+id-mr-recipient-specifier-substring-elements ID ::= {id-mr 6}
+
+id-mr-ipm-location ID ::= {id-mr 7}
+
+id-mr-or-descriptor-single-element ID ::= {id-mr 8}
+
+id-mr-recipient-specifier-single-element ID ::= {id-mr 9}
+
+id-mr-circulation-member ID ::= {id-mr 10}
+
+id-mr-circulation-member-elements ID ::= {id-mr 11}
+
+id-mr-circulation-member-substring-elements ID ::= {id-mr 12}
+
+id-mr-circulation-member-single-element ID ::= {id-mr 13}
+
+id-mr-circulation-member-checkmark ID ::= {id-mr 14}
+
+id-mr-distribution-code ID ::= {id-mr 15}
+
+id-mr-information-category ID ::= {id-mr 16}
+
+-- Auto-actions
+id-aa-ipm-auto-acknowledgement ID ::= {id-aa 0}
+
+id-aa-ipm-auto-correlate ID ::= {id-aa 1}
+
+id-aa-ipm-auto-discard ID ::= {id-aa 2}
+
+id-aa-ipm-auto-advise ID ::= {id-aa 3}
+
+-- Auto-action-errors
+id-aae-auto-discard-error ID ::= {id-aae 0}
+
+id-aae-auto-forwarding-loop ID ::= {id-aae 1}
+
+id-aae-duplicate-ipn ID ::= {id-aae 2}
+
+-- Message Store types
+id-mst-invalid-assembly-instructions ID ::= {id-mst 0}
+
+id-mst-invalid-ipn ID ::= {id-mst 1}
+
+id-mst-assembly-instructions ID ::= {id-mst 2}
+
+id-mst-suspend-auto-acknowledgement ID ::= {id-mst 3}
+
+id-mst-prevent-nrn-generation ID ::= {id-mst 4}
+
+id-mst-originator-body-part-encryption-token ID ::= {id-mst 5}
+
+id-mst-originator-forwarded-content-token ID ::= {id-mst 6}
+
+id-mst-assembly-capability ID ::= {id-mst 7}
+
+-- Security extensions
+id-sec-ipm-security-request ID ::= {id-sec 0}
+
+id-sec-security-common-fields ID ::= {id-sec 1}
+
+-- Other notification types
+id-on-absence-advice ID ::= {id-on 0}
+
+id-on-change-of-address-advice ID ::= {id-on 1}
+
+-- Recipient extensions
+id-rex-circulation-list-indicator ID ::= {id-rex 0}
+
+id-rex-precedence ID ::= {id-rex 1}
+
+END -- of IPMSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn
new file mode 100644
index 0000000000..2b46b27b3e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn
@@ -0,0 +1,33 @@
+-- Module IPMSObjectIdentifiers2 (X.420:06/1999)
+IPMSObjectIdentifiers2 {iso standard mhs(10021) ipms(7) modules(0)
+ object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (ISO/IEC extensions)
+id-iso-ipms ID ::=
+ {iso standard mhs(10021) ipms(7)}
+
+-- Categories
+id-iso-mod ID ::= {id-iso-ipms 0} -- modules; not definitive
+
+id-iso-cs ID ::= {id-iso-ipms 1} -- character sets
+
+-- Modules
+id-mod-object-identifiers-2 ID ::= {id-iso-mod 0} -- not definitive
+
+id-mod-extended-body-part-types-2 ID ::= {id-iso-mod 1} -- not definitive
+
+-- Registration Authority for General Text Character Set EITs
+id-cs-eit-authority ID ::=
+ {id-iso-cs 0}
+
+END -- of IPMSObjectIdentifiers2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn
new file mode 100644
index 0000000000..8c692ccb31
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn
@@ -0,0 +1,143 @@
+-- Module IPMSSecurityExtensions (X.420:06/1999)
+IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS Abstract Service
+ Certificates, Content, ContentIntegrityCheck, ExtendedCertificates,
+ EXTENSION, MessageOriginAuthenticationCheck, MessageToken, EncryptionKey
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ IPMS-EXTENSION
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Heading Extensions
+ BodyPartNumber
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS Object Identifiers
+ id-sec-ipm-security-request, id-sec-security-common-fields
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Recipient Security Request
+recipient-security-request IPMS-EXTENSION ::= {
+ VALUE RecipientSecurityRequest,
+ IDENTIFIED BY id-sec-ipm-security-request
+}
+
+RecipientSecurityRequest ::= BIT STRING {
+ content-non-repudiation(0), content-proof(1), ipn-non-repudiation(2),
+ ipn-proof(3)}
+
+-- IPN Security Response
+ipn-security-response IPMS-EXTENSION ::= {
+ VALUE IpnSecurityResponse,
+ IDENTIFIED BY id-sec-security-common-fields
+}
+
+IpnSecurityResponse ::= SET {
+ content-or-arguments
+ CHOICE {original-content OriginalContent,
+ original-security-arguments
+ SET {original-content-integrity-check
+ [0] OriginalContentIntegrityCheck OPTIONAL,
+ original-message-origin-authentication-check
+ [1] OriginalMessageOriginAuthenticationCheck OPTIONAL,
+ original-message-token
+ [2] OriginalMessageToken OPTIONAL}},
+ security-diagnostic-code SecurityDiagnosticCode OPTIONAL
+}
+
+-- MTS security fields
+OriginalContent ::= Content
+
+OriginalContentIntegrityCheck ::= ContentIntegrityCheck
+
+OriginalMessageOriginAuthenticationCheck ::= MessageOriginAuthenticationCheck
+
+OriginalMessageToken ::= MessageToken
+
+-- Security Diagnostic Codes
+SecurityDiagnosticCode ::= INTEGER {
+ integrity-failure-on-subject-message(0),
+ integrity-failure-on-forwarded-message(1),
+ moac-failure-on-subject-message(2), unsupported-security-policy(3),
+ unsupported-algorithm-identifier(4), decryption-failed(5), token-error(6),
+ unable-to-sign-notification(7), unable-to-sign-message-receipt(8),
+ authentication-failure-on-subject-message(9),
+ security-context-failure-message(10), message-sequence-failure(11),
+ message-security-labelling-failure(12), repudiation-failure-of-message(13),
+ failure-of-proof-of-message(14), signature-key-unobtainable(15),
+ decryption-key-unobtainable(16), key-failure(17),
+ unsupported-request-for-security-service(18),
+ inconsistent-request-for-security-service(19),
+ ipn-non-repudiation-provided-instead-of-content-proof(20),
+ token-decryption-failed(21), double-enveloping-message-restoring-failure(22),
+ unauthorised-dl-member(23), reception-security-failure(24),
+ unsuitable-alternate-recipient(25), security-services-refusal(26),
+ unauthorised-recipient(27), unknown-certification-authority-name(28),
+ unknown-dl-name(29), unknown-originator-name(30), unknown-recipient-name(31),
+ security-policy-violation(32)}
+
+-- Security Envelope Extensions
+body-part-encryption-token EXTENSION ::= {
+ BodyPartTokens,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:43
+}
+
+BodyPartTokens ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {encryption-token EncryptionToken,
+ message-or-content-body-part [0] BodyPartTokens}
+ }
+
+EncryptionToken ::= SET {
+ encryption-algorithm-identifier AlgorithmIdentifier,
+ encrypted-key ENCRYPTED{EncryptionKey},
+ recipient-certificate-selector [0] CertificateAssertion OPTIONAL,
+ recipient-certificate [1] Certificates OPTIONAL,
+ originator-certificate-selector [2] CertificateAssertion OPTIONAL,
+ originator-certificates [3] ExtendedCertificates OPTIONAL,
+ ...
+}
+
+forwarded-content-token EXTENSION ::= {
+ ForwardedContentToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:44
+}
+
+ForwardedContentToken ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {forwarding-token MessageToken,
+ message-or-content-body-part ForwardedContentToken
+ }}
+
+END -- of IPMSSecurityExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn
new file mode 100644
index 0000000000..27324f614f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn
@@ -0,0 +1,46 @@
+-- Module IPMSUpperBounds (X.420:06/1999)
+IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) upper-bounds(10)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+-- Upper bounds
+ub-alpha-code-length INTEGER ::= 16
+
+ub-auto-forward-comment INTEGER ::= 256
+
+ub-circulation-list-members INTEGER ::= 256
+
+ub-distribution-codes INTEGER ::= 16
+
+ub-extended-subject-length INTEGER ::= 256
+
+ub-free-form-name INTEGER ::= 64
+
+ub-information-categories INTEGER ::= 16
+
+ub-information-category-length INTEGER ::= 64
+
+ub-ipm-identifier-suffix INTEGER ::= 2
+
+ub-local-ipm-identifier INTEGER ::= 64
+
+ub-manual-handling-instruction-length INTEGER ::= 128
+
+ub-manual-handling-instructions INTEGER ::= 16
+
+ub-originators-reference-length INTEGER ::= 64
+
+ub-precedence INTEGER ::= 127
+
+ub-subject-field INTEGER ::= 128
+
+ub-telephone-number INTEGER ::= 32
+
+END -- of IPMSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
new file mode 100644
index 0000000000..b7efd7417e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
@@ -0,0 +1,459 @@
+-- Module ISO-STANDARD-9541-FONT-ATTRIBUTE-SET (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Font-Attribute-Set;
+
+IMPORTS Structured-Name
+ FROM ISO9541-SN {1 0 9541 2 3};
+
+Font-Attribute-Set ::= SEQUENCE {
+ name-prefixes [0] IMPLICIT SET OF Name-Prefix OPTIONAL,
+ iso-standard-9541-fontname [1] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-fontdescription [2] IMPLICIT Font-Description OPTIONAL,
+ iso-standard-9541-wrmodes [3] IMPLICIT Writing-Modes OPTIONAL,
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Font-Description ::= SET {
+ iso-standard-9541-dataversion [0] IMPLICIT Data-Version OPTIONAL,
+ iso-standard-9541-Standardversion [1] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-datasource [2] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-datacopyright [3] Message OPTIONAL,
+ iso-standard-9541-dsnsource [4] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsncopyright [5] Message OPTIONAL,
+ iso-standard-9541-relunits [6] IMPLICIT Cardinal DEFAULT 1,
+ iso-standard-9541-typeface [7] Message OPTIONAL,
+ iso-standard-9541-fontfamily [8] Match-String OPTIONAL,
+ iso-standard-9541-posture [9] IMPLICIT Posture-Code OPTIONAL,
+ iso-standard-9541-postureangle [10] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-weight [11] IMPLICIT Weight-Code OPTIONAL,
+ iso-standard-9541-propwidth [12] IMPLICIT Width-Code OPTIONAL,
+ iso-standard-9541-glyphcomp [13] IMPLICIT Glyph-Complement OPTIONAL,
+ iso-standard-9541-nomwrmode [14] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsnsize [15] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minsize [16] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxsize [17] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-capheight [18] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-lcheight [19] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsngroup [20] IMPLICIT Design-Group OPTIONAL,
+ iso-standard-9541-structure [21] IMPLICIT Structure-Code OPTIONAL,
+ iso-standard-9541-minfeatsz [22] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomcapstemwidth [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomlcstemwidth [24] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [25] IMPLICIT Property-List OPTIONAL
+}
+
+Name-Prefix ::= SEQUENCE {
+ --see NOTE 3 at the end of 6.1
+ index [0] IMPLICIT Code,
+ prefix [1] IMPLICIT Structured-Name
+}
+
+Data-Version ::= SEQUENCE {
+ major [0] IMPLICIT Cardinal OPTIONAL,
+ minor [1] IMPLICIT Cardinal OPTIONAL,
+ timestamp [2] IMPLICIT UTCTime OPTIONAL
+}
+
+Posture-Code ::= INTEGER {
+ not-applicable(0), upright(1), oblique-forward(2), oblique-backward(3),
+ italic-forward(4), italic-backward(5), other(6)}
+
+Weight-Code ::= INTEGER {
+ not-applicable(0), ultra-light(1), extra-light(2), light(3), semi-light(4),
+ medium(5), semi-bold(6), bold(7), extra-bold(8), ultra-bold(9)}
+
+Width-Code ::= INTEGER {
+ not-applicable(0), ultra-condensed(1), extra-condensed(2), condensed(3),
+ semi-condensed(4), medium(5), semi-expanded(6), expanded(7),
+ extra-expanded(8), ultra-expanded(9)}
+
+Glyph-Complement ::= SEQUENCE {
+ -- at least one included glyph list or at least one
+ -- included glyph collection list is mandatory
+ iso-standard-9541-numglyphs [0] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-incglyphcols [1] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphcols [2] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-incglyphs [3] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphs [4] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Design-Group ::= SEQUENCE {
+ -- see 9541-1 Annex-A for code values
+ group-code [0] IMPLICIT Code,
+ subgroup-code [1] IMPLICIT Code,
+ specific-group-code [2] IMPLICIT Code
+}
+
+Structure-Code ::= INTEGER {not-applicable(0), solid(1), outline(2)}
+
+Writing-Modes ::= SET {
+ iso-standard-9541-wrmode [0] IMPLICIT SET OF Writing-Mode OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Writing-Mode ::= SEQUENCE {
+ iso-standard-9541-wrmodename [0] IMPLICIT Global-Name,
+ wrmode-properties [1] IMPLICIT Modal-Properties
+}
+
+Modal-Properties ::= SET {
+ iso-standard-9541-nomescdir [0] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-escclass [1] IMPLICIT Esc-Class-Code OPTIONAL,
+ iso-standard-9541-avgescx [2] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgescy [3] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescx [4] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescy [5] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescx [6] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescy [7] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescx [8] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescy [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxfontext [10] IMPLICIT Max-Extents OPTIONAL,
+ iso-standard-9541-sectors [11] IMPLICIT Sectors OPTIONAL,
+ iso-standard-9541-escadjs [12] IMPLICIT SET OF Adjusts OPTIONAL,
+ iso-standard-9541-minescadjsze [13] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxescadjsze [14] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-scores [15] IMPLICIT Scores OPTIONAL,
+ iso-standard-9541-vscripts [16] IMPLICIT Variant-Scripts OPTIONAL,
+ iso-standard-9541-minlinesp [17] IMPLICIT Alignment-Spacing OPTIONAL,
+ iso-standard-9541-minanascale [18] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxanascale [19] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-nomalign [20] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-alignmodes [21] IMPLICIT Alignment-Modes OPTIONAL,
+ iso-standard-9541-copyfits [22] IMPLICIT Copyfits OPTIONAL,
+ iso-standard-9541-dsnwordadd [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnwordampl [24] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minwordadd [25] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minwordampl [26] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxwordadd [27] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxwordampl [28] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-dsnletteradd [29] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnletterampl [30] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minletteradd [31] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minletterampl [32] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxletteradd [33] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxletterampl [34] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-glyphmetrics [35] IMPLICIT Glyph-Metrics OPTIONAL,
+ non-iso-properties [36] IMPLICIT Property-List OPTIONAL
+}
+
+Esc-Class-Code ::= INTEGER {not-applicable(0), monospace(1), proportional(2)}
+
+Max-Extents ::= SEQUENCE {
+ max-minx [0] IMPLICIT Rel-Rational,
+ max-miny [1] IMPLICIT Rel-Rational,
+ max-maxx [2] IMPLICIT Rel-Rational,
+ max-maxy [3] IMPLICIT Rel-Rational
+}
+
+Sectors ::= SET {
+ iso-standard-9541-sector [0] IMPLICIT SEQUENCE OF Sector OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Sector ::= SEQUENCE {
+ sector-left [0] IMPLICIT Rel-Rational,
+ sector-right [1] IMPLICIT Rel-Rational
+}
+
+Adjusts ::= SET {
+ iso-standard-9541-adjust [0] IMPLICIT SET OF Adjust,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Adjust ::= SET {
+ iso-standard-9541-escadjname [0] IMPLICIT Global-Name,
+ adjust-properties [1] IMPLICIT Adjust-Properties
+}
+
+Adjust-Properties ::= SET {
+ iso-standard-9541-cpea [0] IMPLICIT CPEA-Properties OPTIONAL,
+ iso-standard-9541-sec [1] IMPLICIT SEC-Properties OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+CPEA-Properties ::= SET {
+ iso-standard-9541-ncpeaforwd [0] IMPLICIT Cardinal,
+ iso-standard-9541-ncpeabackwd [1] IMPLICIT Cardinal,
+ iso-standard-9541-cpeax [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ -- at least one required
+ iso-standard-9541-cpeay [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+SEC-Properties ::= SET {
+ iso-standard-9541-secx
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-secy
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+Scores ::= SET {
+ iso-standard-9541-Score [0] IMPLICIT SET OF Score OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Score ::= SEQUENCE {
+ iso-standard-9541-scorename [0] IMPLICIT Global-Name,
+ score-property-list [1] IMPLICIT Score-Properties
+}
+
+Score-Properties ::= SET {
+ iso-standard-9541-scoreoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scoreoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scorethick [2] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [3] IMPLICIT Property-List OPTIONAL
+}
+
+Variant-Scripts ::= SET {
+ iso-standard-9541-vscript [0] IMPLICIT SET OF Vscript OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Vscript ::= SEQUENCE {
+ iso-standard-9541-vsname [0] IMPLICIT Global-Name,
+ vscript-property-list [1] IMPLICIT Vscript-Properties
+}
+
+Vscript-Properties ::= SET {
+ iso-standard-9541-vsoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-vsscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment-Spacing ::= SEQUENCE {
+ minlinesp-left [0] IMPLICIT Rel-Rational,
+ minlinesp-right [1] IMPLICIT Rel-Rational
+}
+
+Alignment-Modes ::= SET {
+ iso-standard-9541-align [0] IMPLICIT SET OF Alignment OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment ::= SEQUENCE {
+ iso-standard-9541-alignname [0] IMPLICIT Global-Name,
+ alignment-property-list [1] IMPLICIT Align-Properties
+}
+
+Align-Properties ::= SET {
+ iso-standard-9541-alignoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-alignscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfits ::= SET {
+ iso-standard-9541-copyfit [0] IMPLICIT SET OF Copyfit OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfit ::= SEQUENCE {
+ iso-standard-9541-copyfitname [0] IMPLICIT Global-Name,
+ copyfit-properties [1] IMPLICIT Copyfit-Properties
+}
+
+Copyfit-Properties ::= SET {
+ iso-standard-9541-copyfitmeasure [0] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Metrics ::= SET {
+ iso-standard-9541-gmetric [0] IMPLICIT SET OF Glyph-Property-List,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Property-List ::= SEQUENCE {
+ iso-standard-9541-gname [0] IMPLICIT Global-Name,
+ glyph-properties [1] IMPLICIT Glyph-Properties
+}
+
+Glyph-Properties ::= SET {
+ iso-standard-9541-px [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-py [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-ex [2] IMPLICIT Rel-Rational,
+ iso-standard-9541-ey [3] IMPLICIT Rel-Rational,
+ iso-standard-9541-ext [4] IMPLICIT Extents,
+ iso-standard-9541-lgs [5] IMPLICIT Ligatures OPTIONAL,
+ iso-standard-9541-peas [6] IMPLICIT P-Adjusts OPTIONAL,
+ iso-standard-9541-cpeai [7] IMPLICIT C-Indicator OPTIONAL,
+ iso-standard-9541-eai [8] IMPLICIT E-Code OPTIONAL,
+ iso-standard-9541-minex [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-miney [10] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxex [11] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxey [12] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [13] IMPLICIT Property-List OPTIONAL
+}
+
+Extents ::= SET {
+ minx [0] IMPLICIT Rel-Rational OPTIONAL,
+ miny [1] IMPLICIT Rel-Rational OPTIONAL,
+ maxx [2] IMPLICIT Rel-Rational OPTIONAL,
+ maxy [3] IMPLICIT Rel-Rational OPTIONAL
+}
+
+Ligatures ::= SET {
+ iso-standard-9541-lg [0] IMPLICIT SET OF Ligature OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Ligature ::= SET {
+ iso-standard-9541-lgn [0] IMPLICIT Global-Name,
+ iso-standard-9541-lgsn [1] SEQUENCE OF Global-Name
+}
+
+P-Adjusts ::= SET {
+ iso-standard-9541-pea [0] IMPLICIT SET OF P-Adjust OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+P-Adjust ::= SEQUENCE {
+ iso-standard-9541-pean [0] IMPLICIT Global-Name,
+ p-adjust-property-list [1] IMPLICIT P-Adjust-Properties
+}
+
+P-Adjust-Properties ::= SET {
+ iso-standard-9541-peax
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-peay
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-speaforwdx [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speaforwdy [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdx [4] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdy [5] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [6] IMPLICIT Property-List OPTIONAL
+}
+
+C-Indicator ::= SEQUENCE {
+ c-forward [0] IMPLICIT Cardinal,
+ c-backward [1] IMPLICIT Cardinal
+}
+
+E-Code ::= INTEGER {
+ not-applicable(0), letter-space(1), word-space(2), no-adjust(3)}
+
+-- The following Data Types are used in the above structures
+-- The following Data Types are used in the above structures
+Property ::= SEQUENCE {
+ property-name [0] Global-Name,
+ property-value [1] Property-Value
+}
+
+Property-Value ::= CHOICE {
+ value [0] Value,
+ value-list [1] Value-List,
+ ordered-value-list [2] Ordered-Value-List,
+ property-list [3] Property-List,
+ ordered-property-list [4] Ordered-Property-List
+}
+
+Value-List ::= SET OF Value
+
+Ordered-Value-List ::= SEQUENCE OF Value
+
+Property-List ::= SET OF Property
+
+Ordered-Property-List ::= SEQUENCE OF Property
+
+Value ::= CHOICE {
+ global-Name [0] Global-Name,
+ match-String [1] Match-String,
+ message [2] Message,
+ octetString [3] OCTET STRING,
+ boolean [4] BOOLEAN,
+ integer [5] Integer,
+ cardinal [6] Cardinal,
+ code [7] Code,
+ rational [8] Rational,
+ rel-Rational [9] Rel-Rational,
+ angle [10] Angle,
+ proprietary-Data [11] Proprietary-Data
+}
+
+Global-Name ::= SEQUENCE {
+ -- see global name note at the end of clause 6.1
+ prefix-index [0] IMPLICIT Code OPTIONAL,
+ name-value [1] IMPLICIT Structured-Name
+}
+
+Match-String ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Integer ::= INTEGER {first(-2147483648), last(2147483647)}
+
+Cardinal ::= INTEGER {first(0), last(4294967295)}
+
+Code ::= INTEGER {first(0), last(255)}
+
+Rational ::= SEQUENCE {
+ numerator [0] IMPLICIT INTEGER,
+ denominator [1] IMPLICIT INTEGER {first(1), last(2147483647)} OPTIONAL
+}
+
+-- denominator defaults to 1
+Rel-Rational ::= Rational
+
+-- expresses glyph coordinate units
+-- denominator defaults to relunits
+Angle ::=
+ Rational
+
+-- expresses units of degrees, with a
+-- value range of -360 to +360
+-- denominator defaults to 1
+Proprietary-Data ::= SEQUENCE {
+ prop-data-message [0] Message OPTIONAL,
+ prop-data-key [1] IMPLICIT OCTET STRING OPTIONAL,
+ prop-data [2] IMPLICIT OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn
new file mode 100644
index 0000000000..a57a276704
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn
@@ -0,0 +1,1453 @@
+-- Module ISO8571-FTAM (ISO 8571-4:1988)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+--
+-- Copyright ? ISO/IEC 1988. This version of
+-- this ASN.1 module is part of ISO/IEC 8571-4:1988;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} DEFINITIONS
+::=
+BEGIN
+
+PDU ::= CHOICE {
+ fTAM-Regime-PDU FTAM-Regime-PDU,
+ file-PDU File-PDU,
+ bulk-Data-PDU Bulk-Data-PDU,
+ fSM-PDU FSM-PDU
+}
+
+FTAM-Regime-PDU ::= CHOICE {
+ f-initialize-request [0] IMPLICIT F-INITIALIZE-request,
+ f-initialize-response [1] IMPLICIT F-INITIALIZE-response,
+ f-terminate-request [2] IMPLICIT F-TERMINATE-request,
+ f-terminate-response [3] IMPLICIT F-TERMINATE-response,
+ f-u-abort-request [4] IMPLICIT F-U-ABORT-request,
+ f-p-abort-request [5] IMPLICIT F-P-ABORT-request
+}
+
+F-INITIALIZE-request ::= SEQUENCE {
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ initiator-identity User-Identity OPTIONAL,
+ account Account OPTIONAL,
+ filestore-password Password OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- lf the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+F-INITIALIZE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- If the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+Protocol-Version ::= [0] IMPLICIT BIT STRING {version-1(0), version-2(1)
+}
+
+Implementation-Information ::= [1] IMPLICIT GraphicString
+
+-- This Parameter is provided solely for the convenience of implementors
+-- needing to distinguish between implernentations of a specific version number
+-- of different equipment, it shall not be the subject of conformance test.
+Service-Class ::= [3] IMPLICIT BIT STRING {
+ unconstrained-class(0), management-class(1), transfer-class(2),
+ transfer-and-management-class(3), access-class(4)}
+
+Functional-Units ::= [4] IMPLICIT BIT STRING {
+ read(2), write(3), file-access(4), limited-file-management(5),
+ enhanced-file-management(6), grouping(7), fadu-locking(8), recovery(9),
+ restart-data-transfer(10), limited-filestore-management(11),
+ enhanced-filestore-management(12), object-manipulation(13),
+ group-manipulation(14), consecutive-access(15), concurrent-access(16)
+}
+
+-- Values 2 to 14 are Chosen to align with numbering scheme used in ISO 8571-3.
+Attribute-Groups ::= [5] IMPLICIT BIT STRING {
+ storage(0), security(1), private(2), extension(3)}
+
+-- The extension bit is defined if and only if the limited-filestore-management
+-- or the group-manipulation functional units are available.
+FTAM-Quality-of-Service ::= [6] IMPLICIT INTEGER {
+ no-recovery(0), class-1-recovery(1), class-2-recovery(2), class-3-recovery(3)
+}
+
+Contents-Type-List ::=
+ [7] IMPLICIT
+ SEQUENCE OF
+ CHOICE {document-type-name Document-Type-Name,
+ abstract-Syntax-name Abstract-Syntax-Name}
+
+F-TERMINATE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-TERMINATE-response ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL
+}
+
+F-U-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-P-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+File-PDU ::= CHOICE {
+ f-select-request [6] IMPLICIT F-SELECT-request,
+ f-select-response [7] IMPLICIT F-SELECT-response,
+ f-deselect-request [8] IMPLICIT F-DESELECT-request,
+ f-deselect-response [9] IMPLICIT F-DESELECT-response,
+ f-create-request [10] IMPLICIT F-CREATE-request,
+ f-create-response [11] IMPLICIT F-CREATE-response,
+ f-delete-request [12] IMPLICIT F-DELETE-request,
+ f-delete-response [13] IMPLICIT F-DELETE-response,
+ f-read-attrib-request [14] IMPLICIT F-READ-ATTRIB-request,
+ f-read-attrib-response [15] IMPLICIT F-READ-ATTRIB-response,
+ f-Change-attrib-reques [16] IMPLICIT F-CHANGE-ATTRIB-request,
+ f-Change-attrib-respon [17] IMPLICIT F-CHANGE-ATTRIB-response,
+ f-open-request [18] IMPLICIT F-OPEN-request,
+ f-open-response [19] IMPLICIT F-OPEN-response,
+ f-close-request [20] IMPLICIT F-CLOSE-request,
+ f-close-response [21] IMPLICIT F-CLOSE-response,
+ f-begin-group-request [22] IMPLICIT F-BEGIN-GROUP-request,
+ f-begin-group-response [23] IMPLICIT F-BEGIN-GROUP-response,
+ f-end-group-request [24] IMPLICIT F-END-GROUP-request,
+ f-end-group-response [25] IMPLICIT F-END-GROUP-response,
+ f-recover-request [26] IMPLICIT F-RECOVER-request,
+ f-recover-response [27] IMPLICIT F-RECOVER-response,
+ f-locate-request [28] IMPLICIT F-LOCATE-request,
+ f-locate-response [29] IMPLICIT F-LOCATE-response,
+ f-erase-request [30] IMPLICIT F-ERASE-request,
+ f-erase-response [31] IMPLICIT F-ERASE-response
+}
+
+F-SELECT-request ::= SEQUENCE {
+ attributes Select-Attributes,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-SELECT-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ attributes Select-Attributes,
+ referent-indicator Referent-Indicator OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management functional unit is available.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DESELECT-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DESELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ -- Present if and only if the account field was present on
+ -- the PDU which established the selection regime.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-request ::= SEQUENCE {
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the Object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DELETE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+F-READ-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ -- Password values within the access control tan not be read by means
+ -- of the read attribute action. Whether other Parts of the access
+ -- control Object attribute tan be read by means of the read
+ -- attribute action is decided locally by the responding entity, and
+ -- it shall not be the subject of conformance test.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ -- Password values within access control attribute are never returned.
+ -- Other attributes are retumed as an implementation choice.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-OPEN-request ::= SEQUENCE {
+ processing-mode
+ [0] IMPLICIT BIT STRING {f-read(0), f-insert(1), f-replace(2), f-extend(3),
+ f-erase(4)} DEFAULT {f-read},
+ contents-type
+ [1] CHOICE {unknown [0] IMPLICIT NULL,
+ proposed [1] Contents-Type-Attribute},
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ enable-fadu-locking [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ activity-identifier Activity-Identifier OPTIONAL,
+ -- Only used in the recovery functional unit.
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ remove-contexts [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts [5] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of the consecutive overlap or
+ -- concurrent overlap functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-OPEN-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ --The following are conditional on the negotiation of the concecutive access
+ -- or concurent access functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CLOSE-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CLOSE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-BEGIN-GROUP-request ::= SEQUENCE {threshold [0] IMPLICIT INTEGER
+}
+
+F-BEGIN-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-request ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-RECOVER-request ::= SEQUENCE {
+ activity-identifier Activity-Identifier,
+ bulk-transfer-number [0] IMPLICIT INTEGER,
+ -- If concurrent access was in use then this parameter indicates the read bulk
+ -- transfer.
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ recovefy-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file
+ -- Point after last Checkpoint indicates end of file
+ remove-contexts
+ [3] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts
+ [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-bulk-transfer-number [7] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file
+ -- point after last checkpoint indicates end of file
+ last-transfer-end-read-response [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RECOVER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ recovety-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file.
+ -- Point after last Checkpoint indicates end of file.
+ diagnostic Diagnostic OPTIONAL,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file; point after
+ -- last checkpoint indicates end of file
+ last-transfer-end-read-request [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-LOCATE-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL
+}
+
+F-LOCATE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ file-access-data-unit-identity FADU-Identity OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-ERASE-request ::= SEQUENCE {file-access-data-unit-identity FADU-Identity
+}
+
+F-ERASE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Bulk-Data-PDU ::= CHOICE {
+ f-read-request [32] IMPLICIT F-READ-request,
+ f-write-request [33] IMPLICIT F-WRITE-request,
+ -- There is no F-DATA FPDU, the contents of a file
+ -- are transferred in a different presentation context
+ -- and there is therefore no need to define the types
+ -- of file contents in the FTAM PCI abstract Syntax.
+ -- File contents data are carried in values of the
+ -- data type Data-Element as defined in ISO 8571-2.
+ f-data-end-request [34] IMPLICIT F-DATA-END-request,
+ f-transfer-end-request [35] IMPLICIT F-TRANSFER-END-request,
+ f-transfer-end-response [36] IMPLICIT F-TRANSFER-END-response,
+ f-cancel-request [37] IMPLICIT F-CANCEL-request,
+ f-cancel-response [38] IMPLICIT F-CANCEL-response,
+ -- There is no F-CHECK PDU.
+ f-restart-request [39] IMPLICIT F-RESTART-request,
+ f-restart-response [40] IMPLICIT F-RESTART-response
+}
+
+F-READ-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ access-context Access-Context,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive of concurrent access.
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-WRITE-request ::= SEQUENCE {
+ file-access-data-unit-Operation
+ [0] IMPLICIT INTEGER {insert(0), replace(1), extend(2)},
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive or concurrent access.
+ transfer-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+F-DATA-END-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-TRANSFER-END-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [2] IMPLICIT INTEGER OPTIONAL
+}
+
+F-TRANSFER-END-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CHECK-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-CHECK-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-RESTART-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RESTART-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Degree-Of-Overlap ::= [APPLICATION 30] IMPLICIT INTEGER {
+ normal(0), consecutive(1), concurrent(2)}
+
+Request-Type ::= [APPLICATION 31] IMPLICIT INTEGER {read(0), write(1)}
+
+Abstract-Syntax-Name ::= [APPLICATION 0] IMPLICIT OBJECT IDENTIFIER
+
+Access-Context ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ access-context
+ [0] IMPLICIT INTEGER {hierarchical-all-data-units(0),--HA--
+ hierarchical-no-data-units(1),--HN--
+ flat-all-data-units(2),--FA--
+ flat-one-level-data-unit(3),--FL--
+ flat-Single-data-unit(4),--FS--
+ unstructured-all-data-units(5),--UA--
+ unstructured-Single-data-unit(6)}, --US
+ level-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+-- Present if and only if flat-one-level-data-units
+-- (access context FL) is selected.
+-- As defined in ISO 8571-2.
+Access-Passwords ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords OPTIONAL,
+ link-password [9] Password OPTIONAL
+}
+
+-- The pass-passwords and the link-password must be included in the
+-- access-passwords if and only if the limited-filestore-management
+-- or the Object-manipulation or the group-manipulation functional
+-- units are available.
+Access-Request ::= [APPLICATION 3] IMPLICIT BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7)}
+
+Account ::= [APPLICATION 4] IMPLICIT GraphicString
+
+Action-Result ::= [APPLICATION 5] IMPLICIT INTEGER {
+ success(0), transient-error(1), permanent-error(2)}
+
+Activity-Identifier ::= [APPLICATION 6] IMPLICIT INTEGER
+
+Application-Entity-Title ::= [APPLICATION 7] AE-title
+
+-- As defined in ISO 8650.
+Change-Attributes ::= [APPLICATION 8] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Change-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Change-Attribute OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- enhanced-filestore-management functional unit is available.
+-- Atleast one attribute shall be present in the Change-Attributes
+-- Parameter on the request PDU.
+Charging ::=
+ [APPLICATION 9] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {resource-identifier [0] IMPLICIT GraphicString,
+ charging-unit [1] IMPLICIT GraphicString,
+ charging-value [2] IMPLICIT INTEGER}
+
+Concurrency-Control ::= [APPLICATION 10] IMPLICIT SEQUENCE {
+ read [0] IMPLICIT Lock,
+ insert [1] IMPLICIT Lock,
+ replace [2] IMPLICIT Lock,
+ extend [3] IMPLICIT Lock,
+ erase [4] IMPLICIT Lock,
+ read-attribute [5] IMPLICIT Lock,
+ change-attribute [6] IMPLICIT Lock,
+ delete-Object [7] IMPLICIT Lock
+}
+
+Lock ::= INTEGER {not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Constraint-Set-Name ::= [APPLICATION 11] IMPLICIT OBJECT IDENTIFIER
+
+Create-Attributes ::= [APPLICATION 12] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute,
+ object-type [18] IMPLICIT Object-Type-Attribute DEFAULT file,
+ -- This Parameter tan be sent if and only if the
+ -- limited-filestore-management functional unit is available.
+ permitted-actions [1] IMPLICIT Permitted-Actions-Attribute,
+ contents-type [2] Contents-Type-Attribute,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+Diagnostic ::=
+ [APPLICATION 13] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {diagnostic-type
+ [0] IMPLICIT INTEGER {informative(0), transient(1),
+ permanent(2)},
+ error-identifier [1] IMPLICIT INTEGER,
+ -- As defined in ISO 8571-3.
+ error-observer [2] IMPLICIT Entity-Reference,
+ error-Source [3] IMPLICIT Entity-Reference,
+ suggested-delay [4] IMPLICIT INTEGER OPTIONAL,
+ further-details [5] IMPLICIT GraphicString OPTIONAL
+ }
+
+Entity-Reference ::= INTEGER {
+ no-categorization-possible(0), initiating-file-service-user(1),
+ initiating-file-protocol-machine(2),
+ service-supporting-the-file-protocol-machine(3),
+ responding-file-protocol-machine(4), responding-file-service-user(5)
+}
+
+--NOTE
+-- 1. The values 0 and 3 are only valid as values in error-source.
+-- 2. The value 5 corresponds to the virtual filestore.
+Document-Type-Name ::= [APPLICATION 14] IMPLICIT OBJECT IDENTIFIER
+
+FADU-Identity ::= [APPLICATION 15] CHOICE {
+ first-last [0] IMPLICIT INTEGER {first(0), last(1)},
+ relative [1] IMPLICIT INTEGER {previous(0), current(1), next(2)},
+ begin-end [2] IMPLICIT INTEGER {begin(0), end(1)},
+ single-name [3] IMPLICIT Node-Name,
+ name-list [4] IMPLICIT SEQUENCE OF Node-Name,
+ fadu-number [5] IMPLICIT INTEGER
+}
+
+-- As defined in ISO 8571-2.
+Node-Name ::= EXTERNAL
+
+-- The type to be used for Node-Name is defined in IS08571-FADU.
+FADU-Lock ::= [APPLICATION 16] IMPLICIT INTEGER {off(0), on(1)}
+
+Password ::= [APPLICATION 17] CHOICE {
+ graphicString GraphicString,
+ octetString OCTET STRING
+}
+
+Read-Attributes ::= [APPLICATION 18] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ object-type
+ [18] IMPLICIT Object-Type-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ permitted-actions
+ [1] IMPLICIT Permitted-Actions-Attribute OPTIONAL,
+ contents-type
+ [2] Contents-Type-Attribute OPTIONAL,
+ linked-Object
+ [19] Pathname-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ child-objects
+ [23] Child-Objects-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ -- Storage group
+ primaty-pathname
+ [20] Pathname-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-Object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ path-access-control
+ [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ legal-qualification
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions
+ [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan be sent if and only if
+-- the limited-filestore-management functional unit is available.
+Select-Attributes ::= [APPLICATION 19] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute
+}
+
+Shared-ASE-Information ::= [APPLICATION 20] IMPLICIT EXTERNAL
+
+-- This field may be used to convey commitment control as described
+-- in ISO 8571-3.
+State-Result ::= [APPLICATION 21] IMPLICIT INTEGER {success(0), failure(1)
+}
+
+User-Identity ::= [APPLICATION 22] IMPLICIT GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Change-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT SEQUENCE {insert-values
+ [0] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL,
+ -- This field is used by the Change attribute actions to indicate
+ -- new values to be inserted in the access control Object attribute.
+ delete-values
+ [1] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL}
+}
+
+-- This field is used by the Change attribute action to indicate
+-- old values to be removed from the access control Object
+-- attribute.
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] IMPLICIT Access-Request,
+ concurrency-access [1] IMPLICIT Concurrency-Access OPTIONAL,
+ identity [2] IMPLICIT User-Identity OPTIONAL,
+ passwords [3] IMPLICIT Access-Passwords OPTIONAL,
+ location [4] IMPLICIT Application-Entity-Title OPTIONAL
+}
+
+Concurrency-Access ::= SEQUENCE {
+ read [0] IMPLICIT Concurrency-Key,
+ insert [1] IMPLICIT Concurrency-Key,
+ replace [2] IMPLICIT Concurrency-Key,
+ extend [3] IMPLICIT Concurrency-Key,
+ erase [4] IMPLICIT Concurrency-Key,
+ read-attribute [5] IMPLICIT Concurrency-Key,
+ change-attribute [6] IMPLICIT Concurrency-Key,
+ delete-Object [7] IMPLICIT Concurrency-Key
+}
+
+Concurrency-Key ::= BIT STRING {
+ not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values Account
+}
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] IMPLICIT SEQUENCE {document-type-name Document-Type-Name,
+ parameter
+ [0] TYPE-IDENTIFIER.&Type OPTIONAL},
+ -- The actual types to be used for values of the Parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-Syntax
+ [1] IMPLICIT SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-Syntax-name Abstract-Syntax-Name
+ }
+}
+
+Date-and-Time-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GeneralizedTime
+}
+
+Object-Availability-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT INTEGER {immediate-availability(0), deferred-availability(1)}
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] IMPLICIT Pathname,
+ complete-pathname [APPLICATION 23] IMPLICIT Pathname
+}
+
+Object-Size-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT INTEGER
+}
+
+Legal-Qualification-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GraphicString
+}
+
+Permitted-Actions-Attribute ::= BIT STRING -- Actions available
+ {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7), pass(11),
+ link(12),
+ -- FADU-Identity groups available
+ traversal(8), reverse-traversal(9), random-Order(10)}
+
+Private-Use-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ abstract-Syntax-not-supported [1] IMPLICIT NULL,
+ -- Indicates that abstract Syntax is not available.
+ actual-values [2] IMPLICIT EXTERNAL
+}
+
+Object-Type-Attribute ::= INTEGER {file(0), file-directory(1), reference(2)}
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values User-Identity
+}
+
+Child-Objects-Attribute ::= SET OF GraphicString
+
+FSM-PDU ::= CHOICE {
+ f-Change-prefix-request [41] IMPLICIT F-CHANGE-PREFIX-request,
+ f-Change-prefix-response [42] IMPLICIT F-CHANGE-PREFIX-response,
+ f-list-request [43] IMPLICIT F-LIST-request,
+ f-list-response [44] IMPLICIT F-LIST-response,
+ f-group-select-request [45] IMPLICIT F-GROUP-SELECT-request,
+ f-group-select-response [46] IMPLICIT F-GROUP-SELECT-response,
+ f-group-delete-request [47] IMPLICIT F-GROUP-DELETE-request,
+ f-group-delete-response [48] IMPLICIT F-GROUP-DELETE-response,
+ f-group-move-request [49] IMPLICIT F-GROUP-MOVE-request,
+ f-group-move-response [50] IMPLICIT F-GROUP-MOVE-response,
+ f-group-copy-request [51] IMPLICIT F-GROUP-COPY-request,
+ f-group-copy-response [52] IMPLICIT F-GROUP-COPY-response,
+ f-group-list-request [53] IMPLICIT F-GROUP-LIST-request,
+ f-group-list-response [54] IMPLICIT F-GROUP-LIST-response,
+ f-group-Change-attrib-request [55] IMPLICIT F-GROUP-CHANGE-ATTRIB-request,
+ f-group-Change-attrib-response [56] IMPLICIT F-GROUP-CHANGE-ATTRIB-response,
+ f-select-another-request [57] IMPLICIT F-SELECT-ANOTHER-request,
+ f-select-another-response [58] IMPLICIT F-SELECT-ANOTHER-response,
+ f-create-directory-request [59] IMPLICIT F-CREATE-DIRECTORY-request,
+ f-create-directory-response [60] IMPLICIT F-CREATE-DIRECTORY-response,
+ f-link-request [61] IMPLICIT F-LINK-request,
+ f-link-response [62] IMPLICIT F-LINK-response,
+ f-unlink-request [63] IMPLICIT F-UNLINK-request,
+ f-unlink-response [64] IMPLICIT F-UNLINK-response,
+ f-read-link-attrib-request [65] IMPLICIT F-READ-LINK-ATTRIB-request,
+ f-read-link-attrib-response [66] IMPLICIT F-READ-LINK-ATTRIB-response,
+ f-Change-link-attrib-request [67] IMPLICIT F-CHANGE-LINK-ATTRIB-request,
+ f-Change-Iink-attrib-response [68] IMPLICIT F-CHANGE-LINK-ATTRIB-response,
+ f-move-request [69] IMPLICIT F-MOVE-request,
+ f-move-response [70] IMPLICIT F-MOVE-response,
+ f-copy-request [71] IMPLICIT F-COPY-request,
+ f-copy-response [72] IMPLICIT F-COPY-response
+}
+
+F-CHANGE-PREFIX-request ::= SEQUENCE {
+ reset [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ destination-file-directory Destination-File-Directory,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL
+}
+
+F-CHANGE-PREFIX-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LIST-request ::= SEQUENCE {
+ attribute-value-asset-tions Attribute-Value-Assertions,
+ scope Scope,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-SELECT-request ::= SEQUENCE {
+ attribute-value-assertions Attribute-Value-Assertions,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ maximum-set-size [0] IMPLICIT INTEGER DEFAULT 0,
+ -- 0 implies no limit.
+ scope Scope,
+ account Account OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-SELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-DELETE-request ::= SEQUENCE {
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0}
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [11] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [1] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-LIST-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [2] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-GROUP-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-request ::= SEQUENCE {
+ attributes Change-Attributes,
+ error-action [1] IMPLICIT Error-Action,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-SELECT-ANOTHER-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-SELECT-ANOTHER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ last-member-indicator [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ referent-indicator Referent-Indicator OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-DIRECTORY-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ shared-ASE-infonnation Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-DIRECTORY-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LINK-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ target-object Pathname-Attribute,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-LINK-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ target-Object Pathname-Attribute,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-UNLINK-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-UNLINK-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-LINK-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are ailowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Attribute-Extension-Names ::= SEQUENCE OF Attribute-Extension-Set-Name
+
+Attribute-Extension-Set-Name ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-attribute-names [1] SEQUENCE OF Extension-Attribute-identifier
+}
+
+Attribute-Extensions ::= SEQUENCE OF Attribute-Extension-Set
+
+Attribute-Extension-Set ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attributes [1] SEQUENCE OF Extension-Attribute
+}
+
+Extension-Attribute ::= SEQUENCE {
+ extension-attribute-identifier
+ TYPE-IDENTIFIER.&id({Extension-Attributes}),
+ extension-attribute
+ TYPE-IDENTIFIER.&Type
+ ({Extension-Attributes}{@extension-attribute-identifier})
+}
+
+Extension-Attributes TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible
+
+Extension-Set-Identifier ::= OBJECT IDENTIFIER
+
+Extension-Attribute-identifier ::= OBJECT IDENTIFIER
+
+Attribute-Value-Assertions ::= [APPLICATION 26] IMPLICIT OR-Set
+
+Scope ::=
+ [APPLICATION 28] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {root-directory [0] Pathname-Attribute OPTIONAL,
+ retrieval-scope [1] IMPLICIT INTEGER {child(0), all(1)}
+ }
+
+OR-Set ::= SEQUENCE OF AND-Set
+
+AND-Set ::=
+ SEQUENCE OF
+ CHOICE {-- Kernel group
+ pathname-Pattern
+ [0] IMPLICIT Pathname-Pattern,
+ object-type-Pattern
+ [18] IMPLICIT Integer-Pattern,
+ permitted-actions-Pattern
+ [1] IMPLICIT Bitstring-Pattern,
+ contents-type-Pattern
+ [2] Contents-Type-Pattern,
+ linked-Object-Pattern
+ [19] IMPLICIT Pathname-Pattern,
+ child-objects-Pattern
+ [23] IMPLICIT Pathname-Pattern,
+ -- Storage group
+ primaty-pathname-Pattern
+ [20] IMPLICIT Pathname-Pattern,
+ storage-account-Pattern
+ [3] IMPLICIT String-Pattern,
+ date-and-time-of-creation-Pattern
+ [4] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-modification-Pattern
+ [5] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-read-access-Pattern
+ [6] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-attribute-modification-Pattern
+ [7] IMPLICIT Date-and-Time-Pattern,
+ identity-of-creator-Pattern
+ [8] IMPLICIT User-Identity-Pattern,
+ identity-of-last-modifier-Pattern
+ [9] IMPLICIT User-Identity-Pattern,
+ identity-of-last-reader-Pattern
+ [10] IMPLICIT User-Identity-Pattern,
+ identity-of-last-attribute-modifier-Pattern
+ [11] IMPLICIT User-Identity-Pattern,
+ object-availabiiity-Pattern
+ [12] IMPLICIT Boolean-Pattern,
+ object-size-Pattern
+ [13] IMPLICIT Integer-Pattern,
+ future-object-size-Pattern
+ [14] IMPLICIT Integer-Pattern,
+ -- Security group
+ -- Access control searches are disallowed.
+ legal-quailfication-Pattern
+ [16] IMPLICIT String-Pattern,
+ -- Private group
+ -- Private use searches are disallowed.
+ -- Attribute Extensions group
+ attribute-extensions-pattern
+ [22] IMPLICIT Attribute-Extensions-Pattern}
+
+User-Identity-Pattern ::= String-Pattern
+
+Equality-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Availabie? fails the test.
+ equals-matches(1)
+
+-- Set implies equal items match the test.
+-- Clear implies equal items fail the test.
+}
+
+Relational-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Available? fails the test.
+ equals-matches(1),
+ -- Set implies equal items match the test.?
+ -- Clear implies equal items fail the test.
+ less-than-matches(2),
+ -- Set implies a value less than the test cke matches.
+ -- Clear implies a value less than the test case fails.
+ greater-than-matches(3)
+
+-- Set implies a value greater than the test case matches.
+-- Clear implies a value greater than the test case fails.
+}
+
+-- Bits 1 through 3 shall not all have the Same value.
+Pathname-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ pathname-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {string-match [2] IMPLICIT String-Pattern,
+ any-match [3] IMPLICIT NULL}
+}
+
+String-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ string-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {substring-match
+ [2] IMPLICIT GraphicString,
+ any-match [3] IMPLICIT NULL,
+ number-of-characters-match [4] IMPLICIT INTEGER
+ }
+}
+
+Bitstring-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ match-bitstring [1] IMPLICIT BIT STRING,
+ significance-bitstring [2] IMPLICIT BIT STRING
+}
+
+Date-and-Time-Pattern ::= SEQUENCE {
+ relational-camparision [0] IMPLICIT Equality-Comparision,
+ time-and-date-value [1] IMPLICIT GeneralizedTime
+}
+
+Integer-Pattern ::= SEQUENCE {
+ relational-comparision [0] IMPLICIT Relational-Comparision,
+ integer-value [1] IMPLICIT INTEGER
+}
+
+Object-Identifier-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ object-identifier-value [1] IMPLICIT OBJECT IDENTIFIER
+}
+
+Boolean-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ boolean-value [1] IMPLICIT BOOLEAN
+}
+
+Other-Pattern ::= Equality-Comparision
+
+-- Matches against ?No Value Available?.
+Contents-Type-Pattern ::= CHOICE {
+ document-type-Pattern
+ [0] IMPLICIT Object-Identifier-Pattern,
+ constraint-set-abstract-Syntax-Pattern
+ [1] IMPLICIT SEQUENCE {constraint-Set-Pattern
+ [2] IMPLICIT Object-Identifier-Pattern OPTIONAL,
+ -- Absent implies any Object Identifier is equal.
+ abstract-Syntax-Pattern
+ [3] IMPLICIT Object-Identifier-Pattern OPTIONAL
+ -- Absent implies any Object identifier is equal.
+ }
+}
+
+Attribute-Extensions-Pattern ::=
+ SEQUENCE OF
+ SEQUENCE {extension-set-identifier
+ [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attribute-Patterns
+ [1] IMPLICIT SEQUENCE OF
+ SEQUENCE {extension-attribute-identifier
+ TYPE-IDENTIFIER.&id
+ ({Extension-attribute-Patterns}),
+ extension-attribute-Pattern
+ TYPE-IDENTIFIER.&Type
+ ({Extension-attribute-Patterns}
+ {@.extension-attribute-identifier})
+ }}
+
+-- conjunction with the extention attribute in Order to
+-- perform Pattern matthing operations on it. it may be
+-- defined in terms of other Patterns within this
+-- Standard.
+Extension-attribute-Patterns TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible information object set
+
+Destination-File-Directory ::= [APPLICATION 24] Pathname-Attribute
+
+Objects-Attributes-List ::=
+ [APPLICATION 25] IMPLICIT SEQUENCE OF Read-Attributes
+
+Override ::= INTEGER {
+ create-failure(0), select-old-Object(1),
+ delete-and-create-with-old-attributes(2),
+ delete-and-create-with-new-attributes(3)}
+
+Error-Action ::= INTEGER {terminate(0), continue(1)}
+
+Operation-Result ::= [APPLICATION 30] CHOICE {
+ success-Object-count [0] IMPLICIT INTEGER,
+ success-Object-names [1] IMPLICIT SEQUENCE OF Pathname
+}
+
+Pathname ::= SEQUENCE OF GraphicString
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+-- There is a one-to-one correspondence between the elements of
+-- Pass-Passwords and the non-terminal elements of the specified
+-- Pathname.
+Path-Access-Passwords ::=
+ [APPLICATION 27] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords,
+ link-password [9] Password}
+
+-- There is a one-to-one correspondence between the elements of
+-- Path-Access-Passwords and the non-terminal elements sf the
+-- specified Pathname.
+Request-Operation-Result ::= [APPLICATION 31] IMPLICIT INTEGER {
+ summary(0), fiii-list(1)}
+
+Attribute-Names ::= BIT STRING -- Kernel group
+ {
+ read-pathname(0), read-Object-type(18), read-permitted-actions(1),
+ read-contents-type(2), read-linked-Object(19),
+ read-Child-objects(23),
+ -- Storage group
+ read-primary-pathname(20), read-storage-account(3),
+ read-date-and-time-of-creation(4),
+ read-date-and-time-of-last-modification(5),
+ read-date-and-time-of-last-read-access(6),
+ read-date-and-time-of-last-attribute-modification(7),
+ read-identity-of-creator(8), read-identity-of-last-modifier(9),
+ read-identity-of-last-reader(10),
+ read-identity-of-last-attribute-modifier(11), read-Object-availability(12),
+ read-Object-size(13),
+ read-future-Object-size(14),
+ -- Security group
+ read-access-control(15), read-path-access-control(21),
+ read-l8gal-qualifiCatiOnS(16),
+ -- Private group
+ read-private-use(17)}
+
+-- Bits 19 through 23 arc defined if and only if the limited-fil8Store-manag8m8nt
+-- or group-manipulation functionat units are available.
+Referent-Indicator ::= [APPLICATION 29] IMPLICIT BOOLEAN
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn
new file mode 100644
index 0000000000..0149602040
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn
@@ -0,0 +1,51 @@
+-- Module ISO9541-SN (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO9541-SN {1 0 9541 2 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Structured-Name, Owner-Name, Object-Name-Component;
+
+Structured-Name ::= SEQUENCE {
+ owner-name [0] IMPLICIT Owner-Name OPTIONAL,
+ -- length restricted to 120 characters
+ owner-description [1] Message OPTIONAL,
+ object-name [2] SEQUENCE OF Object-Name-Component OPTIONAL,
+ -- length restricted to 100 characters
+ object-description [3] Message OPTIONAL
+}
+
+Owner-Name ::= SEQUENCE {
+ objectIdentifier [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ ownerNameComponent [1] SEQUENCE OF Owner-Name-Component OPTIONAL
+}
+
+Owner-Name-Component ::= [0] VisibleString
+
+-- except for "//" and "::"
+Object-Name-Component ::= [0] VisibleString
+
+-- only characters from the following
+-- repertoire: "A-Z", "a-z", "0-9",
+-- Hyphen, and Period. If the name
+-- component is a numeric value,
+-- the first digit is in the range
+-- of 1 to 9
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn
new file mode 100644
index 0000000000..bd1d8d3c48
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn
@@ -0,0 +1,126 @@
+-- Module Identifiers-and-Expressions (T.415:03/1993)
+
+Identifiers-and-Expressions {2 8 1 5 7} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Content-Portion-Identifier, Object-or-Class-Identifier, Style-Identifier,
+ Protected-Part-Identifier, Category-Name, Resource-Name, Binding-Name,
+ Construction-Expression, Object-Id-Expression, Numeric-Expression,
+ String-Expression;
+
+IMPORTS
+ Layout-Object-Type
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Object-Type
+ FROM Logical-Descriptors; -- see 7.10
+
+Content-Portion-Identifier ::= [APPLICATION 0] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions
+Object-or-Class-Identifier ::= [APPLICATION 1] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Style-Identifier ::= [APPLICATION 5] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Protected-Part-Identifier ::= [APPLICATION 7] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Category-Name ::= PrintableString
+
+-- a 'null' value is represented by an empty string
+Resource-Name ::= PrintableString
+
+Binding-Name ::= PrintableString
+
+Construction-Expression ::= CHOICE {
+ construction-type Construction-Type,
+ single-term-construction [3] Construction-Term
+}
+
+Construction-Type ::= CHOICE {
+ sequence-construction [0] IMPLICIT Term-Sequence,
+ aggregate-construction [1] IMPLICIT Term-Sequence,
+ choice-construction [2] IMPLICIT Term-Sequence
+}
+
+Term-Sequence ::= SEQUENCE OF Construction-Term
+
+Construction-Term ::= CHOICE {
+ required-construction-factor [0] Construction-Factor,
+ optional-construction-factor [1] Construction-Factor,
+ repetitive-construction-factor [2] Construction-Factor,
+ optional-repetitive-factor [3] Construction-Factor
+}
+
+Construction-Factor ::= CHOICE {
+ object-class-identifier Object-or-Class-Identifier,
+ construction-type Construction-Type
+}
+
+Object-Id-Expression ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-object-function [1] Object-Id-Expression,
+ superior-object-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Numeric-Expression ::= CHOICE {
+ numeric-literal [0] IMPLICIT INTEGER,
+ increment-application [1] Numeric-Expression,
+ decrement-application [2] Numeric-Expression,
+ ordinal-application
+ [3] CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression},
+ binding-reference [4] IMPLICIT Binding-Reference
+}
+
+Binding-Reference ::= SET {
+ object-reference
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Binding-Selection-Function},
+ binding-identifier Binding-Name
+}
+
+Binding-Selection-Function ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-function [1] Object-Id-Expression,
+ superior-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Current-Instance-Function ::= SEQUENCE {
+ first-parameter
+ CHOICE {identifier [0] IMPLICIT Object-or-Class-Identifier,
+ layout-object-type [1] IMPLICIT Layout-Object-Type,
+ logical-object-type [2] IMPLICIT Logical-Object-Type},
+ second-parameter
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression}
+}
+
+String-Expression ::= SEQUENCE OF Atomic-String-Expression
+
+Atomic-String-Expression ::= CHOICE {
+ string-literal [0] IMPLICIT OCTET STRING,
+ binding-reference [2] IMPLICIT Binding-Reference,
+ make-string-application [3] Numeric-Expression,
+ upper-alpha-application [4] Numeric-Expression,
+ lower-alpha-application [5] Numeric-Expression,
+ upper-roman-application [6] Numeric-Expression,
+ lower-roman-application [7] Numeric-Expression
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn b/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn
new file mode 100644
index 0000000000..813ac9c6a0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn b/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn
new file mode 100644
index 0000000000..2c78360b7b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn
@@ -0,0 +1,57 @@
+-- Module Interchange-Data-Elements (T.415:03/1993)
+
+Interchange-Data-Elements {2 8 1 5 5} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Interchange-Data-Element;
+
+IMPORTS
+ Document-Profile-Descriptor
+ FROM Document-Profile-Descriptor -- see 7.7
+
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors -- see 7.11
+
+ Text-Unit
+ FROM Text-Units -- see 7.13
+
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor
+ FROM Protected-Part-Descriptors -- see 7.15
+
+ Link-Class-Descriptor, Link-Descriptor, Enciphered-Link-Descriptor
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Interchange-Data-Element ::= CHOICE {
+ document-profile [0] IMPLICIT Document-Profile-Descriptor,
+ layout-object-class [1] IMPLICIT Layout-Class-Descriptor,
+ layout-object [2] IMPLICIT Layout-Object-Descriptor,
+ content-portion [3] IMPLICIT Text-Unit,
+ logical-object-class [5] IMPLICIT Logical-Class-Descriptor,
+ logical-object [6] IMPLICIT Logical-Object-Descriptor,
+ presentation-style
+ [7] IMPLICIT Presentation-Style-Descriptor,
+ layout-style [8] IMPLICIT Layout-Style-Descriptor,
+ sealed-doc-prof-descriptor [9] IMPLICIT Sealed-Doc-Prof-Descriptor,
+ enciphered-doc-prof-descriptor
+ [10] IMPLICIT Enciphered-Doc-Prof-Descriptor,
+ preenciphered-bodypart-descriptor
+ [11] IMPLICIT Preenciphered-Bodypart-Descriptor,
+ postenciphered-bodypart-descriptor
+ [12] IMPLICIT Postenciphered-Bodypart-Descriptor,
+ link-class [13] IMPLICIT Link-Class-Descriptor,
+ link [14] IMPLICIT Link-Descriptor,
+ enciphered-link-descriptor [15] IMPLICIT Enciphered-Link-Descriptor
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn
new file mode 100644
index 0000000000..92c887bb06
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn
@@ -0,0 +1,268 @@
+-- Module Layout-Descriptors (T.415:03/1993)
+
+Layout-Descriptors {2 8 1 5 8} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Layout-Object-Descriptor, Layout-Class-Descriptor, Layout-Object-Type,
+ Transparency, Comment-String, Binding-Pair, One-Of-Four-Angles,
+ Measure-Pair, Dimension-Pair, Medium-Type, Colour, Border,
+ Content-Background-Colour, Content-Foreground-Colour, Enciphered,
+ Sealed;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Protected-Part-Identifier,
+ Category-Name, Resource-Name, Binding-Name, Construction-Expression,
+ Object-Id-Expression, Numeric-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Layout
+ FROM Default-Value-Lists -- see 7.12
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Presentation-Time
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Position-Spec ::= SET {
+ offset
+ [0] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ left-hand [2] IMPLICIT INTEGER OPTIONAL,
+ right-hand [3] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ separation
+ [1] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ alignment
+ [2] IMPLICIT INTEGER {right-hand(0), centred(1), left-hand(2)} OPTIONAL,
+ fill-order [3] IMPLICIT INTEGER {normal(0), reverse(1)} OPTIONAL
+}
+
+Dimension-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ variable [1] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Dimension-Spec ::= SEQUENCE {horizontal Dimension,
+ vertical Dimension
+}
+
+Dimension ::= CHOICE {
+ fixed [0] IMPLICIT INTEGER,
+ rule-a
+ [1] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ rule-b
+ [2] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ maximum-size [3] IMPLICIT NULL,
+ not-present [4] IMPLICIT NULL
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Transparency ::= INTEGER {transparent(0), opaque(1)}
+
+Comment-String ::= OCTET STRING
+
+-- string of characters from the sets designated by
+-- the document profile attribute "comments character sets",
+-- plus code extension control functions,
+-- space, carriage return and line feed
+Binding-Pair ::= SET {
+ binding-identifier [0] IMPLICIT Binding-Name,
+ binding-value
+ CHOICE {a [1] Object-Id-Expression,
+ b [2] Numeric-Expression,
+ c [3] String-Expression,
+ d [4] IMPLICIT Object-or-Class-Identifier,
+ e [5] IMPLICIT INTEGER,
+ f [6] IMPLICIT OCTET STRING}
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Medium-Type ::= SEQUENCE {
+ nominal-page-size Measure-Pair OPTIONAL,
+ side-of-sheet INTEGER {unspecified(0), recto(1), verso(2)} OPTIONAL,
+ colour-of-medium [3] Colour-Of-Medium OPTIONAL
+}
+
+Colour ::= INTEGER {colour-of-media(0), coloured(1)}
+
+Border ::= SET {
+ left-hand-edge [0] IMPLICIT Border-Edge OPTIONAL,
+ right-hand-edge [1] IMPLICIT Border-Edge OPTIONAL,
+ trailing-edge [2] IMPLICIT Border-Edge OPTIONAL,
+ leading-edge [3] IMPLICIT Border-Edge OPTIONAL
+}
+
+Border-Edge ::= SET {
+ line-width [0] IMPLICIT INTEGER OPTIONAL,
+ line-type
+ [1] IMPLICIT INTEGER {invisible(0), solid(1), dashed(2), dot(3),
+ dash-dot(4), dash-dot-dot(5)} OPTIONAL,
+ freespace-width [2] IMPLICIT INTEGER OPTIONAL,
+ border-line-colour [3] Border-Line-Colour OPTIONAL
+}
+
+-- a 'null' border edge is represented by an empty set
+Colour-Of-Medium ::= CHOICE {
+ unspecified-colour [3] IMPLICIT NULL,
+ specified-colour Colour-Expression
+}
+
+Border-Line-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Background-Colour ::= CHOICE {
+ content-background-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Foreground-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ content-foreground-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Enciphered ::= SEQUENCE {
+ enciphered-subordinates
+ CHOICE {none-all [0] IMPLICIT INTEGER {none(0), all(1)},
+ partial [1] IMPLICIT SEQUENCE OF NumericString},
+ protected-part-id [2] IMPLICIT Protected-Part-Identifier OPTIONAL
+}
+
+Sealed ::= SEQUENCE {
+ sealed-status [0] IMPLICIT INTEGER {no(0), yes(1)},
+ seal-ids [1] IMPLICIT SET OF INTEGER OPTIONAL
+}
+
+Layout-Object-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type OPTIONAL,
+ descriptor-body Layout-Object-Descriptor-Body OPTIONAL
+}
+
+Layout-Object-Type ::= INTEGER {
+ document-layout-root(0), page-set(1), page(2), frame(3), block(4)}
+
+Layout-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class
+ [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ position [3] IMPLICIT Measure-Pair OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Pair OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ imaging-order
+ [12] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary
+ [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative
+ [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Layout-Class-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type,
+ descriptor-body Layout-Class-Descriptor-Body
+}
+
+Layout-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ position
+ CHOICE {fixed-position [3] IMPLICIT Measure-Pair,
+ variable-position [26] IMPLICIT Position-Spec} OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Spec OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ logical-source
+ [18] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn
new file mode 100644
index 0000000000..64fc4436e4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn
@@ -0,0 +1,80 @@
+-- Module Link-Descriptors (T.424:07/1996)
+
+Link-Descriptors {2 8 1 14 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier,
+ Enciphered-Link-Descriptor;
+
+IMPORTS
+ Reference-Name
+ FROM External-References {2 8 1 12 1}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Style-Identifier, Protected-Part-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Comment-String, Sealed
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Temporal-Relations, Presentation-Time
+ FROM Temporal-Relationships;
+
+-- see 7.5
+Link-or-Link-Class-Identifier ::= [APPLICATION 9] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version of this Recommendation | International Standard;
+-- other characters are reserved for extensions
+Link-Class-Descriptor ::= SET {
+ link-class-identifier Link-or-Link-Class-Identifier,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Descriptor ::= SET {
+ link-identifier Link-or-Link-Class-Identifier,
+ link-class [0] IMPLICIT Link-or-Link-Class-Identifier OPTIONAL,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Role ::= SET {
+ link-ends SET OF Link-End,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Link-End ::= SET {
+ reference
+ SET {reference-name [0] Reference-Name OPTIONAL,
+ reference-qualifier [1] Location-Expression OPTIONAL},
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Enciphered-Link-Descriptor ::= SEQUENCE {
+ protected-part-identifier Protected-Part-Identifier,
+ enciphered-information OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn
new file mode 100644
index 0000000000..5de6491621
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn
@@ -0,0 +1,338 @@
+-- Module Location-Expressions (T.422:08/1995)
+
+Location-Expressions {2 8 1 12 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Location-Expression, Basic-Location-Expression, Constituent-Locator;
+
+IMPORTS
+ Object-or-Class-Identifier, Content-Portion-Identifier, Style-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors {2 8 1 5 9}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors {2 8 1 5 10}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Text-Unit
+ FROM Text-Units {2 8 1 5 12}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Subprofile-Descriptor, Subprofile-Identifier
+ FROM Subprofiles {2 8 1 12 2}
+ -- see 9.3
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- see ITU-T Rec. T.424 | ISO/IEC 8613-14
+-- Location expression
+Location-Expression ::= CHOICE {
+ basic [0] Basic-Location-Expression,
+ composite [1] Composite-Location-Expression
+}
+
+Composite-Location-Expression ::= CHOICE {
+ complement [0] Location-Expression,
+ intersection [1] SEQUENCE OF Location-Expression,
+ union [2] SEQUENCE OF Location-Expression
+}
+
+Basic-Location-Expression ::= CHOICE {
+ region [0] Region-Locator,
+ subtree [1] Subtree-Locator,
+ constituent [2] Constituent-Locator
+}
+
+Region-Locator ::= SEQUENCE {
+ start [0] Start-End-Object-Locator,
+ end [1] Start-End-Object-Locator
+}
+
+Start-End-Object-Locator ::= SEQUENCE {
+ object [0] Object-Locator,
+ not-included [1] BOOLEAN DEFAULT TRUE
+}
+
+Subtree-Locator ::= Object-Locator
+
+Constituent-Locator ::= CHOICE {
+ documentProfile [0] NULL,
+ subprofile [1] Subprofile-Locator,
+ component [2] Component-Locator,
+ contentPortion [3] Content-Portion-Locator,
+ style [4] Style-Locator,
+ link-or-link-class [5] Link-or-Link-Class-Locator,
+ constituent-of-type [6] Constituent-Type
+}
+
+Constituent-Type ::= ENUMERATED {
+ layout-object-class(1), layout-object(2), content-portion(3),
+ logical-object-class(5), logical-object(6), presentation-style(7),
+ layout-style(8), sealed-doc-prof-descriptor(9),
+ enciphered-doc-prof-descriptor(10), preenciphered-bodypart-descriptor(11),
+ postenciphered-bodypart-descriptor(12), link-class(13), link(14),
+ enciphered-link-descriptor(15), subprofile(16)}
+
+-- Subprofile
+Subprofile-Locator ::= CHOICE {
+ subprofile [0] Subprofile-Identifier,
+ subprofile-of [1] Subprofile-of-argument,
+ subprofile-with [2] Subprofile-with-argument
+}
+
+Subprofile-of-argument ::= Constituent-Locator
+
+Subprofile-with-argument ::=
+ AttributeValue-Subprofile-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+-- Component locator
+Component-Locator ::= CHOICE {
+ objectClass [0] Object-Class-Locator,
+ object [1] Object-Locator
+}
+
+Object-Class-Locator ::= CHOICE {
+ objectClass [0] Object-or-Class-Identifier,
+ object-class-of [1] Object-Class-of-argument,
+ object-class-with [2] Object-Class-with-argument
+}
+
+Object-Class-of-argument ::= Object-Locator
+
+Object-Class-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Class-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Object locator
+Object-Locator ::= CHOICE {
+ object [0] Object-or-Class-Identifier,
+ subord [1] Subord-argument,
+ object-with [2] Object-with-argument
+}
+
+Subord-argument ::= SEQUENCE {
+ object [0] Object-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Object-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Object-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ object [1] Object-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Links
+Link-or-Link-Class-Locator ::= CHOICE {
+ linkClass [0] Link-Class-Locator,
+ link [1] Link-Locator
+}
+
+Link-Class-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-class-of [1] Link-Class-of-argument,
+ link-class-with [2] Link-Class-with-arguments
+}
+
+Link-Class-of-argument ::= Link-Locator
+
+Link-Class-with-arguments ::=
+ AttributeValue-Link-Class-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+Link-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-with [1] Link-with-arguments
+}
+
+Link-with-arguments ::= SEQUENCE {
+ attributeValueLink [0] AttributeValue-Link-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Content portion locator
+Content-Portion-Locator ::= CHOICE {
+ contentPortion [0] Content-Portion-Identifier,
+ assoc [1] Assoc-argument,
+ content-with [2] Content-with-argument
+}
+
+Assoc-argument ::= SEQUENCE {
+ component [0] Component-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Content-with-argument ::= SEQUENCE {
+ attributeValueContent [0] AttributeValue-Content-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ component [1] Component-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Styles
+Style-Locator ::= CHOICE {
+ style [0] Style-Identifier,
+ layout-style-of [1] Layout-Style-of-argument,
+ presentation-style-of [2] Presentation-Style-of-argument,
+ layout-style-with [3] Layout-Style-with-argument,
+ presentation-style-with [4] Presentation-Style-with-argument
+}
+
+Layout-Style-of-argument ::= Component-Locator
+
+Presentation-Style-of-argument ::= Component-Locator
+
+Layout-Style-with-argument ::= SEQUENCE {
+ attributeValueLayoutStyle [0] AttributeValue-LayoutStyle-Specification, -- The "attribute" and
+
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+Presentation-Style-with-argument ::= SEQUENCE {
+ attributeValuePresentationStyle
+ [0] AttributeValue-PresentationStyle-Specification,
+ -- The "attribute" and
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Counters
+CountersType ::= SEQUENCE {
+ start [0] INTEGER OPTIONAL,
+ end [1] INTEGER OPTIONAL
+}
+
+-- Attribute-Value specifications
+-- Classes
+AttributeValue-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Class-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Class-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Class-Specification ::= CHOICE {
+ layout [0] Layout-Class-Descriptor,
+ logical [1] Logical-Class-Descriptor
+}
+
+-- Objects
+AttributeValue-Object-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Object-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Object-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Object-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Object-Specification ::= CHOICE {
+ layout [0] Layout-Object-Descriptor,
+ logical [1] Logical-Object-Descriptor
+}
+
+-- Link classes
+AttributeValue-Link-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Link-Class-Specification ::= Link-Class-Descriptor
+
+-- Links
+AttributeValue-Link-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Link-Specification ::= Link-Descriptor
+
+-- Contents
+AttributeValue-Content-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Content-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Content-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Content-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Content-Specification ::= Text-Unit
+
+-- Layout Styles
+AttributeValue-LayoutStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-LayoutStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-LayoutStyle-Specification ::= Layout-Style-Descriptor
+
+-- Presentation Styles
+AttributeValue-PresentationStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-PresentationStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-PresentationStyle-Specification ::=
+ Presentation-Style-Descriptor
+
+-- Subprofiles
+AttributeValue-Subprofile-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Subprofile-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Subprofile-Specification ::= Subprofile-Descriptor
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn
new file mode 100644
index 0000000000..fab36bf12a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn
@@ -0,0 +1,95 @@
+-- Module Logical-Descriptors (T.415:03/1993)
+
+Logical-Descriptors {2 8 1 5 9} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Logical-Object-Descriptor, Logical-Class-Descriptor, Logical-Object-Type,
+ Protection;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Resource-Name,
+ Construction-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Binding-Pair, Enciphered, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Logical
+ FROM Default-Value-Lists -- see 7.12
+
+ Temporal-Relations
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Logical-Object-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type OPTIONAL,
+ descriptor-body Logical-Object-Descriptor-Body OPTIONAL
+}
+
+Logical-Object-Type ::= INTEGER {
+ document-logical-root(0), composite-logical-object(1),
+ basic-logical-object(2)}
+
+Logical-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Logical-Class-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type,
+ descriptor-body Logical-Class-Descriptor-Body
+}
+
+Logical-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Protection ::= INTEGER {unprotected(0), protected(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn
new file mode 100644
index 0000000000..187c3c8ad4
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn
@@ -0,0 +1,187 @@
+-- Module MHSObjectIdentifiers (X.402:06/1999)
+MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Aspects
+id-mhs-protocols ID ::= {joint-iso-itu-t mhs(6) protocols(0)}
+
+-- MHS Application Contexts and Protocols
+-- See ITU-T Rec. X.419 | ISO/IEC 10021-6.
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)}
+
+-- Interpersonal Messaging
+-- See ITU-T Rec. X.420 | ISO/IEC 10021-7.
+-- Value {joint-iso-itu-t mhs(6) 2} is no longer defined
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)}
+
+-- Message Transfer System
+-- See ITU-T Rec. X.411 | ISO/IEC 10021-4.
+id-ms ID ::=
+ {joint-iso-itu-t mhs(6) ms(4)}
+
+-- Message Store
+-- See ITU-T Rec. X.413 | ISO/IEC 10021-5.
+id-arch ID ::=
+ {joint-iso-itu-t mhs(6) arch(5)}
+
+-- Overall Architecture
+-- See this Specification.
+id-group ID ::=
+ {joint-iso-itu-t mhs(6) group(6)}
+
+-- Reserved.
+id-edims ID ::= {joint-iso-itu-t mhs(6) edims(7)}
+
+-- EDI Messaging
+-- See ITU-T Rec. X.435 | ISO/IEC 10021-9.
+id-management ID ::=
+ {joint-iso-itu-t mhs(6) management(9)}
+
+-- MHS Management
+-- See ITU-T Recs. X.460 - X.467 | ISO/IEC 11588.
+id-routing ID ::=
+ {joint-iso-itu-t mhs(6) routing(10)}
+
+-- MHS Routing
+-- See ITU-T Rec. X.412 | ISO/IEC 10021-10.
+-- Categories
+id-mod ID ::=
+ {id-arch 0} -- modules; not definitive
+
+id-oc ID ::= {id-arch 1} -- object classes
+
+id-at ID ::= {id-arch 2} -- attribute types
+
+-- Value {id-arch 3} is no longer defined
+id-mr ID ::=
+ {id-arch 4} -- matching rules
+
+id-con ID ::= {id-arch 5} -- contexts
+
+id-san ID ::= {id-arch 6} -- certificate subject alternative names
+
+-- Modules
+id-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-directory-objects-and-attributes ID ::= {id-mod 1} -- not definitive
+
+-- Object classes
+id-oc-mhs-distribution-list ID ::= {id-oc 0}
+
+id-oc-mhs-message-store ID ::= {id-oc 1}
+
+id-oc-mhs-message-transfer-agent ID ::= {id-oc 2}
+
+id-oc-mhs-user ID ::= {id-oc 3}
+
+id-oc-mhs-user-agent ID ::= {id-oc 4}
+
+-- Attributes
+id-at-mhs-maximum-content-length ID ::= {id-at 0}
+
+id-at-mhs-deliverable-content-types ID ::= {id-at 1}
+
+id-at-mhs-exclusively-acceptable-eits ID ::= {id-at 2}
+
+id-at-mhs-dl-members ID ::= {id-at 3}
+
+id-at-mhs-dl-submit-permissions ID ::= {id-at 4}
+
+id-at-mhs-message-store-dn ID ::= {id-at 5}
+
+id-at-mhs-or-addresses ID ::= {id-at 6}
+
+-- Value {id-at 7} is no longer defined
+id-at-mhs-supported-automatic-actions ID ::=
+ {id-at 8}
+
+id-at-mhs-supported-content-types ID ::= {id-at 9}
+
+id-at-mhs-supported-attributes ID ::= {id-at 10}
+
+id-at-mhs-supported-matching-rules ID ::= {id-at 11}
+
+id-at-mhs-dl-archive-service ID ::= {id-at 12}
+
+id-at-mhs-dl-policy ID ::= {id-at 13}
+
+id-at-mhs-dl-related-lists ID ::= {id-at 14}
+
+id-at-mhs-dl-subscription-service ID ::= {id-at 15}
+
+id-at-mhs-or-addresses-with-capabilities ID ::= {id-at 16}
+
+id-at-mhs-acceptable-eits ID ::= {id-at 17}
+
+id-at-mhs-unacceptable-eits ID ::= {id-at 18}
+
+id-at-mhs-deliverable-classes ID ::= {id-at 19}
+
+id-at-encrypted-mhs-maximum-content-length ID ::= {id-at 0 2}
+
+id-at-encrypted-mhs-deliverable-content-types ID ::= {id-at 1 2}
+
+id-at-encrypted-mhs-exclusively-acceptable-eits ID ::= {id-at 2 2}
+
+id-at-encrypted-mhs-dl-members ID ::= {id-at 3 2}
+
+id-at-encrypted-mhs-dl-submit-permissions ID ::= {id-at 4 2}
+
+id-at-encrypted-mhs-message-store-dn ID ::= {id-at 5 2}
+
+id-at-encrypted-mhs-or-addresses ID ::= {id-at 6 2}
+
+id-at-encrypted-mhs-supported-automatic-actions ID ::= {id-at 8 2}
+
+id-at-encrypted-mhs-supported-content-types ID ::= {id-at 9 2}
+
+id-at-encrypted-mhs-supported-attributes ID ::= {id-at 10 2}
+
+id-at-encrypted-mhs-supported-matching-rules ID ::= {id-at 11 2}
+
+id-at-encrypted-mhs-dl-archive-service ID ::= {id-at 12 2}
+
+id-at-encrypted-mhs-dl-policy ID ::= {id-at 13 2}
+
+id-at-encrypted-mhs-dl-related-lists ID ::= {id-at 14 2}
+
+id-at-encrypted-mhs-dl-subscription-service ID ::= {id-at 15 2}
+
+id-at-encrypted-mhs-or-addresses-with-capabilities ID ::= {id-at 16 2}
+
+id-at-encrypted-mhs-acceptable-eits ID ::= {id-at 17 2}
+
+id-at-encrypted-mhs-unacceptable-eits ID ::= {id-at 18 2}
+
+id-at-encrypted-mhs-deliverable-classes ID ::= {id-at 19 2}
+
+-- Matching Rules
+id-mr-orname-exact-match ID ::= {id-mr 0}
+
+id-mr-address-capabilities-match ID ::= {id-mr 1}
+
+id-mr-capability-match ID ::= {id-mr 2}
+
+-- Contexts
+id-con-dl-administrator-annotation ID ::= {id-con 0}
+
+id-con-dl-nested-dl ID ::= {id-con 1}
+
+id-con-dl-reset-originator ID ::= {id-con 2}
+
+-- Certificate subject alternative names
+id-san-mta-name ID ::= {id-san 0}
+
+END -- of MHSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..40f53b9458
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
@@ -0,0 +1,112 @@
+-- Module MHSProtocolObjectIdentifiers (X.419:06/1999)
+
+MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ object-identifiers(0) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Protocols
+id-mhs-protocols ID ::=
+ {joint-iso-itu-t mhs(6) protocols(0)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::=
+ {id-mhs-protocols 0} -- modules
+
+id-ac ID ::= {id-mhs-protocols 1} -- application contexts
+
+id-as ID ::= {id-mhs-protocols 2} -- abstract syntaxes
+
+id-ase ID ::= {id-mhs-protocols 3} -- application service elements (obsolete)
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-access-protocol ID ::= {id-mod 1} -- not definitive
+
+id-mod-ms-access-protocol ID ::= {id-mod 2} -- not definitive
+
+id-mod-mts-transfer-protocol ID ::= {id-mod 3} -- not definitive
+
+-- Application Contexts
+-- MTS Access Protocol
+id-ac-mts-access-88 ID ::=
+ {id-ac 0}
+
+id-ac-mts-forced-access-88 ID ::= {id-ac 1}
+
+id-ac-mts-reliable-access-88 ID ::= {id-ac 2}
+
+id-ac-mts-forced-reliable-access-88 ID ::= {id-ac 3}
+
+id-ac-mts-access-94 ID ::= {id-ac 7}
+
+id-ac-mts-forced-access-94 ID ::= {id-ac 8}
+
+id-ac-mts-reliable-access-94 ID ::= {id-ac 9}
+
+id-ac-mts-forced-reliable-access-94 ID ::= {id-ac 10}
+
+-- MS Access Protocol
+id-ac-ms-access-88 ID ::= {id-ac 4}
+
+id-ac-ms-reliable-access-88 ID ::= {id-ac 5}
+
+id-ac-ms-access-94 ID ::= {id-ac 11}
+
+id-ac-ms-reliable-access-94 ID ::= {id-ac 12}
+
+-- MTS Transfer Protocol
+id-ac-mts-transfer ID ::= {id-ac 6}
+
+-- Abstract Syntaxes
+id-as-msse ID ::= {id-as 1}
+
+id-as-mdse-88 ID ::= {id-as 2}
+
+id-as-mrse-88 ID ::= {id-as 5}
+
+id-as-mase-88 ID ::= {id-as 6}
+
+id-as-mtse ID ::= {id-as 7}
+
+id-as-mts-rtse ID ::= {id-as 8}
+
+id-as-ms-88 ID ::= {id-as 9}
+
+id-as-ms-rtse ID ::= {id-as 10}
+
+id-as-mts ID ::= {id-as 11}
+
+id-as-mta-rtse ID ::= {id-as 12}
+
+id-as-ms-msse ID ::= {id-as 13}
+
+id-as-mdse-94 ID ::= {id-as 14}
+
+id-as-mrse-94 ID ::= {id-as 15}
+
+id-as-mase-94 ID ::= {id-as 16}
+
+id-as-ms-94 ID ::= {id-as 17}
+
+-- Application Service Elements
+id-ase-msse ID ::= {id-ase 0}
+
+id-ase-mdse ID ::= {id-ase 1}
+
+id-ase-mrse ID ::= {id-ase 2}
+
+id-ase-mase ID ::= {id-ase 3}
+
+id-ase-mtse ID ::= {id-ase 4}
+
+END --of MHSProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn
new file mode 100644
index 0000000000..052b3b2041
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn
@@ -0,0 +1,1085 @@
+-- Module MSAbstractService (X.413:06/1999)
+MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) abstract-service(1)
+ version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS information object classes
+ operationObject1, ABSTRACT-ERROR, ABSTRACT-OPERATION, EXTENSION, MHS-OBJECT,
+ PORT,
+ -- MTS objects and ports
+ administration, delivery, mts-user,
+ submission,
+ -- MTS abstract-operations and abstract-errors
+ cancel-deferred-delivery, element-of-service-not-subscribed,
+ inconsistent-request, new-credentials-unacceptable,
+ old-credentials-incorrectly-specified, originator-invalid,
+ recipient-improperly-specified, remote-bind-error, security-error,
+ submission-control, submission-control-violated,
+ unsupported-critical-function,
+ -- MTS abstract-service data-types
+ CertificateSelectors, Credentials, InitiatorCredentials,
+ MessageSubmissionArgument, MessageSubmissionResult, MessageToken,
+ ORAddressAndOrDirectoryName, ProbeSubmissionArgument,
+ ProbeSubmissionResult, ResponderCredentials, SecurityContext, SecurityLabel
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ administration-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- MTS abstract-service upper bounds
+ ub-content-types, ub-encoded-information-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MS X413ATTRIBUTE table
+ AttributeTable
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching rule table
+ MatchingRuleTable
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS auto-action-table and auto-action-error table
+ AutoActionTable, AutoActionErrorTable
+ --==
+ FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)}
+ -- MS object-identifiers
+ id-cp-ms-connection, id-crt-ms-access-88, id-crt-ms-access-94,
+ id-ext-modify-capability, id-ext-modify-retrieval-status-capability,
+ id-ext-originator-token, id-ext-originator-certificate-selectors-override,
+ id-ext-protected-change-credentials,
+ id-ext-protected-change-credentials-capability, id-ot-ms, id-ot-ms-user,
+ id-pt-retrieval-88, id-pt-retrieval-94, id-pt-ms-submission
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Access abstract-operation and error codes
+ err-attribute-error, err-auto-action-request-error, err-ms-extension-error,
+ err-delete-error, err-entry-class-error, err-fetch-restriction-error,
+ err-invalid-parameters-error, err-message-group-error, err-modify-error,
+ err-range-error, err-security-error, err-sequence-number-error,
+ err-service-error, err-register-ms-error, op-alert, op-delete, op-fetch,
+ op-list, op-modify, op-ms-message-submission, op-ms-probe-submission,
+ op-register-ms, op-summarize
+ --==
+ FROM MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-attributes-supported, ub-attribute-values, ub-auto-action-errors,
+ ub-auto-actions, ub-auto-registrations, ub-default-registrations,
+ ub-entry-classes, ub-error-reasons, ub-extensions, ub-group-depth,
+ ub-group-descriptor-length, ub-group-part-length, ub-matching-rules,
+ ub-message-groups, ub-messages, ub-modifications, ub-per-entry,
+ ub-per-auto-action, ub-service-information-length, ub-summaries,
+ ub-supplementary-info-length, ub-ua-registration-identifier-length,
+ ub-ua-registrations, ub-restrictions
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MATCHING-RULE information object class
+ MATCHING-RULE
+ --==
+ FROM InformationFramework
+
+ -- Remote Operations
+ CONTRACT, CONNECTION-PACKAGE
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+-- MS Abstract Objects
+ms MHS-OBJECT ::= {
+ IS {mts-user}
+ RESPONDS {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms
+}
+
+ms-user MHS-OBJECT ::= {
+ INITIATES {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms-user
+}
+
+-- Contracts
+ms-access-contract-94 CONTRACT ::= {
+ CONNECTION ms-connect
+ INITIATOR CONSUMER OF {retrieval | ms-submission | administration}
+ ID id-crt-ms-access-94
+}
+
+ms-access-contract-88 CONTRACT ::= {
+ CONNECTION ms-connect -- with all 1994 extensions omitted
+ INITIATOR CONSUMER OF {retrieval-88 | submission | administration-88}
+ ID id-crt-ms-access-88
+}
+
+-- Connection-package
+ms-connect CONNECTION-PACKAGE ::= {
+ BIND ms-bind
+ UNBIND ms-unbind
+ ID id-cp-ms-connection
+}
+
+-- MS Ports
+retrieval PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {summarize | list | fetch | delete | register-MS,
+ ... -- 1994 extension addition --, modify}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-94
+}
+
+retrieval-88 PORT ::= {
+ -- With all 1994 extensions to the abstract-operations absent
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {summarize | list | fetch | delete | register-MS}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-88
+}
+
+ms-submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {ms-message-submission | ms-probe-submission | ms-cancel-deferred-delivery}
+ SUPPLIER INVOKES {ms-submission-control}
+ ID id-pt-ms-submission
+}
+
+-- X413ATTRIBUTE information object class
+X413ATTRIBUTE ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type ,
+ &equalityMatch MATCHING-RULE OPTIONAL,
+ &substringsMatch MATCHING-RULE OPTIONAL,
+ &orderingMatch MATCHING-RULE OPTIONAL,
+ &numeration ENUMERATED {single-valued(0), multi-valued(1)},
+ -- 1994 extension
+ &OtherMatches MATCHING-RULE OPTIONAL
+}
+WITH SYNTAX {
+ WITH ATTRIBUTE-SYNTAX &Type,
+ [EQUALITY MATCHING-RULE &equalityMatch,]
+ [SUBSTRINGS MATCHING-RULE &substringsMatch,]
+ [ORDERING MATCHING-RULE &orderingMatch,]
+ [OTHER MATCHING-RULES &OtherMatches,]
+ NUMERATION &numeration,
+ ID &id
+}
+
+Attribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+AttributeType ::= OBJECT IDENTIFIER
+
+-- AUTO-ACTION information object class
+AUTO-ACTION ::= CLASS {
+ &id AutoActionType UNIQUE,
+ &RegistrationParameter OPTIONAL,
+ &Errors AUTO-ACTION-ERROR OPTIONAL
+}
+WITH SYNTAX {
+ [REGISTRATION PARAMETER IS &RegistrationParameter]
+ [ERRORS &Errors]
+ IDENTIFIED BY &id
+}
+
+AutoActionType ::= OBJECT IDENTIFIER
+
+AutoActionRegistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1,
+ registration-parameter
+ [1] AUTO-ACTION.&RegistrationParameter
+ ({AutoActionTable}{@auto-action-type}) OPTIONAL
+}
+
+-- AUTO-ACTION-ERROR information object class
+AUTO-ACTION-ERROR ::=
+ ABSTRACT-ERROR
+
+AutoActionError ::= SET {
+ error-code [0] AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable}),
+ error-parameter
+ [1] AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code})
+ OPTIONAL
+}
+
+-- MS-EXTENSION information object class
+MS-EXTENSION ::= TYPE-IDENTIFIER
+
+MSExtensionItem ::= INSTANCE OF MS-EXTENSION
+
+MSExtensions ::= SEQUENCE SIZE (1..ub-extensions) OF MSExtensionItem
+
+-- Common data-types related to the information model
+EntryClass ::= INTEGER {
+ delivery(0),
+ -- 1994 extensions
+ submission(1), draft(2), stored-message(3), delivery-log(4),
+ submission-log(5), message-log(6), auto-action-log(7)}(0..ub-entry-classes)
+
+EntryType ::= INTEGER {
+ delivered-message(0), delivered-report(1),
+ returned-content(2),
+ -- 1994 extensions
+ submitted-message(3), submitted-probe(4), draft-message(5),
+ auto-action-event(6)}
+
+SequenceNumber ::= INTEGER(0..ub-messages)
+
+RetrievalStatus ::= INTEGER {new(0), listed(1), processed(2)}
+
+MessageGroupName ::= SEQUENCE SIZE (1..ub-group-depth) OF GroupNamePart
+
+GroupNamePart ::= GeneralString(SIZE (1..ub-group-part-length))
+
+-- MS-bind abstract-operation
+ms-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MSBindArgument
+ RESULT MSBindResult
+ ERRORS {ms-bind-error}
+}
+
+MSBindArgument ::= SET {
+ initiator-name ORAddressAndOrDirectoryName,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] IMPLICIT SecurityContext OPTIONAL,
+ fetch-restrictions [4] Restrictions OPTIONAL -- default is none--,
+ ms-configuration-request [5] BOOLEAN DEFAULT FALSE,
+ -- 1994 extensions
+ ua-registration-identifier [6] RegistrationIdentifier OPTIONAL,
+ bind-extensions [7] MSExtensions OPTIONAL
+}
+
+Restrictions ::= SET {
+ allowed-content-types
+ [0] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL--default is no restriction--,
+ allowed-EITs [1] MS-EITs OPTIONAL --default is no restriction--,
+ maximum-attribute-length [2] INTEGER OPTIONAL --default is no restriction--
+}
+
+MS-EITs ::= SET SIZE (1..ub-encoded-information-types) OF MS-EIT
+
+MS-EIT ::= OBJECT IDENTIFIER
+
+RegistrationIdentifier ::=
+ PrintableString(SIZE (1..ub-ua-registration-identifier-length))
+
+MSBindResult ::= SET {
+ responder-credentials [2] ResponderCredentials,
+ available-auto-actions
+ [3] SET SIZE (1..ub-auto-actions) OF AUTO-ACTION.&id({AutoActionTable})
+ OPTIONAL,
+ available-attribute-types
+ [4] SET SIZE (1..ub-attributes-supported) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ alert-indication [5] BOOLEAN DEFAULT FALSE,
+ content-types-supported
+ [6] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL,
+ -- 1994 extensions
+ entry-classes-supported
+ [7] SET SIZE (1..ub-entry-classes) OF EntryClass OPTIONAL,
+ matching-rules-supported
+ [8] SET SIZE (1..ub-matching-rules) OF OBJECT IDENTIFIER OPTIONAL,
+ bind-result-extensions [9] MSExtensions OPTIONAL,
+ message-group-depth [10] INTEGER(1..ub-group-depth) OPTIONAL,
+ auto-action-error-indication [11] AutoActionErrorIndication OPTIONAL,
+ unsupported-extensions
+ [12] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER OPTIONAL,
+ ua-registration-id-unknown [13] BOOLEAN DEFAULT FALSE,
+ service-information
+ [14] GeneralString(SIZE (1..ub-service-information-length)) OPTIONAL
+}
+
+modify-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-capability
+}
+
+modify-retrieval-status-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-retrieval-status-capability
+}
+
+protected-change-credentials-capability MS-EXTENSION ::= {
+ ChangeCredentialsAlgorithms
+ IDENTIFIED BY id-ext-protected-change-credentials-capability
+}
+
+ChangeCredentialsAlgorithms ::= SET OF OBJECT IDENTIFIER
+
+AutoActionErrorIndication ::= CHOICE {
+ indication-only [0] NULL,
+ auto-action-log-entry [1] SequenceNumber
+}
+
+ms-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ CHOICE {unqualified-error BindProblem,
+ -- 1994 extension
+ qualified-error
+ SET {bind-problem [0] BindProblem,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length))
+ OPTIONAL,
+ bind-extension-errors
+ [2] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER
+ OPTIONAL}}
+}
+
+BindProblem ::= ENUMERATED {
+ authentication-error(0), unacceptable-security-context(1),
+ unable-to-establish-association(2), ... -- 1994 extension addition --,
+ bind-extension-problem(3), inadequate-association-confidentiality(4)
+}
+
+-- MS Unbind abstract-operation
+ms-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Common data-types
+Range ::= CHOICE {
+ sequence-number-range [0] NumberRange,
+ creation-time-range [1] TimeRange
+}
+
+NumberRange ::= SEQUENCE {
+ from [0] SequenceNumber OPTIONAL -- omitted means no lower bound--,
+ to [1] SequenceNumber OPTIONAL -- omitted means no upper bound--
+}
+
+TimeRange ::= SEQUENCE {
+ from [0] CreationTime OPTIONAL -- omitted means no lower bound--,
+ to [1] CreationTime OPTIONAL -- omitted means no upper bound--
+}
+
+CreationTime ::= UTCTime
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ any
+ [1] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ final
+ [2] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type})
+ }},
+ greater-or-equal [2] AttributeValueAssertion,
+ less-or-equal [3] AttributeValueAssertion,
+ present [4] X413ATTRIBUTE.&id({AttributeTable}),
+ approximate-match [5] AttributeValueAssertion,
+ -- 1994 extension
+ other-match [6] MatchingRuleAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matching-rule [0] MATCHING-RULE.&id({MatchingRuleTable}),
+ attribute-type [1] X413ATTRIBUTE.&id,
+ match-value
+ [2] MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule})
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-value X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+Selector ::= SET {
+ child-entries [0] BOOLEAN DEFAULT FALSE,
+ range [1] Range OPTIONAL -- default is unbounded --,
+ filter
+ [2] Filter
+ OPTIONAL -- default is all entries within the specified range --,
+ limit [3] INTEGER(1..ub-messages) OPTIONAL,
+ override [4] OverrideRestrictions OPTIONAL -- by default, --
+ -- any fetch-restrictions in force apply
+}
+
+OverrideRestrictions ::= BIT STRING {
+ override-content-types-restriction(0), override-EITs-restriction(1),
+ override-attribute-length-restriction(2)}(SIZE (1..ub-restrictions))
+
+EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection
+
+AttributeSelection ::= SET {
+ type X413ATTRIBUTE.&id({AttributeTable}),
+ from
+ [0] INTEGER(1..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--,
+ count
+ [1] INTEGER(0..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--
+}
+
+EntryInformation ::= SEQUENCE {
+ sequence-number SequenceNumber,
+ attributes SET SIZE (1..ub-per-entry) OF Attribute OPTIONAL,
+ -- 1994 extension
+ value-count-exceeded
+ [0] SET SIZE (1..ub-per-entry) OF AttributeValueCount OPTIONAL
+}
+
+AttributeValueCount ::= SEQUENCE {
+ type [0] X413ATTRIBUTE.&id({AttributeTable}),
+ total [1] INTEGER
+}
+
+MSSubmissionOptions ::= SET {
+ object-entry-class
+ [0] EntryClass(submission | submission-log | draft) OPTIONAL,
+ disable-auto-modify [1] BOOLEAN DEFAULT FALSE,
+ add-message-group-names
+ [2] SET SIZE (1..ub-message-groups) OF MessageGroupName OPTIONAL,
+ ms-submission-extensions [3] MSExtensions OPTIONAL
+}
+
+originator-token MS-EXTENSION ::= {
+ OriginatorToken
+ IDENTIFIED BY id-ext-originator-token
+}
+
+OriginatorToken ::=
+ MessageToken
+ (CONSTRAINED BY {
+
+ -- Must contain an asymmetric-token with an encrypted-data component --})
+
+originator-certificate-selectors-override MS-EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ })
+ IDENTIFIED BY id-ext-originator-certificate-selectors-override
+}
+
+CommonSubmissionResults ::= SET {
+ created-entry [0] SequenceNumber OPTIONAL,
+ auto-action-error-indication [1] AutoActionErrorIndication OPTIONAL,
+ ms-submission-result-extensions [2] MSExtensions OPTIONAL
+}
+
+-- Retrieval Port abstract-operations
+summarize ABSTRACT-OPERATION ::= {
+ ARGUMENT SummarizeArgument
+ RESULT SummarizeResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-summarize
+}
+
+SummarizeArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ summary-requests
+ [2] SEQUENCE SIZE (1..ub-summaries) OF X413ATTRIBUTE.&id({AttributeTable})
+ OPTIONAL -- absent if no summaries are requested--,
+ -- 1994 extension
+ summarize-extensions [3] MSExtensions OPTIONAL
+}
+
+SummarizeResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ count
+ [1] INTEGER(0..ub-messages)-- of the entries selected-- ,
+ span [2] Span OPTIONAL -- of the entries selected,---- omitted if count is zero --,
+ summaries
+ [3] SEQUENCE SIZE (1..ub-summaries) OF Summary OPTIONAL,
+ -- 1994 extension
+ summarize-result-extensions [4] MSExtensions OPTIONAL
+}
+
+Span ::= SEQUENCE {lowest [0] SequenceNumber,
+ highest [1] SequenceNumber
+}
+
+Summary ::= SET {
+ absent
+ [0] INTEGER(1..ub-messages)
+ OPTIONAL --count of entries where X413ATTRIBUTE is absent--,
+ present
+ [1] SET SIZE (1..ub-attribute-values)
+ OF--one for each X413ATTRIBUTE value present--
+ SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ value X413ATTRIBUTE.&Type({AttributeTable}{@.type}),
+ count INTEGER(1..ub-messages)} OPTIONAL
+}
+
+--
+list ABSTRACT-OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-list
+}
+
+ListArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ list-extensions [4] MSExtensions OPTIONAL
+}
+
+ListResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ requested
+ [1] SEQUENCE SIZE (1..ub-messages) OF EntryInformation OPTIONAL--omitted if none found--,
+ -- 1994 extension
+ list-result-extensions [2] MSExtensions OPTIONAL
+}
+
+--
+fetch ABSTRACT-OPERATION ::= {
+ ARGUMENT FetchArgument
+ RESULT FetchResult
+ ERRORS
+ {attribute-error | fetch-restriction-error | invalid-parameters-error |
+ range-error | security-error | sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-fetch
+}
+
+FetchArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ item
+ CHOICE {search [1] Selector,
+ precise [2] SequenceNumber},
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ fetch-extensions [4] MSExtensions OPTIONAL
+}
+
+FetchResult ::= SET {
+ entry-information
+ [0] EntryInformation OPTIONAL --if an entry was selected--,
+ list
+ [1] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ next [2] SequenceNumber OPTIONAL,
+ -- 1994 extension
+ fetch-result-extensions [3] MSExtensions OPTIONAL
+}
+
+--
+delete ABSTRACT-OPERATION ::= {
+ ARGUMENT DeleteArgument
+ RESULT DeleteResult
+ ERRORS
+ {delete-error | invalid-parameters-error | range-error | security-error |
+ sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-delete
+}
+
+DeleteArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ items
+ CHOICE {selector [1] Selector,
+ sequence-numbers [2] SET SIZE (1..ub-messages) OF SequenceNumber
+ },
+ -- 1994 extension
+ delete-extensions [3] MSExtensions OPTIONAL
+}
+
+DeleteResult ::= CHOICE {
+ delete-result-88 NULL,
+ -- 1994 extension
+ delete-result-94
+ SET {entries-deleted
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ delete-result-extensions [1] MSExtensions OPTIONAL}
+}
+
+--
+register-MS ABSTRACT-OPERATION ::= {
+ ARGUMENT Register-MSArgument
+ RESULT Register-MSResult
+ ERRORS
+ {attribute-error | auto-action-request-error | invalid-parameters-error |
+ security-error | service-error | old-credentials-incorrectly-specified |
+ new-credentials-unacceptable, ... -- 1994 extension additions --,
+ message-group-error | ms-extension-error | register-ms-error}
+ LINKED {operationObject1, ...}
+ CODE op-register-ms
+}
+
+Register-MSArgument ::= SET {
+ auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration OPTIONAL,
+ auto-action-deregistrations
+ [1] SET SIZE (1..ub-auto-registrations) OF AutoActionDeregistration
+ OPTIONAL,
+ list-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [3] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ change-credentials
+ [4] SEQUENCE {old-credentials
+ [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials
+ [1] Credentials(WITH COMPONENTS {
+ simple
+ })} OPTIONAL,
+ user-security-labels
+ [5] SET SIZE (1..ub-labels-and-redirections) OF SecurityLabel OPTIONAL,
+ -- 1994 extensions
+ ua-registrations
+ [6] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [7] MSSubmissionOptions OPTIONAL,
+ message-group-registrations [8] MessageGroupRegistrations OPTIONAL,
+ registration-status-request [9] RegistrationTypes OPTIONAL,
+ register-ms-extensions [10] MSExtensions OPTIONAL
+}
+
+AutoActionDeregistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1
+}
+
+UARegistration ::= SET {
+ ua-registration-identifier [0] RegistrationIdentifier,
+ ua-list-attribute-defaults
+ [1] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-fetch-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-submission-defaults [3] MSSubmissionOptions OPTIONAL,
+ content-specific-defaults [4] MSExtensions OPTIONAL
+}
+
+MessageGroupRegistrations ::=
+ SEQUENCE SIZE (1..ub-default-registrations) OF
+ CHOICE {register-group [0] MessageGroupNameAndDescriptor,
+ deregister-group [1] MessageGroupName,
+ change-descriptors [2] MessageGroupNameAndDescriptor}
+
+MessageGroupNameAndDescriptor ::= SET {
+ message-group-name [0] MessageGroupName,
+ message-group-descriptor
+ [1] GeneralString(SIZE (1..ub-group-descriptor-length)) OPTIONAL
+}
+
+RegistrationTypes ::= SET {
+ registrations
+ [0] BIT STRING {auto-action-registrations(0), list-attribute-defaults(1),
+ fetch-attribute-defaults(2), ua-registrations(3),
+ submission-defaults(4), message-group-registrations(5)}
+ OPTIONAL,
+ extended-registrations [1] SET OF MS-EXTENSION.&id OPTIONAL,
+ restrict-message-groups [2] MessageGroupsRestriction OPTIONAL
+}
+
+MessageGroupsRestriction ::= SET {
+ parent-group [0] MessageGroupName OPTIONAL,
+ immediate-descendants-only [1] BOOLEAN DEFAULT TRUE,
+ omit-descriptors [2] BOOLEAN DEFAULT TRUE
+}
+
+protected-change-credentials MS-EXTENSION ::= {
+ ProtectedChangeCredentials
+ IDENTIFIED BY id-ext-protected-change-credentials
+}
+
+ProtectedChangeCredentials ::= SEQUENCE {
+ algorithm-identifier [0] IMPLICIT OBJECT IDENTIFIER,
+ old-credentials
+ InitiatorCredentials(WITH COMPONENTS {
+ protected PRESENT
+ }),
+ password-delta [2] IMPLICIT BIT STRING
+}
+
+Register-MSResult ::= CHOICE {
+ no-status-information NULL,
+ -- 1994 extension
+ registered-information
+ SET {auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration
+ OPTIONAL,
+ list-attribute-defaults
+ [1] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [2] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-registrations
+ [3] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [4] MSSubmissionOptions OPTIONAL,
+ message-group-registrations
+ [5] SET SIZE (1..ub-message-groups) OF
+ MessageGroupNameAndDescriptor OPTIONAL,
+ register-ms-result-extensions [6] MSExtensions OPTIONAL}
+}
+
+--
+alert ABSTRACT-OPERATION ::= {
+ ARGUMENT AlertArgument
+ RESULT AlertResult
+ ERRORS {security-error}
+ LINKED {operationObject1, ...}
+ CODE op-alert
+}
+
+AlertArgument ::= SET {
+ alert-registration-identifier [0] INTEGER(1..ub-auto-actions),
+ new-entry [2] EntryInformation OPTIONAL
+}
+
+AlertResult ::= NULL
+
+--
+modify ABSTRACT-OPERATION ::= {
+ ARGUMENT ModifyArgument
+ RESULT ModifyResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | security-error |
+ sequence-number-error | service-error | modify-error |
+ message-group-error | entry-class-error | ms-extension-error,
+ ... -- For future extension additions --}
+ LINKED {operationObject1, ...}
+ CODE op-modify
+}
+
+ModifyArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ entries
+ CHOICE {selector [1] Selector,
+ specific-entries
+ [2] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber},
+ modifications
+ [3] SEQUENCE SIZE (1..ub-modifications) OF EntryModification,
+ modify-extensions [4] MSExtensions OPTIONAL
+}
+
+EntryModification ::= SET {
+ strict [0] BOOLEAN DEFAULT FALSE,
+ modification
+ CHOICE {add-attribute [1] Attribute,
+ remove-attribute [2] X413ATTRIBUTE.&id({AttributeTable}),
+ add-values [3] OrderedAttribute,
+ remove-values [4] OrderedAttribute}
+}
+
+OrderedAttribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ SEQUENCE {-- at least one must be specified
+ value
+ [0] X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+ OPTIONAL,
+ position [1] INTEGER(1..ub-attribute-values) OPTIONAL
+ }
+}
+
+ModifyResult ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ modify-result-extensions [1] MSExtensions OPTIONAL
+}
+
+-- MS-submission Port abstract-operations
+ms-message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSMessageSubmissionArgument
+ RESULT MSMessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-message-submission
+}
+
+MSMessageSubmissionArgument ::= SEQUENCE {
+ COMPONENTS OF
+ MessageSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+forwarding-request EXTENSION ::= {
+ SequenceNumber,
+ IDENTIFIED BY standard-extension:36
+}
+
+MSMessageSubmissionResult ::= CHOICE {
+ mts-result
+ SET {COMPONENTS OF
+ MessageSubmissionResult-- This imported type has IMPLICIT tags -- ,
+ -- 1994 extension
+ ms-message-result [4] CommonSubmissionResults OPTIONAL},
+ -- 1994 extension
+ store-draft-result [4] CommonSubmissionResults
+}
+
+--
+ms-probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSProbeSubmissionArgument
+ RESULT MSProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-probe-submission
+}
+
+MSProbeSubmissionArgument ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+MSProbeSubmissionResult ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionResult -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ ms-probe-result [4] CommonSubmissionResults OPTIONAL
+}
+
+ms-cancel-deferred-delivery ABSTRACT-OPERATION ::= cancel-deferred-delivery
+
+ms-submission-control ABSTRACT-OPERATION ::= submission-control
+
+-- Abstract-errors
+attribute-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-per-entry) OF
+ SET {problem [0] AttributeProblem,
+ type [1] X413ATTRIBUTE.&id({AttributeTable}),
+ value
+ [2] X413ATTRIBUTE.&Type({AttributeTable}{@.type})
+ OPTIONAL}}
+ CODE err-attribute-error
+}
+
+AttributeProblem ::= INTEGER {
+ invalid-attribute-value(0), unavailable-attribute-type(1),
+ inappropriate-matching(2), attribute-type-not-subscribed(3),
+ inappropriate-for-operation(4),
+ -- 1994 extensions
+ inappropriate-modification(5), single-valued-attribute(6)
+}(0..ub-error-reasons)
+
+--
+auto-action-request-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-auto-registrations) OF
+ SET {problem [0] AutoActionRequestProblem,
+ type [1] AUTO-ACTION.&id({AutoActionTable})
+ }}
+ CODE err-auto-action-request-error
+}
+
+AutoActionRequestProblem ::= INTEGER {
+ unavailable-auto-action-type(0),
+ auto-action-type-not-subscribed(1),
+ -- 1994 extension
+ not-willing-to-perform(2)}(0..ub-error-reasons)
+
+--
+delete-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-messages) OF
+ SET {problem [0] DeleteProblem,
+ sequence-number [1] SequenceNumber},
+ -- 1994 extension
+ entries-deleted
+ [1] SET SIZE (1..ub-messages) OF SequenceNumber OPTIONAL}
+ CODE err-delete-error
+}
+
+DeleteProblem ::= INTEGER {
+ child-entry-specified(0),
+ delete-restriction-problem(1),
+ -- 1994 extensions
+ new-entry-specified(2), entry-class-restriction(3), stored-message-exists(4)
+}(0..ub-error-reasons)
+
+--
+fetch-restriction-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-default-registrations) OF
+ SET {problem [3] FetchRestrictionProblem,
+ restriction
+ CHOICE {content-type [0] OBJECT IDENTIFIER,
+ eit [1] MS-EITs,
+ attribute-length [2] INTEGER}}}
+ CODE err-fetch-restriction-error
+}
+
+FetchRestrictionProblem ::= INTEGER {
+ content-type-problem(1), eit-problem(2), maximum-length-problem(3)
+}(0..ub-error-reasons)
+
+--
+invalid-parameters-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-invalid-parameters-error
+}
+
+--
+range-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] RangeProblem}
+ CODE err-range-error
+}
+
+RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons)
+
+--
+sequence-number-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [1] SET SIZE (1..ub-messages) OF
+ SET {problem [0] SequenceNumberProblem,
+ sequence-number [1] SequenceNumber}}
+ CODE err-sequence-number-error
+}
+
+SequenceNumberProblem ::= INTEGER {no-such-entry(0)}(0..ub-error-reasons)
+
+--
+service-error ABSTRACT-ERROR ::= {
+ PARAMETER ServiceErrorParameter
+ CODE err-service-error
+}
+
+ServiceErrorParameter ::= SET {
+ problem [0] ServiceProblem,
+ -- 1994 extension
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+ServiceProblem ::= INTEGER {busy(0), unavailable(1), unwilling-to-perform(2)
+}(0..ub-error-reasons)
+
+--
+message-group-error ABSTRACT-ERROR ::= {
+ PARAMETER MessageGroupErrorParameter
+ CODE err-message-group-error
+}
+
+MessageGroupErrorParameter ::= SET {
+ problem [0] MessageGroupProblem,
+ name [1] MessageGroupName
+}
+
+MessageGroupProblem ::= INTEGER {
+ name-not-registered(0), name-already-registered(1), parent-not-registered(2),
+ group-not-empty(3), name-in-use(4), child-group-registered(5),
+ group-depth-exceeded(6)}(0..ub-error-reasons)
+
+--
+ms-extension-error ABSTRACT-ERROR ::= {
+ PARAMETER MSExtensionErrorParameter
+ CODE err-ms-extension-error
+}
+
+MSExtensionErrorParameter ::= CHOICE {
+ ms-extension-problem [0] MSExtensionItem,
+ unknown-ms-extension [1] OBJECT IDENTIFIER
+}
+
+--
+register-ms-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problem [0] RegistrationProblem,
+ registration-type [1] RegistrationTypes}
+ CODE err-register-ms-error
+}
+
+RegistrationProblem ::= ENUMERATED {
+ registration-not-supported(0), registration-improperly-specified(1),
+ registration-limit-exceeded(2), ... -- For future extension additions --
+ }
+
+--
+modify-error ABSTRACT-ERROR ::= {
+ PARAMETER ModifyErrorParameter
+ CODE err-modify-error
+}
+
+ModifyErrorParameter ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ failing-entry [1] SequenceNumber,
+ modification-number [2] INTEGER,
+ problem [3] ModifyProblem
+}
+
+ModifyProblem ::= INTEGER {
+ attribute-not-present(0), value-not-present(1),
+ attribute-or-value-already-exists(2), invalid-position(3),
+ modify-restriction-problem(4)}(0..ub-error-reasons)
+
+--
+entry-class-error ABSTRACT-ERROR ::= {
+ PARAMETER EntryClassErrorParameter
+ CODE err-entry-class-error
+}
+
+EntryClassErrorParameter ::= SET {
+ entry-class [0] EntryClass,
+ problem
+ [1] BIT STRING {unsupported-entry-class(0), entry-class-not-subscribed(1),
+ inappropriate-entry-class(2)}
+}
+
+END -- of MS Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn
new file mode 100644
index 0000000000..b69d72b3ed
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn
@@ -0,0 +1,259 @@
+-- Module MSAccessProtocol (X.419:06/1999)
+
+MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MS Abstract Service
+ ms-access-contract-88, ms-access-contract-94, ms-submission, retrieval,
+ retrieval-88
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- MTS Access Protocol
+ message-administration-abstract-syntax-88,
+ message-administration-abstract-syntax-94,
+ message-submission-abstract-syntax
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Object Identifiers
+ id-ac-ms-access-88, id-ac-ms-access-94, id-ac-ms-reliable-access-88,
+ id-ac-ms-reliable-access-94, id-as-ms-msse, id-as-mase-88, id-as-mase-94,
+ id-as-mdse-88, id-as-mdse-94, id-as-mrse-88, id-as-mrse-94, id-as-ms-88,
+ id-as-ms-94, id-as-ms-rtse, id-as-msse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+-- Definitions from X.228(11/1988) --
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+-- end of definitions from X.228 (11/1988) --
+
+-- APPLICATION-CONTEXTS
+-- 1994 Application Context omitting RTSE
+ms-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-abstract-syntax-94}
+ APPLICATION CONTEXT NAME id-ac-ms-access-94
+}
+
+-- 1994 Application Context including RTSE
+ms-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-94
+}
+
+-- 1988 Application Context omitting RTSE
+ms-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-abstract-syntax-88}
+ APPLICATION CONTEXT NAME id-ac-ms-access-88
+}
+
+-- 1988 Application Context including RTSE
+ms-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-88
+}
+
+-- ABSTRACT SYNTAXES
+-- Abstract-syntax for 1994 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs94
+ IDENTIFIED BY id-as-ms-94
+}
+
+MSBindUnbindPDUs94 ::= CHOICE {
+ bind Bind{ms-access-contract-94.&connection.&bind},
+ unbind Unbind{ms-access-contract-94.&connection.&unbind}
+}
+
+-- Abstract-syntax for 1988 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs88
+ IDENTIFIED BY id-as-ms-88
+}
+
+MSBindUnbindPDUs88 ::= CHOICE {
+ bind Bind{ms-access-contract-88.&connection.&bind},
+ unbind Unbind{ms-access-contract-88.&connection.&unbind}
+}
+
+-- Abstract-syntax for MS-bind and MS-unbind with RTSE
+ms-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MS-bind and MS-unbind --
+ IDENTIFIED BY id-as-ms-rtse
+}
+
+-- Abstract Syntax for MS Message Submission Service Element
+ms-message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MSMessageSubmissionPDUs
+ IDENTIFIED BY id-as-ms-msse
+}
+
+MSMessageSubmissionPDUs ::= ROS-SingleAS{{MSInvokeIds}, ms-submission}
+
+MSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Abstract Syntax for Message Retrieval Service Element 1994
+message-retrieval-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs
+ IDENTIFIED BY id-as-mrse-94
+}
+
+-- Abstract Syntax for Message Retrieval Service Element 1988
+MessageRetrievalPDUs ::=
+ ROS-SingleAS{{MSInvokeIds}, retrieval}
+
+message-retrieval-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs88
+ IDENTIFIED BY id-as-mrse-88
+}
+
+MessageRetrievalPDUs88 ::= ROS-SingleAS{{MSInvokeIds}, retrieval-88}
+
+-- Remote Operations
+op-ms-submission-control Code ::= local:2
+
+op-ms-message-submission Code ::= local:3
+
+op-ms-probe-submission Code ::= local:4
+
+op-ms-cancel-deferred-delivery Code ::= local:7
+
+op-summarize Code ::= local:20
+
+op-list Code ::= local:21
+
+op-fetch Code ::= local:22
+
+op-delete Code ::= local:23
+
+op-register-ms Code ::= local:24
+
+op-alert Code ::= local:25
+
+op-modify Code ::= local:26
+
+-- Remote Errors
+err-attribute-error Code ::= local:21
+
+err-auto-action-request-error Code ::= local:22
+
+err-delete-error Code ::= local:23
+
+err-fetch-restriction-error Code ::= local:24
+
+err-range-error Code ::= local:25 -- 1988 Application Contexts only
+
+err-security-error Code ::= local:26
+
+err-service-error Code ::= local:27
+
+err-sequence-number-error Code ::= local:28
+
+err-invalid-parameters-error Code ::= local:29
+
+err-message-group-error Code ::= local:30
+
+err-ms-extension-error Code ::= local:31
+
+err-register-ms-error Code ::= local:32
+
+err-modify-error Code ::= local:33
+
+err-entry-class-error Code ::= local:34
+
+END -- of MSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn
new file mode 100644
index 0000000000..99d34b2883
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn
@@ -0,0 +1,830 @@
+-- Module MSGeneralAttributeTypes (X.413:06/1999)
+MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- X413ATTRIBUTE information object class
+ X413ATTRIBUTE,
+ -- MS abstract-service data-types
+ AutoActionError, AutoActionType, CreationTime, EntryClassErrorParameter,
+ EntryType, MessageGroupName, MessageGroupErrorParameter, MS-EIT,
+ MSExtensionErrorParameter, RetrievalStatus, SequenceNumber,
+ ServiceErrorParameter
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- General-attribute-type Object Identifiers
+ id-att-ac-correlated-report-list, id-att-ac-report-subject-entry,
+ id-att-ac-report-summary, id-att-ac-uncorrelated-report-list,
+ id-att-auto-action-error, id-att-auto-action-registration-identifier,
+ id-att-auto-action-subject-entry, id-att-auto-action-type,
+ id-att-certificate-selectors, id-att-child-sequence-numbers,
+ id-att-content, id-att-content-confidentiality-algorithm-identifier,
+ id-att-content-correlator, id-att-content-identifier,
+ id-att-content-integrity-check, id-att-content-length,
+ id-att-content-returned, id-att-content-type,
+ id-att-conversion-with-loss-prohibited, id-att-converted-EITs,
+ id-att-creation-time, id-att-deferred-delivery-cancellation-time,
+ id-att-deferred-delivery-time, id-att-deletion-time, id-att-delivered-EITs,
+ id-att-delivery-flags, id-att-dl-exempted-recipients,
+ id-att-dl-expansion-history, id-att-dl-expansion-prohibited,
+ id-att-entry-type, id-att-internal-trace-information,
+ id-att-latest-delivery-time, id-att-locally-originated,
+ id-att-marked-for-deletion, id-att-message-delivery-envelope,
+ id-att-message-delivery-time, id-att-message-group-name,
+ id-att-message-identifier, id-att-message-notes,
+ id-att-message-origin-authentication-check, id-att-message-security-label,
+ id-att-message-submission-envelope, id-att-message-submission-time,
+ id-att-message-token, id-att-ms-originated, id-att-ms-submission-error,
+ id-att-multiple-originator-certificates, id-att-original-EITs,
+ id-att-originally-intended-recipient-name,
+ id-att-originating-MTA-certificate, id-att-originator-certificate,
+ id-att-originator-name, id-att-originator-report-request,
+ id-att-originator-return-address, id-att-other-recipient-names,
+ id-att-parent-sequence-number, id-att-per-message-indicators,
+ id-att-per-recipient-message-submission-fields,
+ id-att-per-recipient-probe-submission-fields,
+ id-att-per-recipient-report-delivery-fields, id-att-priority,
+ id-att-probe-origin-authentication-check, id-att-probe-submission-envelope,
+ id-att-proof-of-delivery-request, id-att-proof-of-submission,
+ id-att-recipient-certificate, id-att-recipient-names,
+ id-att-recipient-reassignment-prohibited, id-att-redirection-history,
+ id-att-report-delivery-envelope, id-att-reporting-DL-name,
+ id-att-reporting-MTA-certificate,
+ id-att-report-origin-authentication-check, id-att-retrieval-status,
+ id-att-security-classification, id-att-sequence-number,
+ id-att-signature-verification-status, id-att-storage-period,
+ id-att-storage-time, id-att-subject-submission-identifier,
+ id-att-this-recipient-name, id-att-trace-information
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Message Store matching-rules
+ bitStringMatch, contentCorrelatorMatch, contentIdentifierMatch,
+ mSSingleSubstringListElementsMatch, mSSingleSubstringListMatch,
+ mSSingleSubstringMatch, mSSubstringsMatch, mSStringCaseSensitiveMatch,
+ mSStringListElementsMatch, mSStringListMatch, mSStringMatch,
+ mSStringOrderingMatch, mTSIdentifierMatch, oRAddressElementsMatch,
+ oRAddressMatch, oRAddressSubstringElementsMatch, oRNameElementsMatch,
+ oRNameMatch, oRNameSingleElementMatch, oRNameSubstringElementsMatch,
+ redirectionOrDLExpansionElementsMatch, redirectionOrDLExpansionMatch,
+ redirectionOrDLExpansionSingleElementMatch,
+ redirectionOrDLExpansionSubstringElementsMatch, redirectionReasonMatch,
+ valueCountMatch
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-entry-types, ub-message-notes-length
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service data-types
+ CertificateSelectors, Content, ContentCorrelator, ContentIdentifier,
+ ContentIntegrityCheck, ContentLength, ConversionWithLossProhibited,
+ DeferredDeliveryTime, DeliveryFlags, DLExpansion, DLExpansionProhibited,
+ ExtendedCertificates, ImproperlySpecifiedRecipients, LatestDeliveryTime,
+ MessageDeliveryEnvelope, MessageDeliveryTime,
+ MessageOriginAuthenticationCheck, MessageSecurityLabel,
+ MessageSubmissionEnvelope, MessageSubmissionTime, MessageToken,
+ MTSIdentifier, OriginatingMTACertificate, OriginatorCertificate,
+ OriginatorReportRequest, OriginatorReturnAddress, ORName,
+ PerMessageIndicators, PerRecipientMessageSubmissionFields,
+ PerRecipientProbeSubmissionFields, PerRecipientReportDeliveryFields,
+ Priority, ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope,
+ ProofOfDeliveryRequest, ProofOfSubmission, RecipientReassignmentProhibited,
+ Redirection, ReportDeliveryEnvelope, ReportingDLName,
+ ReportingMTACertificate, ReportOriginAuthenticationCheck,
+ SecurityClassification, SecurityProblem, SubjectSubmissionIdentifier
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service upper bound
+ ub-recipients
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MTA abstract-service data-types
+ InternalTraceInformationElement, TraceInformationElement
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- Directory matching-rules
+ booleanMatch, integerMatch, integerOrderingMatch, uTCTimeMatch,
+ uTCTimeOrderingMatch
+ FROM SelectedAttributeTypes
+ objectIdentifierMatch
+ FROM InformationFramework
+
+ -- Authentication-service data-types
+ AlgorithmIdentifier
+ FROM AuthenticationFramework;
+
+-- X413ATTRIBUTE table
+AttributeTable X413ATTRIBUTE ::=
+ {GeneralAttributes | ContentSpecificAttributes}
+
+GeneralAttributes X413ATTRIBUTE ::=
+ {ms-child-sequence-numbers | mt-content |
+ mt-content-confidentiality-algorithm-identifier | mt-content-correlator |
+ mt-content-identifier | mt-content-integrity-check | ms-content-length |
+ ms-content-returned | mt-content-type | mt-conversion-with-loss-prohibited |
+ mt-converted-EITs | ms-creation-time | ms-delivered-EITs | mt-delivery-flags
+ | mt-dl-expansion-history | ms-entry-type | mt-message-delivery-envelope |
+ mt-message-delivery-time | mt-message-identifier |
+ mt-message-origin-authentication-check | mt-message-security-label |
+ mt-message-submission-time | mt-message-token | mt-original-EITs |
+ mt-originally-intended-recipient-name | mt-originator-certificate |
+ mt-originator-name | mt-other-recipient-names | ms-parent-sequence-number |
+ mt-per-recipient-report-delivery-fields | mt-priority |
+ mt-proof-of-delivery-request | mt-redirection-history |
+ mt-report-delivery-envelope | mt-reporting-DL-name |
+ mt-reporting-MTA-certificate | mt-report-origin-authentication-check |
+ ms-retrieval-status | mt-security-classification | ms-sequence-number |
+ mt-subject-submission-identifier | mt-this-recipient-name,
+ ... -- 1994 extension additions --, ms-ac-correlated-report-list |
+ ms-ac-report-subject-entry | ms-ac-report-summary |
+ ms-ac-uncorrelated-report-list | ms-auto-action-error |
+ ms-auto-action-registration-identifier | ms-auto-action-subject-entry |
+ ms-auto-action-type | mt-certificate-selectors |
+ ms-deferred-delivery-cancellation-time | mt-deferred-delivery-time |
+ ms-deletion-time | mt-dl-exempted-recipients | mt-dl-expansion-prohibited |
+ mt-internal-trace-information | mt-latest-delivery-time |
+ ms-locally-originated | ms-marked-for-deletion | ms-message-group-name |
+ ms-message-notes | mt-message-submission-envelope |
+ mt-multiple-originator-certificates | ms-originated | ms-submission-error |
+ mt-originating-MTA-certificate | mt-originator-report-request |
+ mt-originator-return-address | mt-per-message-indicators |
+ mt-per-recipient-message-submission-fields |
+ mt-per-recipient-probe-submission-fields |
+ mt-probe-origin-authentication-check | mt-probe-submission-envelope |
+ mt-proof-of-submission | mt-recipient-certificate | ms-recipient-names |
+ mt-recipient-reassignment-prohibited | ms-signature-verification-status |
+ ms-storage-period | ms-storage-time | mt-trace-information}
+
+ContentSpecificAttributes X413ATTRIBUTE ::=
+ {...}
+
+-- Attribute-types
+ms-ac-correlated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportLocation,
+ NUMERATION multi-valued,
+ ID id-att-ac-correlated-report-list
+}
+
+ReportLocation ::= CHOICE {
+ no-correlated-reports [0] NULL,
+ location [1] SEQUENCE OF PerRecipientReport
+}
+
+PerRecipientReport ::= SEQUENCE {
+ report-entry [0] SequenceNumber,
+ position [1] INTEGER(1..ub-recipients) DEFAULT 1
+}
+
+ms-ac-report-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-ac-report-subject-entry
+}
+
+ms-ac-report-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportSummary,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-att-ac-report-summary
+}
+
+ReportSummary ::= ENUMERATED {
+ no-report-requested(0) -- non-delivery report suppressed --,
+ no-report-received(1) -- non-delivery report requested --,
+ report-outstanding(2) -- delivery report requested --, delivery-cancelled(3),
+ delivery-report-from-another-recipient(4),
+ non-delivery-report-from-another-recipient(5),
+ delivery-report-from-intended-recipient(6),
+ non-delivery-report-from-intended-recipient(7)}
+
+ms-ac-uncorrelated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReport,
+ NUMERATION multi-valued,
+ ID id-att-ac-uncorrelated-report-list
+}
+
+ms-auto-action-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionError,
+ NUMERATION single-valued,
+ ID id-att-auto-action-error
+}
+
+ms-auto-action-registration-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX INTEGER,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-registration-identifier
+}
+
+ms-auto-action-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-subject-entry
+}
+
+ms-auto-action-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionType,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-type
+}
+
+mt-certificate-selectors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CertificateSelectors,
+ NUMERATION single-valued,
+ ID id-att-certificate-selectors
+}
+
+ms-child-sequence-numbers X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-att-child-sequence-numbers
+}
+
+mt-content X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Content,
+ NUMERATION single-valued,
+ ID id-att-content
+}
+
+mt-content-confidentiality-algorithm-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AlgorithmIdentifier,
+ NUMERATION single-valued,
+ ID id-att-content-confidentiality-algorithm-identifier
+}
+
+mt-content-correlator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentCorrelator,
+ EQUALITY MATCHING-RULE contentCorrelatorMatch,
+ NUMERATION single-valued,
+ ID id-att-content-correlator
+}
+
+mt-content-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIdentifier,
+ EQUALITY MATCHING-RULE contentIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-identifier
+}
+
+mt-content-integrity-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIntegrityCheck,
+ NUMERATION single-valued,
+ ID id-att-content-integrity-check
+}
+
+ms-content-length X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentLength,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-content-length
+}
+
+ms-content-returned X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-att-content-returned
+}
+
+mt-content-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-type
+}
+
+mt-conversion-with-loss-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ConversionWithLossProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-conversion-with-loss-prohibited
+}
+
+mt-converted-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-converted-EITs
+}
+
+ms-creation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CreationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-creation-time
+}
+
+ms-deferred-delivery-cancellation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryCancellationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-cancellation-time
+}
+
+DeferredDeliveryCancellationTime ::= UTCTime
+
+mt-deferred-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-time
+}
+
+ms-deletion-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeletionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deletion-time
+}
+
+DeletionTime ::= UTCTime
+
+ms-delivered-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-delivered-EITs
+}
+
+mt-delivery-flags X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveryFlags,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-delivery-flags
+}
+
+mt-dl-exempted-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-exempted-recipients
+}
+
+mt-dl-expansion-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansion,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-expansion-history
+}
+
+mt-dl-expansion-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansionProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-dl-expansion-prohibited
+}
+
+ms-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-entry-type
+}
+
+mt-internal-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InternalTraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-internal-trace-information
+}
+
+mt-latest-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX LatestDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-latest-delivery-time
+}
+
+ms-locally-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-locally-originated
+}
+
+ms-marked-for-deletion X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-marked-for-deletion
+}
+
+mt-message-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-envelope
+}
+
+mt-message-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-time
+}
+
+ms-message-group-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageGroupName,
+ EQUALITY MATCHING-RULE mSStringListMatch,
+ OTHER MATCHING-RULES
+ {mSSingleSubstringListMatch | mSStringListElementsMatch |
+ mSSingleSubstringListElementsMatch | valueCountMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-message-group-name
+}
+
+mt-message-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MTSIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-message-identifier
+}
+
+ms-message-notes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX GeneralString(SIZE (1..ub-message-notes-length)),
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION multi-valued,
+ ID id-att-message-notes
+}
+
+mt-message-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-message-origin-authentication-check
+}
+
+mt-message-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSecurityLabel,
+ NUMERATION single-valued,
+ ID id-att-message-security-label
+}
+
+mt-message-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-submission-envelope
+}
+
+mt-message-submission-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-submission-time
+}
+
+mt-message-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-att-message-token
+}
+
+ms-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-ms-originated
+}
+
+ms-submission-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmissionError,
+ NUMERATION single-valued,
+ ID id-att-ms-submission-error
+}
+
+SubmissionError ::= CHOICE {
+ submission-control-violated [1] NULL,
+ originator-invalid [2] NULL,
+ recipient-improperly-specified [3] ImproperlySpecifiedRecipients,
+ element-of-service-not-subscribed [4] NULL,
+ inconsistent-request [11] NULL,
+ security-error [12] SecurityProblem,
+ unsupported-critical-function [13] NULL,
+ remote-bind-error [15] NULL,
+ service-error [27] ServiceErrorParameter,
+ message-group-error [30] MessageGroupErrorParameter,
+ ms-extension-error [31] MSExtensionErrorParameter,
+ entry-class-error [34] EntryClassErrorParameter
+}
+
+mt-multiple-originator-certificates X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-multiple-originator-certificates
+}
+
+mt-original-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-original-EITs
+}
+
+mt-originally-intended-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originally-intended-recipient-name
+}
+
+mt-originating-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-originating-MTA-certificate
+}
+
+mt-originator-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorCertificate,
+ NUMERATION single-valued,
+ ID id-att-originator-certificate
+}
+
+mt-originator-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originator-name
+}
+
+mt-originator-report-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReportRequest,
+ NUMERATION multi-valued,
+ ID id-att-originator-report-request
+}
+
+mt-originator-return-address X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReturnAddress,
+ NUMERATION single-valued,
+ ID id-att-originator-return-address
+}
+
+mt-other-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-other-recipient-names
+}
+
+ms-parent-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-parent-sequence-number
+}
+
+mt-per-message-indicators X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerMessageIndicators,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-per-message-indicators
+}
+
+mt-per-recipient-message-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientMessageSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-message-submission-fields
+}
+
+mt-per-recipient-probe-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientProbeSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-probe-submission-fields
+}
+
+mt-per-recipient-report-delivery-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReportDeliveryFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-report-delivery-fields
+}
+
+mt-priority X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Priority,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-priority
+}
+
+mt-probe-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-probe-origin-authentication-check
+}
+
+mt-probe-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-probe-submission-envelope
+}
+
+mt-proof-of-delivery-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfDeliveryRequest,
+ EQUALITY MATCHING-RULE
+ integerMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-proof-of-delivery-request
+}
+
+mt-proof-of-submission X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfSubmission,
+ NUMERATION single-valued,
+ ID id-att-proof-of-submission
+}
+
+mt-recipient-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-recipient-certificate
+}
+
+ms-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-recipient-names
+}
+
+mt-recipient-reassignment-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientReassignmentProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-recipient-reassignment-prohibited
+}
+
+mt-redirection-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Redirection,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch | redirectionReasonMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-att-redirection-history
+}
+
+mt-report-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-report-delivery-envelope
+}
+
+mt-reporting-DL-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingDLName,
+ EQUALITY MATCHING-RULE
+ oRNameMatch, -- rule not defined in 1988 Application Contexts
+
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-reporting-DL-name
+}
+
+mt-reporting-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-reporting-MTA-certificate
+}
+
+mt-report-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-report-origin-authentication-check
+}
+
+ms-retrieval-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RetrievalStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-retrieval-status
+}
+
+mt-security-classification X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SecurityClassification,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-security-classification
+}
+
+ms-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-sequence-number
+}
+
+ms-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SignatureVerificationStatus,
+ NUMERATION single-valued,
+ ID id-att-signature-verification-status
+}
+
+SignatureVerificationStatus ::= SET {
+ content-integrity-check
+ [0] SignatureStatus DEFAULT signature-absent,
+ message-origin-authentication-check
+ [1] SignatureStatus DEFAULT signature-absent,
+ message-token
+ [2] SignatureStatus DEFAULT signature-absent,
+ report-origin-authentication-check
+ [3] SignatureStatus DEFAULT signature-absent,
+ proof-of-delivery
+ [4] SignatureStatus DEFAULT signature-absent,
+ proof-of-submission
+ [5] SignatureStatus DEFAULT signature-absent
+}
+
+SignatureStatus ::= INTEGER {
+ signature-absent(0), verification-in-progress(1), verification-succeeded(2),
+ verification-not-possible(3), content-converted(4), signature-encrypted(5),
+ algorithm-not-supported(6), certificate-not-obtainable(7),
+ verification-failed(8)}
+
+ms-storage-period X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StoragePeriod,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-period
+}
+
+StoragePeriod ::= INTEGER -- seconds
+
+ms-storage-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StorageTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-time
+}
+
+StorageTime ::= UTCTime
+
+mt-subject-submission-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectSubmissionIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-subject-submission-identifier
+}
+
+mt-this-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-this-recipient-name
+}
+
+mt-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-trace-information
+}
+
+END -- of MSGeneralAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn
new file mode 100644
index 0000000000..eceae4ab44
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn
@@ -0,0 +1,118 @@
+-- Module MSGeneralAutoActionTypes (X.413:06/1999)
+MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- AUTO-ACTION and AUTO-ACTION-ERROR information object classes
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS abstract-service data-types and abstract-errors
+ EntryClass, EntryInformationSelection, EntryModification, Filter,
+ message-group-error, modify-error, service-error, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS Object Identifiers
+ id-aae-auto-alert-error, id-act-auto-alert, id-act-auto-correlate-reports,
+ id-act-auto-delete, id-act-auto-modify
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-alert-addresses, ub-modifications, ub-supplementary-info-length
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service
+ security-error
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Auto-action table information object set
+AutoActionTable AUTO-ACTION ::=
+ {GeneralAutoActions | ContentSpecificAutoActions}
+
+GeneralAutoActions AUTO-ACTION ::=
+ {auto-alert, ... -- 1994 extension additions --, auto-modify |
+ auto-correlate-reports | auto-delete}
+
+ContentSpecificAutoActions AUTO-ACTION ::=
+ {...}
+
+-- Auto-action error table information object set
+AutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {GeneralAutoActionErrors | ContentSpecificAutoActionErrors}
+
+GeneralAutoActionErrors AUTO-ACTION-ERROR ::=
+ {auto-alert-error | modify-error | service-error | security-error |
+ message-group-error, ... -- For future extension additions --}
+
+ContentSpecificAutoActionErrors AUTO-ACTION-ERROR ::=
+ {...}
+
+-- Auto-action-types
+auto-alert AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoAlertRegistrationParameter
+ ERRORS {auto-alert-error}
+ IDENTIFIED BY id-act-auto-alert
+}
+
+AutoAlertRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ alert-destinations
+ [1] SEQUENCE SIZE (1..ub-alert-addresses) OF AlertDestination OPTIONAL,
+ requested-attributes [2] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ suppress-alert-destinations [3] BOOLEAN DEFAULT TRUE
+}
+
+AlertDestination ::= SEQUENCE {
+ alert-address EXTERNAL,
+ alert-qualifier OCTET STRING OPTIONAL
+}
+
+--
+auto-modify AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoModifyRegistrationParameter
+ ERRORS
+ {security-error | service-error | modify-error | message-group-error}
+ IDENTIFIED BY id-act-auto-modify
+}
+
+AutoModifyRegistrationParameter ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ filter [1] Filter OPTIONAL,
+ modifications [2] SEQUENCE SIZE (1..ub-modifications) OF EntryModification
+}
+
+--
+auto-correlate-reports AUTO-ACTION ::= {
+ IDENTIFIED BY id-act-auto-correlate-reports
+}
+
+--
+auto-delete AUTO-ACTION ::= {
+ ERRORS {security-error}
+ IDENTIFIED BY id-act-auto-delete
+}
+
+-- Auto-action errors
+auto-alert-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SEQUENCE SIZE (1..ub-alert-addresses) OF AutoAlertErrorIndication
+ CODE global:id-aae-auto-alert-error
+}
+
+AutoAlertErrorIndication ::= SET {
+ failing-alert-destination [0] AlertDestination OPTIONAL,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+END -- of MSGeneralAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn
new file mode 100644
index 0000000000..37c894da86
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn
@@ -0,0 +1,225 @@
+-- Module MSMatchingRules (X.413:06/1999)
+MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+--Exports everything
+IMPORTS
+ -- MATCHING-RULE information object class and Directory matching-rules
+ MATCHING-RULE, objectIdentifierMatch
+ --==
+ FROM InformationFramework
+ bitStringMatch, booleanMatch, generalizedTimeMatch,
+ generalizedTimeOrderingMatch, integerMatch, integerOrderingMatch,
+ uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes
+
+ -- Matching-rule Object Identifiers
+ id-mr-content-correlator-match, id-mr-content-identifier-match,
+ id-mr-ms-single-substring-list-elements-match,
+ id-mr-ms-single-substring-list-match, id-mr-ms-single-substring-match,
+ id-mr-ms-substrings-match, id-mr-msstring-case-sensitive-match,
+ id-mr-msstring-list-elements-match, id-mr-msstring-list-match,
+ id-mr-msstring-match, id-mr-msstring-ordering-match,
+ id-mr-mts-identifier-match, id-mr-oraddress-elements-match,
+ id-mr-oraddress-match, id-mr-oraddress-substring-elements-match,
+ id-mr-orname-elements-match, id-mr-orname-match,
+ id-mr-orname-single-element-match, id-mr-orname-substring-elements-match,
+ id-mr-redirection-or-dl-expansion-elements-match,
+ id-mr-redirection-or-dl-expansion-match,
+ id-mr-redirection-or-dl-expansion-single-element-match,
+ id-mr-redirection-or-dl-expansion-substring-elements-match,
+ id-mr-redirection-reason-match, id-mr-value-count-match
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS upper bounds
+ ub-attribute-values, ub-msstring-match
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract service
+ ContentCorrelator, ContentIdentifier, MTSIdentifier, ORAddress,
+ ORAddressAndOptionalDirectoryName, ORName, RedirectionReason
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Matching rule table information object set
+MatchingRuleTable MATCHING-RULE ::=
+ {GeneralMatchingRules | ContentSpecificMatchingRules}
+
+GeneralMatchingRules MATCHING-RULE ::=
+ {bitStringMatch | booleanMatch | contentIdentifierMatch | integerMatch |
+ integerOrderingMatch | mSStringCaseSensitiveMatch | objectIdentifierMatch |
+ oRNameMatch | uTCTimeMatch | uTCTimeOrderingMatch,
+ ... -- 1994 extension additions --, contentCorrelatorMatch |
+ generalizedTimeMatch | generalizedTimeOrderingMatch | mSSingleSubstringMatch
+ | mSStringCaseSensitiveMatch | mSStringListElementsMatch | mSStringListMatch
+ | mSStringMatch | mSStringOrderingMatch | mSSingleSubstringListElementsMatch
+ | mSSingleSubstringListMatch | mSSubstringsMatch | mTSIdentifierMatch |
+ oRAddressElementsMatch | oRAddressMatch | oRAddressSubstringElementsMatch |
+ oRNameElementsMatch | oRNameMatch | oRNameSingleElementMatch |
+ oRNameSubstringElementsMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionMatch | redirectionOrDLExpansionSingleElementMatch |
+ redirectionOrDLExpansionSubstringElementsMatch | redirectionReasonMatch |
+ valueCountMatch}
+
+ContentSpecificMatchingRules MATCHING-RULE ::=
+ {...}
+
+-- MS String assertion-syntax
+MSString{INTEGER:maxSize} ::= CHOICE {
+ printable PrintableString(SIZE (1..maxSize)),
+ teletex TeletexString(SIZE (1..maxSize)),
+ general GeneralString(SIZE (1..maxSize)),
+ universal UniversalString(SIZE (1..maxSize)),
+ bmp BMPString(SIZE (1..maxSize))
+}
+
+-- String matching-rules
+mSStringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-match
+}
+
+mSStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-ordering-match
+}
+
+mSSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-ms-substrings-match
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] MSString{ub-msstring-match},
+ any [1] MSString{ub-msstring-match},
+ final [2] MSString{ub-msstring-match}}
+
+-- at most one initial and one final component
+mSSingleSubstringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-ms-single-substring-match
+}
+
+mSStringCaseSensitiveMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-case-sensitive-match
+}
+
+mSStringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-match
+}
+
+mSStringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-elements-match
+}
+
+mSSingleSubstringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-match
+}
+
+mSSingleSubstringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-elements-match
+}
+
+-- Syntax-based matching-rule
+valueCountMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER(1..ub-attribute-values)
+ ID id-mr-value-count-match
+}
+
+-- Matching-rules for complex Message Store attributes
+-- OR-address matching-rules
+oRAddressMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-match
+}
+
+oRAddressElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-elements-match
+}
+
+oRAddressSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-substring-elements-match
+}
+
+-- OR-name matching-rules
+oRNameMatch MATCHING-RULE ::= {SYNTAX ORName
+ ID id-mr-orname-match
+}
+
+oRNameElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-elements-match
+}
+
+oRNameSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-substring-elements-match
+}
+
+oRNameSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-orname-single-element-match
+}
+
+-- Redirection or DL-expansion matching rules
+redirectionOrDLExpansionMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-match
+}
+
+redirectionOrDLExpansionElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-elements-match
+}
+
+redirectionOrDLExpansionSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-redirection-or-dl-expansion-single-element-match
+}
+
+redirectionOrDLExpansionSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-substring-elements-match
+}
+
+redirectionReasonMatch MATCHING-RULE ::= {
+ SYNTAX RedirectionReason
+ ID id-mr-redirection-reason-match
+}
+
+-- MTS-identifier matching rule
+mTSIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX MTSIdentifier
+ ID id-mr-mts-identifier-match
+}
+
+-- Content-correlator matching rule
+contentCorrelatorMatch MATCHING-RULE ::= {
+ SYNTAX ContentCorrelator
+ ID id-mr-content-correlator-match
+}
+
+-- Content-identifier matching rule
+contentIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX ContentIdentifier
+ ID id-mr-content-identifier-match
+}
+
+END -- of MSMatchingRules
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn
new file mode 100644
index 0000000000..df194f838c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn
@@ -0,0 +1,322 @@
+-- Module MSObjectIdentifiers (X.413:06/1999)
+MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ ID, id-ms
+ --==
+ FROM MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Categories
+id-mod -- modules -- ID ::= {id-ms 0}
+
+id-ot -- objects -- ID ::= {id-ms 1}
+
+id-pt -- port types -- ID ::= {id-ms 2}
+
+id-att -- attribute types -- ID ::= {id-ms 3}
+
+id-act -- auto-action types -- ID ::= {id-ms 4}
+
+id-crt -- contracts -- ID ::= {id-ms 5}
+
+id-cp -- connection-packages -- ID ::= {id-ms 6}
+
+id-aae -- auto-action-errors-- ID ::= {id-ms 7}
+
+id-mr -- matching-rules -- ID ::= {id-ms 8}
+
+id-ext -- extensions -- ID ::= {id-ms 9}
+
+id-alg -- algorithms -- ID ::= {id-ms 10}
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-attribute-types ID ::= {id-mod 2} -- not definitive
+
+id-mod-action-types ID ::= {id-mod 3} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 4} -- not definitive
+
+id-mod-matching-rules ID ::= {id-mod 5} -- not definitive
+
+-- Objects
+id-ot-ms ID ::= {id-ot 0}
+
+id-ot-ms-user ID ::= {id-ot 1}
+
+-- Port types
+id-pt-retrieval-88 ID ::= {id-pt 0}
+
+id-pt-retrieval-94 ID ::= {id-pt 1}
+
+id-pt-ms-submission ID ::= {id-pt 2}
+
+-- Contracts
+id-crt-ms-access-88 ID ::= {id-crt 0}
+
+id-crt-ms-access-94 ID ::= {id-crt 1}
+
+-- Connection-packages
+id-cp-ms-connection ID ::= {id-cp 0}
+
+-- Attribute-types
+id-att-ac-correlated-report-list ID ::= {id-att 42}
+
+id-att-ac-report-subject-entry ID ::= {id-att 76}
+
+id-att-ac-report-summary ID ::= {id-att 43}
+
+id-att-ac-uncorrelated-report-list ID ::= {id-att 44}
+
+id-att-auto-action-error ID ::= {id-att 46}
+
+id-att-auto-action-registration-identifier ID ::= {id-att 47}
+
+id-att-auto-action-subject-entry ID ::= {id-att 48}
+
+id-att-auto-action-type ID ::= {id-att 49}
+
+id-att-certificate-selectors ID ::= {id-att 80}
+
+id-att-child-sequence-numbers ID ::= {id-att 0}
+
+id-att-content ID ::= {id-att 1}
+
+id-att-content-confidentiality-algorithm-identifier ID ::= {id-att 2}
+
+id-att-content-correlator ID ::= {id-att 3}
+
+id-att-content-identifier ID ::= {id-att 4}
+
+id-att-content-integrity-check ID ::= {id-att 5}
+
+id-att-content-length ID ::= {id-att 6}
+
+id-att-content-returned ID ::= {id-att 7}
+
+id-att-content-type ID ::= {id-att 8}
+
+id-att-conversion-with-loss-prohibited ID ::= {id-att 9}
+
+id-att-converted-EITs ID ::= {id-att 10}
+
+id-att-creation-time ID ::= {id-att 11}
+
+id-att-deferred-delivery-cancellation-time ID ::= {id-att 50}
+
+id-att-deferred-delivery-time ID ::= {id-att 51}
+
+id-att-deletion-time ID ::= {id-att 52}
+
+id-att-delivered-EITs ID ::= {id-att 12}
+
+id-att-delivery-flags ID ::= {id-att 13}
+
+id-att-dl-exempted-recipients ID ::= {id-att 78}
+
+id-att-dl-expansion-history ID ::= {id-att 14}
+
+id-att-dl-expansion-prohibited ID ::= {id-att 53}
+
+id-att-entry-type ID ::= {id-att 16}
+
+id-att-internal-trace-information ID ::= {id-att 54}
+
+id-att-latest-delivery-time ID ::= {id-att 55}
+
+id-att-locally-originated ID ::= {id-att 77}
+
+id-att-marked-for-deletion ID ::= {id-att 56}
+
+id-att-message-delivery-envelope ID ::= {id-att 18}
+
+id-att-message-delivery-time ID ::= {id-att 20}
+
+id-att-message-group-name ID ::= {id-att 57}
+
+id-att-message-identifier ID ::= {id-att 19}
+
+id-att-message-notes ID ::= {id-att 58}
+
+id-att-message-origin-authentication-check ID ::= {id-att 21}
+
+id-att-message-security-label ID ::= {id-att 22}
+
+id-att-message-submission-envelope ID ::= {id-att 59}
+
+id-att-message-submission-time ID ::= {id-att 23}
+
+id-att-message-token ID ::= {id-att 24}
+
+id-att-ms-originated ID ::= {id-att 60}
+
+id-att-ms-submission-error ID ::= {id-att 61}
+
+id-att-multiple-originator-certificates ID ::= {id-att 81}
+
+id-att-original-EITs ID ::= {id-att 25}
+
+id-att-originally-intended-recipient-name ID ::= {id-att 17}
+
+id-att-originating-MTA-certificate ID ::= {id-att 62}
+
+id-att-originator-certificate ID ::= {id-att 26}
+
+id-att-originator-name ID ::= {id-att 27}
+
+id-att-originator-report-request ID ::= {id-att 63}
+
+id-att-originator-return-address ID ::= {id-att 64}
+
+id-att-other-recipient-names ID ::= {id-att 28}
+
+id-att-parent-sequence-number ID ::= {id-att 29}
+
+id-att-per-message-indicators ID ::= {id-att 65}
+
+id-att-per-recipient-message-submission-fields ID ::= {id-att 66}
+
+id-att-per-recipient-probe-submission-fields ID ::= {id-att 67}
+
+id-att-per-recipient-report-delivery-fields ID ::= {id-att 30}
+
+id-att-priority ID ::= {id-att 31}
+
+id-att-probe-origin-authentication-check ID ::= {id-att 68}
+
+id-att-probe-submission-envelope ID ::= {id-att 69}
+
+id-att-proof-of-delivery-request ID ::= {id-att 32}
+
+id-att-proof-of-submission ID ::= {id-att 70}
+
+id-att-recipient-certificate ID ::= {id-att 82}
+
+id-att-recipient-names ID ::= {id-att 71}
+
+id-att-recipient-reassignment-prohibited ID ::= {id-att 72}
+
+id-att-redirection-history ID ::= {id-att 33}
+
+id-att-report-delivery-envelope ID ::= {id-att 34}
+
+id-att-reporting-DL-name ID ::= {id-att 35}
+
+id-att-reporting-MTA-certificate ID ::= {id-att 36}
+
+id-att-report-origin-authentication-check ID ::= {id-att 37}
+
+id-att-retrieval-status ID ::= {id-att 15}
+
+id-att-security-classification ID ::= {id-att 38}
+
+id-att-sequence-number ID ::= {id-att 39}
+
+id-att-signature-verification-status ID ::= {id-att 79}
+
+id-att-storage-period ID ::= {id-att 73}
+
+id-att-storage-time ID ::= {id-att 74}
+
+id-att-subject-submission-identifier ID ::= {id-att 40}
+
+id-att-this-recipient-name ID ::= {id-att 41}
+
+id-att-trace-information ID ::= {id-att 75}
+
+-- Auto-action-types
+id-act-ipm-auto-forward ID ::=
+ {id-act 0} -- Reserved for use in
+
+-- ITU-T Rec. X.420 |
+-- ISO/IEC 10021-7
+id-act-auto-alert ID ::= {id-act 1}
+
+id-act-auto-correlate-reports ID ::= {id-act 2}
+
+id-act-auto-delete ID ::= {id-act 3}
+
+id-act-auto-modify ID ::= {id-act 4}
+
+-- Auto-action errors
+id-aae-auto-alert-error ID ::= {id-aae 0}
+
+-- Matching-rules
+id-mr-content-correlator-match ID ::= {id-mr 1}
+
+id-mr-content-identifier-match ID ::= {id-mr 2}
+
+id-mr-ms-single-substring-list-elements-match ID ::= {id-mr 3}
+
+id-mr-ms-single-substring-list-match ID ::= {id-mr 4}
+
+id-mr-ms-single-substring-match ID ::= {id-mr 5}
+
+id-mr-ms-substrings-match ID ::= {id-mr 6}
+
+id-mr-msstring-case-sensitive-match ID ::= {id-mr 7}
+
+id-mr-msstring-list-elements-match ID ::= {id-mr 8}
+
+id-mr-msstring-list-match ID ::= {id-mr 9}
+
+id-mr-msstring-match ID ::= {id-mr 10}
+
+id-mr-msstring-ordering-match ID ::= {id-mr 11}
+
+id-mr-mts-identifier-match ID ::= {id-mr 12}
+
+id-mr-oraddress-elements-match ID ::= {id-mr 13}
+
+id-mr-oraddress-match ID ::= {id-mr 14}
+
+id-mr-oraddress-substring-elements-match ID ::= {id-mr 15}
+
+id-mr-orname-elements-match ID ::= {id-mr 16}
+
+id-mr-orname-match ID ::= {id-mr 17}
+
+id-mr-orname-single-element-match ID ::= {id-mr 18}
+
+id-mr-orname-substring-elements-match ID ::= {id-mr 19}
+
+id-mr-redirection-or-dl-expansion-elements-match ID ::= {id-mr 20}
+
+id-mr-redirection-or-dl-expansion-match ID ::= {id-mr 21}
+
+id-mr-redirection-or-dl-expansion-single-element-match ID ::= {id-mr 25}
+
+id-mr-redirection-or-dl-expansion-substring-elements-match ID ::= {id-mr 22}
+
+id-mr-redirection-reason-match ID ::= {id-mr 23}
+
+id-mr-value-count-match ID ::= {id-mr 24}
+
+-- Extensions
+id-ext-modify-capability ID ::= {id-ext 0}
+
+id-ext-modify-retrieval-status-capability ID ::= {id-ext 1}
+
+id-ext-originator-certificate-selectors-override ID ::= {id-ext 2}
+
+id-ext-originator-token ID ::= {id-ext 3}
+
+id-ext-protected-change-credentials ID ::= {id-ext 4}
+
+id-ext-protected-change-credentials-capability ID ::= {id-ext 5}
+
+-- Algorithms
+id-alg-password-xor ID ::= {id-alg 0}
+
+END -- of MSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn
new file mode 100644
index 0000000000..6494fbd3ef
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn
@@ -0,0 +1,77 @@
+-- Module MSUpperBounds (X.413:06/1999)
+MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-alert-addresses INTEGER ::= 16
+
+ub-attribute-values INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-attributes-supported INTEGER ::= 1024
+
+ub-auto-action-errors INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-auto-actions INTEGER ::= 128
+
+ub-auto-registrations INTEGER ::= 1024
+
+ub-default-registrations INTEGER ::= 1024
+
+ub-entry-classes INTEGER ::= 128
+
+ub-entry-types INTEGER ::= 16
+
+ub-error-reasons INTEGER ::= 16
+
+ub-extensions INTEGER ::= 32
+
+ub-group-depth INTEGER ::= 64
+
+ub-group-descriptor-length INTEGER ::= 256
+
+ub-group-part-length INTEGER ::= 128
+
+ub-information-bases INTEGER ::= 16
+
+ub-matching-rules INTEGER ::= 1024
+
+ub-message-groups INTEGER ::= 8192
+
+ub-message-notes-length INTEGER ::= 1024
+
+ub-messages INTEGER ::= 2147483647 -- (231 - 1) the largest integer
+
+-- representable in 32 bits
+ub-modifications INTEGER ::=
+ 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-msstring-match INTEGER ::= 512
+
+ub-per-auto-action INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-per-entry INTEGER ::= 1024
+
+ub-service-information-length INTEGER ::= 2048
+
+ub-summaries INTEGER ::= 16
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-ua-registration-identifier-length INTEGER ::= 32
+
+ub-ua-registrations INTEGER ::= 128
+
+ub-restrictions INTEGER ::= 16
+
+END -- of MSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn
new file mode 100644
index 0000000000..38035c77ae
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn
@@ -0,0 +1,481 @@
+-- Module MTAAbstractService (X.411:06/1999)
+MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTS Abstract Service Parameters
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, administration, AdministrationDomainName,
+ certificate-selectors, certificate-selectors-override, Content,
+ ContentIdentifier, ContentLength, ContentType,
+ content-confidentiality-algorithm-identifier, content-correlator,
+ content-integrity-check, conversion-with-loss-prohibited,
+ ConvertedEncodedInformationTypes, CountryName, DeferredDeliveryTime,
+ delivery, dl-exempted-recipients, dl-expansion-history,
+ dl-expansion-prohibited, ExplicitConversion, EXTENSION, ExtensionField{},
+ GlobalDomainIdentifier, InitiatorCredentials, latest-delivery-time,
+ message-origin-authentication-check, message-security-label, message-token,
+ MHS-OBJECT, MTAName, MTSIdentifier, multiple-originator-certificates,
+ ORAddressAndOptionalDirectoryName, OriginalEncodedInformationTypes,
+ originator-and-DL-expansion-history, originator-certificate,
+ originator-return-address, PerMessageIndicators, physical-delivery-modes,
+ physical-delivery-report-request, physical-forwarding-address,
+ physical-forwarding-address-request, physical-forwarding-prohibited,
+ physical-rendition-attributes, PORT, Priority, PrivateDomainIdentifier,
+ PrivateExtensions, probe-origin-authentication-check, proof-of-delivery,
+ proof-of-delivery-request, recipient-certificate,
+ recipient-number-for-advice, recipient-reassignment-prohibited,
+ redirection-history, registered-mail-type, reporting-DL-name,
+ reporting-MTA-certificate, reporting-MTA-name, ReportType,
+ report-origin-authentication-check, requested-delivery-method,
+ ResponderCredentials, SecurityContext, submission,
+ SupplementaryInformation, Time
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-cp-mta-connect, id-ct-mta-transfer, id-ot-mta, id-pt-transfer
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Upper Bounds
+ ub-bit-options, ub-integer-options, ub-recipients, ub-transfers
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mta MHS-OBJECT ::= {BOTH {mta-transfer}
+ ID id-ot-mta
+}
+
+-- Contracts
+mta-transfer CONTRACT ::= {
+ CONNECTION mta-connect
+ OPERATIONS OF {transfer}
+ ID id-ct-mta-transfer
+}
+
+-- Connection package
+mta-connect CONNECTION-PACKAGE ::= {
+ BIND mta-bind
+ UNBIND mta-unbind
+ ID id-cp-mta-connect
+}
+
+-- Ports
+transfer PORT ::= {
+ OPERATIONS {message-transfer | probe-transfer | report-transfer}
+ ID id-pt-transfer
+}
+
+-- MTA-bind and MTA-unbind
+mta-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTABindArgument
+ RESULT MTABindResult
+ ERRORS {mta-bind-error}
+}
+
+mta-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+MTABindArgument ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--initiator-name
+ [0] MTAName,
+ initiator-credentials
+ [1] InitiatorCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ }),
+ security-context
+ [2] SecurityContext OPTIONAL
+ }
+}
+
+MTABindResult ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--responder-name
+ [0] MTAName,
+ responder-credentials
+ [1] ResponderCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ })}
+}
+
+mta-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+-- Transfer Port
+message-transfer ABSTRACT-OPERATION ::= {ARGUMENT Message
+}
+
+probe-transfer ABSTRACT-OPERATION ::= {ARGUMENT Probe
+}
+
+report-transfer ABSTRACT-OPERATION ::= {ARGUMENT Report
+}
+
+Message ::= SEQUENCE {envelope MessageTransferEnvelope,
+ content Content
+}
+
+Probe ::= ProbeTransferEnvelope
+
+Report ::= SEQUENCE {
+ envelope ReportTransferEnvelope,
+ content ReportTransferContent
+}
+
+-- Message Transfer Envelope
+MessageTransferEnvelope ::= SET {
+ COMPONENTS OF PerMessageTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientMessageTransferFields
+}
+
+PerMessageTransferFields ::= SET {
+ message-identifier MessageIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{MessageTransferExtensions}} DEFAULT {}
+}
+
+MessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ content-correlator | dl-exempted-recipients | certificate-selectors |
+ multiple-originator-certificates | dl-expansion-history |
+ internal-trace-information | PrivateExtensions, ...}
+
+PerRecipientMessageTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientMessageTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate | redirection-history
+ | IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Transfer Envelope
+ProbeTransferEnvelope ::= SET {
+ COMPONENTS OF PerProbeTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeTransferFields
+}
+
+PerProbeTransferFields ::= SET {
+ probe-identifier ProbeIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{ProbeTransferExtensions}} DEFAULT {}
+}
+
+ProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | internal-trace-information |
+ PrivateExtensions, ...}
+
+PerRecipientProbeTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientProbeTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | redirection-history | PrivateExtensions,
+ ...}
+
+-- Report Transfer Envelope
+ReportTransferEnvelope ::= SET {
+ report-identifier ReportIdentifier,
+ report-destination-name ReportDestinationName,
+ trace-information TraceInformation,
+ extensions
+ [1] SET OF ExtensionField{{ReportTransferEnvelopeExtensions}} DEFAULT {}
+}
+
+ReportTransferEnvelopeExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ internal-trace-information | reporting-MTA-name | PrivateExtensions,
+ ...}
+
+-- Report Transfer Content
+ReportTransferContent ::= SET {
+ COMPONENTS OF PerReportTransferFields,
+ per-recipient-fields
+ [0] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportTransferFields
+}
+
+PerReportTransferFields ::= SET {
+ subject-identifier SubjectIdentifier,
+ subject-intermediate-trace-information
+ SubjectIntermediateTraceInformation OPTIONAL,
+ original-encoded-information-types
+ OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType OPTIONAL,
+ content-identifier ContentIdentifier OPTIONAL,
+ returned-content [1] Content OPTIONAL,
+ additional-information [2] AdditionalInformation OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{ReportTransferContentExtensions}} DEFAULT {}
+}
+
+ReportTransferContentExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ content-correlator | PrivateExtensions, ...}
+
+PerRecipientReportTransferFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ originally-specified-recipient-number
+ [1] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [2] PerRecipientIndicators,
+ last-trace-information [3] LastTraceInformation,
+ originally-intended-recipient-name
+ [4] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [5] SupplementaryInformation OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{PerRecipientReportTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+-- Envelope & Report Content Fields
+MessageIdentifier ::= MTSIdentifier
+
+OriginatorName ::= ORAddressAndOptionalDirectoryName
+
+PerDomainBilateralInformation ::= SEQUENCE {
+ COMPONENTS OF BILATERAL.&id,
+ bilateral-information BILATERAL.&Type
+}
+
+BILATERAL ::= CLASS {&id BilateralDomain UNIQUE,
+ &Type
+}WITH SYNTAX {&Type,
+ IDENTIFIED BY &id
+}
+
+BilateralDomain ::= SEQUENCE {
+ country-name CountryName,
+ domain
+ CHOICE {administration-domain-name AdministrationDomainName,
+ private-domain
+ SEQUENCE {administration-domain-name
+ [0] AdministrationDomainName,
+ private-domain-identifier
+ [1] PrivateDomainIdentifier}}
+}
+
+RecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallySpecifiedRecipientNumber ::= INTEGER(1..ub-recipients)
+
+PerRecipientIndicators ::= BIT STRING {
+ responsibility(0),
+ -- responsible 'one', not-responsible 'zero'
+ originating-MTA-report(1),
+ originating-MTA-non-delivery-report(2),
+ -- either originating-MTA-report, or originating-MTA-non-delivery-report,
+ -- or both, shall be 'one':
+ -- originating-MTA-report bit 'one' requests a 'report';
+ -- originating-MTA-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'one' requests an 'audited-report';
+ -- bits 0 - 2 'don't care' for Report Transfer Content
+ originator-report(3),
+ originator-non-delivery-report(4),
+ -- at most one bit shall be 'one':
+ -- originator-report bit 'one' requests a 'report';
+ -- originator-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'zero' requests 'no-report'
+ reserved-5(5), reserved-6(6), reserved-7(7)
+
+-- reserved- bits 5 - 7 shall be 'zero' --}(SIZE (8..ub-bit-options))
+
+ProbeIdentifier ::= MTSIdentifier
+
+ReportIdentifier ::= MTSIdentifier
+
+ReportDestinationName ::= ORAddressAndOptionalDirectoryName
+
+SubjectIdentifier ::= MessageOrProbeIdentifier
+
+MessageOrProbeIdentifier ::= MTSIdentifier
+
+SubjectIntermediateTraceInformation ::= TraceInformation
+
+-- AdditionalInformation is retained for backwards compatibility only,
+-- and use in new systems is strongly deprecated
+ADDITIONAL ::= CLASS {&Type
+}
+
+AdditionalInformation ::=
+ ADDITIONAL.&Type -- maximum ub-additional-info octets including all encoding
+
+ActualRecipientName ::= ORAddressAndOptionalDirectoryName
+
+LastTraceInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ report-type [1] ReportType
+}
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+-- Extension Fields
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOptionalDirectoryName
+
+trace-information EXTENSION ::= {
+ TraceInformation,
+ IDENTIFIED BY standard-extension:37
+}
+
+internal-trace-information EXTENSION ::= {
+ InternalTraceInformation,
+ IDENTIFIED BY standard-extension:38
+}
+
+InternalTraceInformation ::=
+ SEQUENCE SIZE (1..ub-transfers) OF InternalTraceInformationElement
+
+InternalTraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-supplied-information MTASuppliedInformation
+}
+
+MTASuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted CHOICE {mta MTAName,
+ domain GlobalDomainIdentifier} OPTIONAL,
+ -- additional-actions --COMPONENTS OF InternalAdditionalActions
+}
+
+InternalAdditionalActions ::= AdditionalActions
+
+-- Common Parameter Types
+TraceInformation ::=
+ [APPLICATION 9] SEQUENCE SIZE (1..ub-transfers) OF TraceInformationElement
+
+TraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ domain-supplied-information DomainSuppliedInformation
+}
+
+DomainSuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted-domain GlobalDomainIdentifier OPTIONAL,
+ -- additional-actions --COMPONENTS OF AdditionalActions
+}
+
+AdditionalActions ::= SET {
+ deferred-time [1] DeferredTime OPTIONAL,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ other-actions [3] OtherActions DEFAULT {}
+}
+
+RoutingAction ::= ENUMERATED {relayed(0), rerouted(1)}
+
+DeferredTime ::= Time
+
+ArrivalTime ::= Time
+
+OtherActions ::= BIT STRING {redirected(0), dl-operation(1)
+}(SIZE (0..ub-bit-options))
+
+END -- of MTA Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn
new file mode 100644
index 0000000000..f66d117f35
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn
@@ -0,0 +1,150 @@
+-- Module MTSAbstractService88 (X.411:06/1999)
+MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ -- MTS Abstract Service Parameters
+ operationObject1, ABSTRACT-OPERATION, change-credentials, ContentLength,
+ ContentTypes, Controls, control-violates-registration,
+ DefaultDeliveryControls, EncodedInformationTypes, message-delivery,
+ MHS-OBJECT, mts-connect, PORT, RecipientAssignedAlternateRecipient,
+ register-rejected, report-delivery, SecurityLabel, security-error,
+ submission, UserAddress, UserName, Waiting
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Object Identifiers
+ id-ct-mts-access, id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user,
+ id-pt-administration, id-pt-delivery
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation Codes
+ op-delivery-control, op-register
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Upper Bounds
+ ub-content-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mts-88 MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract-88}
+ RESPONDS {mts-access-contract-88}
+ ID {id-ot-mts 88}
+}
+
+mts-user-88 MHS-OBJECT ::= {
+ INITIATES {mts-access-contract-88}
+ RESPONDS {mts-forced-access-contract-88}
+ ID {id-ot-mts-user 88}
+}
+
+-- Contracts
+mts-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-access 88}
+}
+
+mts-forced-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-forced-access 88}
+}
+
+-- Ports
+delivery-88 PORT ::= {
+ OPERATIONS
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {delivery-control-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {message-delivery | report-delivery,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-delivery 88}
+}
+
+administration-88 PORT ::= {
+ OPERATIONS
+ {change-credentials,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {register-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-administration 88}
+}
+
+-- Delivery Port
+delivery-control-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControls88
+ RESULT Waiting
+ ERRORS {control-violates-registration | security-error}
+ LINKED
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControls88 ::= SET {
+ COMPONENTS OF
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-encoded-information-types ABSENT
+ }),
+ permissible-encoded-information-types-88 EncodedInformationTypes OPTIONAL
+}
+
+-- Administration Port
+register-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT Register88
+ RESULT NULL
+ ERRORS {register-rejected}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+Register88 ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-encoded-information-types EncodedInformationTypes OPTIONAL,
+ deliverable-maximum-content-length [1] EXPLICIT ContentLength OPTIONAL,
+ default-delivery-controls
+ [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ deliverable-content-types [3] ContentTypes OPTIONAL,
+ labels-and-redirections
+ [4] SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection
+ OPTIONAL
+}
+
+LabelAndRedirection ::= SET {
+ user-security-label [0] UserSecurityLabel OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+UserSecurityLabel ::= SecurityLabel
+
+END -- of MTSAbstractService88
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn
new file mode 100644
index 0000000000..03181c5951
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn
@@ -0,0 +1,321 @@
+-- Module MTSAccessProtocol (X.419:06/1999)
+
+MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MTS Abstract Service
+ administration, delivery, mts-access-contract, mts-connect,
+ mts-forced-access-contract, submission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS Abstract Service (1988)
+ administration-88, delivery-88, mts-access-contract-88,
+ mts-forced-access-contract-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- Object Identifiers
+ id-ac-mts-access-88, id-ac-mts-access-94, id-ac-mts-forced-access-88,
+ id-ac-mts-forced-access-94, id-ac-mts-forced-reliable-access-88,
+ id-ac-mts-forced-reliable-access-94, id-ac-mts-reliable-access-88,
+ id-ac-mts-reliable-access-94, id-as-mase-88, id-as-mase-94, id-as-mdse-88,
+ id-as-mdse-94, id-as-msse, id-as-mts, id-as-mts-rtse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- APPLICATION CONTEXTS
+-- 1994 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-94
+}
+
+-- MTS initiated
+mts-forced-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-94
+}
+
+-- 1994 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-94
+}
+
+-- MTS initiated
+mts-forced-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-94
+}
+
+-- 1988 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-88
+}
+
+-- MTS initiated
+mts-forced-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-88
+}
+
+-- 1988 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-88
+}
+
+-- MTS initiated
+mts-forced-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-88
+}
+
+-- ABSTRACT-SYNTAXES
+-- Abstract Syntax for MTS-Bind and MTS-Unbind
+mts-bind-unbind-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MTSBindUnbindPDUs
+ IDENTIFIED BY id-as-mts
+}
+
+MTSBindUnbindPDUs ::= CHOICE {
+ bind Bind{mts-connect.&bind},
+ unbind Unbind{mts-connect.&unbind}
+}
+
+-- Abstract Syntax for MTS-Bind and MTS-Unbind with RTSE
+mts-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MTS Bind and MTS Unbind --
+ IDENTIFIED BY id-as-mts-rtse
+}
+
+-- Abstract Syntax for Message Submission Service Element
+message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageSubmissionPDUs
+ IDENTIFIED BY id-as-msse
+}
+
+MessageSubmissionPDUs ::= ROS-SingleAS{{MTSInvokeIds}, submission}
+
+MTSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Remote Operations
+op-message-submission Code ::= local:3
+
+op-probe-submission Code ::= local:4
+
+op-cancel-deferred-delivery Code ::= local:7
+
+op-submission-control Code ::= local:2
+
+-- Remote Errors
+err-submission-control-violated Code ::= local:1
+
+err-element-of-service-not-subscribed Code ::= local:4
+
+err-deferred-delivery-cancellation-rejected Code ::= local:8
+
+err-originator-invalid Code ::= local:2
+
+err-recipient-improperly-specified Code ::= local:3
+
+err-message-submission-identifier-invalid Code ::= local:7
+
+err-inconsistent-request Code ::= local:11
+
+err-security-error Code ::= local:12
+
+err-unsupported-critical-function Code ::= local:13
+
+err-remote-bind-error Code ::= local:15
+
+-- Abstract Syntax for Message Delivery Service Element 1994
+message-delivery-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs
+ IDENTIFIED BY id-as-mdse-94
+}
+
+MessageDeliveryPDUs ::= ROS-SingleAS{{MTSInvokeIds}, delivery}
+
+-- Abstract Syntax for Message Delivery Service Element 1988
+message-delivery-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs88
+ IDENTIFIED BY id-as-mdse-88
+}
+
+MessageDeliveryPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, delivery-88}
+
+-- Remote Operations
+op-message-delivery Code ::= local:5
+
+op-report-delivery Code ::= local:6
+
+op-delivery-control Code ::= local:2
+
+-- Remote Errors
+err-delivery-control-violated Code ::= local:1
+
+err-control-violates-registration Code ::= local:14
+
+err-operation-refused Code ::= local:16
+
+-- Abstract Syntax for Message Administration Service Element 1994
+message-administration-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs
+ IDENTIFIED BY id-as-mase-94
+}
+
+MessageAdministrationPDUs ::= ROS-SingleAS{{MTSInvokeIds}, administration}
+
+-- Abstract Syntax for Message Administration Service Element 1988
+message-administration-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs88
+ IDENTIFIED BY id-as-mase-88
+}
+
+MessageAdministrationPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, administration-88}
+
+-- Remote Operations
+op-register Code ::= local:1
+
+op-change-credentials Code ::= local:8
+
+-- Remote Errors
+err-register-rejected Code ::= local:10
+
+err-new-credentials-unacceptable Code ::= local:6
+
+err-old-credentials-incorrectly-specified Code ::= local:5
+
+END -- of MTSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn
new file mode 100644
index 0000000000..1615b241ee
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn
@@ -0,0 +1,116 @@
+-- Module MTSObjectIdentifiers (X.411:06/1999)
+MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Message Transfer System
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::= {id-mts 0} -- modules
+
+id-ot ID ::= {id-mts 1} -- object types
+
+id-pt ID ::= {id-mts 2} -- port types
+
+id-cont ID ::= {id-mts 3} -- content types
+
+id-eit ID ::= {id-mts 4} -- encoded information types
+
+id-att ID ::= {id-mts 5} -- attributes
+
+id-tok ID ::= {id-mts 6} -- token types
+
+id-sa ID ::= {id-mts 7} -- secure agent types
+
+id-ct ID ::= {id-mts 8} -- contracts
+
+id-cp ID ::= {id-mts 9} -- connection packages
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-mta-abstract-service ID ::= {id-mod 2} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 3} -- not definitive
+
+-- Object Types
+id-ot-mts ID ::= {id-ot 0}
+
+id-ot-mts-user ID ::= {id-ot 1}
+
+id-ot-mta ID ::= {id-ot 2}
+
+-- Port Types
+id-pt-submission ID ::= {id-pt 0}
+
+id-pt-delivery ID ::= {id-pt 1}
+
+id-pt-administration ID ::= {id-pt 2}
+
+id-pt-transfer ID ::= {id-pt 3}
+
+-- Content Types
+id-cont-unidentified ID ::=
+ {id-cont 0} -- For use by MS and Directory
+
+id-cont-inner-envelope ID ::= {id-cont 1}
+
+-- Encoded Information Types
+id-eit-unknown ID ::= {id-eit 0}
+
+-- Value { id-eit 1 } is no longer defined
+id-eit-ia5-text ID ::= {id-eit 2}
+
+id-eit-g3-facsimile ID ::= {id-eit 3}
+
+id-eit-g4-class-1 ID ::= {id-eit 4}
+
+id-eit-teletex ID ::= {id-eit 5}
+
+id-eit-videotex ID ::= {id-eit 6}
+
+id-eit-voice ID ::= {id-eit 7}
+
+id-eit-sfd ID ::= {id-eit 8}
+
+id-eit-mixed-mode ID ::= {id-eit 9}
+
+-- Attributes
+id-att-physicalRendition-basic ID ::= {id-att 0}
+
+id-att-physicalRendition-no-cover-page ID ::= {id-att 1}
+
+-- Token Types
+id-tok-asymmetricToken ID ::= {id-tok 0}
+
+-- Secure Agent Types
+id-sa-ua ID ::= {id-sa 0}
+
+id-sa-ms ID ::= {id-sa 1}
+
+-- Contracts
+id-ct-mts-access ID ::= {id-ct 0}
+
+id-ct-mts-forced-access ID ::= {id-ct 1}
+
+id-ct-mta-transfer ID ::= {id-ct 2}
+
+-- Connection Packages
+id-cp-mts-connect ID ::= {id-cp 0}
+
+id-cp-mta-connect ID ::= {id-cp 1}
+
+END -- of MTSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn b/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn
new file mode 100644
index 0000000000..96dfc39b6a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn
@@ -0,0 +1,244 @@
+-- Module Notation (X.830:04/1995)
+
+Notation {joint-iso-itu-t genericULS(20) modules(1) notation(1)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- From Directory Standards:
+ informationFramework, selectedAttributeTypes, authenticationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name
+ FROM InformationFramework informationFramework
+ UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AlgorithmIdentifier
+ FROM AuthenticationFramework authenticationFramework
+ -- From Other GULS Modules:
+ genericProtectingTransferSyntax
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SyntaxStructure{}
+ FROM GenericProtectingTransferSyntax genericProtectingTransferSyntax;
+
+-- *************************************************
+-- Notation for security identity and SA-identifiers
+-- *************************************************
+-- Values of the SecurityIdentity type are used to identify entities
+-- which assign externally-established security association identifiers,
+-- and for other security-related purposes requiring globally-unique
+-- identifiers.
+SecurityIdentity ::= CHOICE {
+ directoryName Name,
+ objectIdentifier OBJECT IDENTIFIER
+}
+
+ExternalSAID ::= SEQUENCE {
+ localSAID INTEGER,
+ assignerIdentity SecurityIdentity OPTIONAL
+ -- Identity of the system which assigned the integer value
+}
+
+-- ******************************************
+-- Notation for specifying security exchanges
+-- ******************************************
+SECURITY-EXCHANGE ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security exchange.
+ {
+ &SE-Items SEC-EXCHG-ITEM,
+ -- This is an ASN.1 information object set, comprising a set
+ -- of security exchange items
+ &sE-Identifier Identifier UNIQUE
+ -- A local or global identifier for the particular security
+ -- exchange
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- exchange.
+{SE-ITEMS &SE-Items
+ IDENTIFIER &sE-Identifier
+}
+
+Identifier ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+SEC-EXCHG-ITEM ::= CLASS {
+ &ItemType ,
+ -- ASN.1 type for this exchange item
+ &itemId INTEGER,
+ -- Identifier for this item, e.g. 1, 2, 3, ..
+ &Errors SE-ERROR OPTIONAL
+ -- Optional list of errors which may result from
+ -- transfer of this item
+}WITH SYNTAX {ITEM-TYPE &ItemType
+ ITEM-ID &itemId
+ [ERRORS &Errors]
+}
+
+SE-ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ -- ASN.1 type of a parameter to accompany the signalling
+ -- of the error condition back to the sender of the SEI
+ &errorCode Identifier UNIQUE
+ -- An identifier used in signalling the error condition
+ -- back to the sender of the SEI
+}WITH SYNTAX {[PARAMETER &ParameterType]
+ ERROR-CODE &errorCode
+}
+
+-- ************************************************
+-- Notation for specifying security transformations
+-- ************************************************
+SECURITY-TRANSFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security transformation.
+ {
+ &sT-Identifier OBJECT IDENTIFIER UNIQUE,
+ -- Identifier to be used in signalling the application
+ -- of the particular security transformation
+ &initialEncodingRules OBJECT IDENTIFIER DEFAULT {joint-iso-ccitt
+ asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ -- Default initial encoding rules to generate a bit
+ -- string prior to applying the encoding process of a
+ -- security transformation.
+ &StaticUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying static unprotected parameters
+ &DynamicUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying dynamic unprotected parameters
+ &XformedDataType ,
+ -- ASN.1 type of the ASN.1 value produced by the security
+ -- transformations encoding process
+ &QualifierType OPTIONAL
+ -- &QualifierType specifies the ASN.1 type of the qualifier
+ -- parameter used with the PROTECTED-Q notation.
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- transformation.
+{
+ IDENTIFIER &sT-Identifier
+ [INITIAL-ENCODING-RULES &initialEncodingRules]
+ [STATIC-UNPROT-PARM &StaticUnprotectedParm]
+ [DYNAMIC-UNPROT-PARM &DynamicUnprotectedParm]
+ XFORMED-DATA-TYPE &XformedDataType
+ [QUALIFIER-TYPE &QualifierType]
+}
+
+-- **************************************************
+-- Notation for specifying selective field protection
+-- **************************************************
+PROTECTED{BaseType, PROTECTION-MAPPING:protectionReqd} ::= CHOICE {
+ dirEncrypt
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- dirEncrypt is for use only with the
+ -- dirEncryptedTransformation,
+ -- and generates the same encoding as the
+ -- X.509/9594-8 ENCRYPTED type-- }),
+ dirSign
+ SEQUENCE {baseType BaseType OPTIONAL,
+ -- must be present for dirSignedTransformation
+ -- and must be omitted for
+ -- dirSignatureTransformation
+ algorithmId AlgorithmIdentifier,
+ encipheredHash
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- contains enciphered hash--
+ -- of a value of BaseType -- })}-- dirSign is for use only with the
+ -- dirSignedTransformation or
+ -- dirSignatureTransformation, and generates
+ -- the same encoding as the corresponding
+ -- X.509/9594-8 SIGNED or SIGNATURE type--,
+ noTransform [0] BaseType,
+ -- noTransform invokes no security transformation.
+ -- Subject to security policy, noTransform may be used
+ -- if adequate protection is provided by lower layers
+ -- and any application relays through which the data
+ -- may pass are trusted to maintain the required
+ -- protection. This alternative may only be used
+ -- if protectionReqd.&bypassPermitted is TRUE,
+ direct [1] SyntaxStructure{{protectionReqd.&SecurityTransformation}},
+ -- direct generates a protecting transfer syntax
+ -- value, which is encoded using the same encoding
+ -- rules as the surrounding ASN.1 (The type
+ -- SyntaxStructure is imported from Rec. X.833 |
+ -- ISO/IEC 11586-3)
+ embedded
+ [2] EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ presentation-context-id ,
+ context-negotiation (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT
+ IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ data-value (CONTAINING BaseType )
+
+ -- The data value encoded is a value of type BaseType
+ })
+}
+
+PROTECTED-Q{BaseType, PROTECTION-MAPPING:protectionReqd,
+ PROTECTION-MAPPING.&SecurityTransformation.&QualifierType:qualifier}
+ ::=
+ PROTECTED{BaseType, protectionReqd}
+ (CONSTRAINED BY {
+ protectionReqd.&SecurityTransformation.&QualifierType:qualifier
+ -- The value of qualifier must be made available to
+ -- the security transformation used
+ })
+
+-- BaseType is the type to be protected, and protectionReqd is an
+-- object of class PROTECTION-MAPPING. The use of PROTECTED requires
+-- the importation into the user's module of the PROTECTED parameterized
+-- type, together with the necessary PROTECTION-MAPPING object
+-- definition.
+-- *******************************************
+-- Notation for specifying protection mappings
+-- *******************************************
+PROTECTION-MAPPING ::= CLASS {
+ &SecurityTransformation SECURITY-TRANSFORMATION,
+ -- &SecurityTransformation specifies an ASN.1 object set of the
+ -- SECURITY-TRANSFORMATION class. Use of the particular
+ -- protection mapping implies use of one of the specified
+ -- transformations, with the choice being left to the
+ -- encoding system. Rules for selecting between these security
+ -- transformations may be specified in comments.
+ &protTransferSyntax OBJECT IDENTIFIER DEFAULT {joint-iso-itu-t
+ genericULS(20)
+ generalTransferSyntax(2)},
+ -- Identifies the particular protecting transfer syntax to
+ -- be used in an EMDEDDED PDV encoding for the embedded
+ -- option.
+ &bypassPermitted BOOLEAN DEFAULT FALSE
+ -- Indicates if bypassing of protection is permitted
+}
+WITH SYNTAX {
+ SECURITY-TRANSFORMATION &SecurityTransformation
+ [PROTECTING-TRANSFER-SYNTAX &protTransferSyntax]
+ [BYPASS-PERMITTED &bypassPermitted]
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn
new file mode 100644
index 0000000000..b4f91f50c5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn
@@ -0,0 +1,46 @@
+-- Module ObjectIdentifiers (X.830:04/1995)
+
+ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+genericULS OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20)}
+
+-- Categories of information object
+modules OBJECT IDENTIFIER ::=
+ {genericULS 1}
+
+generalTransferSyntax OBJECT IDENTIFIER ::= {genericULS 2}
+
+specificTransferSyntax OBJECT IDENTIFIER ::= {genericULS 3}
+
+securityExchanges OBJECT IDENTIFIER ::= {genericULS 4}
+
+securityTransformations OBJECT IDENTIFIER ::= {genericULS 5}
+
+-- ASN.1 modules
+objectIdentifiers OBJECT IDENTIFIER ::= {modules 0}
+
+notation OBJECT IDENTIFIER ::= {modules 1}
+
+gulsSecurityExchanges OBJECT IDENTIFIER ::= {modules 2}
+
+gulsSecurityTransformations OBJECT IDENTIFIER ::= {modules 3}
+
+dirProtectionMappings OBJECT IDENTIFIER ::= {modules 4}
+
+gulsProtectionMappings OBJECT IDENTIFIER ::= {modules 5}
+
+seseAPDUs OBJECT IDENTIFIER ::= {modules 6}
+
+genericProtectingTransferSyntax OBJECT IDENTIFIER ::= {modules 7}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn b/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn
new file mode 100644
index 0000000000..2044feb155
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn
@@ -0,0 +1,263 @@
+-- Module OperationalBindingManagement (X.501:08/1997)
+OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, hierarchicalOperationalBindings, dop,
+ directoryAbstractService, distributedOperations, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ shadowOperationalBinding
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
+ FROM HierarchicalOperationalBindings hierarchicalOperationalBindings
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ id-op-establishOperationalBinding, id-op-modifyOperationalBinding,
+ id-op-terminateOperationalBinding, id-err-operationalBindingError
+ FROM DirectoryOperationalBindingManagementProtocol dop
+ directoryBind, directoryUnbind, securityError, CommonResultsSeq,
+ SecurityParameters
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ AccessPoint
+ FROM DistributedOperations distributedOperations;
+
+--PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+-- bind and unbind
+dSAOperationalBindingManagementBind OPERATION ::=
+ directoryBind
+
+dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind
+
+-- operations, arguments and results
+establishOperationalBinding OPERATION ::= {
+ ARGUMENT EstablishOperationalBindingArgument
+ RESULT EstablishOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-establishOperationalBinding
+}
+
+EstablishOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A initiates, or Role B initiates -
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ agreement
+ [6] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid [7] Validity DEFAULT {},
+ securityParameters [8] SecurityParameters OPTIONAL}}
+
+OperationalBindingID ::= SEQUENCE {identifier INTEGER,
+ version INTEGER
+}
+
+Validity ::= SEQUENCE {
+ validFrom [0] CHOICE {now [0] NULL,
+ time [1] Time} DEFAULT now:NULL,
+ validUntil
+ [1] CHOICE {explicitTermination [0] NULL,
+ time [1] Time
+ } DEFAULT explicitTermination:NULL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+EstablishOperationalBindingResult ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A replies , or Role B replies
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-replies
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-replies
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+
+modifyOperationalBinding OPERATION ::= {
+ ARGUMENT ModifyOperationalBindingArgument
+ RESULT ModifyOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-modifyOperationalBinding
+}
+
+ModifyOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ accessPoint [2] AccessPoint OPTIONAL,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&ModifyParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ newBindingID [6] OperationalBindingID,
+ newAgreement
+ [7] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}) OPTIONAL,
+ valid [8] Validity OPTIONAL,
+ securityParameters [9] SecurityParameters OPTIONAL}}
+
+ModifyOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newBindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ newAgreement
+ OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid Validity OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+terminateOperationalBinding OPERATION ::= {
+ ARGUMENT TerminateOperationalBindingArgument
+ RESULT TerminateOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-terminateOperationalBinding
+}
+
+TerminateOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [2] OPERATIONAL-BINDING.&both.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [3] OPERATIONAL-BINDING.&roleA.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [4] OPERATIONAL-BINDING.&roleB.&TerminateParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ terminateAt [5] Time OPTIONAL,
+ securityParameters [6] SecurityParameters OPTIONAL}}
+
+TerminateOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {bindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ terminateAt
+ GeneralizedTime OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- errors and parameters
+operationalBindingError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ {OpBindingErrorParam}
+ CODE id-err-operationalBindingError
+}
+
+OpBindingErrorParam ::= SEQUENCE {
+ problem
+ [0] ENUMERATED {invalidID(0), duplicateID(1), unsupportedBindingType(2),
+ notAllowedForRole(3), parametersMissing(4),
+ roleAssignment(5), invalidStartTime(6), invalidEndTime(7),
+ invalidAgreement(8), currentlyNotDecidable(9),
+ modificationNotAllowed(10)},
+ bindingType [1] OPERATIONAL-BINDING.&id({OpBindingSet}) OPTIONAL,
+ agreementProposal
+ [2] OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType}) OPTIONAL,
+ retryAt [3] Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+}
+
+-- information object classes
+OPERATIONAL-BINDING ::= CLASS {
+ &Agreement ,
+ &Cooperation OP-BINDING-COOP,
+ &both OP-BIND-ROLE OPTIONAL,
+ &roleA OP-BIND-ROLE OPTIONAL,
+ &roleB OP-BIND-ROLE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ AGREEMENT &Agreement
+ APPLICATION CONTEXTS &Cooperation
+ [SYMMETRIC &both]
+ [ASYMMETRIC
+ [ROLE-A &roleA]
+ [ROLE-B &roleB]]
+ ID &id
+}
+
+OP-BINDING-COOP ::= CLASS {
+ &applContext APPLICATION-CONTEXT,
+ &Operations OPERATION OPTIONAL
+}WITH SYNTAX {&applContext
+ [APPLIES TO &Operations]
+}
+
+OP-BIND-ROLE ::= CLASS {
+ &establish BOOLEAN DEFAULT FALSE,
+ &EstablishParam OPTIONAL,
+ &modify BOOLEAN DEFAULT FALSE,
+ &ModifyParam OPTIONAL,
+ &terminate BOOLEAN DEFAULT FALSE,
+ &TerminateParam OPTIONAL
+}
+WITH SYNTAX {
+ [ESTABLISHMENT-INITIATOR &establish]
+ [ESTABLISHMENT-PARAMETER &EstablishParam]
+ [MODIFICATION-INITIATOR &modify]
+ [MODIFICATION-PARAMETER &ModifyParam]
+ [TERMINATION-INITIATOR &terminate]
+ [TERMINATION-PARAMETER &TerminateParam]
+}
+
+OpBindingSet OPERATIONAL-BINDING ::=
+ {shadowOperationalBinding | hierarchicalOperationalBinding |
+ nonSpecificHierarchicalOperationalBinding}
+
+END -- OperationalBindingManagement
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn
new file mode 100644
index 0000000000..ac449b59c7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn
@@ -0,0 +1,342 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn
new file mode 100644
index 0000000000..525ee3c5ec
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn
@@ -0,0 +1,31 @@
+-- Module PKCS7BodyPartType (X.420:06/1999)
+PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ -- PKCS#7
+ ContentInfo
+ FROM PKCS7 {iso(1) member-body(2) usa(840) rsadsi(113549) pkcs(1)
+ 7 module(0)}
+ -- module not formally defined in the PKCS#7document, therefore defined in Annex O
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-et-pkcs7
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- PKCS7 body part
+pkcs7-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ContentInfo
+ IDENTIFIED BY id-et-pkcs7}
+}
+
+END -- of PKCS7BodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn
new file mode 100644
index 0000000000..5512f1590b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn
@@ -0,0 +1,74 @@
+-- Module Protected-Part-Descriptors (T.415:03/1993)
+
+Protected-Part-Descriptors {2 8 1 5 13} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor;
+
+IMPORTS Protected-Part-Identifier
+ FROM Identifiers-and-Expressions; -- see 7.8
+
+Sealed-Doc-Prof-Descriptor ::= SEQUENCE {
+ sealed-doc-prof-identifier Protected-Part-Identifier,
+ sealed-doc-prof-information Document-Profile-Attribute-Names
+}
+
+Document-Profile-Attribute-Names ::= BIT STRING {
+ generic-layout-structure(0), specific-layout-structure(1),
+ generic-logical-structure(2), specific-logical-structure(3),
+ layout-styles(4), presentation-styles(5), sealed-profiles(6),
+ enciphered-profiles(7), pre-enciphered-body-parts(8),
+ post-enciphered-body-parts(9), external-document-class(10),
+ resource-document(11), resources(12), document-application-profile(13),
+ document-application-profile-defaults(14), document-architecture-class(15),
+ content-architecture-classes(16), interchange-format-class(17),
+ oda-version(18), alternative-feature-sets(19), profile-character-sets(20),
+ comments-character-sets(21), alternative-representation-character-sets(22),
+ page-dimensions(23), medium-types(24), layout-paths(25), protections(26),
+ block-alignments(27), fill-orders(28), transparencies(29), colours(30),
+ colours-of-layout-object(31), object-colour-tables(32),
+ content-background-colours(33), content-foreground-colours(34),
+ content-colour-tables(35), borders(36), page-positions(37),
+ types-of-coding(38), coding-attributes(39), presentation-features(40),
+ number-of-objects-per-page(41), unit-scaling(42), fonts-list(43),
+ colour-characteristics(44), colour-spaces-list(45),
+ assured-reproduction-areas(86), title(46), subject(47),
+ document-reference(48), document-type(49), abstract(50), keywords(51),
+ document-date-and-time(52), creation-date-and-time(53),
+ local-filing-date-and-time(54), expiry-date-and-time(55),
+ start-date-and-time(56), purge-date-and-time(57), release-date-and-time(58),
+ revision-history(59), organizations(60), preparers(61), owners(62),
+ authors(63), copyright(64), status(65), user-specific-codes(66),
+ distribution-list(67), additional-information(68),
+ references-to-other-documents(69), superseded-documents(70),
+ local-file-references(71), document-size(72), number-of-pages(73),
+ languages(74), authorization(75), security-classification(76),
+ access-rights(77), sealed-information-encoding(78), oda-security-label(79),
+ sealed-document-profiles(80), pre-sealed-document-body-parts(81),
+ post-sealed-document-body-parts(82), enciphered-document-profiles(83),
+ pre-enciphered-document-body-parts(84),
+ post-enciphered-document-body-parts(85)}
+
+Enciphered-Doc-Prof-Descriptor ::= SEQUENCE {
+ enciphered-doc-prof-identifier Protected-Part-Identifier,
+ enciphered-doc-prof-information Enciphered-Information
+}
+
+Preenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ preenciphered-bodypart-identifier Protected-Part-Identifier,
+ preenciphered-bodypart-info Enciphered-Information
+}
+
+Postenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ postenciphered-bodypart-identifier Protected-Part-Identifier,
+ postenciphered-bodypart-info Enciphered-Information
+}
+
+Enciphered-Information ::= OCTET STRING
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..d6e88a2e47
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn
@@ -0,0 +1,140 @@
+-- Module ProtocolObjectIdentifiers (X.519 TC2:08/1997)
+
+ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1)
+ protocolObjectIdentifiers(4) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-rosObject, id-contract, id-package, id-ac, id-as
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+-- ROS Objects
+id-rosObject-dua OBJECT IDENTIFIER ::= {id-rosObject 1}
+
+id-rosObject-directory OBJECT IDENTIFIER ::= {id-rosObject 2}
+
+id-rosObject-dapDSA OBJECT IDENTIFIER ::= {id-rosObject 3}
+
+id-rosObject-dspDSA OBJECT IDENTIFIER ::= {id-rosObject 4}
+
+id-rosObject-dopDSA OBJECT IDENTIFIER ::= {id-rosObject 7}
+
+id-rosObject-initiatingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 8}
+
+id-rosObject-respondingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 9}
+
+id-rosObject-initiatingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 10}
+
+id-rosObject-respondingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 11}
+
+-- contracts
+id-contract-dap OBJECT IDENTIFIER ::= {id-contract 1}
+
+id-contract-dsp OBJECT IDENTIFIER ::= {id-contract 2}
+
+id-contract-shadowConsumer OBJECT IDENTIFIER ::= {id-contract 3}
+
+id-contract-shadowSupplier OBJECT IDENTIFIER ::= {id-contract 4}
+
+id-contract-dop OBJECT IDENTIFIER ::= {id-contract 5}
+
+-- packages
+id-package-read OBJECT IDENTIFIER ::= {id-package 1}
+
+id-package-search OBJECT IDENTIFIER ::= {id-package 2}
+
+id-package-modify OBJECT IDENTIFIER ::= {id-package 3}
+
+id-package-chainedRead OBJECT IDENTIFIER ::= {id-package 4}
+
+id-package-chainedSearch OBJECT IDENTIFIER ::= {id-package 5}
+
+id-package-chainedModify OBJECT IDENTIFIER ::= {id-package 6}
+
+id-package-shadowConsumer OBJECT IDENTIFIER ::= {id-package 7}
+
+id-package-shadowSupplier OBJECT IDENTIFIER ::= {id-package 8}
+
+id-package-operationalBindingManagement OBJECT IDENTIFIER ::= {id-package 9}
+
+id-package-dapConnection OBJECT IDENTIFIER ::= {id-package 10}
+
+id-package-dspConnection OBJECT IDENTIFIER ::= {id-package 11}
+
+id-package-dispConnection OBJECT IDENTIFIER ::= {id-package 12}
+
+id-package-dopConnection OBJECT IDENTIFIER ::= {id-package 13}
+
+-- application contexts
+id-ac-directoryAccessAC OBJECT IDENTIFIER ::=
+ {id-ac 1}
+
+id-ac-directorySystemAC OBJECT IDENTIFIER ::= {id-ac 2}
+
+id-ac-directoryOperationalBindingManagementAC OBJECT IDENTIFIER ::= {id-ac 3}
+
+id-ac-shadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 4}
+
+id-ac-shadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 5}
+
+id-ac-reliableShadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 6}
+
+id-ac-reliableShadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 7}
+
+id-ac-shadowSupplierInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 8}
+
+id-ac-shadowConsumerInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 9}
+
+id-ac-directoryAccessWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 10}
+
+id-ac-directorySystemWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 11}
+
+id-ac-shadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 12}
+
+id-ac-shadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 13}
+
+id-ac-reliableShadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 14}
+
+id-ac-reliableShadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 15}
+
+id-ac-directoryOperationalBindingManagementWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 16}
+
+-- ASEs (obsolete)
+-- id-ase-readASE OBJECT IDENTIFIER ::= {id-ase 1}
+-- id-ase-searchASE OBJECT IDENTIFIER ::= {id-ase 2}
+-- id-ase-modifyASE OBJECT IDENTIFIER ::= {id-ase 3}
+-- id-ase-chainedReadASE OBJECT IDENTIFIER ::= {id-ase 4}
+-- id-ase-chainedSearchASE OBJECT IDENTIFIER ::= {id-ase 5}
+-- id-ase-chainedModifyASE OBJECT IDENTIFIER ::= {id-ase 6}
+-- id-ase-operationalBindingManagementASE OBJECT IDENTIFIER ::= {id-ase 7}
+-- id-ase-shadowConsumerASE OBJECT IDENTIFIER ::= {id-ase 8}
+-- id-ase-shadowSupplierASE OBJECT IDENTIFIER ::= {id-ase 9}
+-- abstract syntaxes
+id-as-directoryAccessAS OBJECT IDENTIFIER ::=
+ {id-as 1}
+
+id-as-directorySystemAS OBJECT IDENTIFIER ::= {id-as 2}
+
+id-as-directoryShadowAS OBJECT IDENTIFIER ::= {id-as 3}
+
+id-as-directoryOperationalBindingManagementAS OBJECT IDENTIFIER ::= {id-as 4}
+
+id-as-directoryReliableShadowAS OBJECT IDENTIFIER ::= {id-as 5}
+
+id-as-reliableShadowBindingAS OBJECT IDENTIFIER ::= {id-as 6}
+
+id-as-2or3se OBJECT IDENTIFIER ::= {id-as 7}
+
+END -- ProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..258c5f0b23
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
@@ -0,0 +1,75 @@
+-- Module Raster-Gr-Coding-Attributes (T.417:03/1993)
+
+Raster-Gr-Coding-Attributes {2 8 1 7 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Gr-Coding-Attributes, Compression, Tile-Type,
+ Bits-Per-Colour-Component, Subsampling;
+
+IMPORTS Coordinate-Pair
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2};
+
+Raster-Gr-Coding-Attributes ::= SET {
+ number-of-pels-per-line [0] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines [1] IMPLICIT INTEGER OPTIONAL,
+ compression [2] IMPLICIT Compression OPTIONAL,
+ number-of-discarded-pels [3] IMPLICIT INTEGER OPTIONAL,
+ bits-per-colour-component [4] Bits-Per-Colour-Component OPTIONAL,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)} OPTIONAL,
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [8] IMPLICIT Coordinate-Pair OPTIONAL,
+ tile-types [9] IMPLICIT SEQUENCE OF Tile-Type OPTIONAL,
+ subsampling [10] IMPLICIT Subsampling OPTIONAL,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ baseline(0), huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-extended-sequential-DCT(9),
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)} OPTIONAL,
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ -- basic and default value is "associated".
+ jbig-differential-layer
+ [17] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)}
+ OPTIONAL,
+ number-of-lines-per-stripe [18] IMPLICIT INTEGER OPTIONAL
+}
+
+Compression ::= INTEGER {uncompressed(0), compressed(1)}
+
+Tile-Type ::= INTEGER {
+ null-background(0), null-foreground(1), t6-encoded(2),
+ t4-one-dimensional-encoded(3), t4-two-dimensional-encoded(4),
+ bitmap-encoded(5), t6-encoded-msb(6), t4-one-dimensional-encoded-msb(7),
+ t4-two-dimensional-encoded-msb(8), jbig-bits-per-component-eq-1(9),
+ jpeg(10), jbig-bits-per-component-gr-1(11)}
+
+Bits-Per-Colour-Component ::= CHOICE {
+ single-integer INTEGER,
+ component-list SEQUENCE OF INTEGER
+}
+
+Subsampling ::= OCTET STRING
+
+-- The value OCTET STRING shall be chosen from the
+-- following table:
+-- Semantic Meaning JPEG notations Octet strings
+-- 4:1:1 ((2,2),(1,1),(1,1)) '221111'H
+-- 2:1:1 or 4:2:2 ((2,1),(1,1),(1,1)) '211111'H
+-- 1:1:1 ((1,1),(1,1),(1,1)) '111111'H
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..c8f3a2ff33
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
@@ -0,0 +1,92 @@
+-- Module Raster-Gr-Presentation-Attributes (T.417:03/1993)
+
+Raster-Gr-Presentation-Attributes {2 8 1 7 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Graphics-Attributes, Clipping, Measure-Pair, One-Of-Four-Angles,
+ One-Of-Two-Angles, Pel-Transmission-Density, Pel-Spacing, Spacing-Ratio,
+ Image-Dimensions, Coordinate-Pair;
+
+Raster-Graphics-Attributes ::= SET {
+ pel-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ pel-transmission-density [2] IMPLICIT Pel-Transmission-Density OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ clipping [4] IMPLICIT Clipping OPTIONAL,
+ pel-spacing [5] Pel-Spacing OPTIONAL,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio OPTIONAL,
+ image-dimensions [7] Image-Dimensions OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {
+ d0(0), -- d0
+ d90(1), -- d90
+ d180(2), --d180
+ d270(3) -- d270--}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), -- d90
+ d270(3) -- d270 --}
+
+Pel-Transmission-Density ::= INTEGER {
+ p5(2), -- 5 BMU (240 pels/25.4 mm)
+ p4(3), -- 4 BMU (300 pels/25.4 mm)
+ p3(4), -- 3 BMU (400 pels/25.4 mm)
+ p2(5), -- 2 BMU (600 pels/25.4 mm)
+ p1(6), -- 1 BMU (1200 pels/25.4 mm)
+ colour-grey-scale-p12(10), -- 12 BMU (100 pels/25.4 mm)
+ colour-grey-scale-p6(11), -- 6 BMU (200 pels/25.4 mm)
+ colour-grey-scale-p4(13), -- 4 BMU (300 pels/25.4 mm)
+ colour-grey-scale-p3(14), -- 3 BMU (400 pels/25.4 mm)
+ colour-grey-scale-p2(15), -- 2 BMU (600 pels/25.4 mm)
+ colour-grey-scale-p1(16), -- 1 BMU (1200 pels/25.4 mm)
+ p6(1)} -- 6 BMU (200 pels/25.4 mm)
+
+-- default and basic value is p6 (1)
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [0] IMPLICIT INTEGER
+}
+
+Clipping ::= SEQUENCE {
+ first-coordinate-pair [0] IMPLICIT Coordinate-Pair OPTIONAL,
+ second-coordinate-pair [1] IMPLICIT Coordinate-Pair OPTIONAL
+}
+
+Coordinate-Pair ::= SEQUENCE {x-coordinate INTEGER,
+ y-coordinate INTEGER
+}
+
+Pel-Spacing ::= CHOICE {
+ spacing
+ [0] IMPLICIT SEQUENCE {length [0] INTEGER,
+ pel-spaces [0] INTEGER},
+ null [1] IMPLICIT NULL
+}
+
+Spacing-Ratio ::= SEQUENCE {
+ line-spacing-value INTEGER,
+ pel-spacing-value INTEGER
+}
+
+Image-Dimensions ::= CHOICE {
+ width-controlled
+ [0] IMPLICIT SEQUENCE {minimum-width [0] INTEGER,
+ preferred-width [0] INTEGER},
+ height-controlled
+ [1] IMPLICIT SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] IMPLICIT SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag INTEGER {fixed(0), variable(1)}
+ },
+ automatic [3] IMPLICIT NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..365144ff35
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
@@ -0,0 +1,76 @@
+-- Module Raster-Gr-Profile-Attributes (T.417:03/1993)
+
+Raster-Gr-Profile-Attributes {2 8 1 7 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Ra-Gr-Presentation-Feature, Ra-Gr-Coding-Attribute,
+ Raster-Gr-Content-Defaults;
+
+IMPORTS
+ One-Of-Four-Angles, One-Of-Two-Angles, Pel-Transmission-Density,
+ Measure-Pair, Clipping, Pel-Spacing, Spacing-Ratio, Image-Dimensions,
+ Coordinate-Pair, Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2}
+ Compression, Tile-Type, Bits-Per-Colour-Component, Subsampling
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3};
+
+Ra-Gr-Coding-Attribute ::= CHOICE {
+ compression [0] IMPLICIT Compression,
+ bits-per-colour-component [4] Bits-Per-Colour-Component,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)},
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER,
+ tiling-offset [8] IMPLICIT Coordinate-Pair,
+ tiling-types [9] IMPLICIT Tile-Type,
+ subsampling [10] IMPLICIT Subsampling,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ huffman-baseline(0),
+ huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)},
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ jbig-tp-for-base-layer [14] IMPLICIT INTEGER {not-used(0), used(1)},
+ jbig-differential-layer
+ [15] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)},
+ number-of-lines-per-stripe [16] IMPLICIT INTEGER
+}
+
+Ra-Gr-Presentation-Feature ::= CHOICE {
+ initial-offset [3] IMPLICIT Measure-Pair,
+ clipping [4] IMPLICIT Clipping,
+ pel-spacing [5] Pel-Spacing,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio,
+ image-dimensions [7] Image-Dimensions,
+ pel-path [9] IMPLICIT One-Of-Four-Angles,
+ line-progression [10] IMPLICIT One-Of-Two-Angles,
+ pel-transmission-density [11] IMPLICIT Pel-Transmission-Density
+}
+
+-- The tag values used above preserve compatibility
+-- with Group 4 Class I facsimile data streams.
+Raster-Gr-Content-Defaults ::= SET {
+ COMPONENTS OF Raster-Graphics-Attributes,
+ compression [8] IMPLICIT Compression OPTIONAL,
+ number-of-pels-per-tile-line [11] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [12] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [13] IMPLICIT Coordinate-Pair OPTIONAL,
+ tiling-type [14] IMPLICIT Tile-Type OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn b/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn
new file mode 100644
index 0000000000..d00570b7e7
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn
@@ -0,0 +1,132 @@
+-- Module Reliable-Transfer-APDU (X.228:11/1988)
+
+Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ rTSE, rTSE-abstract-syntax, RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu; -- for use by Presentation Layer only
+
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+OPEN ::= CLASS {&Type
+}WITH SYNTAX {TYPE &Type
+}
+
+rTSE-abstract-syntax OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t reliable-transfer(3) abstract-syntax(2)}
+
+rTSE CONTRACT ::= {ID {joint-iso-itu-t reliable-transfer(3) aseID(1)}
+}
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+-- Tags [19], [20], [21] are used by the values of the UNBIND macro of the RO-notation of
+-- Recommendation X.219. Tags [0] to [15] inclusive are reserved for the
+-- use by the APDUs of ROSE (Recommendation X229). Any occurrence of
+-- ANY in this module shall be replaced by a single ASN. 1 type (if any) in an RTSE-user
+-- protocol specification. In addition any RTSE-user protocol sharing a single named
+-- abstract syntax with the RTSE protocol shall use distinct tags for the single
+-- presentation data values in the user data parameters of the RT-CLOSE (if any) and
+-- RT- TRANSFER services. These tags shall be distinct from the tag values [16], [17],
+-- [18] and [22] and from the ASN. 1 types INTEGER and OCTET STRING.
+-- Note - The above conditions are ensured, if the RTSE-user protocol specification uses the
+-- RO-notation of Recommendation X229.
+-- In X.410-1984 mode only the components of RTORQapdu, RTOACapdu, RTORJapdu
+-- and RTABapdu are used by the presentation layer. This has the effect that the following
+-- APDU types appear in the protocol in X.410-1984 mode instead of the alternative types
+-- of the RTSE-apdus type:
+-- RTORQapdu
+-- RTOACapdu
+-- RTORJapdu
+-- RTTPapdu
+-- RTTRapdu
+-- RTABapdu
+RTORQapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ dialogueMode
+ [2] IMPLICIT INTEGER {monologue(0), twa(1)} DEFAULT monologue,
+ connectionDataRQ [3] ConnectionData,
+ applicationProtocol
+ [4] IMPLICIT INTEGER OPTIONAL --solely in X.410-1984 mode--
+}
+
+RTOACapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ connectionDataAC [2] ConnectionData
+}
+
+RTORJapdu ::= SET {
+ refuseReason [0] IMPLICIT RefuseReason OPTIONAL, -- only in X.410-1984 mode
+ userDataRJ
+ [1] OPEN.&Type OPTIONAL -- RTSE user data, only in normal mode--
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] OPEN.&Type OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+ConnectionData ::= CHOICE {
+ open [0] OPEN.&Type, -- RTSE user data
+
+ -- this alternative is encoded as [0] IMPLICIT NULL
+ -- in the case of absence of RTSE user data,
+ recover [1] IMPLICIT SessionConnectionIdentifier
+}
+
+SessionConnectionIdentifier ::= SEQUENCE {
+ callingSSuserReference CallingSSuserReference,
+ commonReference CommonReference,
+ additionalReferenceInformation
+ [0] IMPLICIT AdditionalReferenceInformation OPTIONAL
+}
+
+RefuseReason ::= INTEGER {
+ rtsBusy(0), cannotRecover(1), validationFailure(2),
+ unacceptableDialogueMode(3)}
+
+CallingSSuserReference ::= CHOICE {
+ t61String T61String -- solely in X.410-1984 --,
+ octetString OCTET STRING -- solely in normal mode --
+}
+
+CommonReference ::= UTCTime
+
+AdditionalReferenceInformation ::= T61String
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
new file mode 100644
index 0000000000..4a59cc403b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
@@ -0,0 +1,103 @@
+-- Module Remote-Operations-Abstract-Syntaxes (X.882:07/1994)
+
+Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t remote-operations(4)
+ remote-operations-abstract-syntaxes(12) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, noInvokeId, ROS{}, Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ACSE-apdu
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ combine{}, AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+acse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ ACSE-apdu
+ IDENTIFIED BY
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+}
+
+rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus
+ IDENTIFIED BY {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+}
+
+AllValues{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind},
+ ros-singleAS
+ ROS-SingleAS{{ROSEInvokeIds},
+ combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&ResponderConsumerOf}, {
+ ...},
+ {-- Information Object of class OPERATION-PACKAGE to be defined -- }}}
+}
+
+ROS-SingleAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS{{ROSEInvokeIds}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+ROSEInvokeIds InvokeId ::= {ALL EXCEPT noInvokeId}
+
+END -- end of the remote-operations-abstract-syntaxes module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..e55ea3c05e
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,163 @@
+-- Module Remote-Operations-Generic-ROS-PDUs (X.880:07/1994)
+
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
new file mode 100644
index 0000000000..671cf0e780
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
@@ -0,0 +1,36 @@
+-- Module Remote-Operations-Information-Objects-extensions (X.881:07/1994)
+
+Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &associationRealization REALIZATION OPTIONAL,
+ &transferRealization REALIZATION,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ [ESTABLISHED BY &associationRealization]
+ INFORMATION TRANSFER BY &transferRealization
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+REALIZATION ::= TYPE-IDENTIFIER
+
+-- information objects ABSTRACT-SYNTAX and TYPE-IDENTIFIER are defined in ITU-T Rec. X.681 |
+-- ISO/IEC 8824-2
+END -- end of the information-objects-extensions module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..b497e4126b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,123 @@
+-- Module Remote-Operations-Information-Objects (X.880:07/1994)
+
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn
new file mode 100644
index 0000000000..73b49c8d7a
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn
@@ -0,0 +1,81 @@
+-- Module Remote-Operations-Realizations (X.882:07/1994)
+
+Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ REALIZATION
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RealizationParameter ::= SEQUENCE {
+ realization-type ENUMERATED {association-service(0), transfer-service(1)},
+ concatenation BOOLEAN DEFAULT FALSE
+}
+
+acse REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-without-concatenation(0)}
+}
+
+acse-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-with-concatenation(1)}
+}
+
+association-by-RTSE REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ association-by-rtse(2)}
+}
+
+pData REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-without-concatenation(0)}
+}
+
+pData-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (transfer-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-with-concatenation(1)}
+}
+
+transfer-by-RTSE REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ rTSE-transfer(2)}
+}
+
+END -- end of the OSI realizations module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..e526ff4600
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,95 @@
+-- Module Remote-Operations-Useful-Definitions (X.880:07/1994)
+
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn b/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn
new file mode 100644
index 0000000000..2917122e94
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn
@@ -0,0 +1,116 @@
+-- Module SeseAPDUs (X.832:04/1995)
+
+SeseAPDUs {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ dirAuthenticationTwoWay
+ FROM GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)}
+ SECURITY-EXCHANGE, SE-ERROR
+ FROM Notation notation;
+
+SESEapdus{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ CHOICE {
+ se-transfer SETransfer{{ValidSEs}, {InvocationIdSet}},
+ se-u-abort SEUAbort{{ValidSEs}, {InvocationIdSet}},
+ se-p-abort SEPAbort{{ValidSEs}, {InvocationIdSet}}
+}
+
+SETransfer{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ seIdentifier SECURITY-EXCHANGE.&sE-Identifier({ValidSEs}),
+ -- This identifies one of the security-
+ -- exchanges supported by the particular SESE
+ -- abstract syntax
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs}{@seIdentifier}),
+ -- This identifies one of the security-
+ -- exchange-items of the security exchange
+ -- indicated by "seIdentifier"
+ seItem
+ SECURITY-EXCHANGE.&SE-Items.&ItemType
+ ({ValidSEs}{@seIdentifier, @itemIdentifier}),
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active security exchange--
+
+ -- if start flag is not true -- }) DEFAULT noInvocationId,
+ startFlag BOOLEAN DEFAULT FALSE,
+ -- This field is set only as the first security-
+ -- exchange-item of a security-exchange is
+ -- transferred.
+ endFlag BOOLEAN DEFAULT FALSE-- This field is set as the last security-exchange-
+-- item of a security-exchange is transferred. It is
+-- needed to accommodate those mechanisms requiring
+-- n exchanges, where n is not known a priori
+}
+
+SEUAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active or just-completed--
+
+ -- security exchange -- }) DEFAULT noInvocationId,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ errors SEQUENCE OF SEerror{{ValidSEs}} OPTIONAL
+ -- needed to handle multiple error codes
+}
+
+SEPAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId InvocationId(InvocationIdSet) OPTIONAL,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ problemCode ProblemCode
+}
+
+InvocationId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvocationId InvocationId ::= absent:NULL
+
+NoInvocationId InvocationId ::= {noInvocationId}
+
+SEerror{SECURITY-EXCHANGE:ValidSEs} ::= SEQUENCE {
+ errorCode SE-ERROR.&errorCode({Errors{{ValidSEs}}}) OPTIONAL,
+ errorParameter
+ SE-ERROR.&ParameterType({Errors{{ValidSEs}}}) OPTIONAL
+}
+
+Errors{SECURITY-EXCHANGE:ValidSEs} SE-ERROR ::= {ValidSEs.&SE-Items.&Errors}
+
+ProblemCode ::= CHOICE {
+ general GeneralProblem,
+ transfer TransferProblem,
+ abort AbortProblem
+}
+
+GeneralProblem ::= ENUMERATED {invalidAPDU(0)}
+
+TransferProblem ::= ENUMERATED {
+ duplicateInvocationId(0), unrecognizedSecurityExchange(1), mistypedItem(2),
+ inappropriateInvocationId(3), alternatingSequenceError(4)}
+
+AbortProblem ::= ENUMERATED {
+ unrecognizedInvocationId(0), abortUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedErrorParameter(4)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn b/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn
new file mode 100644
index 0000000000..02205bd64c
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn
@@ -0,0 +1,257 @@
+-- Module SpkmGssTokens (RFC 2025:10/1996)
+SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkmGssTokens(10)}
+--
+-- Copyright (C) The Internet Society (1996). This version of
+-- this ASN.1 module is part of RFC 2025;
+-- see the RFC itself for full legal notices.
+--
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ Name
+ FROM InformationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ informationFramework(1) 3}
+ Certificate, CertificateList, CertificatePair, AlgorithmIdentifier, Validity
+ FROM AuthenticationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- types
+SPKM-REQ ::= SEQUENCE {
+ requestToken REQ-TOKEN,
+ certif-data [0] CertificationData OPTIONAL,
+ auth-data [1] AuthorizationData OPTIONAL
+}
+
+CertificationData ::= SEQUENCE {
+ certificationPath [0] CertificationPath OPTIONAL,
+ certificateRevocationList [1] CertificateList OPTIONAL
+} -- at least one of the above shall be present
+
+CertificationPath ::= SEQUENCE {
+ userKeyId [0] OCTET STRING OPTIONAL,
+ userCertif [1] Certificate OPTIONAL,
+ verifKeyId [2] OCTET STRING OPTIONAL,
+ userVerifCertif [3] Certificate OPTIONAL,
+ theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL
+} -- Presence of [2] or [3] implies that [0] or [1] must also be
+
+-- present. Presence of [4] implies that at least one of [0], [1],
+-- [2], and [3] must also be present.
+REQ-TOKEN ::= SEQUENCE {
+ req-contents Req-contents,
+ algId AlgorithmIdentifier,
+ req-integrity Integrity -- "token" is Req-contents
+}
+
+Integrity ::= BIT STRING
+
+-- If corresponding algId specifies a signing algorithm,
+-- "Integrity" holds the result of applying the signing procedure
+-- specified in algId to the BER-encoded octet string which results
+-- from applying the hashing procedure (also specified in algId) to
+-- the DER-encoded octets of "token".
+-- Alternatively, if corresponding algId specifies a MACing
+-- algorithm, "Integrity" holds the result of applying the MACing
+-- procedure specified in algId to the DER-encoded octets of
+-- "token"
+Req-contents ::= SEQUENCE {
+ tok-id INTEGER(256), -- shall contain 0100 (hex)
+ context-id Random-Integer,
+ pvno BIT STRING,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randSrc Random-Integer,
+ targ-name Name,
+ src-name [0] Name OPTIONAL,
+ req-data Context-Data,
+ validity [1] Validity OPTIONAL,
+ key-estb-set Key-Estb-Algs,
+ key-estb-req BIT STRING OPTIONAL,
+ key-src-bind OCTET STRING OPTIONAL
+ -- This field must be present for the case of SPKM-2
+ -- unilateral authen. if the K-ALG in use does not provide
+ -- such a binding (but is optional for all other cases).
+ -- The octet string holds the result of applying the
+ -- mandatory hashing procedure (in MANDATORY I-ALG;
+ -- see Section 2.1) as follows: MD5(src || context_key),
+ -- where "src" is the DER-encoded octets of src-name,
+ -- "context-key" is the symmetric key (i.e., the
+ -- unprotected version of what is transmitted in
+ -- key-estb-req), and "||" is the concatenation operation.
+}
+
+Random-Integer ::= BIT STRING
+
+Context-Data ::= SEQUENCE {
+ channelId ChannelId OPTIONAL,
+ seq-number INTEGER OPTIONAL,
+ options Options,
+ conf-alg Conf-Algs,
+ intg-alg Intg-Algs,
+ owf-alg OWF-Algs
+}
+
+ChannelId ::= OCTET STRING
+
+Options ::= BIT STRING {
+ delegation-state(0), mutual-state(1), replay-det-state(2), sequence-state(3),
+ conf-avail(4), integ-avail(5), target-certif-data-required(6)}
+
+Conf-Algs ::= CHOICE {
+ algs [0] SEQUENCE OF AlgorithmIdentifier,
+ null [1] NULL
+}
+
+Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+SPKM-REP-TI ::= SEQUENCE {
+ responseToken REP-TI-TOKEN,
+ certif-data CertificationData OPTIONAL
+ -- present if target-certif-data-required option was
+} -- set to TRUE in SPKM-REQ
+
+REP-TI-TOKEN ::= SEQUENCE {
+ rep-ti-contents Rep-ti-contents,
+ algId AlgorithmIdentifier,
+ rep-ti-integ Integrity -- "token" is Rep-ti-contents
+}
+
+Rep-ti-contents ::= SEQUENCE {
+ tok-id INTEGER(512), -- shall contain 0200 (hex)
+ context-id Random-Integer,
+ pvno [0] BIT STRING OPTIONAL,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randTarg Random-Integer,
+ src-name [1] Name OPTIONAL,
+ targ-name Name,
+ randSrc Random-Integer,
+ rep-data Context-Data,
+ validity [2] Validity OPTIONAL,
+ key-estb-id AlgorithmIdentifier OPTIONAL,
+ key-estb-str BIT STRING OPTIONAL
+}
+
+SPKM-REP-IT ::= SEQUENCE {
+ responseToken REP-IT-TOKEN,
+ algId AlgorithmIdentifier,
+ rep-it-integ Integrity -- "token" is REP-IT-TOKEN
+}
+
+REP-IT-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(768), -- shall contain 0300 (hex)
+ context-id Random-Integer,
+ randSrc Random-Integer,
+ randTarg Random-Integer,
+ targ-name Name,
+ src-name Name OPTIONAL,
+ key-estb-rep BIT STRING OPTIONAL
+}
+
+SPKM-ERROR ::= SEQUENCE {
+ errorToken ERROR-TOKEN,
+ algId AlgorithmIdentifier,
+ integrity Integrity -- "token" is ERROR-TOKEN
+}
+
+ERROR-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(1024), -- shall contain 0400 (hex)
+ context-id Random-Integer
+}
+
+SPKM-MIC ::= SEQUENCE {mic-header Mic-Header,
+ int-cksum BIT STRING
+}
+
+Mic-Header ::= SEQUENCE {
+ tok-id INTEGER(257), -- shall contain 0101 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+SeqNum ::= SEQUENCE {num INTEGER,
+ dir-ind BOOLEAN
+}
+
+SPKM-WRAP ::= SEQUENCE {wrap-header Wrap-Header,
+ wrap-body Wrap-Body
+}
+
+Wrap-Header ::= SEQUENCE {
+ tok-id INTEGER(513), -- shall contain 0201 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ conf-alg [1] Conf-Alg OPTIONAL,
+ snd-seq [2] SeqNum OPTIONAL
+}
+
+Wrap-Body ::= SEQUENCE {int-cksum BIT STRING,
+ data BIT STRING
+}
+
+Conf-Alg ::= CHOICE {algId [0] AlgorithmIdentifier,
+ null [1] NULL
+}
+
+SPKM-DEL ::= SEQUENCE {del-header Del-Header,
+ int-cksum BIT STRING
+}
+
+Del-Header ::= SEQUENCE {
+ tok-id INTEGER(769), -- shall contain 0301 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+-- other types
+-- from [RFC-1508]
+MechType ::= OBJECT IDENTIFIER
+
+InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ thisMech MechType,
+ innerContextToken SPKMInnerContextToken
+} -- when thisMech is SPKM-1 or SPKM-2
+
+SPKMInnerContextToken ::= CHOICE {
+ req [0] SPKM-REQ,
+ rep-ti [1] SPKM-REP-TI,
+ rep-it [2] SPKM-REP-IT,
+ error [3] SPKM-ERROR,
+ mic [4] SPKM-MIC,
+ wrap [5] SPKM-WRAP,
+ del [6] SPKM-DEL
+}
+
+-- from [RFC-1510]
+AuthorizationData ::=
+ SEQUENCE OF SEQUENCE {ad-type INTEGER,
+ ad-data OCTET STRING}
+
+-- object identifier assignments
+md5-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) md5-DES-CBC(1)}
+
+sum64-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) sum64-DES-CBC(2)}
+
+spkm-1 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-1(1)}
+
+spkm-2 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-2(2)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn
new file mode 100644
index 0000000000..8f033eab6f
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn
@@ -0,0 +1,190 @@
+-- Module Style-Descriptors (T.415:03/1993)
+
+Style-Descriptors {2 8 1 5 10} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Presentation-Style-Descriptor, Presentation-Attributes, Content-Type,
+ Content-Architecture-Class, Layout-Style-Descriptor, Fill-Order,
+ Block-Alignment;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Category-Name,
+ Object-Id-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Transparency, Colour, Border, Layout-Object-Type,
+ Content-Background-Colour, Content-Foreground-Colour, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Attributes
+ FROM Character-Presentation-Attributes {2 8 1 6 2
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geometric-Graphics-Attributes
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+
+Presentation-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ transparency [2] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [5] IMPLICIT Border OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Presentation-Attributes ::= SET {
+ content-architecture-class
+ CHOICE {a Content-Architecture-Class,
+ b Content-Type} OPTIONAL,
+ character-attributes [0] IMPLICIT Character-Attributes OPTIONAL,
+ raster-graphics-attributes
+ [1] IMPLICIT Raster-Graphics-Attributes OPTIONAL,
+ geometric-graphics-attributes
+ [2] IMPLICIT Geometric-Graphics-Attributes OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of presentation attributes:
+ -- [3] videotex, for use in conjunction with CCITT Recommendations
+ -- [4] audio
+ -- [5] dynamic-graphics
+ ext-cont-arch-pres-attributes [6] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Content-Type ::= [APPLICATION 2] IMPLICIT INTEGER {formatted-raster-graphics(1)
+}
+
+-- The integer representation for content architecture class,
+-- Content-Type, is only to be used if the value of the document
+-- profile attribute "document application profile" is an integer.
+-- The value 'formatted-raster-graphics' represents the formatted raster
+-- graphics content architecture as defined in ITU-T Rec. T.417 | ISO/IEC 8613-7.
+Content-Architecture-Class ::= OBJECT IDENTIFIER
+
+Layout-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ layout-directives [4] IMPLICIT Layout-Directives OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Layout-Directives ::= SET {
+ indivisibility
+ CHOICE {to-layout-object-class [0] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [1] IMPLICIT Category-Name,
+ to-layout-object-type [2] IMPLICIT Layout-Object-Type,
+ null [15] IMPLICIT NULL} OPTIONAL,
+ separation [3] IMPLICIT Separation OPTIONAL,
+ offset [4] IMPLICIT Offset OPTIONAL,
+ fill-order [5] IMPLICIT Fill-Order OPTIONAL,
+ concatenation [6] IMPLICIT Concatenation OPTIONAL,
+ new-layout-object
+ CHOICE {to-layout-object-class [7] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [8] IMPLICIT Category-Name,
+ to-layout-object-type [9] IMPLICIT Layout-Object-Type,
+ null [16] IMPLICIT NULL} OPTIONAL,
+ same-layout-object [10] IMPLICIT Same-Layout-Object OPTIONAL,
+ layout-object-class
+ [11] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ logical-stream-category [19] IMPLICIT Category-Name OPTIONAL,
+ logical-stream-sub-category [20] IMPLICIT Category-Name OPTIONAL,
+ layout-category [12] IMPLICIT Category-Name OPTIONAL,
+ synchronization
+ CHOICE {a [13] IMPLICIT Object-or-Class-Identifier,
+ b [17] Object-Id-Expression,
+ c [18] IMPLICIT NULL} OPTIONAL,
+ block-alignment [14] IMPLICIT Block-Alignment OPTIONAL,
+ floatability-range [24] IMPLICIT Floatability-Range OPTIONAL
+}
+
+Separation ::= SET {
+ leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Offset ::= SET {
+ leading [3] IMPLICIT INTEGER OPTIONAL,
+ trailing [2] IMPLICIT INTEGER OPTIONAL,
+ left-hand [1] IMPLICIT INTEGER OPTIONAL,
+ right-hand [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Fill-Order ::= INTEGER {normal(0), reverse(1)}
+
+Concatenation ::= INTEGER {non-concatenated(0), concatenated(1)}
+
+Same-Layout-Object ::= SET {
+ logical-object
+ CHOICE {a [0] IMPLICIT Object-or-Class-Identifier,
+ b [4] Object-Id-Expression,
+ c [5] IMPLICIT NULL},
+ layout-object
+ CHOICE {d [1] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category [6] IMPLICIT Category-Name,
+ to-stream-sub-category [7] IMPLICIT Category-Name,
+ to-layout-category [2] IMPLICIT Category-Name,
+ e [3] IMPLICIT Layout-Object-Type} OPTIONAL
+}
+
+Floatability-Range ::= SET {
+ forward-limit
+ [0] SEQUENCE {logical-object
+ CHOICE {a [2] IMPLICIT Object-or-Class-Identifier,
+ b [3] Object-Id-Expression,
+ c [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ d [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL,
+ backward-limit
+ [1] SEQUENCE {logical-object
+ CHOICE {e [2] IMPLICIT Object-or-Class-Identifier,
+ f [3] Object-Id-Expression,
+ g [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ h [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL
+}
+
+Block-Alignment ::= INTEGER {right-hand(0), left-hand(1), centred(2), null(3)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn b/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn
new file mode 100644
index 0000000000..bfcd0b5dbc
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn
@@ -0,0 +1,96 @@
+-- Module Subprofiles (T.422:08/1995)
+
+Subprofiles {2 8 1 12 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Subprofile-Descriptor, Subprofile-Identifier;
+
+IMPORTS
+ Character-Data, Date-and-Time, Document-Reference, Personal-Name,
+ Originators, Other-User-Information, Local-File-References,
+ Security-Information
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0};
+
+Subprofile-Descriptor ::= SET {
+ subprofile-identifier [0] Subprofile-Identifier,
+ subprofile-reference [1] Subprofile-Reference OPTIONAL,
+ subprofile-precedence [2] INTEGER OPTIONAL,
+ document-fragment-reference [3] Location-Expression,
+ content-architecture-classes
+ [4] SET OF OBJECT IDENTIFIER OPTIONAL, -- shall always
+
+ -- be present, except when used in a location expression
+ document-fragment-management-attributes
+ [5] Document-Fragment-Management-Attributes OPTIONAL
+}
+
+Subprofile-Identifier ::= [APPLICATION 8] PrintableString
+
+-- only digits and spaces are used in the present version of this Specification;
+-- other characters are reserved for extensions
+Subprofile-Reference ::= CHOICE {
+ unique-reference [0] OBJECT IDENTIFIER,
+ descriptive-reference [1] Character-Data
+}
+
+Document-Fragment-Management-Attributes ::= SET {
+ document-fragment-description [0] Document-Fragment-Description OPTIONAL,
+ dates-and-times [1] Dates-and-Times OPTIONAL,
+ originators [2] Originators OPTIONAL,
+ other-user-information [3] Other-User-Information OPTIONAL,
+ external-references [4] External-References2 OPTIONAL,
+ local-file-references [5] Local-File-References OPTIONAL,
+ languages [6] SET OF Character-Data OPTIONAL,
+ security-information [7] Security-Information OPTIONAL
+}
+
+Document-Fragment-Description ::= SET {
+ title [0] Character-Data OPTIONAL,
+ subject [1] Character-Data OPTIONAL,
+ document-fragment-type [2] Character-Data OPTIONAL,
+ abstract [3] Character-Data OPTIONAL,
+ keywords [4] SET OF Character-Data OPTIONAL
+}
+
+Dates-and-Times ::= SET {
+ document-fragment-date-and-time [0] Date-and-Time OPTIONAL,
+ creation-date-and-time [1] Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] Date-and-Time OPTIONAL,
+ start-date-and-time [4] Date-and-Time OPTIONAL,
+ purge-date-and-time [5] Date-and-Time OPTIONAL,
+ release-date-and-time [6] Date-and-Time OPTIONAL,
+ revision-history
+ [7] SEQUENCE OF
+ SET {revision-date-and-time [0] Date-and-Time OPTIONAL,
+ version-identifier [1] Character-Data OPTIONAL,
+ revisers
+ [2] SET OF
+ SET {names [0] SET OF Personal-Name OPTIONAL,
+ position [1] Character-Data OPTIONAL,
+ organization [2] Character-Data OPTIONAL
+ } OPTIONAL,
+ version-reference
+ [3] Document-or-Document-Fragment-Reference OPTIONAL,
+ user-comments [4] Character-Data OPTIONAL} OPTIONAL
+}
+
+External-References2 ::= SET {
+ references-to-other-documents-or-document-fragments
+ [0] SET OF Document-or-Document-Fragment-Reference OPTIONAL,
+ superseded-documents-or-document-fragments
+ [1] SET OF Document-or-Document-Fragment-Reference OPTIONAL
+}
+
+Document-or-Document-Fragment-Reference ::= CHOICE {
+ document [0] Document-Reference,
+ document-fragment [1] Subprofile-Reference
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn b/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn
new file mode 100644
index 0000000000..9633995e3b
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn
@@ -0,0 +1,92 @@
+-- Module Temporal-Relationships (T.424:07/1996)
+
+Temporal-Relationships {2 8 1 14 0} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Temporal-Relations, Presentation-Time, Document-Presentation-Time,
+ Time-Scaling;
+
+IMPORTS
+ Date-and-Time
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 and C.4
+ Object-or-Class-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7};
+
+-- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+Temporal-Relations ::= SET {
+ synchronization-type [0] IMPLICIT Synchronization-Type,
+ subordinate-nodes
+ [1] SEQUENCE OF
+ SET {node-identifier [0] IMPLICIT Node-Identifier,
+ start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ duration [2] Indefinite-or-Time-Delay OPTIONAL,
+ cyclic [3] IMPLICIT Cyclic OPTIONAL,
+ end-time [4] IMPLICIT Time-Delay OPTIONAL,
+ application-comments [5] IMPLICIT OCTET STRING OPTIONAL
+ }
+}
+
+-- The value 'null' is represented by an empty set
+Synchronization-Type ::= INTEGER {
+ parallel-last(0), parallel-first(1), parallel-selective(2), sequential(3)
+}
+
+Node-Identifier ::= PrintableString
+
+-- only digits and spaces are used
+-- the first digit is either 2 for a logical object class or 3 for a logical object
+Cyclic ::= SET {
+ number-of-cycles [0] CHOICE {indefinite Indefinite,
+ a INTEGER},
+ cycle-start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ cycle-duration [2] Indefinite-or-Time-Delay OPTIONAL
+}
+
+Indefinite ::= NULL
+
+Time-Delay ::= INTEGER {indefinite(-1)}
+
+Presentation-Time ::= SET {
+ timing
+ CHOICE {fixed-timing [0] IMPLICIT INTEGER,
+ variable-timing [1] IMPLICIT Time-Spec} OPTIONAL,
+ duration
+ CHOICE {fixed-duration
+ [2] CHOICE {indefinite-or-time-delay Indefinite-or-Time-Delay,
+ object-or-class-identifier
+ Object-or-Class-Identifier},
+ rule-A [3] IMPLICIT Rule-Spec,
+ rule-B [4] IMPLICIT Rule-Spec} OPTIONAL,
+ cyclic [5] Cyclic OPTIONAL
+}
+
+-- The value 'null' is represented by an empty set
+Time-Spec ::= SET {
+ start-offset [0] IMPLICIT INTEGER OPTIONAL,
+ end-offset [1] IMPLICIT INTEGER OPTIONAL,
+ start-separation [2] IMPLICIT INTEGER OPTIONAL,
+ end-separation [3] IMPLICIT INTEGER OPTIONAL
+}
+
+Rule-Spec ::= SET {
+ minimum-duration [0] IMPLICIT INTEGER OPTIONAL,
+ maximum-duration [1] IMPLICIT INTEGER OPTIONAL
+}
+
+Indefinite-or-Time-Delay ::= CHOICE {
+ indefinite [0] IMPLICIT NULL,
+ fixed [1] Time-Delay
+}
+
+Document-Presentation-Time ::= Date-and-Time
+
+Time-Scaling ::= [0] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn b/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn
new file mode 100644
index 0000000000..ccc64a52f5
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn
@@ -0,0 +1,72 @@
+-- Module Text-Units (T.415:03/1993)
+
+Text-Units {2 8 1 5 12} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Text-Unit, Type-Of-Coding;
+
+IMPORTS
+ Content-Portion-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Character-Coding-Attributes
+ FROM Character-Coding-Attributes {2 8 1 6 3
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Coding-Attributes
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Coding-Attributes
+ FROM Geo-Gr-Coding-Attributes {2 8 1 8 3
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Videotex-Coding-Attributes
+ FROM Videotex-Coding-Attributes ;
+
+Text-Unit ::= SEQUENCE {
+ content-portion-attributes Content-Portion-Attributes OPTIONAL,
+ content-information Content-Information OPTIONAL
+}
+
+Content-Portion-Attributes ::= SET {
+ content-identifier-layout Content-Portion-Identifier OPTIONAL,
+ content-identifier-logical [4] IMPLICIT Content-Portion-Identifier OPTIONAL,
+ type-of-coding Type-Of-Coding OPTIONAL,
+ coding-attributes
+ CHOICE {character-coding-attributes
+ [1] IMPLICIT Character-Coding-Attributes,
+ raster-gr-coding-attributes
+ [2] IMPLICIT Raster-Gr-Coding-Attributes,
+ geo-gr-coding-attributes
+ [7] IMPLICIT Geo-Gr-Coding-Attributes,
+ videotex-coding-attributes
+ [8] IMPLICIT Videotex-Coding-Attributes,
+ -- the use of the data item "videotex-coding-attributes" is applicable to
+ -- ITU-T Rec. T.410 Series only
+ -- the following tags are reserved for additional types
+ -- of coding attributes:
+ -- [9] audio
+ -- [10] dynamic-graphics
+ ext-cont-arch-coding-attributes [11] IMPLICIT EXTERNAL} OPTIONAL,
+ alternative-representation [3] IMPLICIT Alternative-Representation OPTIONAL
+}
+
+Content-Information ::= CHOICE {
+ content OCTET STRING,
+ tiled-content Tiled-Content
+}
+
+Tiled-Content ::= SEQUENCE OF OCTET STRING
+
+Type-Of-Coding ::= CHOICE {
+ a [0] IMPLICIT INTEGER {t6(1)},
+ b [6] IMPLICIT OBJECT IDENTIFIER
+}
+
+Alternative-Representation ::= OCTET STRING
+
+-- string of characters from the sets designated by the document
+-- profile attribute "alternative representation character sets",
+-- plus carriage return and line feed
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn
new file mode 100644
index 0000000000..c97c83a569
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 17 --This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn
new file mode 100644
index 0000000000..18e51cbc0d
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn
@@ -0,0 +1,30 @@
+-- Module Videotex-Coding-Attributes (T.101:11/1994)
+Videotex-Coding-Attributes DEFINITIONS ::=
+BEGIN
+
+EXPORTS Videotex-Coding-Attributes;
+
+Videotex-Coding-Attributes ::= SET {
+ subset [0] IMPLICIT Subset OPTIONAL,
+ rank [1] IMPLICIT Rank OPTIONAL,
+ profile [2] IMPLICIT Profile OPTIONAL
+}
+
+Subset ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5), profile1(81),
+ profile2(82), profile3(83), profile4(84), profileX1-1(85), profileX1-2(86),
+ profileX1-3(87), profileX1-4(88), profileX2-1(89), profileX2-2(90),
+ profileX2-3(91), profileX2-4(92)}
+
+Rank ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5)}
+
+Profile ::= INTEGER {
+ undefined(0), profile1(81), profile2(82), profile3(83), profile4(84),
+ profileX1-1(85), profileX1-2(86), profileX1-3(87), profileX1-4(88),
+ profileX2-1(89), profileX2-2(90), profileX2-3(91), profileX2-4(92)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_app_test.erl b/lib/asn1/test/asn1_app_test.erl
new file mode 100644
index 0000000000..8ee42d3ec3
--- /dev/null
+++ b/lib/asn1/test/asn1_app_test.erl
@@ -0,0 +1,253 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Verify the application specifics of the Megaco application
+%%----------------------------------------------------------------------
+-module(asn1_app_test).
+
+-compile(export_all).
+
+%-include("megaco_test_lib.hrl").
+
+
+% t() -> megaco_test_lib:t(?MODULE).
+% t(Case) -> megaco_test_lib:t({?MODULE, Case}).
+
+
+% %% Test server callbacks
+% init_per_testcase(Case, Config) ->
+% megaco_test_lib:init_per_testcase(Case, Config).
+
+% fin_per_testcase(Case, Config) ->
+% megaco_test_lib:fin_per_testcase(Case, Config).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+all(suite) ->
+ Cases =
+ [
+ fields,
+ modules,
+ exportall,
+ app_depend
+ ],
+ {req, [], {conf, app_init, Cases, app_fin}}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+app_init(suite) -> [];
+app_init(doc) -> [];
+app_init(Config) when list(Config) ->
+ case is_app(asn1) of
+ {ok, AppFile} ->
+ io:format("AppFile: ~n~p~n", [AppFile]),
+ [{app_file, AppFile}|Config];
+ {error, Reason} ->
+ fail(Reason)
+ end.
+
+is_app(App) ->
+ LibDir = code:lib_dir(App),
+ File = filename:join([LibDir, "ebin", atom_to_list(App) ++ ".app"]),
+ case file:consult(File) of
+ {ok, [{application, App, AppFile}]} ->
+ {ok, AppFile};
+ Error ->
+ {error, {invalid_format, Error}}
+ end.
+
+
+app_fin(suite) -> [];
+app_fin(doc) -> [];
+app_fin(Config) when list(Config) ->
+ Config.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+fields(suite) ->
+ [];
+fields(doc) ->
+ [];
+fields(Config) when list(Config) ->
+ AppFile = key1search(app_file, Config),
+ Fields = [vsn, description, modules, registered, applications],
+ case check_fields(Fields, AppFile, []) of
+ [] ->
+ ok;
+ Missing ->
+ fail({missing_fields, Missing})
+ end.
+
+check_fields([], _AppFile, Missing) ->
+ Missing;
+check_fields([Field|Fields], AppFile, Missing) ->
+ check_fields(Fields, AppFile, check_field(Field, AppFile, Missing)).
+
+check_field(Name, AppFile, Missing) ->
+ io:format("checking field: ~p~n", [Name]),
+ case lists:keymember(Name, 1, AppFile) of
+ true ->
+ Missing;
+ false ->
+ [Name|Missing]
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+modules(suite) ->
+ [];
+modules(doc) ->
+ [];
+modules(Config) when list(Config) ->
+ AppFile = key1search(app_file, Config),
+ Mods = key1search(modules, AppFile),
+ EbinList = get_ebin_mods(asn1),
+ case missing_modules(Mods, EbinList, []) of
+ [] ->
+ ok;
+ Missing ->
+ throw({error, {missing_modules, Missing}})
+ end,
+ case extra_modules(Mods, EbinList, []) of
+ [] ->
+ ok;
+ Extra ->
+ check_asn1ct_modules(Extra)
+% throw({error, {extra_modules, Extra}})
+ end,
+ {ok, Mods}.
+
+get_ebin_mods(App) ->
+ LibDir = code:lib_dir(App),
+ EbinDir = filename:join([LibDir,"ebin"]),
+ {ok, Files0} = file:list_dir(EbinDir),
+ Files1 = [lists:reverse(File) || File <- Files0],
+ [list_to_atom(lists:reverse(Name)) || [$m,$a,$e,$b,$.|Name] <- Files1].
+
+check_asn1ct_modules(Extra) ->
+ ASN1CTMods = [asn1ct,asn1ct_check,asn1_db,asn1ct_pretty_format,
+ asn1ct_gen,asn1ct_gen_per,asn1ct_gen_per_rt2ct,
+ asn1ct_name,asn1ct_constructed_per,asn1ct_constructed_ber,
+ asn1ct_gen_ber,asn1ct_constructed_ber_bin_v2,
+ asn1ct_gen_ber_bin_v2,asn1ct_value,
+ asn1ct_tok,asn1ct_parser2],
+ case Extra -- ASN1CTMods of
+ [] ->
+ ok;
+ Extra2 ->
+ throw({error, {extra_modules, Extra2}})
+ end.
+
+missing_modules([], _Ebins, Missing) ->
+ Missing;
+missing_modules([Mod|Mods], Ebins, Missing) ->
+ case lists:member(Mod, Ebins) of
+ true ->
+ missing_modules(Mods, Ebins, Missing);
+ false ->
+ io:format("missing module: ~p~n", [Mod]),
+ missing_modules(Mods, Ebins, [Mod|Missing])
+ end.
+
+
+extra_modules(_Mods, [], Extra) ->
+ Extra;
+extra_modules(Mods, [Mod|Ebins], Extra) ->
+ case lists:member(Mod, Mods) of
+ true ->
+ extra_modules(Mods, Ebins, Extra);
+ false ->
+ io:format("supefluous module: ~p~n", [Mod]),
+ extra_modules(Mods, Ebins, [Mod|Extra])
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+exportall(suite) ->
+ [];
+exportall(doc) ->
+ [];
+exportall(Config) when list(Config) ->
+ AppFile = key1search(app_file, Config),
+ Mods = key1search(modules, AppFile),
+ check_export_all(Mods).
+
+
+check_export_all([]) ->
+ ok;
+check_export_all([Mod|Mods]) ->
+ case (catch apply(Mod, module_info, [compile])) of
+ {'EXIT', {undef, _}} ->
+ check_export_all(Mods);
+ O ->
+ case lists:keysearch(options, 1, O) of
+ false ->
+ check_export_all(Mods);
+ {value, {options, List}} ->
+ case lists:member(export_all, List) of
+ true ->
+ throw({error, {export_all, Mod}});
+ false ->
+ check_export_all(Mods)
+ end
+ end
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+app_depend(suite) ->
+ [];
+app_depend(doc) ->
+ [];
+app_depend(Config) when list(Config) ->
+ AppFile = key1search(app_file, Config),
+ Apps = key1search(applications, AppFile),
+ check_apps(Apps).
+
+
+check_apps([]) ->
+ ok;
+check_apps([App|Apps]) ->
+ case is_app(App) of
+ {ok, _} ->
+ check_apps(Apps);
+ Error ->
+ throw({error, {missing_app, {App, Error}}})
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+fail(Reason) ->
+ exit({suite_failed, Reason}).
+
+key1search(Key, L) ->
+ case lists:keysearch(Key, 1, L) of
+ undefined ->
+ fail({not_found, Key, L});
+ {value, {Key, Value}} ->
+ Value
+ end.
diff --git a/lib/asn1/test/asn1_appup_test.erl b/lib/asn1/test/asn1_appup_test.erl
new file mode 100644
index 0000000000..644c0f7d03
--- /dev/null
+++ b/lib/asn1/test/asn1_appup_test.erl
@@ -0,0 +1,418 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Verify the application specifics of the Megaco application
+%%----------------------------------------------------------------------
+-module(asn1_appup_test).
+
+-compile(export_all).
+
+%-include("megaco_test_lib.hrl").
+
+
+%t() -> megaco_test_lib:t(?MODULE).
+%t(Case) -> megaco_test_lib:t({?MODULE, Case}).
+
+
+%% Test server callbacks
+% init_per_testcase(Case, Config) ->
+% megaco_test_lib:init_per_testcase(Case, Config).
+
+% fin_per_testcase(Case, Config) ->
+% megaco_test_lib:fin_per_testcase(Case, Config).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+all(suite) ->
+ Cases =
+ [
+ appup
+ ],
+ {req, [], {conf, appup_init, Cases, appup_fin}}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+appup_init(suite) -> [];
+appup_init(doc) -> [];
+appup_init(Config) when list(Config) ->
+ AppFile = file_name(asn1, ".app"),
+ AppupFile = file_name(asn1, ".appup"),
+ [{app_file, AppFile}, {appup_file, AppupFile}|Config].
+
+
+file_name(App, Ext) ->
+ LibDir = code:lib_dir(App),
+ filename:join([LibDir, "ebin", atom_to_list(App) ++ Ext]).
+
+
+appup_fin(suite) -> [];
+appup_fin(doc) -> [];
+appup_fin(Config) when list(Config) ->
+ Config.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+appup(suite) ->
+ [];
+appup(doc) ->
+ "perform a simple check of the appup file";
+appup(Config) when list(Config) ->
+ AppupFile = key1search(appup_file, Config),
+ AppFile = key1search(app_file, Config),
+ Modules = modules(AppFile),
+ check_appup(AppupFile, Modules).
+
+modules(File) ->
+ case file:consult(File) of
+ {ok, [{application,asn1,Info}]} ->
+ case lists:keysearch(modules,1,Info) of
+ {value, {modules, Modules}} ->
+ Modules;
+ false ->
+ fail({bad_appinfo, Info})
+ end;
+ Error ->
+ fail({bad_appfile, Error})
+ end.
+
+
+check_appup(AppupFile, Modules) ->
+ case file:consult(AppupFile) of
+ {ok, [{V, UpFrom, DownTo}]} ->
+ io:format("V= ~p, UpFrom= ~p, DownTo= ~p, Modules= ~p~n",
+ [V, UpFrom, DownTo, Modules]),
+ check_appup(V, UpFrom, DownTo, Modules);
+ Else ->
+ fail({bad_appupfile, Else})
+ end.
+
+
+check_appup(V, UpFrom, DownTo, Modules) ->
+ check_version(V),
+ check_depends(up, UpFrom, Modules),
+ check_depends(down, DownTo, Modules),
+ ok.
+
+
+check_depends(_, [], _) ->
+ ok;
+check_depends(UpDown, [Dep|Deps], Modules) ->
+ check_depend(UpDown, Dep, Modules),
+ check_depends(UpDown, Deps, Modules).
+
+
+check_depend(up,I={add_application,_App},Modules) ->
+ d("check_instructions(~w) -> entry with"
+ "~n Instruction: ~p"
+ "~n Modules: ~p", [up,I , Modules]),
+ ok;
+check_depend(down,I={remove_application,_App},Modules) ->
+ d("check_instructions(~w) -> entry with"
+ "~n Instruction: ~p"
+ "~n Modules: ~p", [down,I , Modules]),
+ ok;
+check_depend(UpDown, {V, Instructions}, Modules) ->
+ d("check_instructions(~w) -> entry with"
+ "~n V: ~p"
+ "~n Modules: ~p", [UpDown, V, Modules]),
+ check_version(V),
+ case check_instructions(UpDown,
+ Instructions, Instructions, [], [], Modules) of
+ {_Good, []} ->
+ ok;
+ {_, Bad} ->
+ fail({bad_instructions, Bad, UpDown})
+ end.
+
+
+check_instructions(_, [], _, Good, Bad, _) ->
+ {lists:reverse(Good), lists:reverse(Bad)};
+check_instructions(UpDown, [Instr|Instrs], AllInstr, Good, Bad, Modules) ->
+ d("check_instructions(~w) -> entry with"
+ "~n Instr: ~p", [UpDown,Instr]),
+ case (catch check_instruction(UpDown, Instr, AllInstr, Modules)) of
+ ok ->
+ check_instructions(UpDown, Instrs, AllInstr,
+ [Instr|Good], Bad, Modules);
+ {error, Reason} ->
+ d("check_instructions(~w) -> bad instruction: "
+ "~n Reason: ~p", [UpDown,Reason]),
+ check_instructions(UpDown, Instrs, AllInstr, Good,
+ [{Instr, Reason}|Bad], Modules)
+ end.
+
+%% A new module is added
+check_instruction(up, {add_module, Module}, _, Modules)
+ when atom(Module) ->
+ d("check_instruction -> entry when up-add_module instruction with"
+ "~n Module: ~p", [Module]),
+ check_module(Module, Modules);
+
+%% An old module is re-added
+check_instruction(down, {add_module, Module}, _, Modules)
+ when atom(Module) ->
+ d("check_instruction -> entry when down-add_module instruction with"
+ "~n Module: ~p", [Module]),
+ case (catch check_module(Module, Modules)) of
+ {error, {unknown_module, Module, Modules}} ->
+ ok;
+ ok ->
+ error({existing_readded_module, Module})
+ end;
+
+%% Removing a module on upgrade:
+%% - the module has been removed from the app-file.
+%% - check that no module depends on this (removed) module
+check_instruction(up, {remove, {Module, Pre, Post}}, _, Modules)
+ when atom(Module), atom(Pre), atom(Post) ->
+ d("check_instruction -> entry when up-remove instruction with"
+ "~n Module: ~p"
+ "~n Pre: ~p"
+ "~n Post: ~p", [Module, Pre, Post]),
+ case (catch check_module(Module, Modules)) of
+ {error, {unknown_module, Module, Modules}} ->
+ check_purge(Pre),
+ check_purge(Post);
+ ok ->
+ error({existing_removed_module, Module})
+ end;
+
+%% Removing a module on downgrade: the module exist
+%% in the app-file.
+check_instruction(down, {remove, {Module, Pre, Post}}, AllInstr, Modules)
+ when atom(Module), atom(Pre), atom(Post) ->
+ d("check_instruction -> entry when down-remove instruction with"
+ "~n Module: ~p"
+ "~n Pre: ~p"
+ "~n Post: ~p", [Module, Pre, Post]),
+ case (catch check_module(Module, Modules)) of
+ ok ->
+ check_purge(Pre),
+ check_purge(Post),
+ check_no_remove_depends(Module, AllInstr);
+ {error, {unknown_module, Module, Modules}} ->
+ error({nonexisting_removed_module, Module})
+ end;
+
+check_instruction(_, {load_module, Module, Pre, Post, Depend},
+ AllInstr, Modules)
+ when atom(Module), atom(Pre), atom(Post), list(Depend) ->
+ d("check_instruction -> entry when load_module instruction with"
+ "~n Module: ~p"
+ "~n Pre: ~p"
+ "~n Post: ~p"
+ "~n Depend: ~p", [Module, Pre, Post, Depend]),
+ check_module(Module, Modules),
+ check_module_depend(Module, Depend, Modules),
+ check_module_depend(Module, Depend, updated_modules(AllInstr, [])),
+ check_purge(Pre),
+ check_purge(Post);
+
+check_instruction(_, {update, Module, Change, Pre, Post, Depend},
+ AllInstr, Modules)
+ when atom(Module), atom(Pre), atom(Post), list(Depend) ->
+ d("check_instruction -> entry when update instruction with"
+ "~n Module: ~p"
+ "~n Change: ~p"
+ "~n Pre: ~p"
+ "~n Post: ~p"
+ "~n Depend: ~p", [Module, Change, Pre, Post, Depend]),
+ check_module(Module, Modules),
+ check_module_depend(Module, Depend, Modules),
+ check_module_depend(Module, Depend, updated_modules(AllInstr, [])),
+ check_change(Change),
+ check_purge(Pre),
+ check_purge(Post);
+
+check_instruction(_, {apply, {Module, Function, Args}},
+ _AllInstr, Modules)
+ when atom(Module), atom(Function), list(Args) ->
+ d("check_instruction -> entry when apply instruction with"
+ "~n Module: ~p"
+ "~n Function: ~p"
+ "~n Args: ~p", [Module, Function, Args]),
+ check_module(Module, Modules),
+ check_apply(Module,Function,Args);
+
+check_instruction(_, Instr, _AllInstr, _Modules) ->
+ d("check_instruction -> entry when unknown instruction with"
+ "~n Instr: ~p", [Instr]),
+ error({error, {unknown_instruction, Instr}}).
+
+
+%% If Module X depends on Module Y, then module Y must have an update
+%% instruction of some sort (otherwise the depend is faulty).
+updated_modules([], Modules) ->
+ d("update_modules -> entry when done with"
+ "~n Modules: ~p", [Modules]),
+ Modules;
+updated_modules([Instr|Instrs], Modules) ->
+ d("update_modules -> entry with"
+ "~n Instr: ~p"
+ "~n Modules: ~p", [Instr,Modules]),
+ Module = instruction_module(Instr),
+ d("update_modules -> Module: ~p", [Module]),
+ updated_modules(Instrs, [Module|Modules]).
+
+instruction_module({add_module, Module}) ->
+ Module;
+instruction_module({remove, {Module, _, _}}) ->
+ Module;
+instruction_module({load_module, Module, _, _, _}) ->
+ Module;
+instruction_module({update, Module, _, _, _, _}) ->
+ Module;
+instruction_module({apply, {Module, _, _}}) ->
+ Module;
+instruction_module(Instr) ->
+ d("instruction_module -> entry when unknown instruction with"
+ "~n Instr: ~p", [Instr]),
+ error({error, {unknown_instruction, Instr}}).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+check_version(V) when list(V) ->
+ ok;
+check_version(V) ->
+ error({bad_version, V}).
+
+
+check_module(M, Modules) when atom(M) ->
+ case lists:member(M,Modules) of
+ true ->
+ ok;
+ false ->
+ error({unknown_module, M, Modules})
+ end;
+check_module(M, _) ->
+ error({bad_module, M}).
+
+check_apply(Module,Function,Args) ->
+ case (catch Module:module_info()) of
+ Info when list(Info) ->
+ check_exported(Function,Args,Info);
+ {'EXIT',{undef,_}} ->
+ error({not_existing_module,Module})
+ end.
+
+check_exported(Function,Args,Info) ->
+ case lists:keysearch(exports,1,Info) of
+ {value,{exports,FunList}} ->
+ case lists:keysearch(Function,1,FunList) of
+ {value,{_,Arity}} when Arity==length(Args) ->
+ ok;
+ _ ->
+ error({not_exported_function,Function,length(Args)})
+ end;
+ _ ->
+ error({bad_export,Info})
+ end.
+
+check_module_depend(M, [], _) when atom(M) ->
+ d("check_module_depend -> entry with"
+ "~n M: ~p", [M]),
+ ok;
+check_module_depend(M, Deps, Modules) when atom(M), list(Deps) ->
+ d("check_module_depend -> entry with"
+ "~n M: ~p"
+ "~n Deps: ~p"
+ "~n Modules: ~p", [M, Deps, Modules]),
+ case [Dep || Dep <- Deps, lists:member(Dep, Modules) == false] of
+ [] ->
+ ok;
+ Unknown ->
+ error({unknown_depend_modules, Unknown})
+ end;
+check_module_depend(_M, D, _Modules) ->
+ d("check_module_depend -> entry when bad depend with"
+ "~n D: ~p", [D]),
+ error({bad_depend, D}).
+
+
+check_no_remove_depends(_Module, []) ->
+ ok;
+check_no_remove_depends(Module, [Instr|Instrs]) ->
+ check_no_remove_depend(Module, Instr),
+ check_no_remove_depends(Module, Instrs).
+
+check_no_remove_depend(Module, {load_module, Mod, _Pre, _Post, Depend}) ->
+ case lists:member(Module, Depend) of
+ true ->
+ error({removed_module_in_depend, load_module, Mod, Module});
+ false ->
+ ok
+ end;
+check_no_remove_depend(Module, {update, Mod, _Change, _Pre, _Post, Depend}) ->
+ case lists:member(Module, Depend) of
+ true ->
+ error({removed_module_in_depend, update, Mod, Module});
+ false ->
+ ok
+ end;
+check_no_remove_depend(_, _) ->
+ ok.
+
+
+check_change(soft) ->
+ ok;
+check_change({advanced, _Something}) ->
+ ok;
+check_change(Change) ->
+ error({bad_change, Change}).
+
+
+check_purge(soft_purge) ->
+ ok;
+check_purge(brutal_purge) ->
+ ok;
+check_purge(Purge) ->
+ error({bad_purge, Purge}).
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+error(Reason) ->
+ throw({error, Reason}).
+
+fail(Reason) ->
+ exit({suite_failed, Reason}).
+
+key1search(Key, L) ->
+ case lists:keysearch(Key, 1, L) of
+ undefined ->
+ fail({not_found, Key, L});
+ {value, {Key, Value}} ->
+ Value
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+d(F, A) ->
+ d(false, F, A).
+
+d(true, F, A) ->
+ io:format(F ++ "~n", A);
+d(_, _, _) ->
+ ok.
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/AA1.asn b/lib/asn1/test/asn1_bin_SUITE_data/AA1.asn
new file mode 100644
index 0000000000..c2c20f17a1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/AA1.asn
@@ -0,0 +1,13 @@
+AA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ B
+ FROM AA2;
+
+T1 ::= SEQUENCE (SIZE (1..10)) OF B
+T2 ::= SEQUENCE (SIZE (1..10)) OF B
+T3 ::= SEQUENCE (SIZE (1..10)) OF INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/AA2.asn1db b/lib/asn1/test/asn1_bin_SUITE_data/AA2.asn1db
new file mode 100644
index 0000000000..3bf2c1b89d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/AA2.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BadEnumValue1.asn b/lib/asn1/test/asn1_bin_SUITE_data/BadEnumValue1.asn
new file mode 100644
index 0000000000..dbc224a74b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BadEnumValue1.asn
@@ -0,0 +1,8 @@
+BadEnumValue1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+enumWrongVal E3 ::= sunday
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BadTypeEnding.asn b/lib/asn1/test/asn1_bin_SUITE_data/BadTypeEnding.asn
new file mode 100644
index 0000000000..3ccd838ac0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BadTypeEnding.asn
@@ -0,0 +1,6 @@
+BadTypeEnding DEFINITIONS ::=
+BEGIN
+
+T ::= Typ;
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment1.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment1.asn1
new file mode 100644
index 0000000000..a5d4984e60
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment1.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment1 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 integer ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment2.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment2.asn1
new file mode 100644
index 0000000000..7a96406001
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BadValueAssignment2.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment2 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BadValueSet.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/BadValueSet.asn1
new file mode 100644
index 0000000000..68bd4380b7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BadValueSet.asn1
@@ -0,0 +1,9 @@
+BadValueSet DEFINITIONS ::=
+BEGIN
+
+Int INTEGER ::= {1|2|3}
+
+Int2 INTEGER ::= {
+ 1,2,3}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/BitStr.py b/lib/asn1/test/asn1_bin_SUITE_data/BitStr.py
new file mode 100644
index 0000000000..1d5bc21fda
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/BitStr.py
@@ -0,0 +1,56 @@
+BitStr DEFINITIONS ::=
+BEGIN
+
+-- F.2.5.1
+-- Use a bit string type to model binary data whose format and
+-- length are unspecified,
+-- or specified elsewhere, and whose length in bits is not necessarily
+-- a multiple of eight.
+-- EXAMPLE
+
+G3FacsimilePage ::= BIT STRING
+-- a sequence of bits conforming to Recommendation T.4.
+
+image G3FacsimilePage ::= '100110100100001110110'B
+trailer BIT STRING ::= '0123456789ABCDEF'H
+body1 G3FacsimilePage ::= '1101'B
+body2 G3FacsimilePage ::= '1101000'B
+
+-- F.2.5.2
+-- Use a bit string type with a size constraint to model the
+-- values of a fixed sized bit field.
+-- EXAMPLE
+
+BitField ::= BIT STRING (SIZE (12))
+map1 BitField ::= '100110100100'B
+map2 BitField ::= '9A4'H
+map3 BitField ::= '1001101001'B -- Illegal - violates size constraint
+
+-- F.2.5.3
+-- Use a bit string type to model the values of a bit map, an
+-- ordered collection of logical variables
+-- indicating whether a particular condition holds for each of a
+-- correspondingly ordered collection of objects.
+
+DaysOfTheWeek ::= BIT STRING {
+ sunday(0), monday (1), tuesday(2),
+ wednesday(3), thursday(4), friday(5),
+ saturday(6) } (SIZE (0..7))
+
+sunnyDaysLastWeek1 DaysOfTheWeek ::= {sunday, monday, wednesday}
+sunnyDaysLastWeek2 DaysOfTheWeek ::= '1101'B
+sunnyDaysLastWeek3 DaysOfTheWeek ::= '1101000'B
+sunnyDaysLastWeek4 DaysOfTheWeek ::= '11010000'B -- Illegal - violates size constraint
+
+-- F.2.5.5
+-- Use a bit string type with named bits to model the values of a
+-- collection of related logical variables.
+-- EXAMPLE
+
+PersonalStatus ::= BIT STRING
+ {married(0), employed(1), veteran(2), collegeGraduate(3)}
+
+billClinton PersonalStatus ::= {married, employed, collegeGraduate}
+hillaryClinton PersonalStatus ::= '110100'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/CCSNARG3.asn b/lib/asn1/test/asn1_bin_SUITE_data/CCSNARG3.asn
new file mode 100644
index 0000000000..23c1f32ceb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/CCSNARG3.asn
@@ -0,0 +1,345 @@
+CCSNARG3 DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation [1] IMPLICIT EventInformation OPTIONAL
+
+
+}
+
+EventInformation ::=
+ CHOICE
+ { callEvent [0] CallEvent,
+ billingReport [1] BillingInformation
+ }
+
+
+ScriptToScriptInformation ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] Attribute1 OPTIONAL,
+ scriptAttribute2 [2] Attribute2 OPTIONAL,
+ scriptAttribute3 [3] Attribute3 OPTIONAL,
+ scriptAttribute4 [4] Attribute4 OPTIONAL,
+ scriptAttribute5 [5] Attribute5 OPTIONAL,
+ scriptAttribute6 [6] Attribute6 OPTIONAL,
+ scriptAttribute7 [7] Attribute7 OPTIONAL,
+ scriptAttribute8 [8] Attribute8 OPTIONAL,
+ scriptAttribute9 [9] Attribute9 OPTIONAL,
+ scriptAttribute10 [10] Attribute10 OPTIONAL,
+ scriptAttribute11 [11] Attribute11 OPTIONAL,
+ scriptAttribute12 [12] Attribute12 OPTIONAL,
+ scriptAttribute13 [13] Attribute13 OPTIONAL,
+ scriptAttribute14 [14] Attribute14 OPTIONAL,
+ scriptAttribute15 [15] Attribute15 OPTIONAL,
+ scriptAttribute16 [16] Attribute16 OPTIONAL,
+ scriptAttribute17 [17] Attribute17 OPTIONAL,
+ scriptAttribute18 [18] Attribute18 OPTIONAL,
+ scriptAttribute19 [19] Attribute19 OPTIONAL,
+ scriptAttribute20 [20] Attribute20 OPTIONAL,
+ scriptAttribute21 [21] Attribute21 OPTIONAL,
+ scriptAttribute22 [22] Attribute22 OPTIONAL,
+ scriptAttribute23 [23] Attribute23 OPTIONAL,
+ scriptAttribute24 [24] Attribute24 OPTIONAL,
+ scriptAttribute25 [25] Attribute25 OPTIONAL,
+ scriptAttribute26 [26] Attribute26 OPTIONAL,
+ scriptAttribute27 [27] Attribute27 OPTIONAL,
+ scriptAttribute28 [28] Attribute28 OPTIONAL,
+ scriptAttribute29 [29] Attribute29 OPTIONAL,
+ scriptAttribute30 [30] Attribute30 OPTIONAL
+ }
+
+
+CallEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM OPTIONAL,
+
+ miscCallInfo [1] MiscCallInfo OPTIONAL,
+ iNlegID [2] LegType OPTIONAL,
+ announcementInfo [3] INTEGER
+ { announcementstarted(0), announcementcompleted(1) } (0..1) OPTIONAL,
+ callAttemptElapsedTimeValue [4] INTEGER (0..255) OPTIONAL,
+ callStopTimeValue [5] DateAndTime OPTIONAL,
+ callConnectedElapsedTimeValue [6] INTEGER (0..4294967295) OPTIONAL,
+ calledAddressValue [7] GenericNumber OPTIONAL,
+ releaseCause [8] Cause OPTIONAL
+ }
+
+EventTypeBCSM ::= INTEGER {
+ origAttemptauthorized(1),
+ collectedInfo(2),
+ analyzedInformation(3),
+ routeSelectFailure(4),
+ oCalledPartyBusy(5),
+ oAlerting(255),
+ oCalledPartyNotReachable(254),
+ oNoAnswer(6),
+ oAnswer(7),
+ oMidCall(8),
+ oSuspended(253),
+ oReAnswer(252),
+ oDisconnect(9),
+ oAbandon(10),
+ termAttemptauthorized(12)
+ } (0..255)
+
+
+BackwardCallIndicators ::= OCTET STRING (SIZE (2))
+
+BackwardGVNSIndicator ::= OCTET STRING(SIZE(1))
+
+
+MiscCallInfo::= INTEGER {
+ request (0),
+ notification (1)
+ } (0..1)
+
+LegType ::= INTEGER (1..30)
+
+DateAndTime ::= OCTET STRING (SIZE(6))
+
+GenericNumber ::= OCTET STRING (SIZE(1..16))
+
+GenericDigits ::= OCTET STRING (SIZE(1..16))
+
+Number ::= OCTET STRING (SIZE(1..16))
+
+Cause::= OCTET STRING (SIZE(2))
+
+
+BillingInformation ::= SEQUENCE {
+ billingKey [0] INTEGER (0..214783647),
+ billingAttribute1 [1] Attribute1 OPTIONAL,
+ billingAttribute2 [2] Attribute2 OPTIONAL,
+ billingAttribute3 [3] Attribute3 OPTIONAL,
+ billingAttribute4 [4] Attribute4 OPTIONAL,
+ billingAttribute5 [5] Attribute5 OPTIONAL,
+ billingAttribute6 [6] Attribute6 OPTIONAL,
+ billingAttribute7 [7] Attribute7 OPTIONAL,
+ billingAttribute8 [8] Attribute8 OPTIONAL,
+ billingAttribute9 [9] Attribute9 OPTIONAL,
+ billingAttribute10 [10] Attribute10 OPTIONAL,
+ billingAttribute11 [11] Attribute11 OPTIONAL,
+ billingAttribute12 [12] Attribute12 OPTIONAL,
+ billingAttribute13 [13] Attribute13 OPTIONAL,
+ billingAttribute14 [14] Attribute14 OPTIONAL,
+ billingAttribute15 [15] Attribute15 OPTIONAL,
+ billingAttribute16 [16] Attribute16 OPTIONAL,
+ billingAttribute17 [17] Attribute17 OPTIONAL,
+ billingAttribute18 [18] Attribute18 OPTIONAL,
+ billingAttribute19 [19] Attribute19 OPTIONAL,
+ billingAttribute20 [20] Attribute20 OPTIONAL
+}
+
+
+Attribute1 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute2 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute3 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute4 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute5 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute6 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute7 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute8 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute9 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute10 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute11 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute12 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute13::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute14 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute15 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute16 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute17 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute18 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute19::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute20 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute21 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute22 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute23 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute24 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute25 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute26 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute27::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute28 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute29 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute30 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Certificate.asn b/lib/asn1/test/asn1_bin_SUITE_data/Certificate.asn
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Certificate.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Cho.py b/lib/asn1/test/asn1_bin_SUITE_data/Cho.py
new file mode 100644
index 0000000000..c390eed2ba
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Cho.py
@@ -0,0 +1,27 @@
+Cho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoCon ::= CHOICE
+{
+ nested Cho2,
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+Cho2 ::= CHOICE
+{
+ i INTEGER,
+ b BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoExtension.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoExtension.asn1
new file mode 100644
index 0000000000..18473bae30
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoExtension.asn1
@@ -0,0 +1,44 @@
+ChoExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoExt1 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+ChoExt1x ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+ChoExt2 ::= CHOICE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+ChoExt3 ::= CHOICE
+{
+ str OCTET STRING,
+-- ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+ChoExt4 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoExternal.asn1
new file mode 100644
index 0000000000..950579a620
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoExternal.asn1
@@ -0,0 +1,40 @@
+ChoExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XCho, XBool, XBoolImp, XBoolExp, XChoNT, XChoExp FROM External;
+
+
+
+ChoXCho ::= XCho
+
+ChoXBool ::= CHOICE
+{
+ xbool XBool,
+ xboolImp XBoolImp,
+ xboolExp XBoolExp
+}
+
+
+
+NT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTExp ::= Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XChoNT
+XExpNT ::= [4] EXPLICIT XChoNT
+
+XNTExp ::= XChoExp
+XExpExp ::= [8] EXPLICIT XChoExp
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoOptional.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoOptional.asn1
new file mode 100644
index 0000000000..18f45b645c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoOptional.asn1
@@ -0,0 +1,35 @@
+ChoOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho VisibleString,
+ ocStrCho OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoOptionalImplicitTag.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoOptionalImplicitTag.asn1
new file mode 100644
index 0000000000..251f682ddc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoOptionalImplicitTag.asn1
@@ -0,0 +1,35 @@
+ChoOptionalImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool [0] BOOLEAN,
+ int [1] INTEGER OPTIONAL,
+ cho [7] ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho [2] VisibleString,
+ ocStrCho [3] OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoPrim.asn1
new file mode 100644
index 0000000000..984694ced8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoPrim.asn1
@@ -0,0 +1,20 @@
+ChoPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoCon ::= CHOICE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoRecursive.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoRecursive.asn1
new file mode 100644
index 0000000000..f0fe2f629c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoRecursive.asn1
@@ -0,0 +1,30 @@
+ChoRecursive DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoRec ::= CHOICE
+{
+ nothing [0] NULL,
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec
+ }
+}
+
+ChoRec2 ::= CHOICE
+{
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec2
+ },
+ nothing [0] NULL
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefCho.asn1
new file mode 100644
index 0000000000..bcbf5045cd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefCho.asn1
@@ -0,0 +1,44 @@
+ChoTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+ChoTRcho ::= CHOICE
+{
+ choCho ChoChoNT,
+ choChoE [145] EXPLICIT ChoChoNT,
+
+ choCho-E ChoChoExp,
+ choChoE-E [345] EXPLICIT ChoChoExp
+
+}
+
+ChoChoNT ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+ChoChoExp ::= [75] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+
+ChoChoInline ::= CHOICE
+{
+ bool1 [0] BOOLEAN,
+ choCho CHOICE
+ {
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+ }
+}
+
+OctStr ::= OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefPrim.asn1
new file mode 100644
index 0000000000..ed6095f769
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefPrim.asn1
@@ -0,0 +1,34 @@
+ChoTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTR ::= CHOICE
+{
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+}
+
+
+ChoTR2 ::= CHOICE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSeq.asn1
new file mode 100644
index 0000000000..f9b5cbf85f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSeq.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoTRseq ::= CHOICE
+{
+ choSeq ChoSeq,
+ choSeqI [134] ChoSeq,
+ choSeqE [135] EXPLICIT ChoSeq,
+
+ choSeq-I ChoSeqImp,
+ choSeqI-I [234] ChoSeqImp,
+ choSeqE-I [235] EXPLICIT ChoSeqImp,
+
+ choSeq-E ChoSeqExp,
+ choSeqI-E [334] ChoSeqExp,
+ choSeqE-E [335] EXPLICIT ChoSeqExp
+
+}
+
+ChoSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSet.asn1
new file mode 100644
index 0000000000..7d8da3f90d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoTypeRefSet.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTRset ::= CHOICE
+{
+ choSet ChoSet,
+ choSetI [124] ChoSet,
+ choSetE [125] EXPLICIT ChoSet,
+
+ choSet-I ChoSetImp,
+ choSetI-I [224] ChoSetImp,
+ choSetE-I [225] EXPLICIT ChoSetImp,
+
+ choSet-E ChoSetExp,
+ choSetI-E [324] ChoSetExp,
+ choSetE-E [325] EXPLICIT ChoSetExp
+
+}
+
+ChoSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoiceBadExtension.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceBadExtension.asn1
new file mode 100644
index 0000000000..d0789d7414
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceBadExtension.asn1
@@ -0,0 +1,27 @@
+ChoiceBadExtension DEFINITIONS ::=
+BEGIN
+
+Seq ::= SEQUENCE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho1 ::= CHOICE {
+ name PrintableString,
+ ...,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho2 ::= CHOICE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoiceInSeq.asn b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceInSeq.asn
new file mode 100644
index 0000000000..ac93226a1b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceInSeq.asn
@@ -0,0 +1,22 @@
+ChoiceInSeq DEFINITIONS ::=
+BEGIN
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ } OPTIONAL
+}
+
+ScriptToScriptInformation ::= INTEGER
+CallEvent ::= INTEGER
+BillingInformation ::= INTEGER
+EventInformation ::=
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ChoiceIndef.asn b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceIndef.asn
new file mode 100644
index 0000000000..71b717b621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ChoiceIndef.asn
@@ -0,0 +1,24 @@
+ChoiceIndef DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+I ::= INTEGER
+
+Cho ::= CHOICE {
+ ca [0] I,
+ cb [1] INTEGER
+}
+
+Seq ::= SEQUENCE {
+ sa [0] Cho,
+ sb [1] INTEGER
+}
+
+-- detta varde funkar ej. fixat i OTP-4358
+-- Val4 = {'Seq',{ca,11},12}
+-- val4 = <<48,128,160,128,128,1,11,0,0,129,1,12,0,0>>
+
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Comment.asn b/lib/asn1/test/asn1_bin_SUITE_data/Comment.asn
new file mode 100644
index 0000000000..c2a5abd633
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Comment.asn
@@ -0,0 +1,21 @@
+Comment DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+/* comments as to the 2002 standard
+
+this is the new added way of commenting multile lines */
+
+/* it is also allowed to have -- old kind of comment signs inside
+this new variant. The two dashes will lose their meaning as a comment
+inside a multiline comment, /* the new type of comment may also be
+nested */ */
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+/* another multiline comment, bu t on one line. */
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/CommonDataTypes.py b/lib/asn1/test/asn1_bin_SUITE_data/CommonDataTypes.py
new file mode 100644
index 0000000000..2c25f81235
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/CommonDataTypes.py
@@ -0,0 +1,4360 @@
+CommonDataTypes DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- @prop dataType
+-- @descr This types only purpose is to avoid OSS compiler warning : Duplicate PDU tag
+-- @
+CommonDataTypeWrapper ::= CHOICE
+{
+ wrapAddAnalysisRejectReason AddAnalysisRejectReason,
+ wrapAddServiceToServiceProfileRejectReason AddServiceToServiceProfileRejectReason,
+ wrapAddUserIdentifiersRejectReason AddUserIdentifiersRejectReason,
+ wrapAdmissionRejectReason AdmissionRejectReason,
+ wrapAlertingUUIE AlertingUUIE,
+ wrapAllocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ wrapAnalyseRejectReason AnalyseRejectReason,
+ wrapAvailabilityOfEquipment AvailabilityOfEquipment,
+ wrapBandwidth Bandwidth,
+ wrapBandwidthReducedInformation BandwidthReducedInformation,
+ wrapBandwidthReducedReason BandwidthReducedReason,
+ wrapBandwidthRejectReason BandwidthRejectReason,
+ wrapBasicCallCategories BasicCallCategories,
+ wrapBearerCapability BearerCapability,
+ wrapCallInformation CallInformation,
+ wrapCallModel CallModel,
+ wrapCallProceedingUUIE CallProceedingUUIE,
+ wrapCallReference CallReference,
+ wrapCallServices CallServices,
+ wrapCallState CallState,
+ wrapCallType CallType,
+ wrapCause Cause,
+ wrapCauseValue CauseValue,
+ wrapChangeServiceAndStatusRejectReason ChangeServiceAndStatusRejectReason,
+ wrapCheckServiceRejectReason CheckServiceRejectReason,
+ wrapCoding Coding,
+ wrapConferenceGoal ConferenceGoal,
+ wrapConferenceIdentifier ConferenceIdentifier,
+ wrapConnectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ wrapConnectUUIE ConnectUUIE,
+ wrapConnectionData ConnectionData,
+ wrapConnectionIdentifier ConnectionIdentifier,
+ wrapConnectionInformation ConnectionInformation,
+ wrapConnectionInformationOriginatingSide ConnectionInformationOriginatingSide,
+ wrapConnectionInformationTerminatingSide ConnectionInformationTerminatingSide,
+ wrapConnectionType ConnectionType,
+ wrapCreateEquipmentRepresentationRejectReason CreateEquipmentRepresentationRejectReason,
+ wrapCreateServiceAndStatusRejectReason CreateServiceAndStatusRejectReason,
+ wrapCreateServiceIdentifierRejectReason CreateServiceIdentifierRejectReason,
+ wrapDeallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ wrapDetailedReasonAtom DetailedReasonAtom,
+ wrapDiagnostics Diagnostics,
+ wrapDisconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ wrapDisengageReason DisengageReason,
+ wrapDisengageRejectReason DisengageRejectReason,
+ wrapDisplay Display,
+ wrapE164Identifier E164Identifier,
+ wrapEndToEndEndpointInformationServiceCallAcknowledge EndToEndEndpointInformationServiceCallAcknowledge,
+ wrapEndToEndEndpointInformationServiceCallActive EndToEndEndpointInformationServiceCallActive,
+ wrapEndToEndEndpointInformationServiceCallProgress EndToEndEndpointInformationServiceCallProgress,
+ wrapEndToEndEndpointInformationServiceCallSetup EndToEndEndpointInformationServiceCallSetup,
+ wrapEndToEndEndpointInformationServiceCallTermination EndToEndEndpointInformationServiceCallTermination,
+ wrapEndpointIdentifier EndpointIdentifier,
+ wrapEndpointRegistrationCategories EndpointRegistrationCategories,
+ wrapEndpointRegistrationRejectReason EndpointRegistrationRejectReason,
+ wrapEndpointType EndpointType,
+ wrapEndpointUnregistrationCategories EndpointUnregistrationCategories,
+ wrapEndpointUnregistrationRejectReason EndpointUnregistrationRejectReason,
+ wrapEquipmentAddressAN EquipmentAddressAN,
+ wrapEquipmentAddressLAN EquipmentAddressLAN,
+ wrapEquipmentRelatedInformation EquipmentRelatedInformation,
+ wrapEquipmentRelatedInformationIdentifier EquipmentRelatedInformationIdentifier,
+ wrapFacilityReason FacilityReason,
+ wrapFacilityUUIE FacilityUUIE,
+ wrapGatekeeperIdentifier GatekeeperIdentifier,
+ wrapGatekeeperInformation GatekeeperInformation,
+ wrapGatekeeperRejectReason GatekeeperRejectReason,
+ wrapGatewayInformation GatewayInformation,
+ wrapGetAnalysisRejectReason GetAnalysisRejectReason,
+ wrapGetEquipmentInformationRejectReason GetEquipmentInformationRejectReason,
+ wrapGetLANDataRejectReason GetLANDataRejectReason,
+ wrapGetPartyInformationRejectReason GetPartyInformationRejectReason,
+ wrapGetRejectReasonUser GetRejectReasonUser,
+ wrapGetServiceFromServiceProfileRejectReason GetServiceFromServiceProfileRejectReason,
+ wrapGetServiceProfileRejectReason GetServiceProfileRejectReason,
+ wrapGetServicesAndStatusRejectReason GetServicesAndStatusRejectReason,
+ wrapGetUserServiceInformationAndStatusRejectReason GetUserServiceInformationAndStatusRejectReason,
+ wrapH221NonStandard H221NonStandard,
+ wrapH310Information H310Information,
+ wrapH320Information H320Information,
+ wrapH321Information H321Information,
+ wrapH322Information H322Information,
+ wrapH323Information H323Information,
+ wrapH323InterfaceAddCallReferenceRejectReason H323InterfaceAddCallReferenceRejectReason,
+ wrapH323InterfaceAddCallRelatedDataRejectReason H323InterfaceAddCallRelatedDataRejectReason,
+ wrapH323InterfaceAddFixedTransportAddressDataRejectReason H323InterfaceAddFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceAddKeysAndSetAttributesRejectReason H323InterfaceAddKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceAdditionalKeys H323InterfaceAdditionalKeys,
+ wrapH323InterfaceAllocateResourceRejectReason H323InterfaceAllocateResourceRejectReason,
+ wrapH323InterfaceChangeKeysAndRelationsToUsersReject H323InterfaceChangeKeysAndRelationsToUsersReject,
+ wrapH323InterfaceCommonAttribute H323InterfaceCommonAttribute,
+ wrapH323InterfaceCommonAttributeIdentifier H323InterfaceCommonAttributeIdentifier,
+ wrapH323InterfaceCreateCallReferenceRejectReason H323InterfaceCreateCallReferenceRejectReason,
+ wrapH323InterfaceCreateRejectReason H323InterfaceCreateRejectReason,
+ wrapH323InterfaceDeallocateResourceRejectReason H323InterfaceDeallocateResourceRejectReason,
+ wrapH323InterfaceGetFixedTransportAddressDataRejectReason H323InterfaceGetFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceGetOrRemoveCallRelatedDataRejectReason H323InterfaceGetOrRemoveCallRelatedDataRejectReason,
+ wrapH323InterfaceGetOrSetCommonRejectReason H323InterfaceGetOrSetCommonRejectReason,
+ wrapH323InterfaceGetOrSetInstanceRejectReason H323InterfaceGetOrSetInstanceRejectReason,
+ wrapH323InterfaceInstanceAttribute H323InterfaceInstanceAttribute,
+ wrapH323InterfaceInstanceAttributeIdentifier H323InterfaceInstanceAttributeIdentifier,
+ wrapH323InterfaceKey H323InterfaceKey,
+ wrapH323InterfaceKeyEndpointIdentifier H323InterfaceKeyEndpointIdentifier,
+ wrapH323InterfaceReduceBandwidthRejectReason H323InterfaceReduceBandwidthRejectReason,
+ wrapH323InterfaceRemoveCallReferenceRejectReason H323InterfaceRemoveCallReferenceRejectReason,
+ wrapH323InterfaceRemoveFixedTransportAddressDataRejectReason H323InterfaceRemoveFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceRemoveKeysAndSetAttributesRejectReason H323InterfaceRemoveKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceRemoveRejectReason H323InterfaceRemoveRejectReason,
+ wrapH324Information H324Information,
+ wrapHighLayerCompatibility HighLayerCompatibility,
+ wrapInterfaceRegistrationInformation InterfaceRegistrationInformation,
+ wrapLANAttribute LANAttribute,
+ wrapLANAttributeIdentifier LANAttributeIdentifier,
+ wrapLayer1ProtUserInfo Layer1ProtUserInfo,
+ wrapLocation Location,
+ wrapLocationRejectReason LocationRejectReason,
+ wrapLogicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ wrapLowLayerCompatibility LowLayerCompatibility,
+ wrapMaximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ wrapMaximumTotalBandwidth MaximumTotalBandwidth,
+ wrapMcuInformation McuInformation,
+ wrapNonStandardIdentifier NonStandardIdentifier,
+ wrapNonStandardMessage NonStandardMessage,
+ wrapNonStandardParameter NonStandardParameter,
+ wrapNumber Number,
+ wrapNumberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ wrapNumberType NumberType,
+ wrapNumberingPlan NumberingPlan,
+ wrapObjectIdentifier ObjectIdentifier,
+ wrapPhysicalConnectionPointIdentifier PhysicalConnectionPointIdentifier,
+ wrapPid Pid,
+ wrapPreStringToRemoveInDestinationAddress PreStringToRemoveInDestinationAddress,
+ wrapProgressIndicator ProgressIndicator,
+ wrapProtocolIdentifier ProtocolIdentifier,
+ wrapQ931Timer301Value Q931Timer301Value,
+ wrapQ931Timer303Value Q931Timer303Value,
+ wrapQ954Details Q954Details,
+ wrapQseriesOptions QseriesOptions,
+ wrapRASMessageTimerValue RASMessageTimerValue,
+ wrapRTPSession RTPSession,
+ wrapRegistrationRejectReason RegistrationRejectReason,
+ wrapRegistrationStatus RegistrationStatus,
+ wrapRelationToEquipment RelationToEquipment,
+ wrapRelationToUser RelationToUser,
+ wrapReleaseCompleteReason ReleaseCompleteReason,
+ wrapReleaseCompleteUUIE ReleaseCompleteUUIE,
+ wrapReleaseInformation ReleaseInformation,
+ wrapRemoveAnalysisRejectReason RemoveAnalysisRejectReason,
+ wrapRemoveEquipmentRepresentationRejectReason RemoveEquipmentRepresentationRejectReason,
+ wrapRemoveServiceAndStatusRejectReason RemoveServiceAndStatusRejectReason,
+ wrapRemoveServiceFromServiceProfileRejectReason RemoveServiceFromServiceProfileRejectReason,
+ wrapRemoveServiceIdentifierRejectReason RemoveServiceIdentifierRejectReason,
+ wrapRepeatIndicator RepeatIndicator,
+ wrapRequestSeqNum RequestSeqNum,
+ wrapRequestedUserAndLinkedUserAreIdentical RequestedUserAndLinkedUserAreIdentical,
+ wrapServiceAndStatus ServiceAndStatus,
+ wrapServiceCallSetupRejectionInformation ServiceCallSetupRejectionInformation,
+ wrapServiceCallSetupRejectionReason ServiceCallSetupRejectionReason,
+ wrapServiceCallTerminationInformation ServiceCallTerminationInformation,
+ wrapServiceCallTerminationReason ServiceCallTerminationReason,
+ wrapServiceData ServiceData,
+ wrapServiceIdentifier ServiceIdentifier,
+ wrapServiceProfile ServiceProfile,
+ wrapSetEquipmentStatusRejectReason SetEquipmentStatusRejectReason,
+ wrapSetLANDataRejectReason SetLANDataRejectReason,
+ wrapSetUserAttributeData SetUserAttributeData,
+ wrapSetupUUIE SetupUUIE,
+ wrapStateOfEquipment StateOfEquipment,
+ wrapStateOfUser StateOfUser,
+ wrapStatusOfService StatusOfService,
+ wrapSubaddress Subaddress,
+ wrapSubaddressInformation SubaddressInformation,
+ wrapSubaddressType SubaddressType,
+ wrapSupportedProtocols SupportedProtocols,
+ wrapT120Information T120Information,
+ wrapTerminalInformation TerminalInformation,
+ wrapTerminationInitiatior TerminationInitiatior,
+ wrapTimeSlot TimeSlot,
+ wrapTransferCapability TransferCapability,
+ wrapTransferRate TransferRate,
+ wrapTransportAddress TransportAddress,
+ wrapTransportAddressInformation TransportAddressInformation,
+ wrapTransportChannelInformation TransportChannelInformation,
+ wrapTypeOfEquipment TypeOfEquipment,
+ wrapTypeOfFlowControl TypeOfFlowControl,
+ wrapTypeOfLAN TypeOfLAN,
+ wrapTypeOfRegistration TypeOfRegistration,
+ wrapTypeOfService TypeOfService,
+ wrapTypeOfUser TypeOfUser,
+ wrapUnknownMessageResponse UnknownMessageResponse,
+ wrapUnregistrationRejectReason UnregistrationRejectReason,
+ wrapUserAllocateResourceRejectReason UserAllocateResourceRejectReason,
+ wrapUserAttributeData UserAttributeData,
+ wrapUserAttributeIdentifier UserAttributeIdentifier,
+ wrapUserCreateRejectReason UserCreateRejectReason,
+ wrapUserDeallocateResourceRejectReason UserDeallocateResourceRejectReason,
+ wrapUserIdentifier UserIdentifier,
+ wrapUserIdentifierInformation UserIdentifierInformation,
+ wrapUserInformation UserInformation,
+ wrapUserInformationUUIE UserInformationUUIE,
+ wrapUserKey UserKey,
+ wrapUserOrEquipmentRelatedInformation UserOrEquipmentRelatedInformation,
+ wrapUserOrEquipmentRelatedInformationIdentifier UserOrEquipmentRelatedInformationIdentifier,
+ wrapUserRelatedInformation UserRelatedInformation,
+ wrapUserRelatedInformationIdentifier UserRelatedInformationIdentifier,
+ wrapUserRemoveRejectReason UserRemoveRejectReason,
+ wrapUserSetRejectReason UserSetRejectReason,
+ wrapUserSpecificInformation UserSpecificInformation,
+ wrapVendorIdentifier VendorIdentifier,
+ wrapVoiceInformation VoiceInformation,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AddAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddServiceToServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddServiceToServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddUserIdentifiersRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddUserIdentifiersRejectReason ::= CHOICE
+{
+ userIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AdmissionRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AlertingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AlertingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AllocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AllocateTransmissionPathRejectReason ::= CHOICE
+{
+ calledUserNotAvailable NULL,
+ calledUserUnknown NULL,
+ permissionDenied NULL,
+ resourcesNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AnalyseRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AnalyseRejectReason ::= CHOICE
+{
+ noMatchingEntryFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AvailabilityOfEquipment
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AvailabilityOfEquipment ::= CHOICE
+{
+ available NULL,
+ notAvailable NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- Bandwidth
+--
+-- @prop dataType
+--
+-- @descr States the bandwidth to be used in 100 bps.
+--
+-- @
+--
+-- ---------------------------------
+
+Bandwidth ::= INTEGER ( 1.. 4294967295 )
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedInformation
+--
+-- @prop dataType
+--
+-- @descr States information related to the recuction of the bandwidth.
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedInformation ::= SEQUENCE
+{
+ allocatedBandwidth Bandwidth,
+ bandwidthReducedReason BandwidthReducedReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedReason ::= CHOICE
+{
+ bandwidthLimited NULL,
+ bandwidthAdaptedToOriginatingEndpoint NULL,
+ originBandwidthBarredDueToCategories NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BandwidthRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthRejectReason ::= CHOICE
+{
+ notBound NULL,
+ invalidConferenceID NULL,
+ invalidPermission NULL,
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BasicCallCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service basic call.
+--
+-- @
+-- ---------------------------------
+
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+-- ---------------------------------
+--
+-- BearerCapability
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+BearerCapability ::= SEQUENCE
+{
+ transferCapability TransferCapability,
+ transferRate TransferRate,
+ layer1ProtUserInfo Layer1ProtUserInfo,
+ rateMultiplier INTEGER (0..127),
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CallInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReference CallReference, -- callReferenceValue
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInformation OPTIONAL,
+ h245 TransportChannelInformation,
+ callSignaling TransportChannelInformation,
+ callType CallType,
+ bandwidth Bandwidth, -- bandWidth
+ callModel CallModel,
+ ...
+}
+
+-- ---------------------------------
+--
+-- CallModel
+--
+-- @prop dataType
+--
+-- @descr Type of callmodel used i.e routed via gatekeeper or not
+--
+-- @
+--
+-- ---------------------------------
+
+CallModel ::= CHOICE
+{
+ gatekeeperRouted NULL,
+ direct NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallProceedingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+
+CallProceedingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr states the call reference that identifies a specific call.
+-- Origin: H.225.0 CallReferenceValue.
+--
+-- @
+--
+-- ---------------------------------
+
+CallReference ::= INTEGER (0..65535)
+
+
+-- ---------------------------------
+--
+-- CallServices
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallServices ::= SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallState ::= CHOICE
+{
+ null NULL,
+ callInit NULL,
+ overlapSending NULL,
+ outgoingCallProceeding NULL,
+ callDelivered NULL,
+ callPresent NULL,
+ callReceived NULL,
+ connectRequest NULL,
+ incomingCallProceeding NULL,
+ active NULL,
+ disconnectRequest NULL,
+ disconnectIndication NULL,
+ releaseRequest NULL,
+ facilityRequest NULL,
+ overlapReceiving NULL,
+ restartRequest NULL,
+ restart NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Cause
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Cause ::= SEQUENCE
+{
+ coding Coding,
+ location Location,
+ value CauseValue,
+ diagnostics Diagnostics,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CauseValue
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+CauseValue ::= CHOICE
+{
+ unassignedNumber NULL, -- 1
+ noRouteToSpecifiedTransitNetwork NULL, -- 2
+ noRouteToDestination NULL, -- 3
+ channelUnacceptable NULL, -- 6
+ normalClearing NULL, -- 16
+ userBusy NULL, -- 17
+ noUserResponding NULL, -- 18
+ noAnswereFromUser NULL, -- 19
+ portableNotAvailable NULL, -- 20
+ callRejected NULL, -- 21
+ numberChanged NULL, -- 22
+ destinationOutOfOrder NULL, -- 27
+ invalidNumberFormat NULL, -- 28
+ facilityRequestRejected NULL, -- 29
+ responseToStatusEnquiry NULL, -- 30
+ normalUnspecified NULL, -- 31
+ noCircuitChannelAvailable NULL, -- 34
+ networkOutOfOrder NULL, -- 38
+ temporaryFailure NULL, -- 41
+ switchingEquipmentCongestion NULL, -- 42
+ accessInformationDiscarded NULL, -- 43
+ requestedCircuitChannelNotAvailable NULL, -- 44
+ resourceUnavailableUnspecified NULL, -- 47
+ qualityOfServiceUnavailable NULL, -- 49
+ notSubscribedToRequestedFacility NULL, -- 50
+ bearerCapabilityNotAuthorized NULL, -- 57
+ bearerCapabilityNotPresentlyAvailable NULL, -- 58
+ serviceOrOptionNotAvailableUnspecified NULL, -- 63, 79
+ bearerCapabilityNotImplemented NULL, -- 65
+ channelTypeNotImplemented NULL, -- 66
+ requestedFacilityNotImplemented NULL, -- 69
+ onlyRestrictedDigitalInformationBcIsAvailable NULL, -- 70
+ invalidCallReferenceValue NULL, -- 81
+ incompatibleDestination NULL, -- 88
+ invalidTransitNetworkSelection NULL, -- 91
+ invalidMessageUnspecified NULL, -- 95
+ mandatoryInformationElementIsMissing NULL, -- 96
+ messageTypeNonexistingOrNotimplemented NULL, -- 97
+ messageNotCompatibleOrImplemented NULL, -- 98
+ informationElementNonExisting NULL, -- 99
+ invalidInformationElementContents NULL, -- 100
+ messageNotCompatibleWithCallState NULL, -- 101
+ recoveryOnTimerExpiry NULL, -- 102
+ protocolErrorUnspecified NULL, -- 111
+ interworkingUnspecified NULL, -- 127
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ChangeServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ChangeServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CheckServiceRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CheckServiceRejectReason ::= CHOICE
+{
+ deniedDueToInteraction NULL,
+ deniedDueToCategories NULL,
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Coding
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Coding ::= CHOICE
+{
+ ccitt NULL,
+ ecma NULL,
+ national NULL,
+ network NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ConferenceGoal
+--
+-- @prop dataType
+--
+-- @descr Type of call setup desire
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceGoal ::= CHOICE
+{
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConferenceIdentifier
+--
+-- @prop dataType
+--
+--
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceIdentifier ::= OCTET STRING (SIZE (16))
+
+
+-- ---------------------------------
+--
+-- ConnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ destinationEndpointType EndpointType, -- destinationInfo
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionData
+--
+-- @prop dataType
+--
+-- @descr This parameter holds connection data that are specific for
+-- certain types of Equipments.
+-- @
+--
+-- ---------------------------------
+
+ConnectionData ::= CHOICE
+{
+ timeSlotInformation SEQUENCE OF TimeSlot,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionIdentifier
+--
+-- @prop dataType
+--
+-- @descr Identifier to the connection handler instance.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionIdentifier ::= ObjectIdentifier
+
+
+-- ---------------------------------
+--
+-- ConnectionInformation
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies information that are of interest for
+-- the functionallity handled by component Connection Handler.
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformation ::= SEQUENCE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ connectionData ConnectionData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationOriginatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the originating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationOriginatingSide ::= SEQUENCE
+{
+ bandwidth Bandwidth,
+ callType CallType,
+ originatorConnectionInformation ConnectionInformation,
+ terminatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationTerminatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the terminating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationTerminatingSide ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ originatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionType
+--
+-- @prop dataType
+--
+-- @descr States the type of connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateEquipmentRepresentationRejectReason ::= CHOICE
+{
+ equipmentRepresentationAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceIdentifierRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DeallocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DeallocateTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DetailedReasonAtom
+--
+-- @prop dataType
+-- @descr This data type indicates the release information of a forced drop
+-- during a call.
+-- @
+--
+-- ---------------------------------
+
+DetailedReasonAtom ::= CHOICE
+{
+ internalDataMissmatch NULL,
+ destinationUserIdentifierNotKnown NULL,
+ rejectedDueToCategories NULL,
+ rejectedDueToResources NULL,
+ failedToOpenDestinationCallSignallingPort NULL,
+ theRequestedServiceIsNotSupported NULL,
+ undefined NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Diagnostics
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Diagnostics ::= INTEGER(1..127)
+
+
+-- ---------------------------------
+--
+-- DisconnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DisconnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ switchNotConnected NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageReason
+--
+-- @prop dataType
+-- @descr the reason why a change was requested by the gatekeeper or the terminal.
+-- @
+-- ---------------------------------
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL,
+ normalDrop NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ requestToDropOther NULL,
+ ...
+}
+-- ---------------------------------
+--
+-- Display
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Display ::= OCTET STRING (SIZE(1..82))
+
+
+
+-- ---------------------------------
+--
+-- E164Identifier
+--
+-- @prop dataType
+--
+-- @descr Identifier for the user identifier of the type E.164.
+--
+-- @
+--
+-- ---------------------------------
+
+E164Identifier ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallAcknowledge
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallAcknowledge ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323AcknowledgeInformation AlertingUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallActive
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallActive ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323ActiveInformation ConnectUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallProgress
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallProgress ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ ...
+}
+
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallSetup
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallSetup ::=SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ calledNumber Number OPTIONAL,
+ calledSubaddress Subaddress OPTIONAL,
+ callingNumber Number OPTIONAL,
+ callingSubaddress Subaddress OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ repeatIndicator RepeatIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323SetupInformation SetupUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallTermination
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallTermination ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323TerminationInformation ReleaseCompleteUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointIdentifier
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointIdentifier ::= BMPString (SIZE(1..128)) -- change from SIZE(128)
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint registration.
+--
+-- @
+-- ---------------------------------
+
+EndpointRegistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointRegistrationRejectReason ::= CHOICE
+{
+ attemptToChangeEndpoint NULL,
+ requestedUserNotKnown NULL,
+ endpointTypeNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInformation OPTIONAL,
+ gateway GatewayInformation OPTIONAL,
+ mcu McuInformation OPTIONAL,
+ terminal TerminalInformation OPTIONAL,
+ mc BOOLEAN,
+ undefinedNode BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint unregistration.
+--
+-- @
+-- ---------------------------------
+
+EndpointUnregistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointUnregistrationRejectReason ::= CHOICE
+{
+ permissionDenied NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressAN
+--
+-- @prop dataType
+--
+-- @descr States the address for a certain equipment connected
+-- to the Access Node.
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressAN ::= SEQUENCE
+{
+ --TBD by SEA,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressLAN
+--
+-- @prop dataType
+--
+-- @descr States the transport address for a certain equipment
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressLAN ::= SEQUENCE
+{
+ transportAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformation
+--
+-- @prop dataType
+--
+-- @descr Contains the retreived data.
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentRelatedInformation ::= CHOICE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ registrationStatus RegistrationStatus,
+ stateOfEquipment StateOfEquipment,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain equipment.
+--
+-- @
+-- ---------------------------------
+
+EquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ logicalConnectionPointIdentifier NULL,
+ registrationStatus NULL,
+ stateOfEquipment NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- FacilityReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL,
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- FacilityUUIE
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeH245Address TransportAddress OPTIONAL, -- alternativeAddress
+ alternativeUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- alternativeAliasAddress
+ conferenceIdentifier ConferenceIdentifier OPTIONAL, -- conferenceID
+ facilityReason FacilityReason, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperIdentifier
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+
+
+-- ---------------------------------
+--
+-- GatekeeperInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatewayInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatewayInformation ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GetAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetAnalysisRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetEquipmentInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetEquipmentInformationRejectReason ::= CHOICE
+{
+ equipmentUnknown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetLANDataRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetLANDataRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetPartyInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetPartyInformationRejectReason ::= CHOICE
+{
+ noEquipmentAvailable NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetRejectReasonUser
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetRejectReasonUser ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceProfileRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServicesAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServicesAndStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetUserServiceInformationAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetUserServiceInformationAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H221NonStandard
+-- @prop dataType
+--
+-- @descr Gives non standard information about the standard protocol H.221.
+-- @
+--
+-- ---------------------------------
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255),
+ t35Extension INTEGER(0..255),
+ manufacturerCode INTEGER(0..65535),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H310Information
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.310.
+-- @
+--
+-- ---------------------------------
+
+H310Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H320Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.320.
+-- @
+--
+-- ---------------------------------
+
+H320Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H321Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.321.
+-- @
+--
+-- ---------------------------------
+
+H321Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H322Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.322.
+-- @
+--
+-- ---------------------------------
+
+H322Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.323.
+-- @
+--
+-- ---------------------------------
+
+H323Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ requestedCallReferenceAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ callRelatedDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ fixedTransportAddressDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ existingKeyNotValid NULL,
+ newKeyAlreadyExists NULL,
+ newKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAdditionalKeys
+--
+-- @prop dataType
+-- @descr Additional keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceAdditionalKeys ::= SEQUENCE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAllocateResourceRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceChangeKeysAndRelationsToUsersReject
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceChangeKeysAndRelationsToUsersReject ::= CHOICE
+{
+ firstKeyNotValid NULL,
+ secondKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are common for all objects of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttribute ::= CHOICE
+{
+ gatekeeperCallSignallingAddressData CHOICE
+ {
+ gatekeeperCallSignallingAddresses SEQUENCE OF TransportAddress,
+ undefined NULL,
+ ...
+ },
+ gatekeeperRASAddressInformation CHOICE
+ {
+ gatekeeperRASAddressData SEQUENCE
+ {
+ multicastRASAddress TransportAddress,
+ gatekeeperRASAddress TransportAddress,
+ ...
+ },
+ undefined NULL,
+ ...
+ },
+ q931Timer301Value Q931Timer301Value,
+ q931Timer303Value Q931Timer303Value,
+ rasMessageTimerValue RASMessageTimerValue,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are common for all objects
+-- of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttributeIdentifier ::= CHOICE
+{
+ gatekeeperCallSignallingAddresses NULL,
+ gatekeeperRASAddress NULL,
+ q931Timer301Value NULL,
+ q931Timer303Value NULL,
+ rasMessageTimerValue NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceCreateCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ noCallReferenceAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCreateRejectReason ::= CHOICE
+{
+ keyAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceDeallocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceGetFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ noFixedTransportAddressDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrRemoveCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrRemoveCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ noCallRelatedDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetCommonRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetCommonRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetInstanceRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetInstanceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are specific for a h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttribute ::= CHOICE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRasAddresses SEQUENCE OF TransportAddress,
+ registrationStatus RegistrationStatus,
+ gatekeeperCallSignallingAddress TransportAddress,
+ maximumTotalBandwidthForInterface Bandwidth,
+ preStringsToRemoveInDestinationAddress SEQUENCE OF PreStringToRemoveInDestinationAddress,
+ relationToH2250CallSignalling Pid,
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are specific for a
+-- h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttributeIdentifier ::= CHOICE
+{
+ endpointCallSignallingAddresses NULL,
+ endpointRASAddresses NULL,
+ registrationStatus NULL,
+ gatekeeperCallSignallingAddress NULL,
+ maximumTotalBandwidthForInterface NULL,
+ preStringsToRemoveInDestinationAddress NULL,
+ relationToH2250CallSignalling NULL,
+ relationToUser NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKey
+--
+-- @prop dataType
+-- @descr Allowed keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceKey ::= CHOICE
+{
+ endpointIdentifier EndpointIdentifier,
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKeyEndpointIdentifier
+--
+-- @descr Allowed keys for an instance of the type H.323Interface.
+--
+-- ---------------------------------
+
+H323InterfaceKeyEndpointIdentifier ::= SEQUENCE
+{
+ endpointIdentifier EndpointIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceReduceBandwidthRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceReduceBandwidthRejectReason ::= CHOICE
+{
+ bandwidthNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ newBandwidthHigherThanAllocatedBandwidth NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveCallReferenceRejectReason ::= CHOICE
+{
+ callReferenceNotStored NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveFixedTransportAddressDataRejectReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceRemoveFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ keysNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H324Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.324.
+-- @
+--
+-- ---------------------------------
+
+H324Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+HighLayerCompatibility ::= SEQUENCE
+{
+ ...
+}
+-- ---------------------------------
+--
+-- InterfaceRegistrationInformation
+-- @prop dataType
+--
+-- @descr This parameter specifies the current registration status of an
+-- endpoints registration request.
+-- @
+--
+-- ---------------------------------
+
+InterfaceRegistrationInformation ::= SEQUENCE
+{
+ isInterfaceRegistered BOOLEAN,
+ relationToH323User EndpointIdentifier OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LANAttribute
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute value.
+-- @
+--
+-- ---------------------------------
+
+LANAttribute ::= CHOICE
+{
+ maximumTotalBandwidth MaximumTotalBandwidth,
+ maximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ numberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ typeOfFlowControl TypeOfFlowControl,
+ typeOfLAN TypeOfLAN,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- LANAttributeIdentifier
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute identifier.
+-- @
+--
+-- ---------------------------------
+
+LANAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumNumberOfAllowedConnections NULL,
+ numberOfTimesLANWasCrowded NULL,
+ typeOfFlowControl NULL,
+ typeOfLAN NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Layer1ProtUserInfo ::= CHOICE
+ {
+ g711u-law NULL,
+ g711a-law NULL,
+ h323VidephoneCall NULL, -- the meaning of "5" in H323
+ h221Andh242 NULL, -- the meaning of "5" in Q931
+ ...
+ }-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Location ::= CHOICE
+ {
+ user NULL,
+ localPrivateNetwork NULL,
+ localPublicNetwork NULL,
+ transitNetwork NULL,
+ remotePublicNetwork NULL,
+ remotePrivateNetwork NULL,
+ internationalNetwork NULL,
+ beyondInterworkingPoint NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- LocationRejectReason
+-- @prop dataType
+--
+-- @descr
+-- @
+-- ---------------------------------
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LogicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Identifier of the logical connection point.
+-- @
+--
+-- ---------------------------------
+
+LogicalConnectionPointIdentifier ::= INTEGER (0..65535)
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @descr origin Q931
+-- @
+
+ LowLayerCompatibility ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- MaximumNumberOfAllowedConnections
+--
+-- @prop dataType
+-- @descr States the maximum number of allowed connections.
+-- @
+--
+-- ---------------------------------
+
+MaximumNumberOfAllowedConnections ::= CHOICE
+{
+ maximumNumberOfAllowedConnectionsValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- MaximumTotalBandwidth
+-- @prop dataType
+-- @descr States the maximum total bandwidth.
+-- @
+-- ---------------------------------
+
+MaximumTotalBandwidth ::= CHOICE
+{
+ maximumTotalBandwidthValue Bandwidth,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- McuInformation
+-- @prop dataType
+--
+-- @descr Gives detailed information about the endpoint type, MCU.
+-- @
+-- ---------------------------------
+
+McuInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardIdentifier
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardMessage
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+-- ---------------------------------
+--
+-- NonStandardParameter
+--
+-- @prop dataType
+-- @
+-- ---------------------------------
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING,
+ ...
+}
+
+
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Number ::= SEQUENCE
+ {
+ type NumberType,
+ indicator NumberingPlan,
+ number IA5String (FROM ("0123456789#*")),
+ ...
+ }
+
+-- ---------------------------------
+--
+-- NumberOfTimesLANWasCrowded
+-- @prop dataType
+--
+-- @descr States the number of times the Lan has been crowded,
+-- i.e. the endpoints has released the initiated call due to
+-- heavy load in the LAN.
+-- @
+--
+-- ---------------------------------
+
+NumberOfTimesLANWasCrowded ::= CHOICE
+{
+ numberOfTimesLANWasCrowdedValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberType ::= CHOICE
+ {
+ unknown NULL,
+ international NULL,
+ national NULL,
+ network NULL,
+ local NULL,
+ abbreviated NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberingPlan ::= CHOICE
+ {
+ unknown NULL,
+ e164 NULL,
+ data NULL,
+ telex NULL,
+ national NULL,
+ private NULL,
+ ...
+ }
+
+
+
+-- ---------------------------------
+--
+-- ObjectIdentifier
+--
+-- @prop dataType
+-- @descr An identifier to a certain instance of an object.
+-- @
+--
+-- ---------------------------------
+
+ObjectIdentifier ::= OCTET STRING
+
+
+
+-- ---------------------------------
+--
+-- PhysicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Contains data that identifies a specific equipment instance.
+-- @
+--
+-- ---------------------------------
+
+PhysicalConnectionPointIdentifier ::= CHOICE
+{
+ equipmentAN EquipmentAddressAN, -- Equipment connected to the Access Node.
+ equipmentLAN EquipmentAddressLAN, -- Equipment connected to the LAN.
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Pid
+-- @prop dataType
+--
+-- @descr A process identifier.
+-- @
+--
+-- ---------------------------------
+
+Pid ::= ObjectIdentifier
+
+
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr A pre-string that shall be removed when sending the destination address.
+--
+-- @
+--
+-- ---------------------------------
+
+PreStringToRemoveInDestinationAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789,")),
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ ProgressIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- ProtocolIdentifier
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+
+
+-- ---------------------------------
+--
+-- Q931Timer301Value
+-- @prop dataType
+--
+-- @descr States the Q931 timer 301 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer301Value ::= INTEGER ( 180000.. 360000 )
+
+
+
+-- ---------------------------------
+--
+-- Q931Timer303Value
+--
+-- @prop dataType
+-- @descr States the Q931 timer 303 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer303Value ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- Q954Details
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- QseriesOptions
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+QseriesOptions ::=SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RASMessageTimerValue
+--
+-- @prop dataType
+-- @descr States the RAS message timer value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+RASMessageTimerValue ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- RTPSession
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInformation,
+ rtcpAddress TransportChannelInformation,
+ cname PrintableString,
+ ssrc INTEGER (1.. 134217727), -- change from 4294967295 for erl 4.2
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationRejectReason
+--
+-- @prop dataType
+-- @descr Specifies the registration reject reason that are valid
+-- in the H.225.0 message RegistartionReject
+-- @ --
+-- ---------------------------------
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL,
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRasAddress NULL,
+ duplicateAlias UserIdentifierInformation,
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationStatus
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RegistrationStatus ::= CHOICE
+{
+ notRegistered NULL,
+ registered NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RelationToEquipment
+--
+-- @prop dataType
+-- @descr Relation to the architecture component Equipment.
+-- @
+--
+-- ---------------------------------
+
+RelationToEquipment ::= SEQUENCE
+{
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RelationToUser
+--
+-- @prop dataType
+-- @descr Relation to the architecture component User.
+-- @
+--
+-- ---------------------------------
+
+RelationToUser ::= BMPString (SIZE(1..128))
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL,
+ gatekeeperResources NULL,
+ unreachableDestination NULL,
+ destinationRejection NULL,
+ invalidRevision NULL,
+ noPermission NULL,
+ unreachableGatekeeper NULL,
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL,
+ inConf NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteUUIE
+-- @prop dataType
+--
+-- @
+-- ---------------------------------
+
+ReleaseCompleteUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ releaseCompleteReason ReleaseCompleteReason OPTIONAL, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ReleaseInformation
+--
+-- @prop dataType
+-- @descr This data type is used to transfer the reason for the
+-- rejection or release.
+-- @
+--
+-- ---------------------------------
+
+ReleaseInformation ::= CHOICE
+{
+ forcedDrop DetailedReasonAtom,
+ normalDrop NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RemoveAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryNotFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveEquipmentRepresentationRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ equipmentRepresentationDoesNotExist NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceAndStatusRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the service and its categories that
+-- shall be added to a service profile.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceIdentifierRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+RemoveServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ serviceIdentifierDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+ RepeatIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- RequestSeqNum
+--
+-- @prop dataType
+-- @descr
+-- @
+-- ---------------------------------
+
+RequestSeqNum ::= INTEGER (1..65535)
+
+
+
+-- ---------------------------------
+--
+-- RequestedUserAndLinkedUserAreIdentical
+--
+-- @prop dataType
+-- @descr This parameter indicates if the requested user and the user
+-- linked to the requested endpoint are identical, not identical
+-- or if this is undefined.
+-- @
+--
+-- ---------------------------------
+
+RequestedUserAndLinkedUserAreIdentical ::= CHOICE
+{
+ yes NULL,
+ no NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceAndStatus
+-- @prop dataType
+--
+-- @descr Information of a service and its state.
+-- @
+--
+-- ---------------------------------
+
+ServiceAndStatus ::= SEQUENCE
+{
+ typeOfService TypeOfService,
+ status StatusOfService,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionInformation
+--
+-- @prop dataType
+-- @descr Information related to the call setup rejection.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallSetupRejectionInformation ::= SEQUENCE
+{
+ terminationInitiatior TerminationInitiatior,
+ terminationReason ServiceCallSetupRejectionReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionReason
+--
+-- @prop dataType
+-- @descr Reason for rejection.
+-- @
+-- ---------------------------------
+
+ServiceCallSetupRejectionReason ::= CHOICE
+{
+ calledUserBusy NULL,
+ calledUserNotAvailable NULL,
+ destinationOutOfOrder NULL,
+ requestedServiceBarred NULL,
+ requestedServiceNotAvailable NULL,
+ requestedServiceNotSubscribed NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ unassignedUserIdentifier NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationInformation
+-- @prop dataType
+--
+-- @descr States information related to the termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationInformation ::= SEQUENCE
+{
+ terminationInitiation TerminationInitiatior,
+ terminationReason ServiceCallTerminationReason,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationReason
+--
+-- @prop dataType
+-- @descr Reason for termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationReason ::= CHOICE
+{
+ noAnswerFromCalledUser NULL,
+ normalTermination NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceData
+--
+-- @prop dataType
+-- @descr Contains the identified services and theirs categories
+-- @
+-- ---------------------------------
+
+ServiceData ::= CHOICE
+{
+ basicCall BasicCallCategories,
+ endpointRegistration EndpointRegistrationCategories,
+ endpointUnregistration EndpointUnregistrationCategories,
+ ...
+}
+
+-- @prop dataType
+-- @descr
+-- @
+--
+
+ ServiceIdentifier ::= INTEGER
+
+
+-- ---------------------------------
+--
+-- ServiceProfile
+--
+-- @prop dataType
+-- @descr Contains services and data related to the services.
+-- @
+-- ---------------------------------
+
+ServiceProfile ::= SEQUENCE
+{
+ serviceDataInformation SEQUENCE OF ServiceData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetEquipmentStatusRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+SetEquipmentStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- SetLANDataRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+SetLANDataRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetUserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+SetUserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetupUUIE
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+SetupUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ sourceH245Address TransportAddress OPTIONAL, -- h245Address
+ sourceUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- sourceAddress
+ sourceEndpointType EndpointType, -- sourceInfo
+ destinationUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destinationAddress
+ destinationCallSignallingAddress TransportAddress OPTIONAL, -- destCallSignalAddress
+ destinationExtraUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destExtraCallInfo
+ destinationExtraCallReference SEQUENCE OF CallReference OPTIONAL, -- destExtraCRV
+ activeMC BOOLEAN,
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ conferenceGoal ConferenceGoal,
+ callServices CallServices OPTIONAL,
+ callType CallType,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- StateOfEquipment
+--
+-- @prop dataType
+-- @descr States the state of the equipment.
+-- @
+--
+-- ---------------------------------
+
+StateOfEquipment ::= CHOICE
+{
+ blocked NULL, -- Equipment is blocked
+ busy NULL, -- Equipment is busy, no more calls possible for moment
+ available NULL, -- Equipment has reported itself as present and is ready for actions
+ unregistered NULL, -- Equipment is not present
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StateOfUser
+--
+-- @prop dataType
+-- @descr This parameter specifies the state of the user.
+-- @
+-- ---------------------------------
+
+StateOfUser ::= CHOICE
+{
+ absent NULL,
+ present NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StatusOfService
+--
+-- @prop dataType
+-- @descr States the state of the service.
+-- @
+--
+-- ---------------------------------
+
+StatusOfService ::= CHOICE
+{
+ acknowledge NULL,
+ active NULL,
+ initiatied NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Subaddress ::= SEQUENCE
+ {
+ type SubaddressType,
+ indicator BOOLEAN,
+ address SubaddressInformation,
+ ...
+ }
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressInformation ::= OCTET STRING (SIZE(1..23))
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressType ::= CHOICE
+ {
+ nsap NULL,
+ user NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- SupportedProtocols
+--
+-- @prop dataType
+-- @descr Gives detailed information about protocols that are
+-- supported by the stated endpoint.
+-- @
+-- ---------------------------------
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Information,
+ h320 H320Information,
+ h321 H321Information,
+ h322 H322Information,
+ h323 H323Information,
+ h324 H324Information,
+ voice VoiceInformation,
+ t120Only T120Information,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- T120Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol T.120
+-- @
+-- ---------------------------------
+
+T120Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminalInformation
+-- @prop dataType
+--
+-- @
+--
+-- ---------------------------------
+
+TerminalInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminationInitiatior
+--
+-- @prop dataType
+-- @descr States who initiated the termination.
+-- @
+--
+-- ---------------------------------
+
+TerminationInitiatior ::= CHOICE
+{
+ endpoint NULL,
+ serviceNode NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TimeSlot
+--
+-- @prop dataType
+-- @descr This parameter contains the identity of the time slot used
+-- for the connection.
+-- @
+--
+-- ---------------------------------
+
+TimeSlot ::= INTEGER
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferCapability ::= CHOICE
+ {
+ speech NULL,
+ unrestrictedDigital NULL,
+ restrictedDigital NULL,
+ audio3point1kHz NULL,
+ unrestrictedWithTonesAndAnnouncements NULL,
+ video NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferRate ::= CHOICE
+ {
+ packedMode NULL,
+ r64kbps NULL,
+ r2x64kbps NULL,
+ r384kbps NULL,
+ r1536kbps NULL,
+ r1920kbps NULL,
+ multirate NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- TransportAddress
+--
+-- @prop dataType
+-- @descr The transport address.
+-- @
+--
+-- ---------------------------------
+
+TransportAddress ::= CHOICE
+{
+ ipV4Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (4) ),
+ port INTEGER ( 0..65535 )
+ },
+
+ ipV6Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (16) ),
+ port INTEGER ( 0..65535 ),
+ ...
+ },
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TransportAddressInformation
+--
+-- @prop dataType
+-- @descr sequence of TransportAdress
+-- @
+-- ---------------------------------
+
+TransportAddressInformation ::= SEQUENCE OF TransportAddress
+
+
+-- ---------------------------------
+--
+-- TransportChannelInformation
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+TransportChannelInformation ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TypeOfEquipment
+--
+-- @prop dataType
+-- @descr Type of equipment.
+-- @
+--
+-- ---------------------------------
+
+TypeOfEquipment ::= CHOICE
+{
+ cordlessTerminal NULL,
+ h323Terminal NULL,
+ h323Gateway NULL,
+ isdnTerminal NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfFlowControl
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of flow control used in the LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfFlowControl ::= CHOICE
+{
+ isa NULL,
+ priorityOutputRouting NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfLAN
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfLAN ::= CHOICE
+{
+ ethernet NULL,
+ tokenRing NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfRegistration
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfRegistration ::= CHOICE
+{
+ changeOfUser NULL,
+ noChangeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfService
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfService ::= CHOICE
+{
+ basicCall NULL,
+ endpointRegistration NULL,
+ endpointUnregistration NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfUser
+--
+-- @prop dataType
+-- @descr Type of user.
+-- @
+--
+-- ---------------------------------
+
+TypeOfUser ::= CHOICE
+{
+ human NULL,
+ network NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UnknownMessageResponse
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnknownMessageResponse ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UnregistrationRejectReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnregistrationRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UserAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserAllocateResourceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ serviceIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ relationToEquipment SEQUENCE OF RelationToEquipment,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains User attribute identifiers.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumBandwidthPerService NULL,
+ relationToEquipment NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ userIdentifierInformation NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserCreateRejectReason ::= CHOICE
+{
+ userIdentifierAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserDeallocateResourceRejectReason
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ serviceIdentifierNotValid NULL,
+ userNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserIdentifier
+--
+-- @prop dataType
+-- @descr The identifier of the User.
+-- @
+--
+-- ---------------------------------
+
+UserIdentifier ::= CHOICE
+{
+ e164 E164Identifier,
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserIdentifierInformation
+--
+-- @prop dataType
+-- @descr sequence of UserIdentifier
+-- @
+--
+-- ---------------------------------
+
+UserIdentifierInformation ::= SEQUENCE OF UserIdentifier--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+UserInformation ::= OCTET STRING (SIZE(1..131))
+
+
+
+
+-- ---------------------------------
+--
+-- UserInformationUUIE
+--
+-- @prop dataType
+-- @ --
+-- ---------------------------------
+
+UserInformationUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserKey
+--
+-- @prop dataType
+-- @descr Unique key for a certain user.
+-- @
+-- ---------------------------------
+
+UserKey ::= CHOICE
+{
+ relationToUser RelationToUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformationIdentifier
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information identifiers.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ userRelatedInformationIdentifiers SEQUENCE OF UserRelatedInformationIdentifier,
+ equipmentRelatedInformationIdentifiers SEQUENCE OF EquipmentRelatedInformationIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies different types of data
+-- that are related to the user.
+-- @
+--
+-- ---------------------------------
+
+UserRelatedInformation ::= CHOICE
+{
+ numberOfEquipments INTEGER,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain user.
+--
+-- @
+-- ---------------------------------
+
+UserRelatedInformationIdentifier ::= CHOICE
+{
+ numberOfEquipments NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSetRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserSetRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSpecificInformation
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to the user.
+-- @
+--
+-- ---------------------------------
+
+UserSpecificInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- VendorIdentifier
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- VoiceInformation
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+VoiceInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Constraints.py b/lib/asn1/test/asn1_bin_SUITE_data/Constraints.py
new file mode 100644
index 0000000000..b18c29bd89
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Constraints.py
@@ -0,0 +1,84 @@
+Constraints DEFINITIONS ::=
+BEGIN
+
+-- Single Value
+SingleValue ::= INTEGER (1)
+SingleValue2 ::= INTEGER (1..20)
+Range2to19 ::= INTEGER (1<..<20)
+Range10to20 ::= INTEGER (10..20)
+ContainedSubtype ::= INTEGER (INCLUDES Range10to20)
+FixedSize ::= OCTET STRING (SIZE(10))
+FixedSize2 ::= OCTET STRING (SIZE(10|20))
+VariableSize ::= OCTET STRING (SIZE(1..10))
+PemittedAlphabet ::= PrintableString (FROM ("a"|"yx"))
+AliasAddress ::=CHOICE
+{
+ e164 IA5String (SIZE (1..128) ^ FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)),
+ ...
+}
+Obj ::= OBJECT IDENTIFIER
+
+
+-- OTP-4559: a referenced type that has a permitted alphabet constraint
+-- Example from H323-MESSAGES ver (11/2000)
+TBCD-STRING ::= IA5String (FROM ("0123456789#*abc"))
+
+ANSI-41-UIM ::= SEQUENCE {
+ imsi [0] TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ esn [1] TBCD-STRING(SIZE (16)) OPTIONAL
+}
+
+-- OTP-4869: a BIT STRING constrained by SIZE(C) was encoded wrong
+-- when C was larger than 16. There was also an error when encodeing
+-- in compact_bit_string mode.
+
+IP ::= SEQUENCE {
+ perm SEQUENCE OF INTEGER (0..15),
+ key BIT STRING (SIZE (128)),
+ bool BOOLEAN OPTIONAL
+}
+
+-- add for OTP-3558 and OTP-4917
+Day ::= ENUMERATED{monday(0),tuesday(1),wednesday(2),thursday(3),friday(4),saturday(5),sunday(6)}
+
+Wednesday ::= Day(wednesday)
+
+
+Thing ::= INTEGER {fred (0),fred2 (1),fred3 (2)}
+
+
+AnotherThing ::= Thing (fred | fred2)
+
+I ::= INTEGER (0|15..269) -- OTP-5457
+
+-- OTP-5511
+
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 35
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+-- OTP-6763
+T ::= IA5String (SIZE (1|2, ..., SIZE (1|2|3))) -- Dubuisson 268
+T2 ::= IA5String (SIZE (1|2, ..., 3)) -- equal with T
+
+-- OTP-8046
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYYY-HH:MM
+
+
+-- OTP-6828
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING MyType),
+ ...
+}
+
+MoreCompact ::= OCTET STRING (CONTAINING MyType ENCODED BY {joint-iso-itu-t asn1 packed-encoding(3) basic(0) unaligned(1)})
+
+MyType ::= SEQUENCE {a INTEGER, b INTEGER}
+
+Document ::= OCTET STRING (ENCODED BY pdf)
+
+pdf OBJECT IDENTIFIER ::= {1,2,3,4,5}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Constructed.asn b/lib/asn1/test/asn1_bin_SUITE_data/Constructed.asn
new file mode 100644
index 0000000000..09a66d0c0d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Constructed.asn
@@ -0,0 +1,23 @@
+
+
+
+Constructed DEFINITIONS ::=
+BEGIN
+
+S ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
+ b BOOLEAN
+ }
+
+I ::= [8] IMPLICIT INTEGER
+
+S2 ::= [UNIVERSAL 8] SEQUENCE { b BOOLEAN}
+
+C ::= CHOICE {
+ a S,
+ b S3
+}
+
+S3 ::= SEQUENCE {i INTEGER}
+
+S3ext ::= SEQUENCE {i INTEGER, ...}
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ContextSwitchingTypes.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ContextSwitchingTypes.asn1
new file mode 100644
index 0000000000..c8145bad63
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ContextSwitchingTypes.asn1
@@ -0,0 +1,53 @@
+ContextSwitchingTypes DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- EXTERNAL type
+
+T ::= EXTERNAL
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b T
+}
+
+int INTEGER ::= 12
+
+val1-T T ::= {indirect-reference int, encoding octet-aligned:'123'H}
+
+val2-T T ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+val3-T T ::= {identification context-negotiation:{presentation-context-id 12,
+ transfer-syntax {1 2 3}},
+ data-value '123'H}
+
+-- EMBEDDED PDV type
+
+EP ::= EMBEDDED PDV
+
+Seq2 ::= SEQUENCE {
+ a BOOLEAN,
+ b EP
+}
+
+val1-EP EP ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ data-value '12345'H}
+
+val2-EP EP ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+-- CHARACTER STRING type and value
+
+CS ::= CHARACTER STRING
+
+Seq3 ::= SEQUENCE {
+ a INTEGER,
+ b CS
+}
+
+val1-CS CS ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ string-value '12345'H}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/DERSpec.asn b/lib/asn1/test/asn1_bin_SUITE_data/DERSpec.asn
new file mode 100644
index 0000000000..93e6180d42
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/DERSpec.asn
@@ -0,0 +1,38 @@
+DERSpec DEFINITIONS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+C ::= CHOICE {
+ version INTEGER,
+ message PrintableString
+}
+
+Set ::= SET {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+
+SetOf ::= SET OF C
+
+-- This type compiled with ber_bin, optimize, der
+-- will test the fix in OTP-4866
+Set2 ::= SET {
+ int INTEGER,
+ bool BOOLEAN}
+
+-- OTP-5602
+SO ::= SEQUENCE OF Seq2
+
+Seq2 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py b/lib/asn1/test/asn1_bin_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
new file mode 100644
index 0000000000..a17fb001d3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
@@ -0,0 +1,150 @@
+DS-EquipmentUser-CommonFunctionOrig-TransmissionPath DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS AllocateTransmissionPathRejectReason,
+ Bandwidth,
+ BandwidthReducedInformation,
+ CallType,
+ ConnectionIdentifier,
+ ConnectionInformation,
+ ConnectTransmissionPathRejectReason,
+ DeallocateTransmissionPathRejectReason,
+ DisconnectTransmissionPathRejectReason,
+ RelationToUser,
+ UserIdentifier FROM CommonDataTypes ;
+
+EquipmentUserCommonFunctionOrigTransmissionPathMessages ::= CHOICE
+{
+ allocateTransmissionPathEU AllocateTransmissionPathEU,
+ allocateTransmissionPathConfirmedUE AllocateTransmissionPathConfirmedUE, -- Reply
+ allocateTransmissionPathRejectedUE AllocateTransmissionPathRejectedUE, -- Reply
+ connectTransmissionPathEU ConnectTransmissionPathEU,
+ connectTransmissionPathConfirmedUE ConnectTransmissionPathConfirmedUE, -- Reply
+ connectTransmissionPathRejectedUE ConnectTransmissionPathRejectedUE, -- Reply
+ deallocateTransmissionPathEU DeallocateTransmissionPathEU,
+ deallocateTransmissionPathConfirmedUE DeallocateTransmissionPathConfirmedUE, -- Reply
+ deallocateTransmissionPathRejectedUE DeallocateTransmissionPathRejectedUE, -- Reply
+ disconnectTransmissionPathEU DisconnectTransmissionPathEU,
+ disconnectTransmissionPathConfirmedUE DisconnectTransmissionPathConfirmedUE, -- Reply
+ disconnectTransmissionPathRejectedUE DisconnectTransmissionPathRejectedUE, -- Reply
+ ...
+}
+
+
+
+-- ----------------------------------
+--
+-- Allocate transmission path
+--
+--
+-- ----------------------------------
+
+AllocateTransmissionPathEU ::= SEQUENCE
+{
+ callType CallType,
+ bandwidth Bandwidth,
+ destinationUserIdentifiers SEQUENCE OF UserIdentifier,
+ sourceConnectionInformation ConnectionInformation,
+ relationToSourceUser RelationToUser,
+ ...
+}
+
+
+--
+-- @param bandwidthReducedInformation Mandatory if bandwidth has been reduced.
+--
+--
+
+AllocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ bandwidthReducedInformation BandwidthReducedInformation OPTIONAL,
+ ...
+}
+
+
+AllocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ allocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Connect transmission path
+--
+-- ----------------------------------
+
+ConnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+ConnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+ConnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ connectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Deallocate transmission path
+--
+-- ----------------------------------
+
+DeallocateTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DeallocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DeallocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ deallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Disconnect transmission path
+--
+-- ----------------------------------
+
+DisconnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DisconnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DisconnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ disconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ ...
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Def.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Def.asn1
new file mode 100644
index 0000000000..8dd5b383e3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Def.asn1
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT FALSE,
+ bool2 [2] BOOLEAN DEFAULT FALSE,
+ bool3 [3] BOOLEAN DEFAULT FALSE
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT FALSE,
+ bool12 [12] BOOLEAN DEFAULT FALSE,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT FALSE,
+ bool31 [31] BOOLEAN DEFAULT FALSE,
+ bool32 [32] BOOLEAN DEFAULT FALSE,
+ bool33 [33] BOOLEAN DEFAULT FALSE
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Def.py b/lib/asn1/test/asn1_bin_SUITE_data/Def.py
new file mode 100644
index 0000000000..ff08ed6386
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Def.py
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT false,
+ bool2 [2] BOOLEAN DEFAULT false,
+ bool3 [3] BOOLEAN DEFAULT false
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT false,
+ bool12 [12] BOOLEAN DEFAULT false,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT false,
+ bool31 [31] BOOLEAN DEFAULT false,
+ bool32 [32] BOOLEAN DEFAULT false,
+ bool33 [33] BOOLEAN DEFAULT false
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Default.asn b/lib/asn1/test/asn1_bin_SUITE_data/Default.asn
new file mode 100644
index 0000000000..6604953c1f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Default.asn
@@ -0,0 +1,158 @@
+Default DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+SeqInts ::= SEQUENCE {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+SetInts ::= SET {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+
+SeqBS ::= SEQUENCE {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+SetBS ::= SET {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+onelist BIT STRING ::= '1001'B
+
+SeqOS ::= SEQUENCE {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+SetOS ::= SET {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+E ::= ENUMERATED {b1,b2,b3}
+
+SeqOI ::= SEQUENCE {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SetOI ::= SET {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SeqEnum ::= SEQUENCE {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+SetEnum ::= SET {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+ftam OBJECT IDENTIFIER ::= {iso standard 8571}
+
+F ::= E
+
+SeqIntBool ::= SEQUENCE {
+ a SEQUENCE{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SetIntBool ::= SET {
+ a SET{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SeqStrings ::= SEQUENCE {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+SetStrings ::= SET {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+S1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab S2} DEFAULT {aa 1, ab {a two, b TRUE}},
+ b S4 DEFAULT s4
+}
+
+S2 ::= SEQUENCE {
+ a INTEGER DEFAULT one,
+ b BOOLEAN OPTIONAL
+}
+
+S3 ::= SEQUENCE {
+ a SEQUENCE OF INTEGER DEFAULT {11,12,13},
+ b SEQUENCE OF C DEFAULT {a:11,b:TRUE,c:13},
+ c SO DEFAULT so,
+ d SEQUENCE OF S2 DEFAULT {{a 20,b TRUE},{a 30, b FALSE}}
+}
+
+S3set ::= SET {
+ a SET OF CHOICE {a BOOLEAN,b INTEGER,c S2} DEFAULT {c:{a 3,b TRUE},b:17,a:FALSE},
+ b SO DEFAULT so
+}
+
+S4 ::= SEQUENCE {
+ a S2 DEFAULT {},
+ b SEQUENCE {ba BOOLEAN,bb INTEGER} DEFAULT {ba TRUE,bb 0}
+}
+
+s4 S4 ::= {a {a 2,b TRUE}, b {ba TRUE, bb 5}}
+
+C ::= CHOICE{
+ a INTEGER,
+ b BOOLEAN,
+ c INTEGER
+}
+
+SO ::= SEQUENCE OF INTEGER
+
+so SEQUENCE OF INTEGER ::= {1,2,3,4}
+
+s S2 ::= {a 15,b FALSE}
+
+one INTEGER ::= 1
+two INTEGER ::= 2
+three INTEGER ::= 3
+four INTEGER ::= 4
+
+cr IA5String ::= {0,13}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/DirectoryAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/DirectoryAbstractService.asn
new file mode 100755
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/DoubleEllipses.asn b/lib/asn1/test/asn1_bin_SUITE_data/DoubleEllipses.asn
new file mode 100644
index 0000000000..e90cf55d61
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/DoubleEllipses.asn
@@ -0,0 +1,99 @@
+DoubleEllipses DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SeqV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SeqAlt ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SeqAltV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+Set ::= SET {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SetV2 ::= SET
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SetAlt ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SetAltV2 ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ELDAPv3.asn b/lib/asn1/test/asn1_bin_SUITE_data/ELDAPv3.asn
new file mode 100644
index 0000000000..0cfac48c37
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ELDAPv3.asn
@@ -0,0 +1,291 @@
+-- LDAPv3 ASN.1 specification, taken from RFC 2251
+
+-- Lightweight-Directory-Access-Protocol-V3 DEFINITIONS
+ELDAPv3 DEFINITIONS
+IMPLICIT TAGS ::=
+
+BEGIN
+
+LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse },
+ controls [0] Controls OPTIONAL }
+
+MessageID ::= INTEGER (0 .. maxInt)
+
+maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+LDAPString ::= OCTET STRING
+
+LDAPOID ::= OCTET STRING
+
+LDAPDN ::= LDAPString
+
+RelativeLDAPDN ::= LDAPString
+
+AttributeType ::= LDAPString
+
+AttributeDescription ::= LDAPString
+
+
+
+
+-- Wahl, et. al. Standards Track [Page 44]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+AttributeDescriptionList ::= SEQUENCE OF
+ AttributeDescription
+
+AttributeValue ::= OCTET STRING
+
+AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+AssertionValue ::= OCTET STRING
+
+Attribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+MatchingRuleId ::= LDAPString
+
+LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongAuthRequired (8),
+ -- 9 reserved --
+ referral (10), -- new
+ adminLimitExceeded (11), -- new
+ unavailableCriticalExtension (12), -- new
+ confidentialityRequired (13), -- new
+ saslBindInProgress (14), -- new
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+
+-- Wahl, et. al. Standards Track [Page 45]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71), -- new
+ -- 72-79 unused --
+ other (80) },
+ -- 81-90 reserved for APIs --
+ matchedDN LDAPDN,
+ errorMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+Referral ::= SEQUENCE OF LDAPURL
+
+LDAPURL ::= LDAPString -- limited to characters permitted in URLs
+
+Controls ::= SEQUENCE OF Control
+
+Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials }
+
+SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+BindResponse ::= [APPLICATION 1] SEQUENCE {
+
+-- Wahl, et. al. Standards Track [Page 46]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+UnbindRequest ::= [APPLICATION 2] NULL
+
+SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2) },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeDescriptionList }
+
+Filter ::= CHOICE {
+ and [0] SET OF Filter,
+ or [1] SET OF Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion }
+
+SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ -- at least one must be present
+ substrings SEQUENCE OF CHOICE {
+ initial [0] LDAPString,
+ any [1] LDAPString,
+ final [2] LDAPString } }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+-- Wahl, et. al. Standards Track [Page 47]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+PartialAttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+SearchResultReference ::= [APPLICATION 19] SEQUENCE OF LDAPURL
+
+SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ modification SEQUENCE OF SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2) },
+ modification AttributeTypeAndValues } }
+
+AttributeTypeAndValues ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+AttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+AddResponse ::= [APPLICATION 9] LDAPResult
+
+DelRequest ::= [APPLICATION 10] LDAPDN
+
+DelResponse ::= [APPLICATION 11] LDAPResult
+
+ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+-- Wahl, et. al. Standards Track [Page 48]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+CompareResponse ::= [APPLICATION 15] LDAPResult
+
+AbandonRequest ::= [APPLICATION 16] MessageID
+
+ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ response [11] OCTET STRING OPTIONAL }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-InterNodeDefinitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-InterNodeDefinitions.asn
new file mode 100644
index 0000000000..5e6313dc02
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-InterNodeDefinitions.asn
@@ -0,0 +1,123 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+HandoverCommand ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverCommand-r8 HandoverCommand-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+HandoverPreparationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
+ as-Config AS-Config OPTIONAL, -- Cond HO
+ rrm-Config RRM-Config OPTIONAL,
+ as-Context AS-Context OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioAccessCapabilityInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation-r8
+ UERadioAccessCapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+AS-Config ::= SEQUENCE {
+ sourceMeasConfig MeasConfig,
+ sourceRadioResourceConfig RadioResourceConfigDedicated,
+ sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
+ sourceUE-Identity C-RNTI,
+ sourceMasterInformationBlock MasterInformationBlock,
+ sourceSystemInformationBlockType1 SystemInformationBlockType1,
+ sourceSystemInformationBlockType2 SystemInformationBlockType2,
+ antennaInfoCommon AntennaInfoCommon,
+ sourceDl-CarrierFreq ARFCN-ValueEUTRA,
+ ...
+}
+
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
+}
+
+
+ReestablishmentInfo ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellShortMAC-I ShortMAC-I,
+ additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
+ ...
+}
+
+AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
+
+AdditionalReestabInfo ::= SEQUENCE{
+ cellIdentity CellIdentity,
+ key-eNodeB-Star Key-eNodeB-Star,
+ shortMAC-I ShortMAC-I
+}
+
+Key-eNodeB-Star ::= BIT STRING (SIZE (256))
+
+
+RRM-Config ::= SEQUENCE {
+ ue-InactiveTime ENUMERATED {
+ s1, s2, s3, s5, s7, s10, s15, s20,
+ s25, s30, s40, s50, min1, min1s20c, min1s40,
+ min2, min2s30, min3, min3s30, min4, min5, min6,
+ min7, min8, min9, min10, min12, min14, min17, min20,
+ min24, min28, min33, min38, min44, min50, hr1,
+ hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
+ hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
+ day2hr12, day3, day4, day5, day7, day10, day14, day19,
+ day24, day30, dayMoreThan30} OPTIONAL,
+ ...
+}
+
+
+maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
+ -- at handover for re-establishment preparation
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-RRC-Definitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-RRC-Definitions.asn
new file mode 100644
index 0000000000..a451874ef0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-RRC-Definitions.asn
@@ -0,0 +1,2640 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformationBlockType1 SystemInformationBlockType1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ paging Paging
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-CCCH-Message ::= SEQUENCE {
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishment RRCConnectionReestablishment,
+ rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject,
+ rrcConnectionReject RRCConnectionReject,
+ rrcConnectionSetup RRCConnectionSetup
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-DCCH-Message ::= SEQUENCE {
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000,
+ dlInformationTransfer DLInformationTransfer,
+ handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest,
+ mobilityFromEUTRACommand MobilityFromEUTRACommand,
+ rrcConnectionReconfiguration RRCConnectionReconfiguration,
+ rrcConnectionRelease RRCConnectionRelease,
+ securityModeCommand SecurityModeCommand,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ counterCheck CounterCheck,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-CCCH-Message ::= SEQUENCE {
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest,
+ rrcConnectionRequest RRCConnectionRequest
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-DCCH-Message ::= SEQUENCE {
+ message UL-DCCH-MessageType
+}
+
+UL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000,
+ measurementReport MeasurementReport,
+ rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete,
+ rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete,
+ rrcConnectionSetupComplete RRCConnectionSetupComplete,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ ueCapabilityInformation UECapabilityInformation,
+ ulHandoverPreparationTransfer ULHandoverPreparationTransfer,
+ ulInformationTransfer ULInformationTransfer,
+ counterCheckResponse CounterCheckResponse,
+ spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+CounterCheck ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ counterCheck-r8 CounterCheck-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheck-r8-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoList DRB-CountMSB-InfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+DRB-CountMSB-InfoList::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-Info ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ countMSB-Uplink INTEGER(0..33554431),
+ countMSB-Downlink INTEGER(0..33554431)
+}
+
+
+CounterCheckResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheckResponse-r8 CounterCheckResponse-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheckResponse-r8-IEs ::= SEQUENCE {
+ drb-CountInfoList DRB-CountInfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo
+
+DRB-CountInfo ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ count-Uplink INTEGER(0..4294967295),
+ count-Downlink INTEGER(0..4294967295)
+}
+
+
+CSFBParametersRequestCDMA2000 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CSFBParametersResponseCDMA2000 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE {
+ rand RAND-CDMA2000,
+ mobilityParameters MobilityParametersCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+DLInformationTransfer ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r8 DLInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+HandoverFromEUTRAPreparationRequest ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ handoverFromEUTRAPreparationRequest-r8
+ HandoverFromEUTRAPreparationRequest-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ phich-Config PHICH-Config,
+ systemFrameNumber BIT STRING (SIZE (8)),
+ spare BIT STRING (SIZE (10))
+}
+
+
+
+MeasurementReport ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ measurementReport-r8 MeasurementReport-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MeasurementReport-r8-IEs ::= SEQUENCE {
+ measResults MeasResults,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MobilityFromEUTRACommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+Handover ::= SEQUENCE {
+ targetRAT-Type ENUMERATED {
+ utra, geran, cdma2000-1XRTT, cdma2000-HRPD,
+ spare4, spare3, spare2, spare1, ...},
+ targetRAT-MessageContainer OCTET STRING,
+ nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO
+}
+
+CellChangeOrder ::= SEQUENCE {
+ t304 ENUMERATED {
+ ms100, ms200, ms500, ms1000,
+ ms2000, ms4000, ms8000, spare1},
+ targetRAT-Type CHOICE {
+ geran SEQUENCE {
+ physCellId PhysCellIdGERAN,
+ carrierFreq CarrierFreqGERAN,
+ networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP
+ },
+ ...
+ }
+}
+
+SI-OrPSI-GERAN ::= CHOICE {
+ si SystemInfoListGERAN,
+ psi SystemInfoListGERAN
+}
+
+SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
+ OCTET STRING (SIZE (1..23))
+
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need ON
+ systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
+ etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord
+
+PagingRecord ::= SEQUENCE {
+ ue-Identity PagingUE-Identity,
+ cn-Domain ENUMERATED {ps, cs},
+ ...
+}
+
+PagingUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ imsi IMSI,
+ ...
+}
+
+IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit
+
+IMSI-Digit::= INTEGER (0..9)
+
+
+RRCConnectionReconfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE {
+ measConfig MeasConfig OPTIONAL, -- Need ON
+ mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO
+ dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF
+ DedicatedInfoNAS OPTIONAL, -- Cond nonHO
+ radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA
+ securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigHO ::= SEQUENCE {
+ handoverType CHOICE {
+ intraLTE SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need OP
+ keyChangeIndicator BOOLEAN,
+ nextHopChainingCount NextHopChainingCount
+ },
+ interRAT SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ nas-SecurityParamToEUTRA OCTET STRING (SIZE(6))
+ }
+ },
+ ...
+}
+
+
+RRCConnectionReconfigurationComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReconfigurationComplete-r8
+ RRCConnectionReconfigurationComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishment ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishment-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nextHopChainingCount NextHopChainingCount,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r8
+ RRCConnectionReestablishmentComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentReject-r8
+ RRCConnectionReestablishmentReject-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentRequest-r8
+ RRCConnectionReestablishmentRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity ReestabUE-Identity,
+ reestablishmentCause ReestablishmentCause,
+ spare BIT STRING (SIZE (2))
+}
+
+ReestabUE-Identity ::= SEQUENCE {
+ c-RNTI C-RNTI,
+ physCellId PhysCellId,
+ shortMAC-I ShortMAC-I
+}
+
+ReestablishmentCause ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure,
+ otherFailure, spare1}
+
+
+RRCConnectionReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionReject-r8 RRCConnectionReject-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-r8-IEs ::= SEQUENCE {
+ waitTime INTEGER (1..16),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionRelease ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRelease-r8-IEs ::= SEQUENCE {
+ releaseCause ReleaseCause,
+ redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON
+ idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
+ other,spare2, spare1 }
+
+RedirectedCarrierInfo ::= CHOICE {
+ eutra ARFCN-ValueEUTRA,
+ geran CarrierFreqsGERAN,
+ utra-FDD ARFCN-ValueUTRA,
+ utra-TDD ARFCN-ValueUTRA,
+ cdma2000-HRPD CarrierFreqCDMA2000,
+ cdma2000-1xRTT CarrierFreqCDMA2000,
+ ...
+}
+
+IdleModeMobilityControlInfo ::= SEQUENCE {
+ freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON
+ freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON
+ freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON
+ freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON
+ bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON
+ bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON
+ t320 ENUMERATED {
+ min5, min10, min20, min30, min60, min120, min180,
+ spare1} OPTIONAL, -- Need OR
+ ...
+}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN
+
+FreqsPriorityGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD
+
+FreqPriorityUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD
+
+FreqPriorityUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD
+
+BandClassPriorityHRPD ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT
+
+BandClassPriority1XRTT ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+RRCConnectionRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+InitialUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ randomValue BIT STRING (SIZE (40))
+}
+
+EstablishmentCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, spare3, spare2, spare1}
+
+
+RRCConnectionSetup ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetup-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionSetupComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE {
+ selectedPLMN-Identity INTEGER (1..6),
+ registeredMME RegisteredMME OPTIONAL,
+ dedicatedInfoNAS DedicatedInfoNAS,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RegisteredMME ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ mmegi BIT STRING (SIZE (16)),
+ mmec MMEC
+}
+
+
+SecurityModeCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ securityModeCommand-r8 SecurityModeCommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeCommand-r8-IEs ::= SEQUENCE {
+ securityConfigSMC SecurityConfigSMC,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete-r8 SecurityModeComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure-r8 SecurityModeFailure-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInfo SEQUENCE {
+ plmn-IdentityList PLMN-IdentityList,
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred ENUMERATED {barred, notBarred},
+ intraFreqReselection ENUMERATED {allowed, notAllowed},
+ csg-Indication BOOLEAN,
+ csg-Identity BIT STRING (SIZE (27)) OPTIONAL -- Need OR
+ },
+ cellSelectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP
+ },
+ p-Max P-Max OPTIONAL, -- Need OP
+ freqBandIndicator INTEGER (1..64),
+ schedulingInfoList SchedulingInfoList,
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ si-WindowLength ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,
+ ms40},
+ systemInfoValueTag INTEGER (0..31),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo
+
+PLMN-IdentityInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse ENUMERATED {reserved, notReserved}
+}
+
+SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo
+
+SchedulingInfo ::= SEQUENCE {
+ si-Periodicity ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo SIB-MappingInfo
+}
+
+SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type
+
+SIB-Type ::= ENUMERATED {
+ sibType3, sibType4, sibType5, sibType6,
+ sibType7, sibType8, sibType9, sibType10,
+ sibType11, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1, ...}
+
+
+UECapabilityEnquiry ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRequest UE-CapabilityRequest,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type
+
+
+UECapabilityInformation ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULHandoverPreparationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ meid BIT STRING (SIZE (56)) OPTIONAL,
+ dedicatedInfo DedicatedInfoCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulInformationTransfer-r8 ULInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType2 ::= SEQUENCE {
+ ac-BarringInfo SEQUENCE {
+ ac-BarringForEmergency BOOLEAN,
+ ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ radioResourceConfigCommon RadioResourceConfigCommonSIB,
+ ue-TimersAndConstants UE-TimersAndConstants,
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ timeAlignmentTimerCommon TimeAlignmentTimer,
+ ...
+}
+
+AC-BarringConfig ::= SEQUENCE {
+ ac-BarringFactor ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ ac-BarringForSpecialAC BIT STRING (SIZE(5))
+}
+
+MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+MBSFN-SubframeConfig ::= SEQUENCE {
+ radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32},
+ radioframeAllocationOffset INTEGER (0..7),
+ subframeAllocation CHOICE {
+ oneFrame BIT STRING (SIZE(6)),
+ fourFrames BIT STRING (SIZE(24))
+ }
+}
+
+SystemInformationBlockType3 ::= SEQUENCE {
+ cellReselectionInfoCommon SEQUENCE {
+ q-Hyst ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ speedStateReselectionPars SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ q-HystSF SEQUENCE {
+ sf-Medium ENUMERATED {
+ dB-6, dB-4, dB-2, dB0},
+ sf-High ENUMERATED {
+ dB-6, dB-4, dB-2, dB0}
+ }
+ } OPTIONAL -- Need OP
+ },
+ cellReselectionServingFreqInfo SEQUENCE {
+ s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ threshServingLow ReselectionThreshold,
+ cellReselectionPriority CellReselectionPriority
+ },
+ intraFreqCellReselectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+ },
+ ...
+}
+
+
+SystemInformationBlockType4 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
+ csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
+ ...
+}
+
+IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
+
+IntraFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ ...
+}
+
+IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType5 ::= SEQUENCE {
+ interFreqCarrierFreqList InterFreqCarrierFreqList,
+ ...
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqInfo ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig NeighCellConfig,
+ q-OffsetFreq Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR
+ ...
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType6 ::= SEQUENCE {
+ carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR
+ carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR
+ t-ReselectionUTRA T-Reselection,
+ t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD
+
+CarrierFreqUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ q-QualMin INTEGER (-24..0),
+ ...
+}
+
+CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD
+
+CarrierFreqUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ ...
+}
+
+
+SystemInformationBlockType7 ::= SEQUENCE {
+ t-ReselectionGERAN T-Reselection,
+ t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
+ carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
+ ...
+}
+
+CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN
+
+CarrierFreqsInfoGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ commonInfo SEQUENCE {
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ ncc-Permitted BIT STRING (SIZE (8)),
+ q-RxLevMin INTEGER (0..45),
+ p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold
+ },
+ ...
+}
+
+
+SystemInformationBlockType8 ::= SEQUENCE {
+ systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR
+ parametersHRPD SEQUENCE {
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT SEQUENCE {
+ csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR
+ cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+CellReselectionParametersCDMA2000 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList NeighCellListCDMA2000,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
+
+NeighCellCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
+}
+
+NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
+
+NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList PhysCellIdListCDMA2000
+}
+
+PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000
+
+BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000
+
+BandClassInfoCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High INTEGER (0..63),
+ threshX-Low INTEGER (0..63),
+ ...
+}
+
+
+SystemInformationBlockType9 ::= SEQUENCE {
+ hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType10 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ warningSecurityInfo OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP
+ ...
+}
+
+
+SystemInformationBlockType11 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ ...
+}
+
+
+AntennaInfoCommon ::= SEQUENCE {
+ antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
+}
+
+AntennaInfoDedicated ::= SEQUENCE {
+ transmissionMode ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6,
+ tm7, spare1},
+ codebookSubsetRestriction CHOICE {
+ n2TxAntenna-tm3 BIT STRING (SIZE (2)),
+ n4TxAntenna-tm3 BIT STRING (SIZE (4)),
+ n2TxAntenna-tm4 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm4 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm5 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm5 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm6 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm6 BIT STRING (SIZE (16))
+ } OPTIONAL, -- Cond TM
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+
+CQI-ReportConfig ::= SEQUENCE {
+ cqi-ReportModeAperiodic ENUMERATED {
+ rm12, rm20, rm22, rm30, rm31,
+ spare3, spare2, spare1} OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
+}
+
+CQI-ReportPeriodic ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex INTEGER (0.. 1185),
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic CHOICE {
+ widebandCQI NULL,
+ subbandCQI SEQUENCE {
+ k INTEGER (1..4)
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN
+ }
+}
+
+
+DRB-Identity ::= INTEGER (1..32)
+
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {
+ kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
+ kBps256, infinity, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2, spare1},
+ bucketSizeDuration ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500, ms1000, spare2,
+ spare1},
+ logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond UL
+ ...
+}
+
+
+MAC-MainConfig ::= SEQUENCE {
+ ul-SCH-Config SEQUENCE {
+ maxHARQ-Tx ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n7, n8,
+ n10, n12, n16, n20, n24, n28,
+ spare2, spare1} OPTIONAL, -- Need ON
+ periodicBSR-Timer ENUMERATED {
+ sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1280, sf2560,
+ infinity, spare1} OPTIONAL, -- Need ON
+ retxBSR-Timer ENUMERATED {
+ sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240, spare2, spare1},
+ ttiBundling BOOLEAN
+ } OPTIONAL, -- Need ON
+ drx-Config DRX-Config OPTIONAL, -- Need ON
+ timeAlignmentTimerDedicated TimeAlignmentTimer,
+ phr-Config CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200,
+ sf500, sf1000, infinity},
+ prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100,
+ sf200, sf500, sf1000},
+ dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity}
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+DRX-Config ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ onDurationTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200, psf300, psf500, psf750,
+ psf1280, psf1920, psf2560, spare10,
+ spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ drx-RetransmissionTimer ENUMERATED {
+ psf1, psf2, psf4, psf6, psf8, psf16,
+ psf24, psf33},
+ longDRX-CycleStartOffset CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf1280 INTEGER(0..1279),
+ sf2048 INTEGER(0..2047),
+ sf2560 INTEGER(0..2559)
+ },
+ shortDRX SEQUENCE {
+ shortDRX-Cycle ENUMERATED {
+ sf2, sf5, sf8, sf10, sf16, sf20,
+ sf32, sf40, sf64, sf80, sf128, sf160,
+ sf256, sf320, sf512, sf640},
+ drxShortCycleTimer INTEGER (1..16)
+ } OPTIONAL -- Need OR
+ }
+}
+
+
+PDCP-Config ::= SEQUENCE {
+ discardTimer ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500,
+ ms750, ms1500, infinity
+ } OPTIONAL, -- Cond Setup
+ rlc-AM SEQUENCE {
+ statusReportRequired BOOLEAN
+ } OPTIONAL, -- Cond Rlc-AM
+ rlc-UM SEQUENCE {
+ pdcp-SN-Size ENUMERATED {len7bits, len12bits}
+ } OPTIONAL, -- Cond Rlc-UM
+ headerCompression CHOICE {
+ notUsed NULL,
+ rohc SEQUENCE {
+ maxCID INTEGER (1..16383) DEFAULT 15,
+ profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ ...
+ }
+ },
+ ...
+}
+
+
+PDSCH-ConfigCommon::= SEQUENCE {
+ referenceSignalPower INTEGER (-60..50),
+ p-b INTEGER (0..3)
+}
+
+PDSCH-ConfigDedicated::= SEQUENCE {
+ p-a ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3 }
+}
+
+
+PHICH-Config ::= SEQUENCE {
+ phich-Duration ENUMERATED {normal, extended},
+ phich-Resource ENUMERATED {oneSixth, half, one, two}
+}
+
+
+PhysicalConfigDedicated ::= SEQUENCE {
+ pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON
+ pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON
+ pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ antennaInfo CHOICE {
+ explicitValue AntennaInfoDedicated,
+ defaultValue NULL
+ } OPTIONAL, -- Need ON
+ schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
+ ...
+}
+
+
+P-Max ::= INTEGER (-30..33)
+
+
+PRACH-ConfigSIB ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo
+}
+
+PRACH-Config ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
+}
+
+PRACH-ConfigInfo ::= SEQUENCE {
+ prach-ConfigIndex INTEGER (0..63),
+ highSpeedFlag BOOLEAN,
+ zeroCorrelationZoneConfig INTEGER (0..15),
+ prach-FreqOffset INTEGER (0..94)
+}
+
+
+PresenceAntennaPort1 ::= BOOLEAN
+
+
+PUCCH-ConfigCommon ::= SEQUENCE {
+ deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3},
+ nRB-CQI INTEGER (0..98),
+ nCS-AN INTEGER (0..7),
+ n1PUCCH-AN INTEGER (0..2047)
+}
+
+PUCCH-ConfigDedicated ::= SEQUENCE {
+ ackNackRepetition CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ repetitionFactor ENUMERATED { n2, n4, n6, spare1},
+ n1PUCCH-AN-Rep INTEGER (0..2047)
+ }
+ },
+ tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD
+}
+
+
+PUSCH-ConfigCommon ::= SEQUENCE {
+ pusch-ConfigBasic SEQUENCE {
+ n-SB INTEGER (1..4),
+ hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame},
+ pusch-HoppingOffset INTEGER (0..98),
+ enable64QAM BOOLEAN
+ },
+ ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH
+}
+
+PUSCH-ConfigDedicated ::= SEQUENCE {
+ betaOffset-ACK-Index INTEGER (0..15),
+ betaOffset-RI-Index INTEGER (0..15),
+ betaOffset-CQI-Index INTEGER (0..15)
+}
+
+UL-ReferenceSignalsPUSCH ::= SEQUENCE {
+ groupHoppingEnabled BOOLEAN,
+ groupAssignmentPUSCH INTEGER (0..29),
+ sequenceHoppingEnabled BOOLEAN,
+ cyclicShift INTEGER (0..7)
+}
+
+
+RACH-ConfigCommon ::= SEQUENCE {
+ preambleInfo SEQUENCE {
+ numberOfRA-Preambles ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60, n64},
+ preamblesGroupAConfig SEQUENCE {
+ sizeOfRA-PreamblesGroupA ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60},
+ messageSizeGroupA ENUMERATED {b56, b144, b208, b256},
+ messagePowerOffsetGroupB ENUMERATED {
+ minusinfinity, dB0, dB5, dB8, dB10, dB12,
+ dB15, dB18},
+ ...
+ } OPTIONAL -- Need OP
+ },
+ powerRampingParameters SEQUENCE {
+ powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6},
+ preambleInitialReceivedTargetPower ENUMERATED {
+ dBm-120, dBm-118, dBm-116, dBm-114, dBm-112,
+ dBm-110, dBm-108, dBm-106, dBm-104, dBm-102,
+ dBm-100, dBm-98, dBm-96, dBm-94,
+ dBm-92, dBm-90}
+ },
+ ra-SupervisionInfo SEQUENCE {
+ preambleTransMax ENUMERATED {
+ n3, n4, n5, n6, n7, n8, n10, n20, n50,
+ n100, n200},
+ ra-ResponseWindowSize ENUMERATED {
+ sf2, sf3, sf4, sf5, sf6, sf7,
+ sf8, sf10},
+ mac-ContentionResolutionTimer ENUMERATED {
+ sf8, sf16, sf24, sf32, sf40, sf48,
+ sf56, sf64}
+ },
+ maxHARQ-Msg3Tx INTEGER (1..8),
+ ...
+}
+
+
+RACH-ConfigDedicated ::= SEQUENCE {
+ ra-PreambleIndex INTEGER (0..63),
+ ra-PRACH-MaskIndex INTEGER (0..15)
+}
+
+
+RadioResourceConfigCommonSIB ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon,
+ bcch-Config BCCH-Config,
+ pcch-Config PCCH-Config,
+ prach-Config PRACH-ConfigSIB,
+ pdsch-ConfigCommon PDSCH-ConfigCommon,
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ pucch-ConfigCommon PUCCH-ConfigCommon,
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon,
+ uplinkPowerControlCommon UplinkPowerControlCommon,
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+RadioResourceConfigCommon ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON
+ prach-Config PRACH-Config,
+ pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ phich-Config PHICH-Config OPTIONAL, -- Need ON
+ pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON
+ uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON
+ antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+BCCH-Config ::= SEQUENCE {
+ modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}
+}
+
+PCCH-Config ::= SEQUENCE {
+ defaultPagingCycle ENUMERATED {
+ rf32, rf64, rf128, rf256},
+ nB ENUMERATED {
+ fourT, twoT, oneT, halfT, quarterT, oneEighthT,
+ oneSixteenthT, oneThirtySecondT}
+}
+
+UL-CyclicPrefixLength ::= ENUMERATED {len1, len2}
+
+
+RadioResourceConfigDedicated ::= SEQUENCE {
+ srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn
+ drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA
+ drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON
+ mac-MainConfig CHOICE {
+ explicitValue MAC-MainConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond HO-toEUTRA2
+ sps-Config SPS-Config OPTIONAL, -- Need ON
+ physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON
+ ...
+}
+
+SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
+
+SRB-ToAddMod ::= SEQUENCE {
+ srb-Identity INTEGER (1..2),
+ rlc-Config CHOICE {
+ explicitValue RLC-Config,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ logicalChannelConfig CHOICE {
+ explicitValue LogicalChannelConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod
+
+DRB-ToAddMod ::= SEQUENCE {
+ eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity DRB-Identity,
+ pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP
+ rlc-Config RLC-Config OPTIONAL, -- Cond Setup
+ logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup
+ logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
+
+
+RLC-Config ::= CHOICE {
+ am SEQUENCE {
+ ul-AM-RLC UL-AM-RLC,
+ dl-AM-RLC DL-AM-RLC
+ },
+ um-Bi-Directional SEQUENCE {
+ ul-UM-RLC UL-UM-RLC,
+ dl-UM-RLC DL-UM-RLC
+ },
+ um-Uni-Directional-UL SEQUENCE {
+ ul-UM-RLC UL-UM-RLC
+ },
+ um-Uni-Directional-DL SEQUENCE {
+ dl-UM-RLC DL-UM-RLC
+ },
+ ...
+}
+
+UL-AM-RLC ::= SEQUENCE {
+ t-PollRetransmit T-PollRetransmit,
+ pollPDU PollPDU,
+ pollByte PollByte,
+ maxRetxThreshold ENUMERATED {
+ t1, t2, t3, t4, t6, t8, t16, t32}
+}
+
+DL-AM-RLC ::= SEQUENCE {
+ t-Reordering T-Reordering,
+ t-StatusProhibit T-StatusProhibit
+}
+
+UL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength
+}
+
+DL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength,
+ t-Reordering T-Reordering
+}
+
+SN-FieldLength ::= ENUMERATED {size5, size10}
+
+T-PollRetransmit ::= ENUMERATED {
+ ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1}
+
+PollPDU ::= ENUMERATED {
+ p4, p8, p16, p32, p64, p128, p256, pInfinity}
+
+PollByte ::= ENUMERATED {
+ kB25, kB50, kB75, kB100, kB125, kB250, kB375,
+ kB500, kB750, kB1000, kB1250, kB1500, kB2000,
+ kB3000, kBinfinity, spare1}
+
+T-Reordering ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms110,
+ ms120, ms130, ms140, ms150, ms160, ms170,
+ ms180, ms190, ms200, spare1}
+
+T-StatusProhibit ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare8, spare7,
+ spare6, spare5, spare4, spare3, spare2,
+ spare1}
+
+
+SchedulingRequestConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex INTEGER (0..2047),
+ sr-ConfigIndex INTEGER (0..155),
+ dsr-TransMax ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+
+SoundingRS-UL-ConfigCommon ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7},
+ srs-SubframeConfig ENUMERATED {
+ sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7,
+ sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15},
+ ackNackSRS-SimultaneousTransmission BOOLEAN,
+ srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD
+ }
+}
+
+SoundingRS-UL-ConfigDedicated ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition INTEGER (0..23),
+ duration BOOLEAN,
+ srs-ConfigIndex INTEGER (0..1023),
+ transmissionComb INTEGER (0..1),
+ cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+ }
+}
+
+
+
+SPS-Config ::= SEQUENCE {
+ semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON
+ sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON
+}
+
+SPS-ConfigDL ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalDL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ numberOfConfSPS-Processes INTEGER (1..8),
+ n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList,
+ ...
+ }
+}
+
+SPS-ConfigUL ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalUL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ implicitReleaseAfter ENUMERATED {e2, e3, e4, e8},
+ p0-Persistent SEQUENCE {
+ p0-NominalPUSCH-Persistent INTEGER (-126..24),
+ p0-UE-PUSCH-Persistent INTEGER (-8..7)
+ } OPTIONAL, -- Need OP
+ twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD
+ ...
+ }
+}
+
+N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+
+TDD-Config ::= SEQUENCE {
+ subframeAssignment ENUMERATED {
+ sa0, sa1, sa2, sa3, sa4, sa5, sa6},
+ specialSubframePatterns ENUMERATED {
+ ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7,
+ ssp8}
+}
+
+
+TimeAlignmentTimer ::= ENUMERATED {
+ sf500, sf750, sf1280, sf1920, sf2560, sf5120,
+ sf10240, infinity}
+
+TPC-PDCCH-Config::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-RNTI BIT STRING (SIZE (16)),
+ tpc-Index TPC-Index
+ }
+}
+
+TPC-Index ::= CHOICE {
+ indexOfFormat3 INTEGER (1..15),
+ indexOfFormat3A INTEGER (1..31)
+}
+
+
+UplinkPowerControlCommon ::= SEQUENCE {
+ p0-NominalPUSCH INTEGER (-126..24),
+ alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1},
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaPreambleMsg3 INTEGER (-1..6)
+}
+
+UplinkPowerControlDedicated ::= SEQUENCE {
+ p0-UE-PUSCH INTEGER (-8..7),
+ deltaMCS-Enabled ENUMERATED {en0, en1},
+ accumulationEnabled BOOLEAN,
+ p0-UE-PUCCH INTEGER (-8..7),
+ pSRS-Offset INTEGER (0..15),
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+DeltaFList-PUCCH ::= SEQUENCE {
+ deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5},
+ deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2},
+ deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2}
+}
+
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+
+SecurityAlgorithmConfig ::= SEQUENCE {
+ cipheringAlgorithm ENUMERATED {
+ eea0, eea1, eea2, spare5, spare4, spare3,
+ spare2, spare1, ...},
+ integrityProtAlgorithm ENUMERATED {
+ reserved, eia1, eia2, spare5, spare4, spare3,
+ spare2, spare1, ...}
+}
+
+
+ShortMAC-I ::= BIT STRING (SIZE (16))
+
+
+AdditionalSpectrumEmission ::= INTEGER (1..32)
+
+
+ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
+
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+
+ARFCN-ValueGERAN ::= INTEGER (0..1023)
+
+
+ARFCN-ValueUTRA ::= INTEGER (0..16383)
+
+
+BandclassCDMA2000 ::= ENUMERATED {
+ bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8,
+ bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16,
+ bc17, spare14, spare13, spare12, spare11, spare10,
+ spare9, spare8, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1, ...}
+
+
+BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900}
+
+
+CarrierFreqCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ arfcn ARFCN-ValueCDMA2000
+}
+
+
+CarrierFreqGERAN ::= SEQUENCE {
+ arfcn ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN
+}
+
+
+CarrierFreqsGERAN ::= SEQUENCE {
+ startingARFCN ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN,
+ followingARFCNs CHOICE {
+ explicitListOfARFCNs ExplicitListOfARFCNs,
+ equallySpacedARFCNs SEQUENCE {
+ arfcn-Spacing INTEGER (1..8),
+ numberOfFollowingARFCNs INTEGER (0..31)
+ },
+ variableBitMapOfARFCNs OCTET STRING (SIZE (1..16))
+ }
+}
+
+ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN
+
+
+CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD}
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+
+CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex
+
+CellIndex ::= INTEGER (1..maxCellMeas)
+
+
+CellReselectionPriority ::= INTEGER (0..7)
+
+
+CSFB-RegistrationParam1XRTT ::= SEQUENCE {
+ sid BIT STRING (SIZE (15)),
+ nid BIT STRING (SIZE (16)),
+ multipleSID BOOLEAN,
+ multipleNID BOOLEAN,
+ homeReg BOOLEAN,
+ foreignSIDReg BOOLEAN,
+ foreignNIDReg BOOLEAN,
+ parameterReg BOOLEAN,
+ powerUpReg BOOLEAN,
+ registrationPeriod BIT STRING (SIZE (7)),
+ registrationZone BIT STRING (SIZE (12)),
+ totalZone BIT STRING (SIZE (3)),
+ zoneTimer BIT STRING (SIZE (3))
+}
+
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity
+}
+
+
+CellGlobalIdUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28))
+}
+
+
+CellGlobalIdGERAN ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16))
+}
+
+
+CellGlobalIdCDMA2000 ::= CHOICE {
+ cellGlobalId1XRTT BIT STRING (SIZE (47)),
+ cellGlobalIdHRPD BIT STRING (SIZE (128))
+}
+
+
+MobilityControlInfo ::= SEQUENCE {
+ targetPhysCellId PhysCellId,
+ carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA
+ t304 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, spare1},
+ newUE-Identity C-RNTI,
+ radioResourceConfigCommon RadioResourceConfigCommon,
+ rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierBandwidthEUTRA ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1},
+ ul-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL -- Need OP
+}
+
+CarrierFreqEUTRA ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD
+}
+
+
+MobilityParametersCDMA2000 ::= OCTET STRING
+
+
+MobilityStateParameters ::= SEQUENCE {
+ t-Evaluation ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ t-HystNormal ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ n-CellChangeMedium INTEGER (1..16),
+ n-CellChangeHigh INTEGER (1..16)
+}
+
+
+PhysCellId ::= INTEGER (0..503)
+
+
+PhysCellIdRange ::= SEQUENCE {
+ start PhysCellId,
+ range ENUMERATED {
+ n4, n8, n12, n16, n24, n32, n48, n64, n84,
+ n96, n128, n168, n252, n504, spare2,
+ spare1} OPTIONAL -- Need OP
+}
+
+
+PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset)
+
+
+PhysCellIdGERAN ::= SEQUENCE {
+ networkColourCode BIT STRING (SIZE (3)),
+ baseStationColourCode BIT STRING (SIZE (3))
+}
+
+
+PhysCellIdUTRA-FDD ::= INTEGER (0..511)
+
+
+PhysCellIdUTRA-TDD ::= INTEGER (0..127)
+
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL, -- Cond MCC
+ mnc MNC
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+ MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+
+
+PreRegistrationInfoHRPD ::= SEQUENCE {
+ preRegistrationAllowed BOOLEAN,
+ preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed
+ secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR
+}
+
+SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD
+
+PreRegistrationZoneIdHRPD ::= INTEGER (0..255)
+
+
+Q-RxLevMin ::= INTEGER (-70..-22)
+
+
+Q-OffsetRange ::= ENUMERATED {
+ dB-24, dB-22, dB-20, dB-18, dB-16, dB-14,
+ dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3,
+ dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5,
+ dB6, dB8, dB10, dB12, dB14, dB16, dB18,
+ dB20, dB22, dB24}
+
+
+Q-OffsetRangeInterRAT ::= INTEGER (-15..15)
+
+
+ReselectionThreshold ::= INTEGER (0..31)
+
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+
+SystemTimeInfoCDMA2000 ::= SEQUENCE {
+ cdma-EUTRA-Synchronisation BOOLEAN,
+ cdma-SystemTime CHOICE {
+ synchronousSystemTime BIT STRING (SIZE (39)),
+ asynchronousSystemTime BIT STRING (SIZE (49))
+ }
+}
+
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+
+
+T-Reselection ::= INTEGER (0..7)
+
+
+AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
+
+
+Hysteresis ::= INTEGER (0..30)
+
+
+MeasConfig ::= SEQUENCE {
+ -- Measurement objects
+ measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON
+ measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON
+ -- Reporting configurations
+ reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON
+ reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON
+ -- Measurement identities
+ measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON
+ measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL, -- Need ON
+ measGapConfig MeasGapConfig OPTIONAL, -- Need ON
+ s-Measure RSRP-Range OPTIONAL, -- Need ON
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
+
+MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
+
+ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
+
+
+MeasGapConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffset CHOICE {
+ gp0 INTEGER (0..39),
+ gp1 INTEGER (0..79),
+ ...
+ }
+ }
+}
+
+
+MeasId ::= INTEGER (1..maxMeasId)
+
+
+MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
+
+MeasIdToAddMod ::= SEQUENCE {
+ measId MeasId,
+ measObjectId MeasObjectId,
+ reportConfigId ReportConfigId
+}
+
+
+MeasObjectCDMA2000 ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ carrierFreq CarrierFreqCDMA2000,
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000
+
+CellsToAddModCDMA2000 ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdCDMA2000
+}
+
+
+MeasObjectEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ offsetFreq Q-OffsetRange DEFAULT dB0,
+ -- Neighbour cell list
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON
+ -- Black list
+ blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod
+
+CellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellId,
+ cellIndividualOffset Q-OffsetRange
+}
+
+BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod
+
+BlackCellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellIdRange PhysCellIdRange
+}
+
+
+MeasObjectGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B,
+ cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON
+ ...
+}
+
+
+MeasObjectId ::= INTEGER (1..maxObjectId)
+
+
+MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectEUTRA MeasObjectEUTRA,
+ measObjectUTRA MeasObjectUTRA,
+ measObjectGERAN MeasObjectGERAN,
+ measObjectCDMA2000 MeasObjectCDMA2000,
+ ...
+ }
+}
+
+
+MeasObjectUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CHOICE {
+ cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD,
+ cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD
+ } OPTIONAL, -- Need ON
+ cellForWhichToReportCGI CHOICE {
+ utra-FDD PhysCellIdUTRA-FDD,
+ utra-TDD PhysCellIdUTRA-TDD
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD
+
+CellsToAddModUTRA-FDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-FDD
+}
+
+CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD
+
+CellsToAddModUTRA-TDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-TDD
+}
+
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultServCell SEQUENCE {
+ rsrpResult RSRP-Range,
+ rsrqResult RSRQ-Range
+ },
+ measResultNeighCells CHOICE {
+ measResultListEUTRA MeasResultListEUTRA,
+ measResultListUTRA MeasResultListUTRA,
+ measResultListGERAN MeasResultListGERAN,
+ measResultsCDMA2000 MeasResultsCDMA2000,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA
+
+MeasResultUTRA ::= SEQUENCE {
+ physCellId CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdUTRA,
+ locationAreaCode BIT STRING (SIZE (16)) OPTIONAL,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ utra-RSCP INTEGER (-5..91) OPTIONAL,
+ utra-EcN0 INTEGER (0..49) OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN
+
+MeasResultGERAN ::= SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdGERAN,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rssi INTEGER (0..63),
+ ...
+ }
+}
+
+MeasResultsCDMA2000 ::= SEQUENCE {
+ preRegistrationStatusHRPD BOOLEAN,
+ measResultListCDMA2000 MeasResultListCDMA2000
+}
+
+MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000
+
+MeasResultCDMA2000 ::= SEQUENCE {
+ physCellId PhysCellIdCDMA2000,
+ cgi-Info CellGlobalIdCDMA2000 OPTIONAL,
+ measResult SEQUENCE {
+ pilotPnPhase INTEGER (0..32767) OPTIONAL,
+ pilotStrength INTEGER (0..63),
+ ...
+ }
+}
+
+PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
+ quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
+ quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
+ quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+QuantityConfigEUTRA ::= SEQUENCE {
+ filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
+ filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA ::= SEQUENCE {
+ measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
+ measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigGERAN ::= SEQUENCE {
+ measQuantityGERAN ENUMERATED {rssi},
+ filterCoefficient FilterCoefficient DEFAULT fc2
+}
+
+QuantityConfigCDMA2000 ::= SEQUENCE {
+ measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength}
+}
+
+
+ReportConfigEUTRA ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventA1 SEQUENCE {
+ a1-Threshold ThresholdEUTRA
+ },
+ eventA2 SEQUENCE {
+ a2-Threshold ThresholdEUTRA
+ },
+ eventA3 SEQUENCE {
+ a3-Offset INTEGER (-30..30),
+ reportOnLeave BOOLEAN
+ },
+ eventA4 SEQUENCE {
+ a4-Threshold ThresholdEUTRA
+ },
+ eventA5 SEQUENCE {
+ a5-Threshold1 ThresholdEUTRA,
+ a5-Threshold2 ThresholdEUTRA
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells, reportCGI}
+ }
+ },
+ triggerQuantity ENUMERATED {rsrp, rsrq},
+ reportQuantity ENUMERATED {sameAsTriggerQuantity, both},
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdEUTRA ::= CHOICE{
+ threshold-RSRP RSRP-Range,
+ threshold-RSRQ RSRQ-Range
+}
+
+
+ReportConfigId ::= INTEGER (1..maxReportConfigId)
+
+
+ReportConfigInterRAT ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventB1 SEQUENCE {
+ b1-Threshold CHOICE {
+ b1-ThresholdUTRA ThresholdUTRA,
+ b1-ThresholdGERAN ThresholdGERAN,
+ b1-ThresholdCDMA2000 ThresholdCDMA2000
+ }
+ },
+ eventB2 SEQUENCE {
+ b2-Threshold1 ThresholdEUTRA,
+ b2-Threshold2 CHOICE {
+ b2-Threshold2UTRA ThresholdUTRA,
+ b2-Threshold2GERAN ThresholdGERAN,
+ b2-Threshold2CDMA2000 ThresholdCDMA2000
+ }
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells,
+ reportStrongestCellsForSON,
+ reportCGI}
+ }
+ },
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdUTRA ::= CHOICE{
+ utra-RSCP INTEGER (-5..91),
+ utra-EcN0 INTEGER (0..49)
+}
+
+ThresholdGERAN ::= INTEGER (0..63)
+
+ThresholdCDMA2000 ::= INTEGER (0..63)
+
+
+ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod
+
+ReportConfigToAddMod ::= SEQUENCE {
+ reportConfigId ReportConfigId,
+ reportConfig CHOICE {
+ reportConfigEUTRA ReportConfigEUTRA,
+ reportConfigInterRAT ReportConfigInterRAT
+ }
+}
+
+
+
+ReportInterval ::= ENUMERATED {
+ ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240,
+ min1, min6, min12, min30, min60, spare3, spare2, spare1}
+
+
+RSRP-Range ::= INTEGER(0..97)
+
+
+RSRQ-Range ::= INTEGER(0..34)
+
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+
+DedicatedInfoCDMA2000 ::= OCTET STRING
+
+
+DedicatedInfoNAS ::= OCTET STRING
+
+
+FilterCoefficient ::= ENUMERATED {
+ fc0, fc1, fc2, fc3, fc4, fc5,
+ fc6, fc7, fc8, fc9, fc11, fc13,
+ fc15, fc17, fc19, spare1, ...}
+
+
+MMEC ::= BIT STRING (SIZE (8))
+
+
+NeighCellConfig ::= BIT STRING (SIZE (2))
+
+
+RAND-CDMA2000 ::= BIT STRING (SIZE (32))
+
+
+RAT-Type ::= ENUMERATED {
+ eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
+ spare3, spare2, spare1, ...}
+
+
+RRC-TransactionIdentifier ::= INTEGER (0..3)
+
+
+S-TMSI ::= SEQUENCE {
+ mmec MMEC,
+ m-TMSI BIT STRING (SIZE (32))
+}
+
+
+UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container
+
+UE-CapabilityRAT-Container ::= SEQUENCE {
+ rat-Type RAT-Type,
+ ueCapabilityRAT-Container OCTET STRING
+}
+
+
+UE-EUTRA-Capability ::= SEQUENCE {
+ accessStratumRelease AccessStratumRelease,
+ ue-Category INTEGER (1..5),
+ pdcp-Parameters PDCP-Parameters,
+ phyLayerParameters PhyLayerParameters,
+ rf-Parameters RF-Parameters,
+ measParameters MeasParameters,
+ featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-Parameters SEQUENCE {
+ utraFDD IRAT-ParametersUTRA-FDD OPTIONAL,
+ utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL,
+ utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL,
+ utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL,
+ geran IRAT-ParametersGERAN OPTIONAL,
+ cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL,
+ cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AccessStratumRelease ::= ENUMERATED {
+ rel8, spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1, ...}
+
+PDCP-Parameters ::= SEQUENCE {
+ supportedROHC-Profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ maxNumberROHC-ContextSessions ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16,
+ ...
+}
+
+PhyLayerParameters ::= SEQUENCE {
+ ue-TxAntennaSelectionSupported BOOLEAN,
+ ue-SpecificRefSigsSupported BOOLEAN
+}
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SupportedBandListEUTRA
+}
+
+SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA INTEGER (1..64),
+ halfDuplex BOOLEAN
+}
+
+MeasParameters ::= SEQUENCE {
+ bandListEUTRA BandListEUTRA
+}
+
+BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
+
+BandInfoEUTRA ::= SEQUENCE {
+ interFreqBandList InterFreqBandList,
+ interRAT-BandList InterRAT-BandList OPTIONAL
+}
+
+InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo
+
+InterFreqBandInfo ::= SEQUENCE {
+ interFreqNeedForGaps BOOLEAN
+}
+
+InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo
+
+InterRAT-BandInfo ::= SEQUENCE {
+ interRAT-NeedForGaps BOOLEAN
+}
+
+IRAT-ParametersUTRA-FDD ::= SEQUENCE {
+ supportedBandListUTRA-FDD SupportedBandListUTRA-FDD
+}
+
+SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD
+
+SupportedBandUTRA-FDD ::= ENUMERATED {
+ bandI, bandII, bandIII, bandIV, bandV, bandVI,
+ bandVII, bandVIII, bandIX, bandX, bandXI,
+ bandXII, bandXIII, bandXIV, bandXV, bandXVI, ...}
+
+IRAT-ParametersUTRA-TDD128 ::= SEQUENCE {
+ supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128
+}
+
+SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128
+
+SupportedBandUTRA-TDD128 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD384 ::= SEQUENCE {
+ supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384
+}
+
+SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384
+
+SupportedBandUTRA-TDD384 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD768 ::= SEQUENCE {
+ supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768
+}
+
+SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768
+
+SupportedBandUTRA-TDD768 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersGERAN ::= SEQUENCE {
+ supportedBandListGERAN SupportedBandListGERAN,
+ interRAT-PS-HO-ToGERAN BOOLEAN
+}
+
+SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN
+
+SupportedBandGERAN ::= ENUMERATED {
+ gsm450, gsm480, gsm710, gsm750, gsm810, gsm850,
+ gsm900P, gsm900E, gsm900R, gsm1800, gsm1900,
+ spare5, spare4, spare3, spare2, spare1, ...}
+
+IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE {
+ supportedBandListHRPD SupportedBandListHRPD,
+ tx-ConfigHRPD ENUMERATED {single, dual},
+ rx-ConfigHRPD ENUMERATED {single, dual}
+}
+
+SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE {
+ supportedBandList1XRTT SupportedBandList1XRTT,
+ tx-Config1XRTT ENUMERATED {single, dual},
+ rx-Config1XRTT ENUMERATED {single, dual}
+}
+
+SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+
+UE-TimersAndConstants ::= SEQUENCE {
+ t300 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t301 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+}
+
+
+maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
+maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
+maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells
+ -- listed in SIB type 4 and 5
+maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency
+ -- cells listed in SIB type 5
+maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency
+ -- cells listed in SIB type 4
+maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the neighbour
+ -- cell lists in a measurement object
+maxCellReport INTEGER ::= 8 -- Maximum number of reported cells
+maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier fequency
+maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier frequencies
+maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be
+ -- provided as part of NACC information
+maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups
+maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
+ -- different offset
+maxMCS-1 INTEGER ::= 16 -- Maximum number of PUCCH formats (MCS)
+maxMeasId INTEGER ::= 32
+maxObjectId INTEGER ::= 32
+maxPageRec INTEGER ::= 16 --
+maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
+maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
+maxReportConfigId INTEGER ::= 32
+maxSIB INTEGER ::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER ::= 31
+maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
+maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
+maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-UE-Variables.asn b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-UE-Variables.asn
new file mode 100644
index 0000000000..414140a6fb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-UE-Variables.asn
@@ -0,0 +1,49 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+VarMeasConfig ::= SEQUENCE {
+ -- Measurement identities
+ measIdList MeasIdToAddModList OPTIONAL,
+ -- Measurement objects
+ measObjectList MeasObjectToAddModList OPTIONAL,
+ -- Reporting configurations
+ reportConfigList ReportConfigToAddModList OPTIONAL,
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL,
+ s-Measure RSRP-Range OPTIONAL,
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL
+}
+
+
+VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
+
+VarMeasReport ::= SEQUENCE {
+ -- List of measurement that have been triggered
+ measId MeasId,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
+ numberOfReportsSent INTEGER
+}
+
+CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
+
+
+VarShortMAC-Input ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ physCellId PhysCellId,
+ c-RNTI C-RNTI
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-55.asn b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-55.asn
new file mode 100644
index 0000000000..248e6963c9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-55.asn
@@ -0,0 +1,47 @@
+EUTRA-extract-55 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..5)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SystemInformationBlockType2 ::= INTEGER
+SystemInformationBlockType3 ::= INTEGER
+SystemInformationBlockType4 ::= INTEGER
+SystemInformationBlockType5 ::= INTEGER
+SystemInformationBlockType6 ::= INTEGER
+SystemInformationBlockType7 ::= INTEGER
+SystemInformationBlockType8 ::= INTEGER
+SystemInformationBlockType9 ::= INTEGER
+SystemInformationBlockType10 ::= INTEGER
+SystemInformationBlockType11 ::= INTEGER
+
+-- OTP-7763
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b1 BIT STRING (SIZE (8)),
+ b2 BIT STRING (SIZE (1)),
+ b CellIdentity,
+ c INTEGER,
+ d BOOLEAN
+}
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-7407.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-7407.asn1
new file mode 100644
index 0000000000..fb81c42251
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EUTRA-extract-7407.asn1
@@ -0,0 +1,109 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12) modified
+-- $Id$
+--
+EUTRA-extract-7407 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformation1 SystemInformation1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+maxSIB INTEGER ::= 1
+maxSI-Message INTEGER ::= 1
+
+SystemInformation-r8-IEs ::= SEQUENCE (SIZE (1..maxSIB)) OF SEQUENCE
+ { -- Size is FFS
+ sib-Type SIB-Type, -- FFS
+ sib-Info OCTET STRING, -- FFS
+ ...
+ }
+
+SIB-Type ::= ENUMERATED {
+ sibType1, -- FFS if SIB1 need explicit indication
+ sibType2, sibType3, sibType4, sibType5,
+ sibType6, sibType7, sibType8,
+ spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+
+SystemInformationMaster ::= MasterInformationBlock
+
+
+SystemInformation1 ::= SystemInformationBlockType1
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInformation SEQUENCE {
+ plmn-IdentityList SEQUENCE (SIZE (1..6)) OF SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse BOOLEAN
+ },
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred BOOLEAN,
+ intraFrequencyCellReselection BOOLEAN OPTIONAL, -- Cond CellBarred
+ cellReservationExtension BOOLEAN,
+ csg-Indication BOOLEAN
+ },
+ cellSelectionInfo SEQUENCE {
+ q-Rxlevmin INTEGER (-60..-28) -- value range FFS
+ }, -- need FFS
+ frequencyBandIndicator INTEGER (1..64),
+ schedulinInformation SEQUENCE (SIZE (1..maxSI-Message)) OF SEQUENCE {
+ si-MessageType SEQUENCE {}, -- FFS
+ si-Periodicity ENUMERATED {
+ ms80, ms160, ms320, ms640}, -- value range FFS
+ sib-MappingInfo SEQUENCE {} -- FFS
+ },
+ systemInformationValueTag INTEGER (0), -- value is 3..5 bits FFS
+ ...
+}
+
+PLMN-Identity ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+TrackingAreaCode ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+CellIdentity ::= SEQUENCE {
+ -- Enter the IEs here.
+}
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-SystemBandwidth BIT STRING (SIZE (4)),
+ numberOfTransmitAntennas BIT STRING (SIZE (4)),
+ phich-Configuration PHICH-Configuration,
+ systemFrameNumber BIT STRING (SIZE (8))
+}
+
+PHICH-Configuration ::= SEQUENCE {
+ phich-Duration ENUMERATED {short, long},
+ phich-Resource ENUMERATED {ffs} -- 2-bit field FFS
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Enum.py b/lib/asn1/test/asn1_bin_SUITE_data/Enum.py
new file mode 100644
index 0000000000..3fb0ee3297
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Enum.py
@@ -0,0 +1,46 @@
+Enum DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+-- EXPORTS P1, P2;
+
+-- F.2.3.1
+-- Use an enumerated type to model the values of a variable
+-- with three or more states.
+-- Assign values starting with zero if their only
+-- constraint is distinctness.
+-- EXAMPLE
+
+DayOfTheWeek ::= ENUMERATED {sunday(0), monday(1), tuesday(2),
+ wednesday(3), thursday(4), friday(5), saturday(6)}
+
+firstDay DayOfTheWeek ::= sunday
+
+-- F.2.3.2
+-- Use an enumerated type to model the values of a variable that
+-- has just two states now,
+-- but that may have additional states in a future version of the protocol.
+-- EXAMPLE
+
+MaritalStatus ::= ENUMERATED {single(0), married(1)}
+
+-- in anticipation of
+
+MaritalStatus2 ::= ENUMERATED {single(0), married(1), widowed(2)}
+
+
+E1 ::= ENUMERATED {blue,green,yellow}
+
+E2 ::= ENUMERATED {monday(0),thuesday(1),wednesday(2),thursday(3),friday(4)}
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+
+S ::= SEQUENCE {
+ e1 ENUMERATED {hej,hopp},
+ e2 [2] EXPLICIT ENUMERATED {san,sa}
+ }
+
+enumVal E3 ::= monday
+--enumWrongVal E3 ::= sunday
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EnumExt.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/EnumExt.asn1
new file mode 100644
index 0000000000..9ad1f6299e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EnumExt.asn1
@@ -0,0 +1,28 @@
+EnumExt DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+Ext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...
+}
+
+Ext1 ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...,
+ orange(7)
+}
+
+Noext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2)
+}
+
+Globalstate ::= ENUMERATED {def(1),com(2),preop(3),oper(4),noop(5),fail(6)}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/EnumerationBadExtension.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/EnumerationBadExtension.asn1
new file mode 100644
index 0000000000..471f92d7b6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/EnumerationBadExtension.asn1
@@ -0,0 +1,20 @@
+EnumerationBadExtension DEFINITIONS ::=
+BEGIN
+
+Enum1 ::= ENUMERATED {
+ first,
+ second}
+
+Enum2 ::= ENUMERATED {
+ first,
+ ...,
+ second}
+
+Enum3 ::= ENUMERATED {
+ first,
+ second,
+ ...}
+
+ENum3 ::= ENUMERATED {...,first,second}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ErrorClass.asn b/lib/asn1/test/asn1_bin_SUITE_data/ErrorClass.asn
new file mode 100644
index 0000000000..ab0f25ae4f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ErrorClass.asn
@@ -0,0 +1,15 @@
+ErrorClass DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ERROR;
+
+
+ERROR ::= CLASS {
+ &errorCode INTEGER UNIQUE,
+ &ParameterType OPTIONAL
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Example.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Example.asn1
new file mode 100644
index 0000000000..2639f63940
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Example.asn1
@@ -0,0 +1,20 @@
+Example DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c Typ}
+--ECLASS ::= CLASS {
+-- &num INTEGER UNIQUE,
+-- &Typo
+-- } WITH SYNTAX {
+-- &Typo DETERMINED BY &num
+-- }
+
+--v1 ECLASS ::= {INTEGER DETERMINED BY 12}
+
+--v2 INTEGER ::= 13
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Export1.asn b/lib/asn1/test/asn1_bin_SUITE_data/Export1.asn
new file mode 100644
index 0000000000..78ead8f4d2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Export1.asn
@@ -0,0 +1,7 @@
+Export1 DEFINITIONS ::=
+BEGIN
+EXPORTS T
+
+T ::= Typ
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/External.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/External.asn1
new file mode 100644
index 0000000000..07b2c6aced
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/External.asn1
@@ -0,0 +1,132 @@
+External DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+XSeq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 XSeqIn
+}
+
+XSeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XSet1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 XSetIn
+}
+
+XSetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XBool ::= BOOLEAN
+XBoolImp ::= [22] BOOLEAN
+XBoolExp ::= [23] EXPLICIT BOOLEAN
+
+XCho ::= CHOICE
+{
+ boolCho [44] BOOLEAN,
+ intCho [45] INTEGER
+}
+
+
+XSetExt1 ::= SET
+{
+ ...
+}
+
+XSetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSetExt3 ::= SET
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSetExt4 ::= SET
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+XSeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+XSeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSeqExt3 ::= SEQUENCE
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSeqExt4 ::= SEQUENCE
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+
+XNT ::= OCTET STRING
+XImp ::= [1] OCTET STRING
+XExp ::= [2] EXPLICIT OCTET STRING
+
+XChoNT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XChoExp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSetNT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetImp ::= [1] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetExp ::= [2] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSeqNT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqImp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqExp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/From.py b/lib/asn1/test/asn1_bin_SUITE_data/From.py
new file mode 100644
index 0000000000..882d0b20be
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/From.py
@@ -0,0 +1,15 @@
+From DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+AreaCode ::= SEQUENCE
+{
+
+ firstDigit IA5String
+ (FROM ( "2" | "3" ) ),
+ secondDigit IA5String
+ (FROM ( "3" | "4" ) )
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/H235-SECURITY-MESSAGES.asn b/lib/asn1/test/asn1_bin_SUITE_data/H235-SECURITY-MESSAGES.asn
new file mode 100644
index 0000000000..3401f9599f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/H235-SECURITY-MESSAGES.asn
@@ -0,0 +1,170 @@
+H235-SECURITY-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+
+ChallengeString ::= OCTET STRING (SIZE(8..128))
+TimeStamp ::= INTEGER(1..4294967295) -- seconds since 00:00 1/1/1970 UTC
+RandomVal ::= INTEGER
+Password ::= BMPString (SIZE (1..128))
+Identifier ::= BMPString (SIZE (1..128))
+KeyMaterial ::= BIT STRING(SIZE(1..2048))
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier OBJECT IDENTIFIER,
+ data OCTET STRING
+}
+
+-- if local octet representations of these bit strings are used they shall
+-- utilize standard Network Octet ordering (e.g. Big Endian)
+DHset ::= SEQUENCE
+{
+ halfkey BIT STRING (SIZE(0..2048)), -- = g^x mod n
+ modSize BIT STRING (SIZE(0..2048)), -- n
+ generator BIT STRING (SIZE(0..2048)), -- g
+ ...
+}
+
+TypedCertificate ::= SEQUENCE
+{
+ type OBJECT IDENTIFIER,
+ certificate OCTET STRING,
+ ...
+}
+
+AuthenticationMechanism ::=CHOICE
+{
+ dhExch NULL, -- Diffe-Hellman
+ pwdSymEnc NULL, -- password with symmetric encryption
+ pwdHash NULL, -- password with hashing
+ certSign NULL, -- Certificate with signature
+ ipsec NULL, -- IPSEC based connection
+ tls NULL,
+ nonStandard NonStandardParameter, -- something else.
+ ...
+}
+
+ClearToken ::= SEQUENCE -- a `token' may contain multiple value types.
+{
+ timeStamp TimeStamp OPTIONAL,
+ password Password OPTIONAL,
+ dhkey DHset OPTIONAL,
+ challenge ChallengeString OPTIONAL,
+ random RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL,
+ generalID Identifier OPTIONAL,
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+--
+-- Start all the cryptographic parameterized types here....
+--
+
+
+SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ signature BIT STRING
+} ( CONSTRAINED BY { -- Verify or Sign Certificate -- } )
+
+
+ENCRYPTED { ToBeEncrypted } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ encryptedData OCTET STRING
+} ( CONSTRAINED BY { -- Encrypt or Decrypt -- ToBeEncrypted } )
+
+HASHED { ToBeHashed } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ hash BIT STRING
+} ( CONSTRAINED BY { -- Hash -- ToBeHashed } )
+
+IV8 ::= OCTET STRING (SIZE(8))
+
+-- signing algorithm used must select one of these types of parameters
+-- needed by receiving end of signature.
+
+Params ::= SEQUENCE {
+ ranInt INTEGER OPTIONAL, -- some integer value
+ iv8 IV8 OPTIONAL, -- 8 octet initialization vector
+ ...
+}
+
+EncodedGeneralToken ::= TYPE-IDENTIFIER.&Type (ClearToken -- general usage token -- )
+PwdCertToken ::= ClearToken (WITH COMPONENTS {..., timeStamp PRESENT, generalID PRESENT})
+EncodedPwdCertToken ::= TYPE-IDENTIFIER.&Type (PwdCertToken)
+
+CryptoToken::= CHOICE
+{
+
+ cryptoEncryptedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token ENCRYPTED { EncodedGeneralToken }
+ },
+ cryptoSignedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token SIGNED { EncodedGeneralToken }
+ },
+ cryptoHashedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ hashedVals ClearToken,
+ token HASHED { EncodedGeneralToken }
+ },
+ cryptoPwdEncr ENCRYPTED { EncodedPwdCertToken },
+ ...
+}
+
+-- These allow the passing of session keys within the H.245 OLC structure.
+-- They are encoded as standalone ASN.1 and based as an OCTET STRING within H.245
+H235Key ::=CHOICE -- this is used with the H.245 'h235Key' field
+{
+ secureChannel KeyMaterial,
+ sharedSecret ENCRYPTED {EncodedKeySyncMaterial},
+ certProtectedKey SIGNED { EncodedKeySignedMaterial },
+ ...
+}
+
+KeySignedMaterial ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ mrandom RandomVal, -- master's random value
+ srandom RandomVal OPTIONAL, -- slave's random value
+ timeStamp TimeStamp OPTIONAL, -- master's timestamp for unsolicted EU
+ encrptval ENCRYPTED {EncodedKeySyncMaterial }
+}
+EncodedKeySignedMaterial ::= TYPE-IDENTIFIER.&Type (KeySignedMaterial)
+
+KeySyncMaterial ::=SEQUENCE
+{
+ generalID Identifier,
+ keyMaterial KeyMaterial,
+ ...
+}
+EncodedKeySyncMaterial ::=TYPE-IDENTIFIER.&Type (KeySyncMaterial)
+
+H235CertificateSignature ::=SEQUENCE
+{
+ certificate TypedCertificate,
+ responseRandom RandomVal,
+ requesterRandom RandomVal OPTIONAL,
+ signature SIGNED { EncodedReturnSig },
+ ...
+}
+
+ReturnSig ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ responseRandom RandomVal,
+ requestRandom RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL -- requested certificate
+}
+
+EncodedReturnSig ::= TYPE-IDENTIFIER.&Type (ReturnSig)
+
+
+END -- End of H235-SECURITY-MESSAGES DEFINITIONS
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/H323-MESSAGES.asn b/lib/asn1/test/asn1_bin_SUITE_data/H323-MESSAGES.asn
new file mode 100644
index 0000000000..ba6802f122
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/H323-MESSAGES.asn
@@ -0,0 +1,1341 @@
+H323-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+
+IMPORTS
+ SIGNED{},
+ ENCRYPTED{},
+ HASHED{},
+ ChallengeString,
+ TimeStamp,
+ RandomVal,
+ Password,
+ EncodedPwdCertToken,
+ ClearToken,
+ CryptoToken,
+ AuthenticationMechanism
+ FROM H235-SECURITY-MESSAGES;
+
+H323-UserInformation ::= SEQUENCE -- root for all Q.931 related ASN.1
+{
+ h323-uu-pdu H323-UU-PDU,
+ user-data SEQUENCE
+ {
+ protocol-discriminator INTEGER (0..255),
+ user-information OCTET STRING (SIZE(1..131)),
+ ...
+ } OPTIONAL,
+ ...
+}
+
+H323-UU-PDU ::= SEQUENCE
+{
+ h323-message-body CHOICE
+ {
+ setup Setup-UUIE,
+ callProceeding CallProceeding-UUIE,
+ connect Connect-UUIE,
+ alerting Alerting-UUIE,
+ userInformation UI-UUIE,
+ releaseComplete ReleaseComplete-UUIE,
+ facility Facility-UUIE,
+ ...,
+ progress Progress-UUIE,
+ empty NULL -- used when a FACILITY message is sent,
+-- but the Facility-UUIE is not to be invoked
+-- (possible when transporting supplementary
+-- services messages)
+ },
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ h4501SupplementaryService SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each sequence of octet string is defined as one
+ -- H4501SupplementaryService APDU as defined in
+ -- Table 3/H.450.1
+ h245Tunneling BOOLEAN,
+ -- if TRUE, tunneling of H.245 messages is enabled
+ h245Control SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each octet string may contain exactly
+ -- one H.245 PDU
+ nonStandardControl SEQUENCE OF NonStandardParameter OPTIONAL
+}
+
+Alerting-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+CallProceeding-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+Connect-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ destinationInfo EndpointType,
+ conferenceID ConferenceIdentifier,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+UI-UUIE ::=SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseComplete-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ reason ReleaseCompleteReason OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL, -- bandwidth taken away or ARQ denied
+ gatekeeperResources NULL, -- exhausted
+ unreachableDestination NULL, -- no transport path to the destination
+ destinationRejection NULL, -- rejected at destination
+ invalidRevision NULL,
+ noPermission NULL, -- called party's gatekeeper rejects
+ unreachableGatekeeper NULL, -- terminal cannot reach gatekeeper for ARQ
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL, -- call is dropping due to LAN crowding
+ inConf NULL, -- no address in AlternativeAddress
+ undefinedReason NULL,
+ ...,
+ facilityCallDeflection NULL, -- call was deflected using a Facility message
+ securityDenied NULL, -- incompatible security settings
+ calledPartyNotRegistered NULL, -- used by gatekeeper when endpoint has
+ -- preGrantedARQ to bypass ARQ/ACF
+ callerNotregistered NULL -- used by gatekeeper when endpoint has
+ -- preGrantedArq to bypass ARQ/ACF
+}
+
+Setup-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ sourceAddress SEQUENCE OF AliasAddress OPTIONAL,
+ sourceInfo EndpointType,
+ destinationAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destCallSignalAddress TransportAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL, -- Note(1)
+ destExtraCRV SEQUENCE OF CallReferenceValue OPTIONAL,-- Note(1)
+ activeMC BOOLEAN,
+ conferenceID ConferenceIdentifier,
+ conferenceGoal CHOICE
+ {
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...,
+ capability-negotiation NULL,
+ callIndependentSupplementaryService NULL
+ },
+ callServices QseriesOptions OPTIONAL,
+ callType CallType,
+ ...,
+ sourceCallSignalAddress TransportAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityCapability SEQUENCE OF H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ mediaWaitForConnect BOOLEAN,
+ canOverlapSend BOOLEAN
+}
+
+Facility-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeAddress TransportAddress OPTIONAL,
+ alternativeAliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ conferenceID ConferenceIdentifier OPTIONAL,
+ reason FacilityReason,
+ ...,
+ callIdentifier CallIdentifier,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ conferences SEQUENCE OF ConferenceList OPTIONAL,
+ h245Address TransportAddress OPTIONAL
+}
+
+ConferenceList ::= SEQUENCE
+{
+ conferenceID ConferenceIdentifier OPTIONAL,
+ conferenceAlias AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL, -- call must use gatekeeper model
+ -- gatekeeper is alternativeAddress
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...,
+ conferenceListChoice NULL,
+ startH245 NULL -- recipient should connect to h245Address
+}
+
+Progress-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+TransportAddress ::= CHOICE
+{
+ ipAddress SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535)
+ },
+ ipSourceRoute SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING(SIZE(4)),
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL,
+ ...
+ },
+ ...
+ },
+ ipxAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ port OCTET STRING (SIZE(2))
+ },
+ ip6Address SEQUENCE
+ {
+ ip OCTET STRING (SIZE(16)),
+ port INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter,
+ ...
+}
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInfo OPTIONAL,
+ gateway GatewayInfo OPTIONAL,
+ mcu McuInfo OPTIONAL, -- mc must be set as well
+ terminal TerminalInfo OPTIONAL,
+ mc BOOLEAN, -- shall not be set by itself
+ undefinedNode BOOLEAN,
+ ...
+}
+
+GatewayInfo ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Caps,
+ h320 H320Caps,
+ h321 H321Caps,
+ h322 H322Caps,
+ h323 H323Caps,
+ h324 H324Caps,
+ voice VoiceCaps,
+ t120-only T120OnlyCaps,
+ ...,
+ nonStandardProtocol NonStandardProtocol
+}
+
+H310Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H320Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H321Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H322Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H323Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H324Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+VoiceCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+T120OnlyCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+NonStandardProtocol ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix,
+ ...
+}
+
+McuInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+TerminalInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+GatekeeperInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per product
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+AliasAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)), -- Basic ISO/IEC 10646-1 (Unicode)
+ ...,
+ url-ID IA5String (SIZE(1..512)), -- URL style address
+ transportID TransportAddress,
+ email-ID IA5String (SIZE(1..512)), -- rfc822-compliant email address
+ partyNumber PartyNumber
+}
+
+PartyNumber ::= CHOICE
+{
+ publicNumber PublicPartyNumber,
+ -- the numbering plan is according to
+ -- Recommendations E.163 and E.164.
+ dataPartyNumber NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber NumberDigits,
+ -- not used, value reserved.
+ privateNumber PrivatePartyNumber,
+ nationalStandardPartyNumber NumberDigits,
+ -- not used, value reserved.
+ ...
+}
+
+PublicPartyNumber ::= SEQUENCE
+{
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits
+}
+
+PrivatePartyNumber ::= SEQUENCE
+{
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits
+}
+
+NumberDigits ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+PublicTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ -- if used number digits carry prefix indicating type
+ -- of number according to national recommendations.
+ internationalNumber NULL,
+ nationalNumber NULL,
+ networkSpecificNumber NULL,
+ -- not used, value reserved
+ subscriberNumber NULL,
+ abbreviatedNumber NULL,
+ -- valid only for called party number at the outgoing
+ -- access, network substitutes appropriate number.
+...
+}
+
+PrivateTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ level2RegionalNumber NULL,
+ level1RegionalNumber NULL,
+ pISNSpecificNumber NULL,
+ localNumber NULL,
+ abbreviatedNumber NULL,
+ ...
+}
+
+Endpoint ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ aliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ rasAddress SEQUENCE OF TransportAddress OPTIONAL,
+ endpointType EndpointType OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ priority INTEGER(0..127) OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ ...
+}
+
+AlternateGK ::= SEQUENCE
+{
+ rasAddress TransportAddress,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ needToRegister BOOLEAN,
+ priority INTEGER (0..127),
+ ...
+}
+
+AltGKInfo ::= SEQUENCE
+{
+ alternateGatekeeper SEQUENCE OF AlternateGK,
+ altGKisPermanent BOOLEAN,
+ ...
+}
+
+SecurityServiceMode ::= CHOICE
+{
+nonStandard NonStandardParameter,
+none NULL,
+default NULL,
+... -- can be extended with other specific modes
+}
+
+SecurityCapabilities ::= SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ encryption SecurityServiceMode,
+ authenticaton SecurityServiceMode,
+ integrity SecurityServiceMode,
+...
+}
+
+H245Security ::= CHOICE
+{
+ nonStandard NonStandardParameter,
+ noSecurity NULL,
+ tls SecurityCapabilities,
+ ipsec SecurityCapabilities,
+ ...
+}
+
+QseriesOptions ::= SEQUENCE
+{
+ q932Full BOOLEAN, -- if true, indicates full support for Q.932
+ q951Full BOOLEAN, -- if true, indicates full support for Q.951
+ q952Full BOOLEAN, -- if true, indicates full support for Q.952
+ q953Full BOOLEAN, -- if true, indicates full support for Q.953
+ q955Full BOOLEAN, -- if true, indicates full support for Q.955
+ q956Full BOOLEAN, -- if true, indicates full support for Q.956
+ q957Full BOOLEAN, -- if true, indicates full support for Q.957
+ q954Info Q954Details,
+ ...
+}
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+GloballyUniqueID ::= OCTET STRING (SIZE(16))
+ConferenceIdentifier ::= GloballyUniqueID
+RequestSeqNum ::= INTEGER (1..65535)
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+BandWidth ::= INTEGER (0.. 4294967295) -- in 100s of bits
+CallReferenceValue ::= INTEGER (0..65535)
+EndpointIdentifier ::= BMPString (SIZE(1..128))
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+ -- shall be set to
+ -- {itu-t (0) recommendation (0) h (8) 2250 version (0) 2}
+TimeToLive ::= INTEGER (1..4294967295) --in seconds
+
+CallIdentifier ::= SEQUENCE
+{
+ guid GloballyUniqueID,
+ ...
+}
+
+
+EncryptIntAlg ::= CHOICE
+{ -- core encryption algorithms for RAS message integrity
+ nonStandard NonStandardParameter,
+ isoAlgorithm OBJECT IDENTIFIER, -- defined in ISO/IEC 9979
+ ...
+}
+NonIsoIntegrityMechanism ::= CHOICE
+{ -- HMAC mechanism used, no truncation, tagging may be necessary!
+ hMAC-MD5 NULL,
+ hMAC-iso10118-2-s EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (short MAC)
+ hMAC-iso10118-2-l EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (long MAC)
+ hMAC-iso10118-3 OBJECT IDENTIFIER, -- according to ISO/IEC 10118-3 using
+ -- OID as hash function (OID is SHA-1, RIPE-MD160,
+ -- RIPE-MD128)
+ ...
+}
+
+IntegrityMechanism ::= CHOICE
+{ -- for RAS message integrity
+ nonStandard NonStandardParameter,
+ digSig NULL, -- indicates to apply a digital signature
+ iso9797 OBJECT IDENTIFIER, -- according to ISO/IEC 9797 using OID as
+ -- core encryption algorithm (X-CBC MAC)
+ nonIsoIM NonIsoIntegrityMechanism,
+ ...
+}
+
+ICV ::= SEQUENCE
+{
+ algorithmOID OBJECT IDENTIFIER, -- the algorithm used to compute the signature
+ icv BIT STRING -- the computed cryptographic integrity check value
+-- or signature
+}
+
+FastStartToken ::= ClearToken (WITH COMPONENTS {..., timeStamp, dhkey, generalID -- set to 'alias' -- })
+EncodedFastStartToken ::= TYPE-IDENTIFIER.&Type (FastStartToken)
+CryptoH323Token::= CHOICE
+{
+ cryptoEPPwdHash SEQUENCE
+{
+ alias AliasAddress, -- alias of entity generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to 'alias' -- }
+ },
+ cryptoGKPwdHash SEQUENCE
+{
+gatekeeperId GatekeeperIdentifier, -- GatekeeperID of GK generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- }
+ },
+ cryptoEPPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoGKPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoEPCert SIGNED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- },
+ cryptoGKCert SIGNED { EncodedPwdCertToken -- generalID set to alias -- },
+ cryptoFastStart SIGNED { EncodedFastStartToken },
+ nestedcryptoToken CryptoH323Token,
+ ...
+}
+
+
+DataRate ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ channelRate BandWidth,
+ channelMultiplier INTEGER (1..256) OPTIONAL,
+ ...
+}
+
+SupportedPrefix ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ prefix AliasAddress,
+ ...
+}
+
+
+RasMessage ::= CHOICE
+{
+ gatekeeperRequest GatekeeperRequest,
+ gatekeeperConfirm GatekeeperConfirm,
+ gatekeeperReject GatekeeperReject,
+ registrationRequest RegistrationRequest,
+ registrationConfirm RegistrationConfirm,
+ registrationReject RegistrationReject,
+ unregistrationRequest UnregistrationRequest,
+ unregistrationConfirm UnregistrationConfirm,
+ unregistrationReject UnregistrationReject,
+ admissionRequest AdmissionRequest,
+ admissionConfirm AdmissionConfirm,
+ admissionReject AdmissionReject,
+ bandwidthRequest BandwidthRequest,
+ bandwidthConfirm BandwidthConfirm,
+ bandwidthReject BandwidthReject,
+ disengageRequest DisengageRequest,
+ disengageConfirm DisengageConfirm,
+ disengageReject DisengageReject,
+ locationRequest LocationRequest,
+ locationConfirm LocationConfirm,
+ locationReject LocationReject,
+ infoRequest InfoRequest,
+ infoRequestResponse InfoRequestResponse,
+ nonStandardMessage NonStandardMessage,
+ unknownMessageResponse UnknownMessageResponse,
+ ...,
+ requestInProgress RequestInProgress,
+ resourcesAvailableIndicate ResourcesAvailableIndicate,
+ resourcesAvailableConfirm ResourcesAvailableConfirm,
+ infoRequestAck InfoRequestAck,
+ infoRequestNak InfoRequestNak
+}
+
+GatekeeperRequest ::= SEQUENCE --(GRQ)
+{
+
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rasAddress TransportAddress,
+ endpointType EndpointType,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ authenticationCapability SEQUENCE OF AuthenticationMechanism OPTIONAL,
+ algorithmOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperConfirm ::= SEQUENCE --(GCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rasAddress TransportAddress,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ authenticationMode AuthenticationMechanism OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ algorithmOID OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperReject ::= SEQUENCE --(GRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rejectReason GatekeeperRejectReason,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL, -- permission failure, not a resource failure
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+RegistrationRequest ::= SEQUENCE --(RRQ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ discoveryComplete BOOLEAN,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ rasAddress SEQUENCE OF TransportAddress,
+ terminalType EndpointType,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointVendor VendorIdentifier,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ keepAlive BOOLEAN,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+RegistrationConfirm ::= SEQUENCE --(RCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ preGrantedARQ SEQUENCE
+ {
+ makeCall BOOLEAN,
+ useGKCallSignalAddressToMakeCall BOOLEAN,
+ answerCall BOOLEAN,
+ useGKCallSignalAddressToAnswer BOOLEAN,
+ ...
+ } OPTIONAL
+}
+
+RegistrationReject ::= SEQUENCE --(RRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rejectReason RegistrationRejectReason,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL, -- registration permission has aged
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRASAddress NULL, -- supplied address is invalid
+ duplicateAlias SEQUENCE OF AliasAddress,
+ -- alias registered to another endpoint
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL, -- one or more of the transports
+ ...,
+ transportQOSNotSupported NULL, -- endpoint QoS not supported
+ resourceUnavailable NULL, -- gatekeeper resources exhausted
+ invalidAlias NULL, -- alias not consistent with gatekeeper rules
+ securityDenial NULL
+}
+
+UnregistrationRequest ::= SEQUENCE --(URQ)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ reason UnregRequestReason OPTIONAL
+}
+
+UnregRequestReason ::= CHOICE
+{
+ reregistrationRequired NULL,
+ ttlExpired NULL,
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+UnregistrationConfirm ::= SEQUENCE --(UCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregistrationReject ::= SEQUENCE --(URJ)
+{
+
+ requestSeqNum RequestSeqNum,
+ rejectReason UnregRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...,
+ permissionDenied NULL, -- requesting user not allowed to unregister
+ -- specified user
+ securityDenial NULL
+}
+
+AdmissionRequest ::= SEQUENCE --(ARQ)
+{
+ requestSeqNum RequestSeqNum,
+ callType CallType,
+ callModel CallModel OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL, --Note 1
+ destCallSignalAddress TransportAddress OPTIONAL, --Note 1
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ srcInfo SEQUENCE OF AliasAddress,
+ srcCallSignalAddress TransportAddress OPTIONAL,
+ bandWidth BandWidth,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ conferenceID ConferenceIdentifier,
+ activeMC BOOLEAN,
+ answerCall BOOLEAN, -- answering a call
+ ...,
+ canMapAlias BOOLEAN, -- can handle alias address
+ callIdentifier CallIdentifier,
+ srcAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ destAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL, -- Point to point
+ oneToN NULL, -- no interaction (FFS)
+ nToOne NULL, -- no interaction (FFS)
+ nToN NULL, -- interactive (multipoint)
+ ...
+}
+
+CallModel ::= CHOICE
+{
+ direct NULL,
+ gatekeeperRouted NULL,
+ ...
+}
+
+TransportQOS ::= CHOICE
+{
+ endpointControlled NULL,
+ gatekeeperControlled NULL,
+ noControl NULL,
+ ...
+}
+
+AdmissionConfirm ::= SEQUENCE --(ACF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ callModel CallModel,
+ destCallSignalAddress TransportAddress,
+ irrFrequency INTEGER (1..65535) OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ uuiesRequested UUIEsRequested
+}
+
+UUIEsRequested ::= SEQUENCE
+{
+ setup BOOLEAN,
+ callProceeding BOOLEAN,
+ connect BOOLEAN,
+ alerting BOOLEAN,
+ userInformation BOOLEAN,
+ releaseComplete BOOLEAN,
+ facility BOOLEAN,
+ progress BOOLEAN,
+ empty BOOLEAN,
+ ...
+}
+
+AdmissionReject ::= SEQUENCE --(ARJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason AdmissionRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL, -- can't translate address
+ invalidPermission NULL, -- permission has expired
+ requestDenied NULL, -- no bandwidth available
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...,
+ securityDenial NULL,
+ qosControlNotSupported NULL,
+ incompleteAddress NULL
+}
+
+BandwidthRequest ::= SEQUENCE --(BRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ callType CallType OPTIONAL,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+BandwidthConfirm ::= SEQUENCE --(BCF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandwidthReject ::= SEQUENCE --(BRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason BandRejectReason,
+ allowedBandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandRejectReason ::= CHOICE
+{
+ notBound NULL, -- discovery permission has aged
+ invalidConferenceID NULL, -- possible revision
+ invalidPermission NULL, -- true permission violation
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+LocationRequest ::= SEQUENCE --(LRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ destinationInfo SEQUENCE OF AliasAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress,
+ ...,
+ sourceInfo SEQUENCE OF AliasAddress OPTIONAL,
+ canMapAlias BOOLEAN, -- can handle alias address
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationConfirm ::= SEQUENCE --(LCF)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress TransportAddress,
+ rasAddress TransportAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationReject ::= SEQUENCE --(LRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason LocationRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL, -- exclusion by administrator or feature
+ requestDenied NULL, -- can't find location
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+DisengageRequest ::= SEQUENCE --(DRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ disengageReason DisengageReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL, -- gatekeeper is forcing the drop
+ normalDrop NULL, -- associated with normal drop
+ undefinedReason NULL,
+ ...
+}
+
+DisengageConfirm ::= SEQUENCE --(DCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageReject ::= SEQUENCE --(DRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason DisengageRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ requestToDropOther NULL, -- can't request drop for others
+ ...,
+ securityDenial NULL
+}
+
+InfoRequest ::= SEQUENCE --(IRQ)
+{
+ requestSeqNum RequestSeqNum,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ uuiesRequested UUIEsRequested OPTIONAL
+}
+InfoRequestResponse ::= SEQUENCE --(IRR)
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ requestSeqNum RequestSeqNum,
+ endpointType EndpointType,
+ endpointIdentifier EndpointIdentifier,
+ rasAddress TransportAddress,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ perCallInfo SEQUENCE OF SEQUENCE
+ {
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReferenceValue CallReferenceValue,
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInfo OPTIONAL,
+ h245 TransportChannelInfo,
+ callSignaling TransportChannelInfo,
+ callType CallType,
+ bandWidth BandWidth,
+ callModel CallModel,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ substituteConfIDs SEQUENCE OF ConferenceIdentifier,
+ pdu SEQUENCE OF SEQUENCE
+ {
+ h323pdu H323-UU-PDU,
+ sent BOOLEAN -- TRUE is sent, FALSE is received
+ } OPTIONAL
+ } OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ needResponse BOOLEAN
+}
+
+TransportChannelInfo ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInfo,
+ rtcpAddress TransportChannelInfo,
+ cname PrintableString,
+ ssrc INTEGER (1..4294967295),
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+InfoRequestAck ::= SEQUENCE --(IACK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNak ::= SEQUENCE --(INAK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ nakReason InfoRequestNakReason,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNakReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnknownMessageResponse ::= SEQUENCE -- (XRS)
+{
+ requestSeqNum RequestSeqNum,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RequestInProgress ::= SEQUENCE -- (RIP)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ delay INTEGER(1..65535),
+ ...
+}
+
+ResourcesAvailableIndicate ::= SEQUENCE --(RAI)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ protocols SEQUENCE OF SupportedProtocols,
+ almostOutOfResources BOOLEAN,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+ResourcesAvailableConfirm ::= SEQUENCE --(RAC)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+END -- of ASN.1
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/IMP.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/IMP.asn1
new file mode 100644
index 0000000000..8d7546fa15
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/IMP.asn1
@@ -0,0 +1,7 @@
+IMP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+T ::= INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/IN-CS-1-Datatypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/IN-CS-1-Datatypes.asn
new file mode 100644
index 0000000000..ff0361f5c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/IN-CS-1-Datatypes.asn
@@ -0,0 +1,1630 @@
+-- Module IN-CS-1-Datatypes (Q.1218:10/1995)
+-- Example of addition of an extension named 'Some Network Specific Indicator' of type
+-- BOOLEAN, with criticality 'abort' and to be identified as extension number 1.
+-- Example of definition using the above macro:
+--
+-- SomeNetworkSpecificIndicator ::= EXTENSION {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY abort
+-- IDENTIFIED BY 1
+-- }
+--
+--
+-- Example of transfer syntax, using the ExtensionField datatype as specified in the module
+-- below. Assuming the value of the extension is set to TRUE, the extensions parameter
+-- becomes a Sequence of type INTEGER ::= 1, criticality ENUMERATED ::= 1 and value [1]
+-- EXPLICIT BOOLEAN ::= TRUE.
+--
+-- Use of Q.1400 defined Extension is ffs.
+-- In addition the extension mechanism marker is used to identify the future minor additions to INAP.
+IN-CS-1-Datatypes {itu-t recommendation q 1218 modules(0) cs-1-datatypes(2)
+ version1(0)}
+-- This module contains the type definitions for the IN CS-1 data types.
+-- Where a parameter of type CHOICE is tagged with a specific tag value, the tag is automatically
+-- replaced with an EXPLICIT tag of the same value.
+-- The following parameters map onto bearer protocol (i.e. Q.931, case 2 and ISUP) parameters:
+-- CallingPartySubaddress, CalledPartyNumber,
+-- Prefix (derived from dialled digits), DestinationRoutingAddress,
+-- DialledDigits, ISDNAccessRelatedInformation, CallingPartysCategory, LocationNumber,
+-- TravellingClassMark, AssistingSSPIPRoutingAddress, AlertingPattern (Q.931 only),
+-- ReleaseCause (and other Cause parameters), ServiceProfileIdentifier (Q.932 only),
+-- BearerCapability, CallingPartyNumber, HighLayerCompatibility, OriginalCalledPartyID,
+-- RedirectingPartyID, and RedirectionInformation.
+-- The procedures for mapping of parameters onto bearer protocol are ffs.
+-- The following SSF parameters do not map onto bearer protocol (i.e. Q.931, case 2 and ISUP)
+-- parameters and therefore are assumed to be local to the switching system: CallingPartyBusinessGroupID
+-- FacilityGroup, FacilityGroupMember, RouteList, LegID, IPSSPCapabilities, IPAvailable, CGEncountered,
+-- ForwardingCondition, CorrelationID, ApplicationTimer, TerminalType, MiscCallInfo, TriggerType and
+-- ServiceKey.
+-- Where possible, Administrations should specify the maximum size within their network of
+-- parameters specified in this Recommendation that are of an indeterminate length.
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- TYPE DEFINITIONS FOR IN CS-1 DATA TYPES FOLLOWS
+-- Argument data types
+InvokeIdType ::= INTEGER(-128..127)
+
+-- The ordering of parameters in the argument sequences has been arbitrary. Further study may be
+-- required to order arguments in a manner which will facilitate efficient encoding and decoding.
+ActivateServiceFilteringArg ::= SEQUENCE {
+ filteredCallTreatment [0] FilteredCallTreatment,
+ filteringCharacteristics [1] FilteringCharacteristics,
+ filteringTimeOut [2] FilteringTimeOut,
+ filteringCriteria [3] FilteringCriteria,
+ startTime [4] DateAndTime OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+AnalysedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ featureCode [13] FeatureCode OPTIONAL,
+ accessCode [14] AccessCode OPTIONAL,
+ carrier [15] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+AnalyseInformationArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [3] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [6] CallingPartysCategory OPTIONAL,
+ calledPartyNumber [7] CalledPartyNumber OPTIONAL,
+ chargeNumber [8] ChargeNumber OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ carrier [10] Carrier OPTIONAL,
+ ...
+}
+
+ApplyChargingArg ::= SEQUENCE {
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics,
+ partyToCharge [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The partyToCharge parameter indicates the party in the call to which the ApplyCharging operation
+-- should be applied. If it is not present, then it is applied to the A-party.
+ApplyChargingReportArg ::=
+ CallResult
+
+AssistRequestInstructionsArg ::= SEQUENCE {
+ correlationID [0] CorrelationID,
+ iPAvailable [1] IPAvailable OPTIONAL,
+ iPSSPCapabilities [2] IPSSPCapabilities OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
+-- Called Party Number supplied by the initiating SSF.
+CallGapArg ::= SEQUENCE {
+ gapCriteria [0] GapCriteria,
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional. If gapTreatment is not present, the SSF will use
+-- a default treatment depending on network operator implementation.
+CallInformationReportArg ::= SEQUENCE {
+ requestedInformationList [0] RequestedInformationList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CallInformationRequestArg ::= SEQUENCE {
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CancelArg ::= CHOICE {invokeID [0] InvokeID,
+ allRequests [1] NULL
+}
+
+-- The InvokeID has the same value as that which was used for the operation to be cancelled.
+CancelStatusReportRequestArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ extensions
+ [1] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+CollectedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ [11] ExtensionField{{SupportedExtensions}},
+ featureCode [12] FeatureCode OPTIONAL,
+ accessCode [13] AccessCode OPTIONAL,
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+CollectInformationArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ numberingPlan [1] NumberingPlan OPTIONAL,
+ originalCalledPartyID [2] OriginalCalledPartyID OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ dialledDigits [6] CalledPartyNumber OPTIONAL,
+ ...
+}
+
+ConnectArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ cutAndPaste [3] CutAndPaste OPTIONAL,
+ forwardingCondition [4] ForwardingCondition OPTIONAL,
+ iSDNAccessRelatedInformation [5] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ scfID [8] ScfID OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [11] Carrier OPTIONAL,
+ serviceInteractionIndicators [26] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [27] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- For alerting pattern, OPTIONAL denotes that this parameter only applies if SSF is the terminating
+-- local exchange for the subscriber.
+ConnectToResourceArg ::= SEQUENCE {
+ resourceAddress
+ CHOICE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID,
+ both
+ [2] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID},
+ none [3] NULL},
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+DpSpecificCommonParameters ::= SEQUENCE {
+ serviceAddressInformation [0] ServiceAddressInformation,
+ bearerCapability [1] BearerCapability OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [4] CallingPartysCategory OPTIONAL,
+ iPSSPCapabilities [5] IPSSPCapabilities OPTIONAL,
+ iPAvailable [6] IPAvailable OPTIONAL,
+ iSDNAccessRelatedInformation [7] ISDNAccessRelatedInformation OPTIONAL,
+ cGEncountered [8] CGEncountered OPTIONAL,
+ locationNumber [9] LocationNumber OPTIONAL,
+ serviceProfileIdentifier [10] ServiceProfileIdentifier OPTIONAL,
+ terminalType [11] TerminalType OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ [12] ExtensionField{{SupportedExtensions}},
+ chargeNumber [13] ChargeNumber OPTIONAL,
+ servingAreaID [14] ServingAreaID OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, and cGEncountered denotes network operator
+-- specific use. OPTIONAL for callingPartyNumber, and callingPartysCategory refer to clause 3 for
+-- the trigger detection point processing rules to specify when these parameters are included in the
+-- message. bearerCapability should be appropriately coded as speech.
+EstablishTemporaryConnectionArg ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [4] ExtensionField{{SupportedExtensions}},
+ carrier [5] Carrier OPTIONAL,
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+EventNotificationChargingArg ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ eventSpecificInformationCharging
+ [1] EventSpecificInformationCharging OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ monitorMode [30] MonitorMode DEFAULT notifyAndContinue,
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use.
+EventReportBCSMArg ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo DEFAULT {messageType request},
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+FurnishChargingInformationArg ::= FCIBillingChargingCharacteristics
+
+HoldCallInNetworkArg ::= CHOICE {
+ holdcause [0] HoldCause,
+ empty [1] NULL
+}
+
+-- holdcause is optional and denotes network operator specific use.
+InitialDPArg ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ callingPartySubaddress [6] CallingPartySubaddress OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL,
+ iPAvailable [9] IPAvailable OPTIONAL,
+ locationNumber [10] LocationNumber OPTIONAL,
+ miscCallInfo [11] MiscCallInfo OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL,
+ serviceProfileIdentifier [13] ServiceProfileIdentifier OPTIONAL,
+ terminalType [14] TerminalType OPTIONAL,
+ extensions
+ [15] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ triggerType [16] TriggerType OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ serviceInteractionIndicators [24] ServiceInteractionIndicators OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL,
+ forwardCallIndicators [26] ForwardCallIndicators OPTIONAL,
+ bearerCapability [27] BearerCapability OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, cGEncountered, and miscCallInfo denotes network
+-- operator specific use.
+-- OPTIONAL for dialledDigits, callingPartyNumber, and callingPartysCategory refer to clause 3 for the
+-- trigger detection point processing rules to specify when these parameters are included in the message.
+-- OPTIONAL for terminalType indicates that this parameter applies only at originating or terminating
+-- local exchanges if the SSF has this information.
+InitiateCallAttemptArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [29] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber OPTIONAL,
+ ...
+}
+
+MidCallArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [4] CallingPartySubaddress OPTIONAL,
+ featureRequestIndicator [5] FeatureRequestIndicator OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [7] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OCalledPartyBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [13] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ODisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ routeList [6] RouteList OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ connectTime [9] Integer4 OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ONoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ prefix [6] Digits OPTIONAL,
+ redirectingPartyID [7] RedirectingPartyID OPTIONAL,
+ redirectionInformation [8] RedirectionInformation OPTIONAL,
+ routeList [9] RouteList OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [12] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OriginationAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ travellingClassMark [6] TravellingClassMark OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+PlayAnnouncementArg ::= SEQUENCE {
+ informationToSend [0] InformationToSend,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+PromptAndCollectUserInformationArg ::= SEQUENCE {
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ReceivedInformationArg ::= CHOICE {
+ digitsResponse [0] Digits,
+ iA5Response [1] IA5String
+}
+
+ReleaseCallArg ::= Cause
+
+-- A default value of decimal 31 (normal unspecified) should be coded appropriately.
+RequestCurrentStatusReportArg ::=
+ ResourceID
+
+RequestCurrentStatusReportResultArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus,
+ resourceID [1] ResourceID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RequestEveryStatusChangeReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID,
+ correlationID [1] CorrelationID OPTIONAL,
+ monitorDuration [2] Duration OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestFirstStatusMatchReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ resourceStatus [1] ResourceStatus OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ monitorDuration [3] Duration OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ bearerCapability [5] BearerCapability OPTIONAL,
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestNotificationChargingEventArg ::=
+ SEQUENCE SIZE (1..numOfChargingEvents) OF ChargingEvent
+
+RequestReportBCSMEventArg ::= SEQUENCE {
+ bcsmEvents [0] SEQUENCE SIZE (1..numOfBCSMEvents) OF BCSMEvent,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- Indicates the BCSM related events for notification.
+-- For correlationID OPTIONAL denotes network operator optional.
+ResetTimerArg ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RouteSelectFailureArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ failureCause [6] Cause OPTIONAL,
+ originalCalledPartyID [7] OriginalCalledPartyID OPTIONAL,
+ prefix [8] Digits OPTIONAL,
+ redirectingPartyID [9] RedirectingPartyID OPTIONAL,
+ redirectionInformation [10] RedirectionInformation OPTIONAL,
+ routeList [11] RouteList OPTIONAL,
+ travellingClassMark [12] TravellingClassMark OPTIONAL,
+ extensions
+ [13] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing
+-- rules to specify when these parameters are included in the message.
+SelectFacilityArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ destinationNumberRoutingAddress [1] CalledPartyNumber OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SelectRouteArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ iSDNAccessRelatedInformation [3] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ routeList [5] RouteList OPTIONAL,
+ scfID [6] ScfID OPTIONAL,
+ travellingClassMark [7] TravellingClassMark OPTIONAL,
+ extensions
+ [8] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [9] Carrier OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SendChargingInformationArg ::= SEQUENCE {
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics,
+ partyToCharge [1] LegID,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ServiceFilteringResponseArg ::= SEQUENCE {
+ countersValue [0] CountersValue,
+ filteringCriteria [1] FilteringCriteria,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ responseCondition [3] ResponseCondition OPTIONAL,
+ ...
+}
+
+SpecializedResourceReportArg ::= NULL
+
+StatusReportArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus OPTIONAL,
+ correlationID [1] CorrelationID OPTIONAL,
+ resourceID [2] ResourceID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ reportCondition [4] ReportCondition OPTIONAL,
+ ...
+}
+
+-- For correlationID, OPTIONAL denotes network operator optional.
+-- resourceID is required when the SSF sends a report as an answer to a previous request when the
+-- correlationID was present.
+TAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ calledPartyBusinessGroupID [2] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [3] CalledPartySubaddress OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+TDisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ connectTime [7] Integer4 OPTIONAL,
+ ...
+}
+
+TermAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TNoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ [3] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The Definition of Common Data Types
+AccessCode ::= LocationNumber
+
+-- An access code from a business group dialling plan attendant access codes, access codes to escape
+-- to the public network, access code to access a private facility/network, and feature access codes.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Of local significance.
+AChBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minAChBillingChargingLength..maxAChBillingChargingLength))
+
+-- The AChBillingChargingCharacteristics parameter specifies the charging related information
+-- to be provided by the SSF and the conditions on which this information has to be reported
+-- back to the SCF with the ApplyChargingReport operation.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter
+-- values, costs, tariff change and time of charge, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+AdditionalCallingPartyNumber ::=
+ Digits
+
+-- Indicates the Additional Calling Party Number. Refer to Recommendation Q.763 for encoding.
+AlertingPattern ::= OCTET STRING(SIZE (3))
+
+-- Indicates a specific pattern that is used to alert a subscriber (e.g. distinctive ringing, tones, etc.).
+-- Only applies if SSF is the terminating local exchange for the subscriber. Refer to the Q.931
+-- Signal parameter for encoding.
+ApplicationTimer ::= INTEGER(0..2047)
+
+-- Used by the SCF to set a timer in the SSF. The timer is in seconds.
+AssistingSSPIPRoutingAddress ::=
+ Digits
+
+-- Indicates the destination address of the SRF for the assist procedure.
+BCSMEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL
+}
+
+-- Indicates the BCSM Event information for monitoring.
+BearerCapability ::= CHOICE {
+ bearerCap [0] OCTET STRING(SIZE (2..maxBearerCapabilityLength)),
+ tmr [1] OCTET STRING(SIZE (1))
+}
+
+-- Indicates the type of bearer capability connection to the user. For bearerCapability, either
+-- DSS 1 (Q.931) or the ISUP User Service Information (Q.763) encoding can be used. Refer
+-- to the Q.763 Transmission Medium Requirement parameter for tmr encoding.
+CalledPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the called party. The value of this octet string is network
+-- operator specific.
+CalledPartyNumber ::=
+ OCTET STRING(SIZE (minCalledPartyNumberLength..maxCalledPartyNumberLength))
+
+-- Indicates the Called Party Number. Refer to Recommendation Q.763 for encoding.
+CalledPartySubaddress ::= OCTET STRING
+
+-- Indicates the Called Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the calling party. The value of this octet string is network
+-- operator specific.
+CallingPartyNumber ::=
+ OCTET STRING(SIZE (minCallingPartyNumberLength..maxCallingPartyNumberLength))
+
+-- Indicates the Calling Party Number. Refer to Recommendation Q.763 for encoding.
+CallingPartySubaddress ::= OCTET STRING
+
+-- Indicates the Calling Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+
+-- Indicates the type of calling party (e.g. operator, payphone, ordinary subscriber).
+-- Refer to Recommendation Q.763 for encoding.
+CallResult ::= OCTET STRING(SIZE (minCallResultLength..maxCallResultLength))
+
+-- This parameter provides the SCF with the charging related information previously requested
+-- using the ApplyCharging operation. This shall include the partyToCharge parameter as
+-- received in the related ApplyCharging operation to correlate the result to the request.
+-- The remaining content is network operator specific.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter values,
+-- costs, tariff change and time of change, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+Carrier ::= OCTET STRING
+
+-- Contains the carrier selection and carrier ID fields.
+-- Carrier selection is one octet and is encoded as:
+-- 00000000 No indication
+-- 00000001 Selected carrier code pre subscribed and not input by calling party
+-- 00000010 Selected carrier identification code pre subscribed and input by calling party
+-- 00000011 Selected carrier identification code pre subscribed, no indication of whether input by calling party
+-- 00000100 Selected carrier identification code not pre subscribed and input by calling party
+-- 00000101
+-- to Spare
+-- 11111110
+-- 11111111 Reserved
+--
+-- Carrier ID has a one octet field indicating the number of digits followed by the digits encoded using BCD.
+-- Detailed coding is for further study. It is of local significance and carrying it through the ISUP is for further
+-- study.
+Cause ::= OCTET STRING(SIZE (minCauseLength..maxCauseLength))
+
+-- Indicates the cause for interface related information. Refer to the Q.763 Cause parameter for
+-- encoding.
+-- For the use of cause and location values refer to Recommendation Q.850.
+CGEncountered ::= ENUMERATED {
+ noCGencountered(0), manualCGencountered(1), scpOverload(2)}
+
+-- Indicates the type of automatic call gapping encountered, if any.
+ChargeNumber ::=
+ LocationNumber
+
+-- Information sent in either direction indicating the chargeable number for the call and consisting
+-- of the odd/even indicator, nature of address indicator, numbering plan indicator, and address signals.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- For example, the ChargeNumber may be a third party number to which a call is billed for the 3rd party
+-- billing service. In this case, the calling party may request operator assistance to charge the call to,
+-- for example, their home number.
+ChargingEvent ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL
+}
+
+-- This parameter indicates the charging event type and corresponding
+-- monitor mode and LedID.
+CollectedDigits ::= SEQUENCE {
+ minimumNbOfDigits [0] INTEGER(1..127) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER(1..127),
+ endOfReplyDigit [2] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ cancelDigit [3] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ startDigit [4] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ firstDigitTimeOut [5] INTEGER(1..127) OPTIONAL,
+ interDigitTimeOut [6] INTEGER(1..127) OPTIONAL,
+ errorTreatment [7] ErrorTreatment DEFAULT reportErrorToScf,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+}
+
+-- The use of voiceBack is network operator specific.
+-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been designated as OCTET STRING,
+-- and are to be encoded as BCD, one digit per octet only, contained
+-- in the four least significant bits of each OCTET. The usage is service dependent.
+CollectedInfo ::= CHOICE {
+ collectedDigits [0] CollectedDigits,
+ iA5Information [1] BOOLEAN
+}
+
+ControlType ::= ENUMERATED {
+ sCPOverloaded(0), manuallyInitiated(1), destinationOverload(2)
+ -- other values FFS
+ }
+
+CorrelationID ::= Digits
+
+-- used by SCF for correlation with a previous operation. Refer to clause 3 for a description of the
+-- procedures associated with this parameter.
+CounterAndValue ::= SEQUENCE {
+ counterID [0] CounterID,
+ counterValue [1] Integer4
+}
+
+CounterID ::= INTEGER(0..99)
+
+-- Indicates the counters to be incremented.
+-- The counterIDs can be addressed by using the last digits of the dialled number.
+CountersValue ::= SEQUENCE SIZE (0..numOfCounters) OF CounterAndValue
+
+CutAndPaste ::= INTEGER(0..22)
+
+-- Indicates the number of digits to be deleted. Refer to 6.4.2.16/Q.1214 for additional information.
+DateAndTime ::= OCTET STRING(SIZE (6))
+
+-- Indicates, amongst others, the start time for activate service filtering. Coded as YYMMDDHHMMSS
+-- with each digit coded BCD.
+-- The first octet contains YY and the remaining items are sequenced following.
+-- For example, 1993 September 30th, 12:15:01 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- 2 1
+-- 5 1
+-- 1 0
+DestinationRoutingAddress ::= SEQUENCE SIZE (1..3) OF CalledPartyNumber
+
+-- Indicates the list of Called Party Numbers (primary and alternates).
+Digits ::= OCTET STRING(SIZE (minDigitsLength..maxDigitsLength))
+
+-- Indicates the address signalling digits. Refer to the Q.763 Generic Number and Generic Digits parameters
+-- for encoding. The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+-- Generic Digits are irrelevant to the INAP, the ASN.1 tags are sufficient to identify the parameter.
+-- The ISUP format does not allow to exclude these subfields, therefore the value is network operator specific.
+-- The following parameters should use Generic Number:
+-- CorrelationID for AssistRequestInstructions, AssistingSSPIPRoutingAddress for
+-- EstablishTemporaryConnection, calledAddressValue for all occurrences, callingAddressValue for all
+-- occurrences. The following parameters should use Generic Digits: prefix, all
+-- other CorrelationID occurrences, dialledNumber filtering criteria, callingLineID filtering criteria, lineID
+-- for ResourceID type, digitResponse for ReceivedInformationArg.
+DisplayInformation ::=
+ IA5String(SIZE (minDisplayInformationLength..maxDisplayInformationLength))
+
+-- Indicates the display information.
+DpSpecificCriteria ::= CHOICE {
+ numberOfDigits [0] NumberOfDigits,
+ applicationTimer [1] ApplicationTimer
+}
+
+-- The SCF may specify the number of digits to be collected by the SSF for the CollectedInfo event.
+-- When all digits are collected, the SSF reports the event to the SCF.
+-- The SCF may set a timer in the SSF for the No Answer event. If the user does not answer the call
+-- within the allotted time, the SSF reports the event to the SCF.
+Duration ::= INTEGER(-2..86400)
+
+-- Values are seconds.
+ErrorTreatment ::= ENUMERATED {reportErrorToScf(0), help(1), repeatPrompt(2)
+}
+
+-- reportErrorToScf means returning the "ImproperCallerResponse" error in the event of an error
+-- condition during collection of user info.
+EventSpecificInformationBCSM ::= CHOICE {
+ collectedInfoSpecificInfo
+ [0] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ analyzedInfoSpecificInfo
+ [1] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ routeSelectFailureSpecificInfo
+ [2] SEQUENCE {failureCause [0] Cause OPTIONAL,
+ ...},
+ oCalledPartyBusySpecificInfo
+ [3] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ oNoAnswerSpecificInfo
+ [4] SEQUENCE {-- no specific info defined
+ ...},
+ oAnswerSpecificInfo
+ [5] SEQUENCE {-- no specific info defined
+ ...},
+ oMidCallSpecificInfo
+ [6] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ oDisconnectSpecificInfo
+ [7] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...},
+ tBusySpecificInfo
+ [8] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ tNoAnswerSpecificInfo
+ [9] SEQUENCE {-- no specific info defined
+ ...},
+ tAnswerSpecificInfo
+ [10] SEQUENCE {-- no specific info defined
+ ...},
+ tMidCallSpecificInfo
+ [11] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ tDisconnectSpecificInfo
+ [12] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...}
+}
+
+-- Indicates the call related information specific to the event.
+-- The connectTime indicates the duration between the received answer indication from the called party side
+-- and the release of the connection for ODisconnect, OException, TDisconnect, or TException events.
+-- The unit for the connectTime is 100 milliseconds.
+EventSpecificInformationCharging ::=
+ OCTET STRING
+ (SIZE (minEventSpecificInformationChargingLength..
+ maxEventSpecificInformationChargingLength))
+
+-- defined by network operator.
+-- Indicates the charging related information specific to the event.
+-- An example data type definition for this parameter is given below:
+-- chargePulses [0] Integer4,
+-- chargeMessages [1] OCTET STRING (SIZE (min..max))
+EventTypeBCSM ::= ENUMERATED {
+ origAttemptAuthorized(1), collectedInfo(2), analysedInformation(3),
+ routeSelectFailure(4), oCalledPartyBusy(5), oNoAnswer(6), oAnswer(7),
+ oMidCall(8), oDisconnect(9), oAbandon(10), termAttemptAuthorized(12),
+ tBusy(13), tNoAnswer(14), tAnswer(15), tMidCall(16), tDisconnect(17),
+ tAbandon(18)}
+
+-- Indicates the BCSM detection point event. Refer to 4.2.2.2/Q.1214 for additional information on the
+-- events. Values origAttemptAuthorized and termAttemptAuthorized can only be used for TDPs.
+EventTypeCharging ::=
+ OCTET STRING(SIZE (minEventTypeChargingLength..maxEventTypeChargingLength))
+
+-- This parameter indicates the charging event type. Its content is network operator specific.
+--
+-- An example data type definition for this parameter is given below:
+-- EventTypeCharging ::= ENUMERATED {
+-- chargePulses (0),
+-- chargeMessages (1)
+-- }
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &criticality Criticality DEFAULT ignored
+}
+WITH SYNTAX {
+ [EXTENSION-SYNTAX &Type
+ [IF ABSENT &absent]]
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= INTEGER(0..MAX)
+
+Criticality ::= ENUMERATED {ignored(0), abort(1)}
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality Criticality DEFAULT ignored,
+ value [1] EXTENSION.&Type({ChosenFrom}{@type})
+}
+
+-- This parameter indicates an extension of an argument data type. Its content is network operator specific.
+SupportedExtensions EXTENSION ::=
+ {...}
+
+FacilityGroup ::= CHOICE {
+ trunkGroupID [0] INTEGER,
+ privateFacilityID [1] INTEGER,
+ huntGroup [2] OCTET STRING,
+ routeIndex [3] OCTET STRING
+}
+
+-- Indicates the particular group of facilities to route the call. huntGroup and routeIndex are encoded as
+-- network operator specific.
+FacilityGroupMember ::= INTEGER
+
+-- Indicates the specific member of a trunk group or multi-line hunt group.
+FCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minFCIBillingChargingLength..maxFCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- FCIBillingChargingCharacteristics ::= CHOICE {
+-- completeChargingrecord [0] OCTET STRING (SIZE (min..max)),
+-- correlationID [1] CorrelationID,
+-- scenario2Dot3 [2] SEQUENCE {
+-- chargeParty [0] LegID OPTIONAL,
+-- chargeLevel [1] OCTET STRING (SIZE (min..max))
+-- OPTIONAL,
+-- chargeItems [2] SET OF Attribute OPTIONAL
+-- }
+-- }
+-- Depending on the applied charging scenario, the following information elements can be included
+-- (refer to Q.1214 Appendix II):
+-- complete charging record (scenario 2.2)
+-- charge party (scenario 2.3)
+-- charge level (scenario 2.3)
+-- charge items (scenario 2.3)
+-- correlationID (scenario 2.4)
+FeatureCode ::=
+ LocationNumber
+
+-- The two-digit feature code preceded by "*" or "11".
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Used for stimulus signalling (Q.932).
+FeatureRequestIndicator ::= ENUMERATED {
+ hold(0), retrieve(1), featureActivation(2), spare1(3), sparen(127)}
+
+-- Indicates the feature activated (e.g. a switch-hook flash, feature activation). Spare values reserved
+-- for future use.
+FilteredCallTreatment ::= SEQUENCE {
+ sFBillingChargingCharacteristics [0] SFBillingChargingCharacteristics,
+ informationToSend [1] InformationToSend OPTIONAL,
+ maximumNumberOfCounters [2] MaximumNumberOfCounters OPTIONAL,
+ releaseCause [3] Cause OPTIONAL
+}
+
+-- If releaseCause is not present, the default value is the same as the ISUP cause value decimal 31.
+-- If informationToSend is present, the call will be released after the end of the announcement
+-- with the indicated or default releaseCause.
+-- If maximumNumberOfCounters is not present, ServiceFilteringResponse will be sent with
+-- CountersValue::= SEQUENCE SIZE (0) OF CountersAndValue.
+FilteringCharacteristics ::= CHOICE {
+ interval [0] INTEGER(-1..32000),
+ numberOfCalls [1] Integer4
+}
+
+-- Indicates the severity of the filtering and the point in time when the ServiceFilteringResponse is to be sent.
+-- If = interval, every interval of time the next call leads to an InitialDP and a ServiceFilteringResponse is
+-- sent to the SCF. The interval is specified in seconds.
+-- If = NumberOfCalls, every N calls the Nth call leads to an InitialDP and a ServiceFilteringResponse
+-- is sent to the SCF.
+-- If ActivateServiceFiltering implies several counters - filtering on several dialled numbers -,
+-- the numberOfCalls would include calls to all the dialled numbers.
+FilteringCriteria ::= CHOICE {
+ dialledNumber [0] Digits,
+ callingLineID [1] Digits,
+ serviceKey [2] ServiceKey,
+ addressAndService
+ [30] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ callingAddressValue [2] Digits OPTIONAL,
+ locationNumber [3] LocationNumber OPTIONAL
+ }
+}
+
+-- In case calledAddressValue is specified, the numbers to be filtered are from calledAddressValue
+-- up to and including calledAddressValue + maximumNumberOfCounters-1.
+-- The last two digits of calledAddressvalue can not exceed 100-maximumNumberOfCounters.
+FilteringTimeOut ::= CHOICE {
+ duration [0] Duration,
+ stopTime [1] DateAndTime
+}
+
+-- Indicates the maximum duration of the filtering. When the timer expires, a ServiceFilteringResponse
+-- is sent to the SCF.
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+
+-- Indicates the Forward Call Indicators. Refer to Recommendation Q.763 for encoding.
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+
+-- Indicates the condition that must be met to complete the connect.
+GapCriteria ::= CHOICE {
+ calledAddressValue [0] Digits,
+ gapOnService [2] GapOnService,
+ calledAddressAndService
+ [29] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey},
+ callingAddressAndService
+ [30] SEQUENCE {callingAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ locationNumber [2] LocationNumber OPTIONAL
+ }
+}
+
+-- Both calledAddressValue and callingAddressValue can be
+-- incomplete numbers, in the sense that a limited amount of digits can be given.
+--
+-- For the handling of numbers starting with the same digit string, refer to the detailed procedure
+-- of the CallGap operation in 3.3.
+GapOnService ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ dpCriteria [1] EventTypeBCSM OPTIONAL
+}
+
+--Recommendation Q.1218 (10/95)
+GapIndicators ::= SEQUENCE {
+ duration [0] Duration,
+ gapInterval [1] Interval
+}
+
+-- Indicates the gapping characteristics. No gapping when gapInterval equals 0, and gap all calls when
+-- gapInterval equals 1.
+GapTreatment ::= CHOICE {
+ informationToSend [0] InformationToSend,
+ releaseCause [1] Cause,
+ both
+ [2] SEQUENCE {informationToSend [0] InformationToSend,
+ releaseCause [1] Cause}
+}
+
+-- The default value for Cause is the same as in ISUP.
+HighLayerCompatibility ::= OCTET STRING(SIZE (highLayerCompatibilityLength))
+
+-- Indicates the teleservice. For encoding, DSS 1 (Q.931) is used.
+HoldCause ::= OCTET STRING -- defined by network operator.
+
+-- Indicates the cause for holding the call.
+InbandInfo ::= SEQUENCE {
+ messageID [0] MessageID,
+ numberOfRepetitions [1] INTEGER(1..127) OPTIONAL,
+ duration [2] INTEGER(0..32767) OPTIONAL,
+ interval [3] INTEGER(0..32767) OPTIONAL
+}
+
+-- Interval is the time in seconds between each repeated announcement. Duration is the total
+-- amount of time in seconds, including repetitions and intervals.
+-- The end of announcement is either the end of duration or numberOfRepetitions, whatever comes first.
+-- Duration with value 0 indicates infinite duration.
+InformationToSend ::= CHOICE {
+ inbandInfo [0] InbandInfo,
+ tone [1] Tone,
+ displayInformation [2] DisplayInformation
+}
+
+Integer4 ::= INTEGER(0..2147483647)
+
+Interval ::= INTEGER(-1..60000)
+
+-- Units are milliseconds. A -1 value denotes infinite.
+InvokeID ::=
+ InvokeIdType
+
+-- Operation invoke identifier.
+IPAvailable ::= OCTET STRING(SIZE (minIPAvailableLength..maxIPAvailableLength))
+
+-- defined by network operator.
+-- Indicates that the resource is available.
+IPRoutingAddress ::=
+ CalledPartyNumber
+
+-- Indicates the routing address for the IP.
+IPSSPCapabilities ::=
+ OCTET STRING(SIZE (minIPSSPCapabilitiesLength..maxIPSSPCapabilitiesLength))
+
+-- defined by network operator.
+-- Indicates the SRF resources available at the SSP.
+ISDNAccessRelatedInformation ::= OCTET STRING
+
+-- Indicates the destination user network interface related information. Refer to the Q.763 Access
+-- Transport parameter for encoding.
+LegID ::= CHOICE {sendingSideID [0] LegType,
+ receivingSideID [1] LegType
+}
+
+-- Indicates a reference to a specific party in a call. OPTIONAL denotes network operator specific use
+-- with a choice of unilateral ID assignment or bilateral ID assignment.
+-- OPTIONAL for LegID also denotes the following:
+-- - when only one party exists in the call, this parameter is not needed (as no ambiguity exists);
+-- - when more than one party exists in the call, one of the following alternatives applies:
+-- 1. LegID is present and indicates which party is concerned.
+-- 2. LegID is not present and a default value is assumed (e.g. calling party in the case of the
+-- ApplyCharging operation).
+-- Choice between these two alternatives is kept a network operator option.
+LegType ::= OCTET STRING(SIZE (1))
+
+leg1 LegType ::= '01'H
+
+leg2 LegType ::= '02'H
+
+LocationNumber ::=
+ OCTET STRING(SIZE (minLocationNumberLength..maxLocationNumberLength))
+
+-- Indicates the Location Number for the calling party. Refer to Recommendation Q.763 (White book) for encoding.
+MaximumNumberOfCounters ::= INTEGER(1..numOfCounters)
+
+MessageID ::= CHOICE {
+ elementaryMessageID [0] Integer4,
+ text
+ [1] SEQUENCE {messageContent
+ [0] IA5String
+ (SIZE (minMessageContentLength..
+ maxMessageContentLength)),
+ attributes
+ [1] OCTET STRING
+ (SIZE (minAttributesLength..maxAttributesLength))
+ OPTIONAL},
+ elementaryMessageIDs [29] SEQUENCE SIZE (1..numOfMessageIDs) OF Integer4,
+ variableMessage
+ [30] SEQUENCE {elementaryMessageID [0] Integer4,
+ variableParts
+ [1] SEQUENCE SIZE (1..5) OF VariablePart}
+}
+
+-- OPTIONAL denotes network operator specific use.
+MiscCallInfo ::= SEQUENCE {
+ messageType [0] ENUMERATED {request(0), notification(1)},
+ dpAssignment
+ [1] ENUMERATED {individualLine(0), groupBased(1), officeBased(2)} OPTIONAL
+}
+
+-- Indicates detection point related information.
+MonitorMode ::= ENUMERATED {
+ interrupted(0), notifyAndContinue(1), transparent(2)}
+
+-- Indicates the event is relayed and/or processed by the SSP.
+-- If this parameter is used in the context of charging events, the following definitions apply for the
+-- handling of charging events:
+-- Interrupted means that the SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, does not process the event but discard it.
+-- NotifyAndContinue means that SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, and continues processing the event or signal without waiting for SCF
+-- instructions. Transparent means that the SSF does not notify the SCF of the event. This value is used to
+-- end the monitoring of a previously requested charging event. Previously requested charging events are
+-- monitored until ended by a transparent monitor mode, or until the end of the connection configuration.
+-- For the use of this parameter in the context of BCSM events refer to 3.3.39.
+NumberingPlan ::= OCTET STRING(SIZE (1))
+
+-- Indicates the numbering plan for collecting the user information. Refer to the Q.763 Numbering Plan.
+-- Indicator field for encoding.
+NumberOfDigits ::= INTEGER(1..255)
+
+-- Indicates the number of digits to be collected
+OriginalCalledPartyID ::=
+ OCTET STRING
+ (SIZE (minOriginalCalledPartyIDLength..maxOriginalCalledPartyIDLength))
+
+-- Indicates the original called number. Refer to the Q.763 Original Called Number for encoding.
+RedirectingPartyID ::=
+ OCTET STRING(SIZE (minRedirectingPartyIDLength..maxRedirectingPartyIDLength))
+
+-- Indicates redirecting number. Refer to the Q.763 Redirecting number for encoding.
+RedirectionInformation ::= OCTET STRING(SIZE (2))
+
+-- Indicates redirection information. Refer to the Q.763 Redirection Information for encoding.
+ReportCondition ::= ENUMERATED {statusReport(0), timerExpired(1), canceled(2)
+}
+
+-- ReportCondition specifies the cause of sending "StatusReport" operation to the SCF.
+RequestedInformationList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation
+
+RequestedInformationTypeList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+RequestedInformation ::= SEQUENCE {
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue
+}
+
+RequestedInformationType ::= ENUMERATED {
+ callAttemptElapsedTime(0), callStopTime(1), callConnectedElapsedTime(2),
+ calledAddress(3), releaseCause(30)}
+
+RequestedInformationValue ::= CHOICE {
+ callAttemptElapsedTimeValue [0] INTEGER(0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ calledAddressValue [3] Digits,
+ releaseCauseValue [30] Cause
+}
+
+-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the
+-- callConnectedElapsedTimeValue is 100 milliseconds.
+ResourceID ::= CHOICE {
+ lineID [0] Digits,
+ facilityGroupID [1] FacilityGroup,
+ facilityGroupMemberID [2] INTEGER,
+ trunkGroupID [3] INTEGER
+}
+
+-- Indicates a logical identifier for the physical termination resource.
+ResourceStatus ::= ENUMERATED {busy(0), idle(1)}
+
+ResponseCondition ::= ENUMERATED {intermediateResponse(0), lastResponse(1)
+
+-- additional values are for further study.
+}
+
+-- ResponseCondition is used to identify the reason why ServiceFilteringResponse operation is sent.
+-- intermediateresponse identifies that service filtering is running and the interval time is expired and
+-- a call is received, or that service filtering is running and the threshold value is reached.
+-- lastResponse identifies that the duration time is expired and service filtering has been finished or
+-- that the stop time is met and service filtering has been finished.
+RouteList ::=
+ SEQUENCE SIZE (1..3) OF
+ OCTET STRING(SIZE (minRouteListLength..maxRouteListLength))
+
+-- Indicates a list of trunk groups or a route index. See Recommendation Q.1214 for additional information on this item.
+ScfID ::= OCTET STRING(SIZE (minScfIDLength..maxScfIDLength))
+
+-- defined by network operator.
+-- Indicates the SCF identifier.
+SCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSCIBillingChargingLength..maxSCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- SCIBillingChargingCharacteristics ::= CHOICE {
+-- chargeLevel [0] OCTET STRING (SIZE (min..max),
+-- chargePulses [1] Integer4,
+-- chargeMessages [2] OCTET STRING (SIZE (min..max)
+-- }
+-- Depending on the applied charging scenario the following information elements
+-- can be included (refer to Appendix II/Q.1214):
+-- chargeLevel (scenario 3.2)
+-- chargePulses (scenario 3.2)
+-- chargeMessages (scenario 3.2)
+ServiceAddressInformation ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ miscCallInfo [1] MiscCallInfo,
+ triggerType [2] TriggerType OPTIONAL
+}
+
+-- Information that represents the result of trigger analysis and allows the SCF to choose the appropriate
+-- service logic.
+ServiceInteractionIndicators ::=
+ OCTET STRING
+ (SIZE (minServiceInteractionIndicatorsLength..
+ maxServiceInteractionIndicatorsLength))
+
+-- Indicators which are exchanged between SSP and SCP to resolve interactions between IN based services
+-- and network based services, respectively between different IN based services.
+-- The contents are network specific and identified as a subject for further study with respect to INAP.
+-- The following example is listed to illustrate the use of this parameter:
+-- CallToBeDiverted Allowed/NotAllowed Indicator
+-- If the CallToBeDiverted indicator is set to NotAllowed, the destination exchange shall not allow any
+-- divertion on the subjected call. By this, each service can pass the applicable indicators to inform the
+-- destination exchange of how specific services are to be handled.
+ServiceKey ::=
+ Integer4
+
+-- Information that allows the SCF to choose the appropriate service logic.
+ServiceProfileIdentifier ::= OCTET STRING
+
+-- Indicates a particular ISDN terminal. Refer to Recommendation Q.932 for encoding.
+ServingAreaID ::=
+ LocationNumber
+
+-- Identifies the local serving area where a network provider operates. Uses the LocationNumber
+-- format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Defined by the network operator.
+SFBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSFBillingChargingLength..maxSFBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics for filtered calls.
+-- Its content is network operator specific.
+TerminalType ::= ENUMERATED {
+ unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16)
+}
+
+-- Identifies the terminal type so that the SCF can specify, to the SRF, the appropriate type of capability
+-- (voice recognition, DTMF, display capability, etc.). Since present signalling systems do not convey
+-- terminal type, this parameter applies only at originating or terminating local exchanges.
+TimerID ::= ENUMERATED {tssf(0)
+ -- others ffs
+ }
+
+-- Indicates the timer to be reset.
+TimerValue ::= Integer4
+
+-- Indicates the timer value (in seconds).
+Tone ::= SEQUENCE {toneID [0] Integer4,
+ duration [1] Integer4 OPTIONAL
+}
+
+-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration.
+TravellingClassMark ::=
+ LocationNumber
+
+-- Indicates travelling class mark information.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Maximum 2 digits.
+TriggerType ::= ENUMERATED {
+ featureActivation(0), verticalServiceCode(1), customizedAccess(2),
+ customizedIntercom(3), emergencyService(12), aFR(13), sharedIOTrunk(14),
+ offHookDelay(17), channelSetupPRI(18), tNoAnswer(25), tBusy(26),
+ oCalledPartyBusy(27), oNoAnswer(29), originationAttemptAuthorized(30),
+ oAnswer(31), oDisconnect(32), termAttemptAuthorized(33), tAnswer(34),
+ tDisconnect(35)
+ -- Private (ffs)
+ }
+
+-- The type of trigger which caused call suspension
+-- 4-11: Reserved; 15,16: Reserved; 19-24: Reserved
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources(0), componentFailure(1),
+ basicCallProcessingException(2), resourceStatusFailure(3), endUserFailure(4)
+}
+
+-- Indicates the network resource that failed.
+VariablePart ::= CHOICE {
+ integer [0] Integer4,
+ number [1] Digits, -- Generic digits
+ time [2] OCTET STRING(SIZE (2)), -- HH:MM, BCD coded
+ date [3] OCTET STRING(SIZE (3)), -- YYMMDD, BCD coded
+ price [4] OCTET STRING(SIZE (4))
+}
+
+-- Indicates the variable part of the message.
+-- BCD coded variable parts are encoded as described in the examples below.
+-- For example, time = 12:15 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 2 1
+-- 5 1
+-- date = 1993 September 30th would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- The Definition of range of constants Follows
+highLayerCompatibilityLength INTEGER ::=
+ 2
+
+minAChBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxAChBillingChargingLength INTEGER ::= 1 -- network specific
+
+minAttributesLength INTEGER ::= 0 -- network specific
+
+maxAttributesLength INTEGER ::= 1 -- network specific
+
+maxBearerCapabilityLength INTEGER ::= 2 -- network specific
+
+minCalledPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCalledPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallingPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCallingPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallResultLength INTEGER ::= 0 -- network specific
+
+maxCallResultLength INTEGER ::= 1 -- network specific
+
+minCauseLength INTEGER ::= 2
+
+maxCauseLength INTEGER ::= 2 -- network specific
+
+minDigitsLength INTEGER ::= 0 -- network specific
+
+maxDigitsLength INTEGER ::= 1 -- network specific
+
+minDisplayInformationLength INTEGER ::= 0 -- network specific
+
+maxDisplayInformationLength INTEGER ::= 1 -- network specific
+
+minEventSpecificInformationChargingLength INTEGER ::= 0 -- network specific
+
+maxEventSpecificInformationChargingLength INTEGER ::= 1 -- network specific
+
+minEventTypeChargingLength INTEGER ::= 0 -- network specific
+
+maxEventTypeChargingLength INTEGER ::= 1 -- network specific
+
+minFCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxFCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minIPAvailableLength INTEGER ::= 0 -- network specific
+
+maxIPAvailableLength INTEGER ::= 1 -- network specific
+
+minIPSSPCapabilitiesLength INTEGER ::= 0 -- network specific
+
+maxIPSSPCapabilitiesLength INTEGER ::= 1 -- network specific
+
+minLocationNumberLength INTEGER ::= 0 -- network specific
+
+maxLocationNumberLength INTEGER ::= 1 -- network specific
+
+minMessageContentLength INTEGER ::= 0 -- network specific
+
+maxMessageContentLength INTEGER ::= 1 -- network specific
+
+minOriginalCalledPartyIDLength INTEGER ::= 0 -- network specific
+
+maxOriginalCalledPartyIDLength INTEGER ::= 1 -- network specific
+
+minRedirectingPartyIDLength INTEGER ::= 0 -- network specific
+
+maxRedirectingPartyIDLength INTEGER ::= 1 -- network specific
+
+minRouteListLength INTEGER ::= 0 -- network specific
+
+maxRouteListLength INTEGER ::= 1 -- network specific
+
+minScfIDLength INTEGER ::= 0 -- network specific
+
+maxScfIDLength INTEGER ::= 1 -- network specific
+
+minSCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minServiceInteractionIndicatorsLength INTEGER ::= 0 -- network specific
+
+maxServiceInteractionIndicatorsLength INTEGER ::= 1 -- network specific
+
+minSFBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSFBillingChargingLength INTEGER ::= 1 -- network specific
+
+numOfBCSMEvents INTEGER ::= 1 -- network specific
+
+numOfChargingEvents INTEGER ::= 1 -- network specific
+
+numOfCounters INTEGER ::= 100
+
+numOfExtensions INTEGER ::= 1 -- network specific
+
+numOfInfoItems INTEGER ::= 5
+
+numOfMessageIDs INTEGER ::= 1 -- network specific
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/INAPv2extract.asn b/lib/asn1/test/asn1_bin_SUITE_data/INAPv2extract.asn
new file mode 100644
index 0000000000..8eaecbd0a7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/INAPv2extract.asn
@@ -0,0 +1,112 @@
+INAPv2extract DEFINITIONS
+
+EXPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXTENSION ::= CLASS {
+ &ExtensionType ,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code
+}
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+CriticalityType ::= ENUMERATED {ignore(0), abort(1)}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+--3b parameteriserad object set
+SupportedExtensions{PARAMETERS-BOUND:bound} EXTENSION ::=
+{firstExtension |
+ boundedExtension {bound}, --4a instans av parameteriserat object
+ ...
+}
+
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY local:1
+}
+
+--4b parameteriserat object
+boundedExtension{PARAMETERS-BOUND:bound} EXTENSION ::= {
+ EXTENSION-SYNTAX BoundedExtensionSyntax {bound} --5a instans av parameteriserad typ
+ CRITICALITY ignore
+ IDENTIFIED BY local:2
+}
+
+--1b parameteriserad typ
+InitialDPArg{PARAMETERS-BOUND:bound} ::= SEQUENCE {
+ dialledDigits [1] CalledPartyNumber{bound} OPTIONAL, --2a instans av parameteriserad typ
+ extensions [15] SEQUENCE SIZE (1..bound.&numOfExtensions) OF ExtensionField{ {SupportedExtensions {bound}}} OPTIONAL --3a instans av parameteriserad objectset
+}
+
+ExtensionField{EXTENSION:SupportedExtensions} ::= SEQUENCE {
+ type EXTENSION.&id({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType({SupportedExtensions}{@type})
+}
+
+--2b parameteriserad typ
+CalledPartyNumber{PARAMETERS-BOUND:bound} ::=
+ OCTET STRING
+ (SIZE (bound.&minCalledPartyNumberLength..bound.&maxCalledPartyNumberLength))
+
+--5b parameteriserad typ
+BoundedExtensionSyntax{PARAMETERS-BOUND:bound} ::= SEQUENCE { --5
+ digits OCTET STRING(SIZE (bound.&minDigitsLength..bound.&maxDigitsLength))
+}
+
+PARAMETERS-BOUND ::= CLASS {
+ &minAChBillingChargingLength INTEGER,
+ &maxAChBillingChargingLength INTEGER,
+ &minAttributesLength INTEGER,
+ &maxAttributesLength INTEGER,
+ &minBackwardGVNSLength INTEGER,
+ &minDigitsLength INTEGER,
+ &maxDigitsLength INTEGER,
+ &minCalledPartyNumberLength INTEGER,
+ &maxCalledPartyNumberLength INTEGER,
+ &numOfExtensions INTEGER
+}
+WITH SYNTAX {
+ MINIMUM-FOR-ACH-BILLING-CHARGING &minAChBillingChargingLength
+ MAXIMUM-FOR-ACH-BILLING-CHARGING &maxAChBillingChargingLength
+ MINIMUM-FOR-ATTRIBUTES &minAttributesLength
+ MAXIMUM-FOR-ATTRIBUTES &maxAttributesLength
+ MINIMUM-FOR-BACKWARD-GVNS &minBackwardGVNSLength
+ MINIMUM-FOR-DIGITS &minDigitsLength
+ MAXIMUM-FOR-DIGITS &maxDigitsLength
+ MINIMUM-FOR-CALLED-PARTY-NUMBER &minCalledPartyNumberLength
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER &maxCalledPartyNumberLength
+ NUM-OF-EXTENSIONS &numOfExtensions
+ }
+
+--1a instans av parameteriserad typ
+ActivityTest2 ::= InitialDPArg{networkSpecificBoundSet}
+
+networkSpecificBoundSet PARAMETERS-BOUND ::= {
+ MINIMUM-FOR-ACH-BILLING-CHARGING 1 -- example value
+ MAXIMUM-FOR-ACH-BILLING-CHARGING 5 -- example value
+ MINIMUM-FOR-ATTRIBUTES 1 -- example value
+ MAXIMUM-FOR-ATTRIBUTES 5 -- example value
+ MINIMUM-FOR-BACKWARD-GVNS 1
+ MINIMUM-FOR-DIGITS 1
+ MAXIMUM-FOR-DIGITS 5
+ MINIMUM-FOR-CALLED-PARTY-NUMBER 1 -- example value
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER 5 -- example value
+ NUM-OF-EXTENSIONS 1 -- example value
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/INSTANCEOF.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/INSTANCEOF.asn1
new file mode 100644
index 0000000000..8c4f3a8f7e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/INSTANCEOF.asn1
@@ -0,0 +1,34 @@
+INSTANCEOF DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ lastName [3] INSTANCE OF OTHER-NAME ({TI})
+}
+
+Names ::= SEQUENCE {
+ firstName [0] INSTANCE OF OTHER-NAME,
+ secondName [1] PrintableString,
+ thirdName [2] INSTANCE OF OTHER-NAME ({TI})
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+TI OTHER-NAME ::= {{INTEGER IDENTIFIED BY {2 4}} |
+ {Seq IDENTIFIED BY {2 3 4}} |
+ {SEQUENCE{a INTEGER,b ENUMERATED{a,b,c}} IDENTIFIED BY {2 3 4 5}} }
+
+Int ::= INTEGER
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/IllegalExport.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/IllegalExport.asn1
new file mode 100644
index 0000000000..1b5e42ad3c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/IllegalExport.asn1
@@ -0,0 +1,7 @@
+IllegalExport DEFINITIONS ::=
+BEGIN
+EXPORTS T, KalleAnka;
+
+T ::= INTEGER
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Import.py b/lib/asn1/test/asn1_bin_SUITE_data/Import.py
new file mode 100644
index 0000000000..91841c1c9f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Import.py
@@ -0,0 +1,14 @@
+Import DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+--IMPORTS
+-- OPERATION, ERROR FROM Remote-Operations-Notation
+-- {joint-iso-ccitt(2) remote-operations(4) notation(0)};
+-- {joint-iso-ccitt remote-operations notation};
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ImportsFrom.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ImportsFrom.asn1
new file mode 100644
index 0000000000..896a35d627
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ImportsFrom.asn1
@@ -0,0 +1,17 @@
+ImportsFrom DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+Type1, Type2, Type3
+FROM RemoteFile1 objid
+val1, val2, val3
+FROM RemoteFile2;
+
+objid OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) remote-operations(4) notation(0)}
+
+LocalType ::= INTEGER
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/InfClass.asn b/lib/asn1/test/asn1_bin_SUITE_data/InfClass.asn
new file mode 100644
index 0000000000..ecc6764402
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/InfClass.asn
@@ -0,0 +1,56 @@
+InfClass DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ERROR
+FROM ErrorClass;
+
+FUNCTION ::= CLASS {
+ &ArgumentType,
+ &ResultType DEFAULT NULL,
+ &error ERROR OPTIONAL,
+ &code INTEGER UNIQUE
+ }
+
+OTHER-FUNCTION ::= CLASS {
+ &code INTEGER UNIQUE,
+ &Alphabet DEFAULT NULL,
+ &ArgumentType,
+ &SupportedArguments &ArgumentType OPTIONAL,
+ &ResultType DEFAULT NULL,
+ &result-if-error &ResultType DEFAULT NULL,
+ &associated-function OTHER-FUNCTION OPTIONAL,
+ &NumberSet INTEGER,
+ &ObjectSet OTHER-FUNCTION
+ }
+
+ObjSet1 FUNCTION ::= { ... }
+
+val1 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 3
+ }
+
+val2 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 2
+ }
+
+int1 INTEGER ::= 3
+
+ObjSet2 FUNCTION ::= {
+ val1 | val2 }
+
+
+-- added for OTP-4591
+
+Seq ::= SEQUENCE {
+ arg FUNCTION.&ArgumentType ({ObjSet2}{@val1}),
+ res FUNCTION.&ResultType ({ObjSet2}{@val1}),
+ val1 FUNCTION.&code ({ObjSet2})
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/InfObj.asn b/lib/asn1/test/asn1_bin_SUITE_data/InfObj.asn
new file mode 100644
index 0000000000..0a437e12df
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/InfObj.asn
@@ -0,0 +1,153 @@
+InfObj DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome OPTIONAL,
+ &FixTypeValSet PrintableString OPTIONAL,
+ &VarTypeValSet &InitiatingMessage OPTIONAL,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE OPTIONAL,
+ &InfObjectSet CLASS2 OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+ [VARTYPEVALUE &vartypvalue]
+ [FIXT &FixTypeValSet]
+ [VART &VarTypeValSet]
+ [INFOOBJECT &infoObject]
+ [INFOOBJECTSET &InfObjectSet]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/InfObj2.asn b/lib/asn1/test/asn1_bin_SUITE_data/InfObj2.asn
new file mode 100644
index 0000000000..faba7371a4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/InfObj2.asn
@@ -0,0 +1,156 @@
+InfObj2 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome,
+ &FixTypeValSet PrintableString,
+ &VarTypeValSet &InitiatingMessage,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE,
+ &InfObjectSet CLASS2,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage [0] InitiatingMessage,
+ substrings [1] SEQUENCE {
+ type RANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] RANAP-ELEMENTARY-PROCEDURE.&Outcome({
+ RANAP-ELEMENTARY-PROCEDURES}{@substrings.type}),
+ final [1] RANAP-ELEMENTARY-PROCEDURE.&Outcome({RANAP-ELEMENTARY-PROCEDURES}{@substrings.type})
+ }
+ },
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+ }
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/InformationFramework.asn b/lib/asn1/test/asn1_bin_SUITE_data/InformationFramework.asn
new file mode 100755
index 0000000000..ef236e98a9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id -- OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Int.py b/lib/asn1/test/asn1_bin_SUITE_data/Int.py
new file mode 100644
index 0000000000..dd218b8dbd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Int.py
@@ -0,0 +1,12 @@
+Int DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Int ::= INTEGER
+Int2 ::= INTEGER (1..10)
+
+-- OTP-5457
+int11 INTEGER ::= 11
+int11-2 INTEGER ::= int11 --correct should not cause crash or warning
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/LDAP.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/LDAP.asn1
new file mode 100755
index 0000000000..4d845942e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/LDAP.asn1
@@ -0,0 +1,283 @@
+ --Lightweight-Directory-Access-Protocol-V3 {1 3 6 1 1 18}
+ -- Copyright (C) The Internet Society (2006). This version of
+ -- this ASN.1 module is part of RFC 4511; see the RFC itself
+ -- for full legal notices.
+ LDAP
+ DEFINITIONS
+ IMPLICIT TAGS
+ EXTENSIBILITY IMPLIED
+ ::=
+
+ BEGIN
+
+ LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse,
+ ...,
+ intermediateResponse IntermediateResponse },
+ controls [0] Controls OPTIONAL }
+
+ MessageID ::= INTEGER (0 .. maxInt)
+
+ maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+ LDAPString ::= OCTET STRING -- UTF-8 encoded,
+ -- [ISO10646] characters
+
+ LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
+ -- [RFC4512]
+
+
+ LDAPDN ::= LDAPString -- Constrained to <distinguishedName>
+ -- [RFC4514]
+
+ RelativeLDAPDN ::= LDAPString -- Constrained to <name-component>
+ -- [RFC4514]
+
+ AttributeDescription ::= LDAPString
+ -- Constrained to <attributedescription>
+ -- [RFC4512]
+
+ AttributeValue ::= OCTET STRING
+
+ AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+ AssertionValue ::= OCTET STRING
+
+ PartialAttribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF value AttributeValue }
+
+ Attribute ::= PartialAttribute(WITH COMPONENTS {
+ ...,
+ vals (SIZE(1..MAX))})
+
+ MatchingRuleId ::= LDAPString
+
+ LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongerAuthRequired (8),
+ -- 9 reserved --
+ referral (10),
+ adminLimitExceeded (11),
+ unavailableCriticalExtension (12),
+ confidentialityRequired (13),
+ saslBindInProgress (14),
+
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71),
+ -- 72-79 unused --
+ other (80),
+ ... },
+ matchedDN LDAPDN,
+ diagnosticMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+ Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
+
+ URI ::= LDAPString -- limited to characters permitted in
+ -- URIs
+
+ Controls ::= SEQUENCE OF control Control
+
+ Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+
+ BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+ AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials,
+ ... }
+
+ SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+ BindResponse ::= [APPLICATION 1] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+ UnbindRequest ::= [APPLICATION 2] NULL
+
+ SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2),
+ ... },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeSelection }
+
+ AttributeSelection ::= SEQUENCE OF selector LDAPString
+ -- The LDAPString is constrained to
+ -- <attributeSelector> in Section 4.5.1.8
+
+ Filter ::= CHOICE {
+ and [0] SET SIZE (1..MAX) OF filter Filter,
+ or [1] SET SIZE (1..MAX) OF filter Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion,
+ ... }
+
+ SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
+ initial [0] AssertionValue, -- can occur at most once
+ any [1] AssertionValue,
+ final [2] AssertionValue } -- can occur at most once
+ }
+
+ MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+ SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+ PartialAttributeList ::= SEQUENCE OF
+ partialAttribute PartialAttribute
+
+ SearchResultReference ::= [APPLICATION 19] SEQUENCE
+ SIZE (1..MAX) OF uri URI
+
+ SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ changes SEQUENCE OF change SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2),
+ ... },
+ modification PartialAttribute } }
+
+ ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+ AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+ AttributeList ::= SEQUENCE OF attribute Attribute
+
+ AddResponse ::= [APPLICATION 9] LDAPResult
+
+ DelRequest ::= [APPLICATION 10] LDAPDN
+
+ DelResponse ::= [APPLICATION 11] LDAPResult
+
+ ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+ CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+ CompareResponse ::= [APPLICATION 15] LDAPResult
+
+ AbandonRequest ::= [APPLICATION 16] MessageID
+
+ ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ responseValue [11] OCTET STRING OPTIONAL }
+
+ IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
+ responseName [0] LDAPOID OPTIONAL,
+ responseValue [1] OCTET STRING OPTIONAL }
+
+ END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/M1.asn b/lib/asn1/test/asn1_bin_SUITE_data/M1.asn
new file mode 100644
index 0000000000..f0575fb25f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/M1.asn
@@ -0,0 +1,24 @@
+M1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type6
+ FROM M2
+ ;
+
+Type1 ::= INTEGER (1..3)
+
+Type2 ::= ENUMERATED {one,two}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN
+}
+
+Type5 ::= OCTET STRING
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/M2.asn b/lib/asn1/test/asn1_bin_SUITE_data/M2.asn
new file mode 100644
index 0000000000..22d7fed6f1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/M2.asn
@@ -0,0 +1,29 @@
+M2 DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type5
+ FROM M1
+ ;
+
+Type1 ::= INTEGER (1..8)
+
+Type2 ::= ENUMERATED {one,two,three}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN,
+ c Type2,
+ d Type5
+}
+
+Type6 ::= SET {
+ a Type1,
+ b Type5
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..2a90c4265a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,37 @@
+MAP-ExtensionDataTypes {
+ ccitt identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version6 (6)}
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+EXPORTS
+ PrivateExtension,
+ ExtensionContainer;
+-- IOC for private MAP extensions
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+-- data types
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+maxNumOfPrivateExtensions INTEGER ::= 10
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+PCS-Extensions ::= SEQUENCE {
+ ...}
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MAP-commonDataTypes.py b/lib/asn1/test/asn1_bin_SUITE_data/MAP-commonDataTypes.py
new file mode 100644
index 0000000000..694abefa6a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MAP-commonDataTypes.py
@@ -0,0 +1,31 @@
+MAP-commonDataTypes
+ { iso (1) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) }
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ TBCD-STRING,
+ AddressString,
+ ISDN-AddressString,
+ LMSI,
+ IMSI,
+ TMSI,
+-- IMSIBCD,
+ SubscriberID;
+
+
+ TBCD-STRING ::= OCTET STRING (SIZE(3..8))
+ AddressString ::= OCTET STRING (SIZE(1..20))
+ ISDN-AddressString ::= AddressString
+ LMSI ::= OCTET STRING (SIZE(4))
+ -- IMSIBCD ::= BCD-STRING
+ IMSI ::= TBCD-STRING
+ TMSI ::= OCTET STRING (SIZE(1..4))
+ SubscriberID ::= CHOICE{
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+
+END -- of MAP-commonDataTypes
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MAP-insertSubscriberData-def.py b/lib/asn1/test/asn1_bin_SUITE_data/MAP-insertSubscriberData-def.py
new file mode 100644
index 0000000000..298319b0ed
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MAP-insertSubscriberData-def.py
@@ -0,0 +1,102 @@
+MAP-insertSubscriberData-def
+ { ccitt (0) identified-organization( 4) etsi( 0) mobileDomain(0)
+ gsm-Network( 1) modules( 3) map-Protocol( 4) version2(2) }
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS
+InsertSubsDataArg, InsertSubsDatRes;
+IMPORTS
+IMSI, ISDN-AddressString, LMSI FROM MAP-commonDataTypes;
+
+InsertSubsDataArg ::= SEQUENCE{
+ imsi [0] IMPLICIT IMSI OPTIONAL,
+ msisdn [1] IMPLICIT ISDN-AddressString OPTIONAL,
+ category [2] IMPLICIT OCTET STRING (SIZE(1)) OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ teleServiceList [6] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ provisionedSS [7] IMPLICIT SEQUENCE OF SS-Information OPTIONAL
+ }
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfoInfo [1] IMPLICIT CallBarringInfoInfo,
+ ss-Data [3] IMPLICIT SS-Data }
+
+SS-Data ::= SEQUENCE {
+ ss-Code OCTET STRING (SIZE(1)),
+ ss-Status [4] IMPLICIT OCTET STRING (SIZE(1))
+ }
+
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList
+ }
+
+CallBarringInfoInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeatureList ::= SEQUENCE OF CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [2] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL
+ }
+
+InsertSubsDatRes ::=
+ SEQUENCE {
+ teleServiceList [1] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ bearerServiceList [2] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ ss-List [3] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ odb-GeneralData [4] IMPLICIT BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5) } (SIZE(6)) OPTIONAL,
+ regionalSubscriptionResponse [5] IMPLICIT ENUMERATED{
+ msc-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodeConflict (2),
+ regionalSubscNotSupported (3) } OPTIONAL
+ }
+
+
+ForwardingFeatureList ::= SEQUENCE OF ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT INTEGER(5..30) OPTIONAL
+ }
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT OCTET STRING(SIZE(1)),
+ teleService [3] IMPLICIT OCTET STRING(SIZE(1))
+ }
+
+
+BasicServiceGroupList ::= SEQUENCE OF
+ BasicServiceCode
+
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)
+ }
+
+END -- of MAP-insertSubscriberData-def
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..71b765f71d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,975 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE OF TransactionAck
+
+TransactionAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ error ErrorDescriptor,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= SEQUENCE
+{
+ terminationID TerminationID,
+ terminationAuditResult TerminationAudit
+}
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN OPTIONAL,
+ reserveGroup BOOLEAN OPTIONAL,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+-- Request ALL Value: 4294967295 (0xFFFFFFFF)
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm,
+ nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value OPTIONAL
+}
+
+NonStandardData ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ experimental IA5String(SIZE(8)),
+ -- first two characters should be "X-" or "X+"
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{
+ t35CountryCode1 INTEGER(0..255),
+ t35CountryCode2 INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= SEQUENCE OF OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
new file mode 100644
index 0000000000..b7dba3c95c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
@@ -0,0 +1,7 @@
+{exclusive_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_exclusive,['MegacoMessage',[{authHeader,undecoded},{mess,[{mId,undecoded},{messageBody,undecoded}]}]]},
+ {decode_Message_version,['Message',[{mId,undecoded},{messageBody,undecoded}]]}]}}.
+{selective_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_selective,['MegacoMessage',mess,version]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MS.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/MS.set.asn
new file mode 100644
index 0000000000..bcc74b2a96
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MS.set.asn
@@ -0,0 +1,2 @@
+M1.asn
+M2.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn b/lib/asn1/test/asn1_bin_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
new file mode 100644
index 0000000000..afbc7dc5ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
@@ -0,0 +1,3084 @@
+MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+
+-- ===================================================================================
+-- Top level Messages
+-- ===================================================================================
+
+MultimediaSystemControlMessage ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage,
+ indication IndicationMessage,
+ ...
+}
+
+-- A RequestMessage results in action and requires an immediate response
+
+RequestMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDetermination MasterSlaveDetermination,
+
+ terminalCapabilitySet TerminalCapabilitySet,
+
+ openLogicalChannel OpenLogicalChannel,
+ closeLogicalChannel CloseLogicalChannel,
+
+ requestChannelClose RequestChannelClose,
+
+ multiplexEntrySend MultiplexEntrySend,
+
+ requestMultiplexEntry RequestMultiplexEntry,
+
+ requestMode RequestMode,
+
+ roundTripDelayRequest RoundTripDelayRequest,
+
+ maintenanceLoopRequest MaintenanceLoopRequest,
+
+ ...,
+ communicationModeRequest CommunicationModeRequest,
+ conferenceRequest ConferenceRequest
+}
+
+-- A ResponseMessage is the response to a request Message
+
+ResponseMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDeterminationAck MasterSlaveDeterminationAck,
+ masterSlaveDeterminationReject MasterSlaveDeterminationReject,
+
+ terminalCapabilitySetAck TerminalCapabilitySetAck,
+ terminalCapabilitySetReject TerminalCapabilitySetReject,
+
+ openLogicalChannelAck OpenLogicalChannelAck,
+ openLogicalChannelReject OpenLogicalChannelReject,
+ closeLogicalChannelAck CloseLogicalChannelAck,
+
+ requestChannelCloseAck RequestChannelCloseAck,
+ requestChannelCloseReject RequestChannelCloseReject,
+
+ multiplexEntrySendAck MultiplexEntrySendAck,
+ multiplexEntrySendReject MultiplexEntrySendReject,
+
+ requestMultiplexEntryAck RequestMultiplexEntryAck,
+ requestMultiplexEntryReject RequestMultiplexEntryReject,
+
+ requestModeAck RequestModeAck,
+ requestModeReject RequestModeReject,
+
+ roundTripDelayResponse RoundTripDelayResponse,
+
+ maintenanceLoopAck MaintenanceLoopAck,
+ maintenanceLoopReject MaintenanceLoopReject,
+
+ ...,
+ communicationModeResponse CommunicationModeResponse,
+
+ conferenceResponse ConferenceResponse
+
+
+}
+
+-- A CommandMessage requires action, but no explicit response
+
+CommandMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ maintenanceLoopOffCommand MaintenanceLoopOffCommand,
+
+ sendTerminalCapabilitySet SendTerminalCapabilitySet,
+
+ encryptionCommand EncryptionCommand,
+
+ flowControlCommand FlowControlCommand,
+
+ endSessionCommand EndSessionCommand,
+
+ miscellaneousCommand MiscellaneousCommand,
+
+ ...,
+ communicationModeCommand CommunicationModeCommand,
+
+ conferenceCommand ConferenceCommand,
+
+ h223MultiplexReconfiguration H223MultiplexReconfiguration
+
+}
+
+-- An IndicationMessage is information that does not require action or response
+
+IndicationMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ functionNotUnderstood FunctionNotUnderstood,
+
+ masterSlaveDeterminationRelease MasterSlaveDeterminationRelease,
+
+ terminalCapabilitySetRelease TerminalCapabilitySetRelease,
+
+ openLogicalChannelConfirm OpenLogicalChannelConfirm,
+
+ requestChannelCloseRelease RequestChannelCloseRelease,
+
+ multiplexEntrySendRelease MultiplexEntrySendRelease,
+
+ requestMultiplexEntryRelease RequestMultiplexEntryRelease,
+
+ requestModeRelease RequestModeRelease,
+
+ miscellaneousIndication MiscellaneousIndication,
+
+ jitterIndication JitterIndication,
+
+ h223SkewIndication H223SkewIndication,
+
+ newATMVCIndication NewATMVCIndication,
+
+ userInput UserInputIndication,
+ ...,
+ h2250MaximumSkewIndication H2250MaximumSkewIndication,
+
+ mcLocationIndication MCLocationIndication,
+
+ conferenceIndication ConferenceIndication,
+
+ vendorIdentification VendorIdentification,
+
+ functionNotSupported FunctionNotSupported
+
+}
+
+-- SequenceNumber is defined here as it is used in a number of Messages
+SequenceNumber ::=INTEGER (0..255)
+
+-- ===================================================================================
+-- Non standard Message definitions
+-- ===================================================================================
+
+NonStandardMessage ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+NonStandardParameter ::=SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard SEQUENCE
+ {
+ t35CountryCode INTEGER (0..255), -- country, per T.35
+ t35Extension INTEGER (0..255), -- assigned nationally
+ manufacturerCode INTEGER (0..65535) -- assigned nationally
+ }
+}
+
+-- ===================================================================================
+-- Master-slave determination definitions
+-- ===================================================================================
+
+MasterSlaveDetermination ::=SEQUENCE
+{
+ terminalType INTEGER (0..255),
+ statusDeterminationNumber INTEGER (0..16777215),
+ ...
+}
+
+MasterSlaveDeterminationAck ::=SEQUENCE
+{
+ decision CHOICE
+ {
+ master NULL,
+ slave NULL
+ },
+ ...
+}
+
+MasterSlaveDeterminationReject ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ identicalNumbers NULL,
+ ...
+ },
+ ...
+}
+
+MasterSlaveDeterminationRelease ::=SEQUENCE
+{
+ ...
+}
+
+ -- ===================================================================================
+-- Capability exchange definitions
+-- ===================================================================================
+
+TerminalCapabilitySet ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+
+ protocolIdentifier OBJECT IDENTIFIER,
+ -- shall be set to the value
+ -- {itu-t (0) recommendation (0) h (8) 245 version (0) 3}
+
+
+ multiplexCapability MultiplexCapability OPTIONAL,
+
+ capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL,
+
+ capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL,
+
+ ...
+}
+
+CapabilityTableEntry ::=SEQUENCE
+{
+ capabilityTableEntryNumber CapabilityTableEntryNumber,
+ capability Capability OPTIONAL
+}
+
+CapabilityDescriptor ::=SEQUENCE
+{
+ capabilityDescriptorNumber CapabilityDescriptorNumber,
+ simultaneousCapabilities SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL
+}
+
+AlternativeCapabilitySet ::=SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber
+
+CapabilityTableEntryNumber ::=INTEGER (1..65535)
+
+CapabilityDescriptorNumber ::=INTEGER (0..255)
+
+TerminalCapabilitySetAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+TerminalCapabilitySetReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ undefinedTableEntryUsed NULL,
+ descriptorCapacityExceeded NULL,
+ tableEntryCapacityExceeded CHOICE
+ {
+ highestEntryNumberProcessed CapabilityTableEntryNumber,
+ noneProcessed NULL
+ },
+ ...
+ },
+ ...
+}
+
+TerminalCapabilitySetRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: top level capability description
+-- ===================================================================================
+
+Capability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ receiveVideoCapability VideoCapability,
+ transmitVideoCapability VideoCapability,
+ receiveAndTransmitVideoCapability VideoCapability,
+
+ receiveAudioCapability AudioCapability,
+ transmitAudioCapability AudioCapability,
+ receiveAndTransmitAudioCapability AudioCapability,
+
+ receiveDataApplicationCapability DataApplicationCapability,
+ transmitDataApplicationCapability DataApplicationCapability,
+ receiveAndTransmitDataApplicationCapability DataApplicationCapability,
+
+ h233EncryptionTransmitCapability BOOLEAN,
+ h233EncryptionReceiveCapability SEQUENCE
+ {
+ h233IVResponseTime INTEGER (0..255), -- units milliseconds
+ ...
+ },
+ ...,
+ conferenceCapability ConferenceCapability,
+ h235SecurityCapability H235SecurityCapability,
+ maxPendingReplacementFor INTEGER (0..255),
+ receiveUserInputCapability UserInputCapability,
+ transmitUserInputCapability UserInputCapability,
+ receiveAndTransmitUserInputCapability UserInputCapability
+
+}
+
+H235SecurityCapability ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaCapability CapabilityTableEntryNumber,
+ -- Note: the mediaCapability shall refer to Capability Table Entries that do contain a transmit,
+ -- receive, or receiveAndTransmit AudioCapability, VideoCapability,
+ -- DataApplicationCapability, or similar capability indicated by a NonStandardParameter only
+
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Multiplex capabilities
+-- ===================================================================================
+
+MultiplexCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ v76Capability V76Capability,
+ ...,
+ h2250Capability H2250Capability
+
+}
+
+H222Capability ::= SEQUENCE
+{
+ numberOfVCs INTEGER (1..256),
+ vcCapability SET OF VCCapability,
+ ...
+}
+
+VCCapability ::=SEQUENCE
+{
+ aal1 SEQUENCE
+ {
+ nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ } OPTIONAL,
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ } OPTIONAL,
+ transportStream BOOLEAN,
+ programStream BOOLEAN,
+ availableBitRates SEQUENCE
+ {
+ type CHOICE
+ {
+ singleBitRate INTEGER (1..65535), -- units 64 kbit/s
+ rangeOfBitRates SEQUENCE
+ {
+ lowerBitRate INTEGER (1..65535), -- units 64 kbit/s
+ higherBitRate INTEGER (1..65535) -- units 64 kbit/s
+ }
+ },
+ ...
+ },
+ ...
+}
+
+H223Capability ::=SEQUENCE
+{
+ transportWithI-frames BOOLEAN, -- I-frame transport of H.245
+
+ videoWithAL1 BOOLEAN,
+ videoWithAL2 BOOLEAN,
+ videoWithAL3 BOOLEAN,
+ audioWithAL1 BOOLEAN,
+ audioWithAL2 BOOLEAN,
+ audioWithAL3 BOOLEAN,
+ dataWithAL1 BOOLEAN,
+ dataWithAL2 BOOLEAN,
+ dataWithAL3 BOOLEAN,
+
+ maximumAl2SDUSize INTEGER (0..65535), -- units octets
+ maximumAl3SDUSize INTEGER (0..65535), -- units octets
+
+ maximumDelayJitter INTEGER (0..1023), -- units milliseconds
+
+ h223MultiplexTableCapability CHOICE
+ {
+ basic NULL,
+ enhanced SEQUENCE
+ {
+ maximumNestingDepth INTEGER (1..15),
+ maximumElementListSize INTEGER (2..255),
+ maximumSubElementListSize INTEGER (2..255),
+ ...
+ }
+ },
+ ...,
+ maxMUXPDUSizeCapability BOOLEAN,
+ nsrpSupport BOOLEAN,
+ mobileOperationTransmitCapability SEQUENCE
+ {
+ modeChangeCapability BOOLEAN,
+ h223AnnexA BOOLEAN,
+ h223AnnexADoubleFlag BOOLEAN,
+ h223AnnexB BOOLEAN,
+ h223AnnexBwithHeader BOOLEAN,
+ ...
+ } OPTIONAL,
+ h223AnnexCCapability H223AnnexCCapability OPTIONAL
+
+}
+
+H223AnnexCCapability ::= SEQUENCE
+{
+ videoWithAL1M BOOLEAN,
+ videoWithAL2M BOOLEAN,
+ videoWithAL3M BOOLEAN,
+ audioWithAL1M BOOLEAN,
+ audioWithAL2M BOOLEAN,
+ audioWithAL3M BOOLEAN,
+ dataWithAL1M BOOLEAN,
+ dataWithAL2M BOOLEAN,
+ dataWithAL3M BOOLEAN,
+ alpduInterleaving BOOLEAN,
+
+ maximumAL1MPDUSize INTEGER (0..65535), -- units octets
+ maximumAL2MSDUSize INTEGER (0..65535), -- units octets
+ maximumAL3MSDUSize INTEGER (0..65535), -- units octets
+ ...
+}
+
+V76Capability ::=SEQUENCE
+{
+ suspendResumeCapabilitywAddress BOOLEAN,
+ suspendResumeCapabilitywoAddress BOOLEAN,
+ rejCapability BOOLEAN,
+ sREJCapability BOOLEAN,
+ mREJCapability BOOLEAN,
+ crc8bitCapability BOOLEAN,
+ crc16bitCapability BOOLEAN,
+ crc32bitCapability BOOLEAN,
+ uihCapability BOOLEAN,
+ numOfDLCS INTEGER (2..8191),
+ twoOctetAddressFieldCapability BOOLEAN,
+ loopBackTestCapability BOOLEAN,
+ n401Capability INTEGER (1..4095),
+ maxWindowSizeCapability INTEGER (1..127),
+ v75Capability V75Capability,
+ ...
+}
+
+V75Capability ::=SEQUENCE
+{
+ audioHeader BOOLEAN,
+ ...
+}
+
+H2250Capability ::=SEQUENCE
+{
+ maximumAudioDelayJitter INTEGER(0..1023), -- units in milliseconds
+ receiveMultipointCapability MultipointCapability,
+ transmitMultipointCapability MultipointCapability,
+ receiveAndTransmitMultipointCapability MultipointCapability,
+ mcCapability SEQUENCE
+ {
+ centralizedConferenceMC BOOLEAN,
+ decentralizedConferenceMC BOOLEAN,
+ ...
+ },
+ rtcpVideoControlCapability BOOLEAN, -- FIR and NACK
+ mediaPacketizationCapability MediaPacketizationCapability,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncodingCapability SEQUENCE SIZE(1..256) OF RedundancyEncodingCapability OPTIONAL,
+ logicalChannelSwitchingCapability BOOLEAN,
+ t120DynamicPortCapability BOOLEAN
+
+}
+
+MediaPacketizationCapability ::=SEQUENCE
+{
+ h261aVideoPacketization BOOLEAN,
+ ...,
+ rtpPayloadType SEQUENCE SIZE(1..256) OF RTPPayloadType OPTIONAL
+}
+
+RSVPParameters ::=SEQUENCE
+{
+ qosMode QOSMode OPTIONAL,
+ tokenRate INTEGER (1..4294967295) OPTIONAL,
+ -- rate in bytes/sec
+ bucketSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ peakRate INTEGER (1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/sec
+ minPoliced INTEGER (1..4294967295) OPTIONAL, --
+ maxPktSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ ...
+}
+
+QOSMode ::=CHOICE
+{
+ guaranteedQOS NULL,
+ controlledLoad NULL,
+ ...
+}
+
+-- Ed. Replace with ITU-T ATM Transfer Capability Types
+ATMParameters ::=SEQUENCE
+{
+ maxNTUSize INTEGER(0..65535), --units in octets
+ atmUBR BOOLEAN, --unspecified bit rate
+ atmrtVBR BOOLEAN, --real time variable bit rate
+ atmnrtVBR BOOLEAN, --non real time variable bit rate
+ atmABR BOOLEAN, --available bit rate
+ atmCBR BOOLEAN, --constant bit rate
+ ...
+}
+
+QOSCapability ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ rsvpParameters RSVPParameters OPTIONAL,
+ atmParameters ATMParameters OPTIONAL,
+ ...
+}
+
+MediaTransportType ::=CHOICE
+{
+ ip-UDP NULL,
+ ip-TCP NULL,
+ atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional
+ atm-AAL5-BIDIR NULL, -- virtual circuits used as bidirectional
+ ...
+}
+
+MediaChannelCapability ::=SEQUENCE
+{
+ mediaTransport MediaTransportType OPTIONAL,
+ ...
+}
+
+TransportCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ qOSCapabilities SEQUENCE SIZE(1..256) OF QOSCapability OPTIONAL,
+ mediaChannelCapabilities SEQUENCE SIZE(1..256) OF MediaChannelCapability OPTIONAL,
+ ...
+}
+
+RedundancyEncodingCapability ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primaryEncoding CapabilityTableEntryNumber,
+ secondaryEncoding SEQUENCE SIZE(1..256) OF CapabilityTableEntryNumber OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMethod ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ rtpAudioRedundancyEncoding NULL,
+ ...,
+ rtpH263VideoRedundancyEncoding RTPH263VideoRedundancyEncoding
+}
+
+RTPH263VideoRedundancyEncoding ::= SEQUENCE
+{
+ numberOfThreads INTEGER (1..16),
+ framesBetweenSyncPoints INTEGER (1..256),
+ frameToThreadMapping CHOICE
+ {
+ roundrobin NULL,
+ custom SEQUENCE SIZE(1..256) OF
+ RTPH263VideoRedundancyFrameMapping,
+-- empty SEQUENCE for capability negotiation
+-- meaningful contents only OpenLogicalChannel
+ ...
+ },
+ containedThreads SEQUENCE SIZE(1..256) OF INTEGER (0..15) OPTIONAL,
+ -- only used for opening of logical channels
+ ...
+}
+
+RTPH263VideoRedundancyFrameMapping ::= SEQUENCE
+{
+ threadNumber INTEGER (0..15),
+ frameSequence SEQUENCE SIZE(1..256) OF INTEGER (0..255),
+ ...
+}
+
+MultipointCapability ::=SEQUENCE
+{
+ multicastCapability BOOLEAN,
+ multiUniCastConference BOOLEAN,
+ mediaDistributionCapability SEQUENCE OF MediaDistributionCapability,
+ ...
+}
+
+MediaDistributionCapability ::=SEQUENCE
+{
+ centralizedControl BOOLEAN,
+ distributedControl BOOLEAN, -- for further study in H.323
+ centralizedAudio BOOLEAN,
+ distributedAudio BOOLEAN,
+ centralizedVideo BOOLEAN,
+ distributedVideo BOOLEAN,
+ centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ distributedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ -- for further study in H.323
+ ...
+}
+
+
+
+-- ===================================================================================
+-- Capability exchange definitions: Video capabilities
+-- ===================================================================================
+
+VideoCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter ,
+ h261VideoCapability H261VideoCapability,
+ h262VideoCapability H262VideoCapability,
+ h263VideoCapability H263VideoCapability,
+ is11172VideoCapability IS11172VideoCapability,
+ ...
+}
+
+H261VideoCapability ::=SEQUENCE
+{
+ qcifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ temporalSpatialTradeOffCapability BOOLEAN,
+ maxBitRate INTEGER (1..19200), -- units of 100 bit/s
+ stillImageTransmission BOOLEAN, -- Annex D of H.261
+ ...
+}
+
+H262VideoCapability ::=SEQUENCE
+{
+ profileAndLevel-SPatML BOOLEAN,
+ profileAndLevel-MPatLL BOOLEAN,
+ profileAndLevel-MPatML BOOLEAN,
+ profileAndLevel-MPatH-14 BOOLEAN,
+ profileAndLevel-MPatHL BOOLEAN,
+ profileAndLevel-SNRatLL BOOLEAN,
+ profileAndLevel-SNRatML BOOLEAN,
+ profileAndLevel-SpatialatH-14 BOOLEAN,
+ profileAndLevel-HPatML BOOLEAN,
+ profileAndLevel-HPatH-14 BOOLEAN,
+ profileAndLevel-HPatHL BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER (0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoCapability ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ hrd-B INTEGER (0..524287) OPTIONAL, -- units 128 bits
+ bppMaxKb INTEGER (0..65535) OPTIONAL, -- units 1024 bits
+ ...,
+
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units seconds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+
+}
+
+EnhancementLayerInfo ::=SEQUENCE
+{
+ baseBitRateConstrained BOOLEAN,
+ snrEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ spatialEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ bPictureEnhancement SET SIZE(1..14) OF BEnhancementParameters OPTIONAL,
+ ...
+}
+
+BEnhancementParameters ::=SEQUENCE
+{
+ enhancementOptions EnhancementOptions,
+ numberOfBPictures INTEGER (1..64),
+ ...
+}
+
+EnhancementOptions ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units econds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+ h263Options H263Options OPTIONAL,
+ ...
+}
+
+H263Options ::= SEQUENCE
+{
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+
+ unlimitedMotionVectors BOOLEAN,
+
+ fullPictureFreeze BOOLEAN,
+ partialPictureFreezeAndRelease BOOLEAN,
+ resizingPartPicFreezeAndRelease BOOLEAN,
+ fullPictureSnapshot BOOLEAN,
+ partialPictureSnapshot BOOLEAN,
+ videoSegmentTagging BOOLEAN,
+ progressiveRefinement BOOLEAN,
+
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+
+ independentSegmentDecoding BOOLEAN,
+
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+
+ transparencyParameters TransparencyParameters OPTIONAL,
+ separateVideoBackChannel BOOLEAN,
+ refPictureSelection RefPictureSelection OPTIONAL,
+ customPictureClockFrequency SET SIZE (1..16) OF CustomPictureClockFrequency OPTIONAL,
+ customPictureFormat SET SIZE (1..16) OF CustomPictureFormat OPTIONAL,
+ modeCombos SET SIZE (1..16) OF H263VideoModeCombos OPTIONAL,
+ ...
+}
+
+TransparencyParameters ::= SEQUENCE
+{
+ presentationOrder INTEGER(1..256),
+ offset-x INTEGER(-262144..262143), -- 1/8 pixels
+ offset-y INTEGER(-262144..262143), -- 1/8 pixels
+ scale-x INTEGER(1..255),
+ scale-y INTEGER(1..255),
+ ...
+}
+
+RefPictureSelection ::=SEQUENCE
+{
+ additionalPictureMemory SEQUENCE
+ {
+ sqcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ qcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif4AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif16AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ bigCpfAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ ...
+ } OPTIONAL,
+ videoMux BOOLEAN,
+ videoBackChannelSend CHOICE
+ {
+ none NULL,
+ ackMessageOnly NULL,
+ nackMessageOnly NULL,
+ ackOrNackMessageOnly NULL,
+ ackAndNackMessage NULL,
+ ...
+ },
+ ...
+}
+
+CustomPictureClockFrequency ::=SEQUENCE
+{
+ clockConversionCode INTEGER(1000..1001),
+ clockDivisor INTEGER(1..127),
+ sqcifMPI INTEGER (1..2048) OPTIONAL,
+ qcifMPI INTEGER (1..2048) OPTIONAL,
+ cifMPI INTEGER (1..2048) OPTIONAL,
+ cif4MPI INTEGER (1..2048) OPTIONAL,
+ cif16MPI INTEGER (1..2048) OPTIONAL,
+ ...
+}
+
+CustomPictureFormat ::=SEQUENCE
+{
+ maxCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ maxCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ mPI SEQUENCE
+ {
+ standardMPI INTEGER (1..31) OPTIONAL,
+ customPCF SET SIZE (1..16) OF SEQUENCE
+ {
+ clockConversionCode INTEGER (1000..1001),
+ clockDivisor INTEGER (1..127),
+ customMPI INTEGER (1..2048),
+ ...
+ } OPTIONAL,
+ ...
+ },
+
+ pixelAspectInformation CHOICE
+ {
+ anyPixelAspectRatio BOOLEAN,
+ pixelAspectCode SET SIZE (1..14) OF INTEGER(1..14),
+ extendedPAR SET SIZE (1..256) OF SEQUENCE
+ {
+ width INTEGER(1..255),
+ height INTEGER(1..255),
+ ...
+ },
+ ...
+ } ,
+ ...
+}
+
+H263VideoModeCombos ::= SEQUENCE
+{
+ h263VideoUncoupledModes H263ModeComboFlags,
+ h263VideoCoupledModes SET SIZE (1..16) OF H263ModeComboFlags,
+ ...
+}
+
+H263ModeComboFlags ::= SEQUENCE
+{
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ unlimitedMotionVectors BOOLEAN,
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+ referencePicSelect BOOLEAN,
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+ independentSegmentDecoding BOOLEAN,
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ ...
+}
+
+IS11172VideoCapability ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER (0..15) OPTIONAL,
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Audio capabilities
+-- ===================================================================================
+
+-- For an H.222 multiplex, the integers indicate the size of the STD buffer in units of 256 octets
+-- For an H.223 multiplex, the integers indicate the maximum number of audio frames per AL-SDU
+-- For an H.225.0 multiplex, the integers indicate the maximum number of audio frames per packet
+
+AudioCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k INTEGER (1..256),
+ g711Alaw56k INTEGER (1..256),
+ g711Ulaw64k INTEGER (1..256),
+ g711Ulaw56k INTEGER (1..256),
+
+ g722-64k INTEGER (1..256),
+ g722-56k INTEGER (1..256),
+ g722-48k INTEGER (1..256),
+
+ g7231 SEQUENCE
+ {
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN
+ },
+
+ g728 INTEGER (1..256),
+ g729 INTEGER (1..256),
+ g729AnnexA INTEGER (1..256),
+ is11172AudioCapability IS11172AudioCapability,
+ is13818AudioCapability IS13818AudioCapability,
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCCapability G7231AnnexCCapability,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+}
+
+G7231AnnexCCapability ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ } OPTIONAL,
+ ...
+}
+
+IS11172AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+
+ bitRate INTEGER (1..448), -- units kbit/s
+ ...
+}
+
+IS13818AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling16k BOOLEAN,
+ audioSampling22k05 BOOLEAN,
+ audioSampling24k BOOLEAN,
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+ threeChannels2-1 BOOLEAN,
+ threeChannels3-0 BOOLEAN,
+ fourChannels2-0-2-0 BOOLEAN,
+ fourChannels2-2 BOOLEAN,
+ fourChannels3-1 BOOLEAN,
+ fiveChannels3-0-2-0 BOOLEAN,
+ fiveChannels3-2 BOOLEAN,
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), -- units kbit/s
+ ...
+}
+
+GSMAudioCapability ::= SEQUENCE
+{
+ audioUnitSize INTEGER (1..256),
+ comfortNoise BOOLEAN,
+ scrambled BOOLEAN,
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Data capabilities
+-- ===================================================================================
+
+DataApplicationCapability ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 SEQUENCE
+ {
+ t84Protocol DataProtocolCapability,
+ t84Profile T84Profile
+ },
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ maxBitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+DataProtocolCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ v14buffered NULL,
+ v42lapm NULL, -- may negotiate to V.42bis
+ hdlcFrameTunnelling NULL,
+ h310SeparateVCStack NULL,
+ h310SingleVCStack NULL,
+ transparent NULL,
+ ...,
+ segmentationAndReassembly NULL,
+ hdlcFrameTunnelingwSAR NULL,
+ v120 NULL, -- as in H.230
+ separateLANStack NULL,
+ v76wCompression CHOICE
+ {
+ transmitCompression CompressionType,
+ receiveCompression CompressionType,
+ transmitAndReceiveCompression CompressionType,
+ ...
+ }
+}
+
+CompressionType ::=CHOICE
+{
+ v42bis V42bis,
+ ...
+}
+
+V42bis ::=SEQUENCE
+{
+ numberOfCodewords INTEGER (1..65536),
+ maximumStringLength INTEGER (1..256),
+ ...
+}
+
+T84Profile ::=CHOICE
+{
+ t84Unrestricted NULL,
+ t84Restricted SEQUENCE
+ {
+ qcif BOOLEAN,
+ cif BOOLEAN,
+ ccir601Seq BOOLEAN,
+ ccir601Prog BOOLEAN,
+ hdtvSeq BOOLEAN,
+ hdtvProg BOOLEAN,
+
+ g3FacsMH200x100 BOOLEAN,
+ g3FacsMH200x200 BOOLEAN,
+ g4FacsMMR200x100 BOOLEAN,
+ g4FacsMMR200x200 BOOLEAN,
+ jbig200x200Seq BOOLEAN,
+ jbig200x200Prog BOOLEAN,
+ jbig300x300Seq BOOLEAN,
+ jbig300x300Prog BOOLEAN,
+
+ digPhotoLow BOOLEAN,
+ digPhotoMedSeq BOOLEAN,
+ digPhotoMedProg BOOLEAN,
+ digPhotoHighSeq BOOLEAN,
+ digPhotoHighProg BOOLEAN,
+
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Encryption Capability Definitions:
+-- ===================================================================================
+
+EncryptionAuthenticationAndIntegrity ::=SEQUENCE
+{
+ encryptionCapability EncryptionCapability OPTIONAL,
+ authenticationCapability AuthenticationCapability OPTIONAL,
+ integrityCapability IntegrityCapability OPTIONAL,
+ ...
+}
+
+EncryptionCapability ::=SEQUENCE SIZE(1..256) OF MediaEncryptionAlgorithm
+
+MediaEncryptionAlgorithm ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ algorithm OBJECT IDENTIFIER, -- many defined in ISO/IEC 9979
+ ...
+}
+
+AuthenticationCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+IntegrityCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+-- ================================================================================
+-- Capability Exchange Definitions: UserInput
+-- ================================================================================
+
+UserInputCapability ::= CHOICE
+{
+ nonStandard SEQUENCE SIZE(1..16) OF NonStandardParameter,
+ basicString NULL, -- alphanumeric
+ iA5String NULL, -- alphanumeric
+ generalString NULL, -- alphanumeric
+ dtmf NULL, -- supports dtmf using signal and signalUpdate
+ hookflash NULL, -- supports hookflash using signal
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Conference
+-- ===================================================================================
+
+ConferenceCapability ::=SEQUENCE
+{
+ nonStandardData SEQUENCE OF NonStandardParameter OPTIONAL,
+ chairControlCapability BOOLEAN,
+ ...
+}
+ -- ===================================================================================
+-- Logical channel signalling definitions
+-- ===================================================================================
+
+-- "Forward" is used to refer to transmission in the direction from the terminal making the
+-- original request for a logical channel to the other terminal, and "reverse" is used to refer
+-- to the opposite direction of transmission, in the case of a bi-directional channel request.
+
+OpenLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ forwardLogicalChannelParameters SEQUENCE
+ {
+ portNumber INTEGER (0..65535) OPTIONAL,
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters,
+ none NULL -- for use with Separate Stack when
+ -- multiplexParameters are not required
+ -- or appropriate
+
+ },
+ ...,
+ forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ },
+
+ -- Used to specify the reverse channel for bi-directional open request
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ -- H.222 parameters are never present in reverse direction
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.222
+ ...,
+ reverseLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open responder to establish the stack
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+
+
+}
+
+LogicalChannelNumber ::=INTEGER (1..65535)
+
+NetworkAccessParameters ::=SEQUENCE
+{
+ distribution CHOICE
+ {
+ unicast NULL,
+ multicast NULL, -- For Further Study in T.120
+ ...
+ } OPTIONAL,
+
+ networkAddress CHOICE
+ {
+ q2931Address Q2931Address,
+ e164Address IA5String(SIZE(1..128)) (FROM ("0123456789#*,")),
+ localAreaAddress TransportAddress,
+ ...
+ },
+ associateConference BOOLEAN,
+ externalReference OCTET STRING(SIZE(1..255)) OPTIONAL,
+ ...,
+ t120SetupProcedure CHOICE
+ {
+
+ originateCall NULL,
+ waitForCall NULL,
+ issueQuery NULL,
+ ...
+ } OPTIONAL
+}
+
+Q2931Address ::=SEQUENCE
+{
+ address CHOICE
+ {
+ internationalNumber NumericString(SIZE(1..16)),
+ nsapAddress OCTET STRING (SIZE(1..20)),
+ ...
+ },
+ subaddress OCTET STRING (SIZE(1..20)) OPTIONAL,
+ ...
+}
+
+V75Parameters ::= SEQUENCE
+{
+ audioHeaderPresent BOOLEAN,
+ ...
+}
+
+
+DataType ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ nullData NULL,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ encryptionData EncryptionMode,
+ ...,
+ h235Control NonStandardParameter,
+ h235Media H235Media
+}
+
+H235Media ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+
+ ...
+}
+
+H222LogicalChannelParameters ::=SEQUENCE
+{
+ resourceID INTEGER (0..65535),
+ subChannelID INTEGER (0..8191),
+ pcr-pid INTEGER (0..8191) OPTIONAL,
+ programDescriptors OCTET STRING OPTIONAL,
+ streamDescriptors OCTET STRING OPTIONAL,
+ ...
+}
+
+H223LogicalChannelParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER (0..2),
+ sendBufferSize INTEGER (0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+H223AL1MParameters ::=SEQUENCE
+{
+ transferMode CHOICE
+ {
+ framed NULL,
+ unframed NULL,
+ ...
+ },
+ headerFEC CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ alsduSplitting BOOLEAN,
+ ...
+}
+
+H223AL2MParameters ::=SEQUENCE
+{
+ headerFEC CHOICE
+ {
+ sebch16-5 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+H223AL3MParameters ::=SEQUENCE
+{
+ headerFormat CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+
+H223AnnexCArqParameters ::=SEQUENCE
+{
+ numberOfRetransmissions CHOICE
+ {
+ finite INTEGER (0..16),
+ infinite NULL,
+ ...
+ },
+ sendBufferSize INTEGER (0..16777215), -- units octets
+ ...
+}
+
+V76LogicalChannelParameters ::=SEQUENCE
+{
+ hdlcParameters V76HDLCParameters,
+ suspendResume CHOICE
+ {
+ noSuspendResume NULL,
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+ },
+ uIH BOOLEAN,
+ mode CHOICE
+ {
+ eRM SEQUENCE
+ {
+ windowSize INTEGER (1..127) ,
+ recovery CHOICE
+ {
+ rej NULL,
+ sREJ NULL,
+ mSREJ NULL,
+ ...
+ },
+ ...
+ },
+ uNERM NULL,
+ ...
+ },
+ v75Parameters V75Parameters,
+ ...
+}
+
+
+
+V76HDLCParameters ::=SEQUENCE
+{
+ crcLength CRCLength,
+ n401 INTEGER (1..4095),
+ loopbackTestProcedure BOOLEAN,
+ ...
+}
+
+
+CRCLength ::=CHOICE
+{
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ ...
+}
+
+H2250LogicalChannelParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(0..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ silenceSuppression BOOLEAN OPTIONAL,
+ destination TerminalLabel OPTIONAL,
+
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL,
+ mediaPacketization CHOICE
+ {
+ h261aVideoPacketization NULL,
+ ...,
+ rtpPayloadType RTPPayloadType
+ } OPTIONAL,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ source TerminalLabel OPTIONAL
+}
+
+RTPPayloadType ::= SEQUENCE
+{
+ payloadDescriptor CHOICE
+ {
+ nonStandardIdentifier NonStandardParameter,
+ rfc-number INTEGER (1..32768, ...),
+ oid OBJECT IDENTIFIER,
+ ...
+ },
+ payloadType INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+RedundancyEncoding ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding DataType OPTIONAL, -- depends on method
+ ...
+}
+
+TransportAddress ::=CHOICE
+{
+ unicastAddress UnicastAddress,
+ multicastAddress MulticastAddress,
+ ...
+}
+
+UnicastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iPXAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ tsapIdentifier OCTET STRING (SIZE(2)),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ iPSourceRouteAddress SEQUENCE
+ {
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL
+ },
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING (SIZE(4)),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+MulticastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+EncryptionSync ::=SEQUENCE
+ -- used to supply new key and synchronization point
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ synchFlag INTEGER(0..255) , -- may need to be larger for H.324, etc
+ -- shall be the Dynamic Payload# for H.323
+ h235Key OCTET STRING (SIZE(1..65535)), -- H.235 encoded value
+ escrowentry SEQUENCE SIZE(1..256) OF EscrowData OPTIONAL,
+ ...
+}
+
+EscrowData ::=SEQUENCE
+{
+ escrowID OBJECT IDENTIFIER,
+ escrowValue BIT STRING (SIZE(1..65535)),
+ ...
+}
+
+OpenLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ reverseLogicalChannelNumber LogicalChannelNumber,
+ portNumber INTEGER (0..65535) OPTIONAL,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ -- H.223 parameters are never present in reverse direction
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.223
+ ...,
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open requester to establish the stack
+ forwardMultiplexAckParameters CHOICE
+ {
+ -- H.222 parameters are never present in the Ack
+ -- H.223 parameters are never present in the Ack
+ --V.76 parameters are never present in the Ack
+ h2250LogicalChannelAckParameters H2250LogicalChannelAckParameters,
+ ...
+ } OPTIONAL,
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+}
+
+OpenLogicalChannelReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ unsuitableReverseParameters NULL,
+ dataTypeNotSupported NULL,
+ dataTypeNotAvailable NULL,
+ unknownDataType NULL,
+ dataTypeALCombinationNotSupported NULL,
+ ...,
+ multicastChannelNotAllowed NULL,
+ insufficientBandwidth NULL,
+ separateStackEstablishmentFailed NULL,
+ invalidSessionID NULL,
+ masterSlaveConflict NULL,
+ waitForCommunicationMode NULL,
+ invalidDependentChannel NULL,
+ replacementForRejected NULL
+ },
+ ...
+}
+
+OpenLogicalChannelConfirm ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+H2250LogicalChannelAckParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP channel
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by the master or MC
+ ...,
+ flowControlToZero BOOLEAN
+}
+
+
+
+CloseLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ source CHOICE
+ {
+ user NULL,
+ lcse NULL
+ },
+ ...,
+ reason CHOICE
+ {
+ unknown NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+CloseLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelClose ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ qosCapability QOSCapability OPTIONAL,
+ reason CHOICE
+ {
+ unknown NULL,
+ normal NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+RequestChannelCloseAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelCloseReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ ...
+ },
+ ...
+}
+
+RequestChannelCloseRelease ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- H.223 multiplex table definitions
+-- ===================================================================================
+
+MultiplexEntrySend ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexEntryDescriptors SET SIZE (1..15) OF MultiplexEntryDescriptor,
+ ...
+}
+
+MultiplexEntryDescriptor ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ elementList SEQUENCE SIZE (1..256) OF MultiplexElement OPTIONAL
+}
+
+MultiplexElement ::=SEQUENCE
+{
+ type CHOICE
+ {
+ logicalChannelNumber INTEGER(0..65535),
+ subElementList SEQUENCE SIZE (2..255) OF MultiplexElement
+ },
+ repeatCount CHOICE
+ {
+ finite INTEGER (1..65535), -- repeats of type
+ untilClosingFlag NULL -- used for last element
+ }
+}
+
+MultiplexTableEntryNumber ::=INTEGER (1..15)
+
+MultiplexEntrySendAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+MultiplexEntrySendReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ rejectionDescriptions SET SIZE (1..15) OF MultiplexEntryRejectionDescriptions,
+ ...
+}
+
+MultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ descriptorTooComplex NULL,
+ ...
+ },
+ ...
+}
+
+MultiplexEntrySendRelease ::=SEQUENCE
+{
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntry ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryAck ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryReject ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ rejectionDescriptions SET SIZE (1..15) OF RequestMultiplexEntryRejectionDescriptions,
+ ...
+}
+
+RequestMultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ ...
+ },
+ ...
+}
+
+RequestMultiplexEntryRelease ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- Request mode definitions
+-- ===================================================================================
+
+-- RequestMode is a list, in order or preference, of modes that a terminal would like
+-- to have transmitted to it.
+
+RequestMode ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ requestedModes SEQUENCE SIZE (1..256) OF ModeDescription,
+ ...
+}
+
+RequestModeAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ response CHOICE
+ {
+ willTransmitMostPreferredMode NULL,
+ willTransmitLessPreferredMode NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ modeUnavailable NULL,
+ multipointConstraint NULL,
+ requestDenied NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Mode description
+-- ===================================================================================
+
+ModeDescription ::=SET SIZE (1..256) OF ModeElement
+
+ModeElement ::= SEQUENCE
+{
+ type CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ ...,
+ h235Mode H235Mode
+ },
+
+ h223ModeParameters H223ModeParameters OPTIONAL,
+ ...,
+ v76ModeParameters V76ModeParameters OPTIONAL,
+ h2250ModeParameters H2250ModeParameters OPTIONAL
+
+
+}
+
+H235Mode ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaMode CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ ...
+ },
+ ...
+}
+
+H223ModeParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER(0..2),
+ sendBufferSize INTEGER(0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+V76ModeParameters ::=CHOICE
+{
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+}
+
+H2250ModeParameters ::=SEQUENCE
+{
+ redundancyEncodingMode RedundancyEncodingMode OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMode ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding CHOICE
+ {
+ nonStandard NonStandardParameter,
+ audioData AudioMode,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Video modes
+-- ===================================================================================
+
+VideoMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h261VideoMode H261VideoMode,
+ h262VideoMode H262VideoMode,
+ h263VideoMode H263VideoMode,
+ is11172VideoMode IS11172VideoMode,
+ ...
+}
+
+H261VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ qcif NULL,
+ cif NULL
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ stillImageTransmission BOOLEAN,
+ ...
+}
+
+H262VideoMode ::=SEQUENCE
+{
+ profileAndLevel CHOICE
+ {
+ profileAndLevel-SPatML NULL,
+ profileAndLevel-MPatLL NULL,
+ profileAndLevel-MPatML NULL,
+ profileAndLevel-MPatH-14 NULL,
+ profileAndLevel-MPatHL NULL,
+ profileAndLevel-SNRatLL NULL,
+ profileAndLevel-SNRatML NULL,
+ profileAndLevel-SpatialatH-14 NULL,
+ profileAndLevel-HPatML NULL,
+ profileAndLevel-HPatH-14 NULL,
+ profileAndLevel-HPatHL NULL,
+ ...
+ },
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ sqcif NULL,
+ qcif NULL,
+ cif NULL,
+ cif4 NULL,
+ cif16 NULL,
+ ...
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ ...,
+
+ errorCompensation BOOLEAN,
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+}
+
+IS11172VideoMode ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER(0..15) OPTIONAL,
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Audio modes
+-- ===================================================================================
+
+AudioMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k NULL,
+ g711Alaw56k NULL,
+ g711Ulaw64k NULL,
+ g711Ulaw56k NULL,
+
+ g722-64k NULL,
+ g722-56k NULL,
+ g722-48k NULL,
+
+ g728 NULL,
+ g729 NULL,
+ g729AnnexA NULL,
+
+ g7231 CHOICE
+ {
+ noSilenceSuppressionLowRate NULL,
+ noSilenceSuppressionHighRate NULL,
+ silenceSuppressionLowRate NULL,
+ silenceSuppressionHighRate NULL
+ },
+
+ is11172AudioMode IS11172AudioMode,
+ is13818AudioMode IS13818AudioMode,
+
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCMode G7231AnnexCMode,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+
+}
+
+IS11172AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL
+ },
+
+ bitRate INTEGER (1..448), --units kbit/s
+ ...
+}
+
+IS13818AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling16k NULL,
+ audioSampling22k05 NULL,
+ audioSampling24k NULL,
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL,
+ threeChannels2-1 NULL,
+ threeChannels3-0 NULL,
+ fourChannels2-0-2-0 NULL,
+ fourChannels2-2 NULL,
+ fourChannels3-1 NULL,
+ fiveChannels3-0-2-0 NULL,
+ fiveChannels3-2 NULL
+ },
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), --units kbit/s
+ ...
+}
+
+G7231AnnexCMode ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Data modes
+-- ===================================================================================
+
+DataMode ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 DataProtocolCapability,
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ bitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Encryption modes
+-- ===================================================================================
+
+EncryptionMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h233Encryption NULL,
+ ...
+}
+
+ -- ===================================================================================
+-- Round Trip Delay definitions
+-- ===================================================================================
+
+RoundTripDelayRequest ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+RoundTripDelayResponse ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+-- ===================================================================================
+-- Maintenance Loop definitions
+-- ===================================================================================
+
+MaintenanceLoopRequest ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopAck ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopReject ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ cause CHOICE
+ {
+ canNotPerformLoop NULL,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopOffCommand ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Communication Mode definitions
+-- ===================================================================================
+
+CommunicationModeCommand ::=SEQUENCE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeRequest ::=SEQUENCE
+{
+ ...
+}
+
+CommunicationModeResponse ::=CHOICE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeTableEntry ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+
+ terminalLabel TerminalLabel OPTIONAL, -- if not present,
+ -- it refers to all participants
+ -- in the conference
+ sessionDescription BMPString (SIZE(1..128)) ,
+ -- Basic ISO/IEC 10646-1 (Unicode)
+ dataType CHOICE
+ {
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ ...,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ sessionDependency INTEGER (1..255) OPTIONAL,
+ destination TerminalLabel OPTIONAL
+}
+
+-- ===================================================================================
+-- Conference Request definitions
+-- ===================================================================================
+
+ConferenceRequest ::=CHOICE
+{
+
+ terminalListRequest NULL, -- same as H.230 TCU (term->MC)
+
+ makeMeChair NULL, -- same as H.230 CCA (term->MC)
+ cancelMakeMeChair NULL, -- same as H.230 CIS (term->MC)
+
+ dropTerminal TerminalLabel, -- same as H.230 CCD(term->MC)
+
+ requestTerminalID TerminalLabel, -- sames as TCP (term->MC)
+
+ enterH243Password NULL, -- same as H.230 TCS1(MC->term)
+ enterH243TerminalID NULL, -- same as H.230 TCS2/TCI
+ -- (MC->term)
+ enterH243ConferenceID NULL, -- same as H.230 TCS3 (MC->term)
+ ...,
+ enterExtensionAddress NULL, -- same as H.230 TCS4 (GW->term)
+ requestChairTokenOwner NULL, -- same as H.230 TCA (term->MC)
+ requestTerminalCertificate SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certSelectionCriteria CertSelectionCriteria OPTIONAL,
+ sRandom INTEGER (1..4294967295) OPTIONAL,
+ -- this is the requester's challenge
+ ...
+ },
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ makeTerminalBroadcaster TerminalLabel, -- similar to H.230 VCB
+ sendThisSource TerminalLabel, -- similar to H.230 VCS
+ requestAllTerminalIDs NULL,
+ remoteMCRequest RemoteMCRequest
+}
+
+CertSelectionCriteria ::=SEQUENCE SIZE (1..16) OF Criteria
+
+Criteria ::=SEQUENCE
+{
+ field OBJECT IDENTIFIER, -- may include certificate type
+ value OCTET STRING (SIZE(1..65535)),
+ ...
+}
+
+TerminalLabel ::=SEQUENCE
+{
+ mcuNumber McuNumber,
+ terminalNumber TerminalNumber,
+ ...
+}
+
+McuNumber ::=INTEGER(0..192)
+TerminalNumber ::=INTEGER(0..192)
+
+-- ===================================================================================
+-- Conference Response definitions
+-- ===================================================================================
+
+ConferenceResponse ::=CHOICE
+{
+ mCTerminalIDResponse SEQUENCE -- response to TCP(same as TIP)
+ { -- sent by MC only
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+
+ terminalIDResponse SEQUENCE -- response to TCS2 or TCI
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ terminalID TerminalID,
+ ...
+ },
+
+ conferenceIDResponse SEQUENCE -- response to TCS3
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ conferenceID ConferenceID,
+ ...
+ },
+
+ passwordResponse SEQUENCE -- response to TCS1
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ password Password,
+ ...
+ },
+
+ terminalListResponse SET SIZE (1..256) OF TerminalLabel,
+
+ videoCommandReject NULL, -- same as H.230 VCR
+ terminalDropReject NULL, -- same as H.230 CIR
+
+ makeMeChairResponse CHOICE -- same as H.230 CCR
+ {
+ grantedChairToken NULL, -- same as H.230 CIT
+ deniedChairToken NULL, -- same as H.230 CCR
+ ...
+ },
+ ...,
+ extensionAddressResponse SEQUENCE -- response to TCS4
+ {
+ extensionAddress TerminalID, -- same as IIS (term->GW)
+ ...
+ },
+ chairTokenOwnerResponse SEQUENCE -- response to TCA(same as TIR) sent by MC only
+ {
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+ terminalCertificateResponse SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certificateResponse OCTET STRING (SIZE(1..65535)) OPTIONAL,
+ ...
+ },
+ broadcastMyLogicalChannelResponse CHOICE
+ {
+ grantedBroadcastMyLogicalChannel NULL,
+ deniedBroadcastMyLogicalChannel NULL,
+ ...
+ },
+ makeTerminalBroadcasterResponse CHOICE
+ {
+ grantedMakeTerminalBroadcaster NULL,
+ deniedMakeTerminalBroadcaster NULL,
+ ...
+ },
+ sendThisSourceResponse CHOICE
+ {
+ grantedSendThisSource NULL,
+ deniedSendThisSource NULL,
+ ...
+ },
+ requestAllTerminalIDsResponse RequestAllTerminalIDsResponse,
+ remoteMCResponse RemoteMCResponse
+}
+
+TerminalID ::=OCTET STRING (SIZE(1..128)) -- as per H.230
+ConferenceID ::=OCTET STRING (SIZE(1..32))
+Password ::=OCTET STRING (SIZE(1..32))
+
+RequestAllTerminalIDsResponse ::=SEQUENCE
+{
+ terminalInformation SEQUENCE OF TerminalInformation,
+ ...
+}
+
+TerminalInformation ::=SEQUENCE
+{
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+}
+
+-- ===================================================================================
+-- Remote MC Request definitions
+-- ===================================================================================
+
+ RemoteMCRequest ::=CHOICE
+ {
+ masterActivate NULL,
+ slaveActivate NULL,
+ deActivate NULL,
+ ...
+ }
+
+ RemoteMCResponse ::=CHOICE
+ {
+ accept NULL,
+ reject CHOICE
+ {
+ unspecified NULL,
+ functionNotSupported NULL,
+ ...
+ },
+ ...
+ }
+
+-- ===================================================================================
+-- Command Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Command Message : Send Terminal Capability Set
+-- ===================================================================================
+
+SendTerminalCapabilitySet ::=CHOICE
+{
+ specificRequest SEQUENCE
+ {
+ multiplexCapability BOOLEAN,
+
+ capabilityTableEntryNumbers SET SIZE (1..65535) OF CapabilityTableEntryNumber OPTIONAL,
+
+ capabilityDescriptorNumbers SET SIZE (1..256) OF CapabilityDescriptorNumber OPTIONAL,
+ ...
+ },
+ genericRequest NULL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Encryption
+-- ===================================================================================
+
+EncryptionCommand ::=CHOICE
+{
+ encryptionSE OCTET STRING, -- per H.233, but no error protection
+ encryptionIVRequest NULL, -- requests new IV
+ encryptionAlgorithmID SEQUENCE
+ {
+ h233AlgorithmIdentifier SequenceNumber,
+ associatedAlgorithm NonStandardParameter
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Flow Control
+-- ===================================================================================
+
+FlowControlCommand ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ restriction CHOICE
+ {
+ maximumBitRate INTEGER (0..16777215), -- units 100 bit/s
+ noRestriction NULL
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Change or End Session
+-- ===================================================================================
+
+EndSessionCommand ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ disconnect NULL,
+
+ gstnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v8bis NULL,
+ v34DSVD NULL,
+ v34DuplexFAX NULL,
+ v34H324 NULL,
+ ...
+ },
+
+ ...,
+ isdnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v140 NULL,
+ terminalOnHold NULL,
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Command Message : Conference Commands
+-- ===================================================================================
+
+ConferenceCommand ::=CHOICE
+{
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 Cancel-MCV
+
+ makeTerminalBroadcaster TerminalLabel, -- same as H.230 VCB
+ cancelMakeTerminalBroadcaster NULL, -- same as H.230 Cancel-VCB
+
+ sendThisSource TerminalLabel, -- same as H.230 VCS
+ cancelSendThisSource NULL, -- same as H.230 cancel VCS
+
+ dropConference NULL, -- same as H.230 CCK
+ ...,
+ substituteConferenceIDCommand SubstituteConferenceIDCommand
+}
+
+SubstituteConferenceIDCommand ::=SEQUENCE
+{
+ conferenceIdentifier OCTET STRING (SIZE(16)),
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Miscellaneous H.230-like commands
+-- ===================================================================================
+
+MiscellaneousCommand ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ equaliseDelay NULL, -- same as H.230 ACE
+ zeroDelay NULL, -- same as H.230 ACZ
+ multipointModeCommand NULL,
+ cancelMultipointModeCommand NULL,
+ videoFreezePicture NULL,
+ videoFastUpdatePicture NULL,
+
+ videoFastUpdateGOB SEQUENCE
+ {
+ firstGOB INTEGER (0..17),
+ numberOfGOBs INTEGER (1..18)
+ },
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- commands a trade-off value
+
+ videoSendSyncEveryGOB NULL,
+ videoSendSyncEveryGOBCancel NULL,
+
+ ...,
+ videoFastUpdateMB SEQUENCE
+ {
+ firstGOB INTEGER (0..255) OPTIONAL,
+ firstMB INTEGER (1..8192) OPTIONAL,
+ numberOfMBs INTEGER (1..8192),
+ ...
+ },
+ maxH223MUXPDUsize INTEGER(1..65535), -- units octets
+ encryptionUpdate EncryptionSync,
+ encryptionUpdateRequest EncryptionUpdateRequest,
+ switchReceiveMediaOff NULL,
+ switchReceiveMediaOn NULL,
+
+ progressiveRefinementStart SEQUENCE
+ {
+ repeatCount CHOICE
+ {
+ doOneProgression NULL,
+ doContinuousProgressions NULL,
+ doOneIndependentProgression NULL,
+ doContinuousIndependentProgressions NULL,
+ ...
+ },
+ ...
+ },
+ progressiveRefinementAbortOne NULL,
+ progressiveRefinementAbortContinuous NULL
+
+ },
+
+ ...
+}
+
+KeyProtectionMethod ::=SEQUENCE -- specify how the new key is to be protected
+{
+ secureChannel BOOLEAN,
+ sharedSecret BOOLEAN,
+ certProtectedKey BOOLEAN,
+ ...
+}
+
+EncryptionUpdateRequest ::=SEQUENCE
+{
+ keyProtectionMethod KeyProtectionMethod OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : H.223 Multiplex Reconfiguration
+-- ===================================================================================
+
+H223MultiplexReconfiguration ::=CHOICE
+{
+ h223ModeChange CHOICE
+ {
+ toLevel0 NULL,
+ toLevel1 NULL,
+ toLevel2 NULL,
+ toLevel2withOptionalHeader NULL,
+ ...
+ },
+
+ h223AnnexADoubleFlag CHOICE
+ {
+ start NULL,
+ stop NULL,
+ ...
+ },
+
+ ...
+}
+ -- ===================================================================================
+-- Indication Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Indication Message : Function not understood
+-- ===================================================================================
+
+-- This is used to return a request, response or command that is not understood
+
+FunctionNotUnderstood ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage
+}
+
+-- ===================================================================================
+-- Indication Message : Function not Supported
+-- ===================================================================================
+
+-- This is used to return a complete request, response or command that is not recognized
+
+FunctionNotSupported ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ syntaxError NULL,
+ semanticError NULL,
+ unknownFunction NULL,
+ ...
+ },
+ returnedFunction OCTET STRING OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Conference
+-- ===================================================================================
+
+ConferenceIndication ::=CHOICE
+{
+ sbeNumber INTEGER (0..9), -- same as H.230 SBE Number
+
+ terminalNumberAssign TerminalLabel, -- same as H.230 TIA
+
+ terminalJoinedConference TerminalLabel, -- same as H.230 TIN
+
+ terminalLeftConference TerminalLabel, -- same as H.230 TID
+
+ seenByAtLeastOneOther NULL, -- same as H.230 MIV
+ cancelSeenByAtLeastOneOther NULL, -- same as H.230 cancel MIV
+
+ seenByAll NULL, -- like H.230 MIV
+ cancelSeenByAll NULL, -- like H.230 MIV
+
+ terminalYouAreSeeing TerminalLabel, -- same as H.230 VIN
+
+ requestForFloor NULL, -- same as H.230 TIF
+
+ ...,
+ withdrawChairToken NULL, -- same as H.230 CCR
+ -- MC-> chair
+ floorRequested TerminalLabel -- same as H.230 TIF
+ -- MC-> chair
+}
+
+
+-- ===================================================================================
+-- Indication Message : Miscellaneous H.230-like indication
+-- ===================================================================================
+
+MiscellaneousIndication ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ logicalChannelActive NULL, -- same as H.230 AIA and VIA
+ logicalChannelInactive NULL, -- same as H.230 AIM and VIS
+
+ multipointConference NULL,
+ cancelMultipointConference NULL,
+
+ multipointZeroComm NULL, -- same as H.230 MIZ
+ cancelMultipointZeroComm NULL, -- same as H.230 cancel MIZ
+
+ multipointSecondaryStatus NULL, -- same as H.230 MIS
+ cancelMultipointSecondaryStatus NULL, -- same as H.230 cancel MIS
+
+ videoIndicateReadyToActivate NULL, -- same as H.230 VIR
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- indicates current trade-off
+
+ ...,
+ videoNotDecodedMBs SEQUENCE
+ {
+ firstMB INTEGER (1..8192),
+ numberOfMBs INTEGER (1..8192),
+ temporalReference INTEGER (0..255),
+ ...
+ },
+ transportCapability TransportCapability
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Jitter Indication
+-- ===================================================================================
+
+JitterIndication ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ estimatedReceivedJitterMantissa INTEGER (0..3),
+ estimatedReceivedJitterExponent INTEGER (0..7),
+ skippedFrameCount INTEGER (0..15) OPTIONAL,
+ additionalDecoderBuffer INTEGER (0..262143) OPTIONAL, -- 262143 is 2^18 - 1
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.223 logical channel skew
+-- ===================================================================================
+
+H223SkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ skew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.225.0 maximum logical channel skew
+-- ===================================================================================
+
+H2250MaximumSkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ maximumSkew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : MC Location Indication
+-- ===================================================================================
+
+MCLocationIndication ::=SEQUENCE
+{
+ signalAddress TransportAddress, -- this is the H.323 Call Signalling
+ -- address of the entity which
+ -- contains the MC
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Vendor Identification
+-- ===================================================================================
+
+ VendorIdentification ::=SEQUENCE
+ {
+ vendor NonStandardIdentifier,
+ productNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per productNumber
+ ...
+ }
+
+
+-- ===================================================================================
+-- Indication Message : New ATM virtual channel indication
+-- ===================================================================================
+
+NewATMVCIndication ::=SEQUENCE
+{
+ resourceID INTEGER(0..65535),
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ aal CHOICE
+ {
+ aal1 SEQUENCE
+ {
+ clockRecovery CHOICE
+ {
+ nullClockRecovery NULL,
+ srtsClockRecovery NULL,
+ adaptiveClockRecovery NULL,
+ ...
+ },
+ errorCorrection CHOICE
+ {
+ nullErrorCorrection NULL,
+ longInterleaver NULL,
+ shortInterleaver NULL,
+ errorCorrectionOnly NULL,
+ ...
+ },
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ },
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ },
+ ...
+ },
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...,
+ reverseParameters SEQUENCE
+ {
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Indication Message : user input
+-- ===================================================================================
+
+UserInputIndication ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ alphanumeric GeneralString,
+ ...,
+ userInputSupportIndication CHOICE
+ {
+ nonStandard NonStandardParameter,
+ basicString NULL,
+ iA5String NULL,
+ generalString NULL,
+ ...
+ },
+ signal SEQUENCE
+ {
+ signalType IA5String (SIZE (1) ^ FROM ("0123456789#*ABCD!")),
+-- signalType IA5String (SIZE (1)) (FROM ("0123456789#*ABCD!")),
+ duration INTEGER (1..65535) OPTIONAL, -- milliseconds
+ rtp SEQUENCE
+ {
+ timestamp INTEGER (0..4294967295) OPTIONAL,
+ expirationTime INTEGER (0..4294967295) OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ },
+ signalUpdate SEQUENCE
+ {
+ duration INTEGER (1..65535), -- milliseconds
+ rtp SEQUENCE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ }
+}
+
+
+END
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MissingEnd.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/MissingEnd.asn1
new file mode 100644
index 0000000000..66912ef693
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MissingEnd.asn1
@@ -0,0 +1,5 @@
+MissingEnd DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod.set.asn
new file mode 100644
index 0000000000..5dcd8706ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod.set.asn
@@ -0,0 +1,5 @@
+Mod1.asn
+Mod2.asn
+Mod3.asn
+Mod4.asn
+Mod5.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod1.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod1.asn
new file mode 100644
index 0000000000..cb29997985
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod1.asn
@@ -0,0 +1,18 @@
+Mod1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Co,Reg
+ FROM Mod5
+ Name
+ FROM Mod4;
+
+
+L ::= SEQUENCE {
+ country Co,
+ region Reg,
+ name Name
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod2.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod2.asn
new file mode 100644
index 0000000000..cc22c6f13c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod2.asn
@@ -0,0 +1,43 @@
+Mod2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Stat,Country
+ FROM Mod3
+ L
+ FROM Mod1
+ Time,LocName,ThingName,Name
+ FROM Mod4;
+
+T ::= SEQUENCE {
+ unit ENUMERATED{celsius,fahrenheit,kelvin},
+ degree INTEGER,
+ location L,
+ time Time,
+ statistics Stat
+}
+
+OtherName ::= SEQUENCE {
+ locationName LocName,
+ thingName ThingName
+}
+
+FirstName ::= CHOICE {
+ firstname PrintableString,
+ nickname PrintableString
+}
+
+FamilyName ::= SEQUENCE{
+ prefix ENUMERATED{none,von,af},
+ secondname PrintableString
+}
+
+Lang ::= SEQUENCE{
+ l PrintableString}
+
+Inhabitant ::= SEQUENCE {
+ name Name,
+ country Country}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod3.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod3.asn
new file mode 100644
index 0000000000..8069bedcf9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod3.asn
@@ -0,0 +1,33 @@
+Mod3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Name
+ FROM Mod4
+ Lang, Inhabitant,FirstName,FamilyName
+ FROM Mod2
+ TS, RFS, WS, HS
+ FROM Mod5;
+
+Stat ::= SEQUENCE {
+ tempstat TS,
+ rainfallstat RFS,
+ windstat WS,
+ humiditystat HS
+}
+
+Country ::= SEQUENCE{
+ name Name,
+ language Lang
+}
+
+RegionName ::= Name
+Inhabitants ::= SEQUENCE OF Inhabitant
+
+PersonName ::= SEQUENCE {
+ name1 FirstName,
+ name2 FamilyName
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod4.asn
new file mode 100644
index 0000000000..4a1aaff9dc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod4.asn
@@ -0,0 +1,33 @@
+Mod4 DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+IMPORTS
+ PersonName
+ FROM Mod3
+ OtherName,FirstName,FamilyName
+ FROM Mod2;
+
+Time ::= SEQUENCE {
+ year OCTET STRING(SIZE(4)),
+ month OCTET STRING(SIZE(2)),
+ hour INTEGER,
+ minute INTEGER
+}
+
+Name ::= CHOICE {
+ person PersonName,
+ othername OtherName
+}
+
+
+
+LocName ::= SEQUENCE {
+ region ENUMERATED{gotaland,svealand,norrland},
+ name PrintableString
+}
+
+ThingName ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mod5.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mod5.asn
new file mode 100644
index 0000000000..71b483d0e0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mod5.asn
@@ -0,0 +1,37 @@
+Mod5 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Country,RegionName,Inhabitants
+ FROM Mod3;
+TS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+RFS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+WS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+HS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+Co ::= Country
+
+Reg ::= SEQUENCE {
+ name RegionName,
+ inhabitants Inhabitants
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-4.asn
new file mode 100644
index 0000000000..81c07a2dab
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-4.asn
@@ -0,0 +1,675 @@
+-- module(Mvrasn-11-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- .... ....... ........ ........................................
+-- PA2 990112 eedkbu Insertion of all Data types relevant for
+-- DSD operation.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes
+;
+
+IMPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+FROM Mvrasn-14-4
+
+ SS-Code
+FROM Mvrasn-15-4
+
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info
+FROM Mvrasn-18-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+-- location registration types
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Indentity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Indentity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GSN-Address ::= OCTET STRING (SIZE (4..16))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+
+-- =========================================================
+-- EEDKBU:
+--
+-- the line:
+--
+-- "COMPONENTS OF SubscriberData,
+--
+-- has been removed due to insufficiencies of the used ASN.1-ERLANG
+-- compiler. Instead of this line the complete definition of
+-- "Subscriberdata" has been inserted.
+--
+-- This results in the same behaviour of the deocder/encoder but
+-- means only a replication of the ASN.1 definiton here.
+--
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL,
+
+-- =========================================================
+
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present
+ -- only in the first sequence if the seqmentation is used
+
+-- =========================================================
+--
+-- EEDKBU: This data type 'NetworkAccessMode' has been included manually
+-- as it was not in the ASN.1 definitions in 09.02 6.1.0.
+-- This definition has been taken from the CR xxx.
+--
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+--
+-- =========================================================
+
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ...}
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be
+ -- present in the first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+APN ::= IA5String (SIZE (1..63))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (4..16))
+-- Octets are coded according to TS GSM 09.60
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: 0 (unused)
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE
+ (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) OF
+ ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL}
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL
+ }
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 2:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- all other SS codes shall be ignored
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL
+ }
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-Criteria [3] O-BcsmCamelTDP-Criteria OPTIONAL
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ... }
+-- exception handling:
+-- For O-BcsmCamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- O-BcsmCamelTDPDatasequence.
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ ... }
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+-- The receiving entity shall not check the format of a number in
+-- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE
+-- (1..maxNumOfCamelDestinationNumberLengths) OF
+ (1..maxISDN-AddressLength) OF
+-- INTEGER(1..maxISDN-AddressLength)
+ INTEGER(1..maxNumOfSS)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueCall"
+-- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+-- value 1 = CAMEL phase 1,
+-- value 2 = CAMEL phase 2:
+-- reception of values greater than 2 shall be treated as CAMEL phase 2
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) } (SIZE (1..16))
+
+-- VBS/VGCS types
+
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-6.asn
new file mode 100644
index 0000000000..d826c1398f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-11-6.asn
@@ -0,0 +1,1776 @@
+-- module(Mvrasn-11-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010201 etord First draft, based on GSM 29.002 v. 3.5.2.
+-- PA2 010813 etord Updated according to GSM 29.002 v. 3.8.0.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ EquipmentStatus,
+ Kc,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+GeographicalInformation,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ SubscriberState,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ -- error in spec detected by our compiler SendRoutingInfoForGprsArg,
+ -- SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM Mvrasn-14-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+
+ AddressString,
+ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status
+
+FROM Mvrasn-18-6
+
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- if segmentation is used, numberOfRequestedVectors shall be present in
+ -- the first segment and shall not be present in subsequent segments. If received
+ -- in a subsequent segment it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the previous VLR shall not send the result
+ -- within a TC-CONTINUE message.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI must be present if SendIdentificationRes is not segmented.
+ -- If the TC-Continue segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendIdentificationRes.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- Refers to the Target RNC-ID in the Target ID in 3G TS 25.413, where the encoding is
+ -- defined.
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (5..10))
+ -- Octets are coded according the Channel Type information element in GSM 08.08
+
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (17..maxNumOfIntegrityInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (17..maxNumOfEncryptionInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the HLR shall not send the result within
+ -- a TC-CONTINUE message.
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ -- if present, the HLR may send an immediate response with the available authentication
+ -- vectors (see � 8.5.2 for more information).
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- security management types
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...}
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL }
+ -- qos-Subscribed shall be discarded if ext-QoS-Subscribed is received and supported
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS GSM 03.03
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS GSM 09.60
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3G TS 24.008 Quality of Service Octets
+ -- 6-13.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3G TS 32.015.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 03.03
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS GSM 08.08
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser is expected only for
+ -- SS-code = callunrelated or SS-code = callrelated
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList is expected only for SS-code = callunrelated
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList is expected only for SS-code = plmn operator
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+ ...}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ sms-csi (5),
+ m-csi (6),
+ gprs-csi(7)} (SIZE(8..32))
+-- exception handling:
+-- bits 8 to 31 shall be ignored if received
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL}
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, dp-AnalysedInfoCriteriaList and camelCapabilityHandling shall be
+-- present in the first segment
+
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths)
+OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3:
+ -- reception of values greater than 3 shall be treated as CAMEL phase 3.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) ,
+ phase3 (2) } (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when SMS-CSI is sent to VLR/SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ... }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- SMS-CAMEL-TDP-Data sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following M-Code values are defined in CAMEL Phase 3:
+--
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- If any other MM-code is received in M-CSI, then that MM-code shall be
+-- ignored.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is
+ --- allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP�s are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL }
+-- currentLocation shall not be present if locationInformation
+-- is not present in the RequestedInfo parameter
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in GSM 03.32.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in GSM 03.32 is allowed to be used
+-- The internal structure according to GSM 03.32 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in CCITT Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...}
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter,
+ notificationToCSE [4] NULL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-4.asn
new file mode 100644
index 0000000000..d545a746ec
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-14-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-14-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+;
+
+IMPORTS
+
+ SS-Code
+FROM Mvrasn-15-4
+
+;
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-6.asn
new file mode 100644
index 0000000000..3b4a827776
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-14-6.asn
@@ -0,0 +1,352 @@
+-- module(Mvrasn-14-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-14-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM Mvrasn-18-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ SS-Code
+FROM Mvrasn-15-6
+;
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS GSM 03.38
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS GSM 03.38.
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-4.asn
new file mode 100644
index 0000000000..fed9f38d1a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-4.asn
@@ -0,0 +1,42 @@
+-- module(Mvrasn-15-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-15-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-6.asn
new file mode 100644
index 0000000000..b9813e8481
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-15-6.asn
@@ -0,0 +1,202 @@
+-- module(Mvrasn-15-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-15-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callrelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call
+ -- is established from the target MS
+callunrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-17-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-17-4.asn
new file mode 100644
index 0000000000..29f3a0ff3b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-17-4.asn
@@ -0,0 +1,100 @@
+-- module(Mvrasn-17-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Error data types".
+--
+-- ASN.1 module: "MAP-ER-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-17-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ UnknownSubscriberParam,
+ UnidentifiedSubParam
+
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ NetworkResource
+FROM Mvrasn-18-4
+
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...}
+ -- if unknown values are received in
+ -- unknownSubscriberDiagnostic they shall be discarded
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-4.asn
new file mode 100644
index 0000000000..f14ad46c5f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-4.asn
@@ -0,0 +1,215 @@
+-- module(Mvrasn-18-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-18-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+-- ExternalSignalInfo,
+ LMSI,
+
+ -- data types for numbering and identification
+ IMSI,
+ NetworkResource,
+ NAEA-PreferredCI,
+
+ -- data types for subscriber management
+ Ext-BasicServiceCode,
+ EMLPP-Info
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+;
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+
+-- data types for subscriber management
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-6.asn
new file mode 100644
index 0000000000..901fc0e057
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-18-6.asn
@@ -0,0 +1,515 @@
+-- module(Mvrasn-18-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-18-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ gsm-0806 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS GSM 03.03.
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS GSM 03.03.
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+ -- octets 6 and 7 Cell Identity (CI) according to TS GSM 04.08
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between �000� and �999� may
+ -- be encoded as 3 digits using �000� to �999� or as 4 digits using
+ -- �0000� to �0999�. Carrier codes between �1000� and �9999� are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3G TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3G TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3G TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value �0� indicates that the MS is currently in contact with the
+-- network
+-- value �32767� indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-4.asn
new file mode 100644
index 0000000000..3cb60d7131
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-4.asn
@@ -0,0 +1,53 @@
+-- module(Mvrasn-19-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-19-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allShortMessageServices Ext-TeleserviceCode ::= '00100000'B
+shortMessageMT-PP Ext-TeleserviceCode ::= '00100001'B
+shortMessageMO-PP Ext-TeleserviceCode ::= '00100010'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-6.asn
new file mode 100644
index 0000000000..4a7c550deb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-19-6.asn
@@ -0,0 +1,109 @@
+-- module(Mvrasn-19-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+
+Mvrasn-19-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS GSM 02.30:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-4.asn
new file mode 100644
index 0000000000..8b74c07b5a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-4.asn
@@ -0,0 +1,54 @@
+-- module(Mvrasn-20-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-20-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-6.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-6.asn
new file mode 100644
index 0000000000..6b56cb211f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-20-6.asn
@@ -0,0 +1,147 @@
+-- module(Mvrasn-20-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-20-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS GSM 02.30:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-21-4.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-21-4.asn
new file mode 100644
index 0000000000..44e77a559d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-21-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-21-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Extension data types".
+--
+-- ASN.1 module: "MAP-ExtensionDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft including changes due to
+-- incompatibilities of the ASN.1-ERLANG
+-- compiler from OTP.
+-- Based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- This module was changed compared to the original in the ETSI
+-- standard GSM 09.02 v. 6.1.0. The reason for this change was an
+-- incompatibility of the used ASN.1-ERLANG compiler from OTP.
+--
+-- In GSM 09.02 v. 6.1.0 the data type 'ExtensionContainer' is partly
+-- defined by the ASN.1 type 'CLASS', but the ASN.1-ERLANG compiler is
+-- not able to handle such a 'CLASS' construct correctly. Therefore, and
+-- since the content of a received 'ExtensionContainer' is not of further
+-- interest at this stage of the project, the data type 'ExtensionContainer'
+-- has been changed here.
+--
+-- The new definition of 'ExtensionContainer' is simply an ASN.1 'Extension'
+-- ('...'). This definition allows to receive any kind of information
+-- within the 'ExtensionContainer' without causing a crash of the
+-- decoder when handling the respective message.
+--
+-- =============================================================================
+
+Mvrasn-21-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ ExtensionContainer;
+
+ExtensionContainer ::= SEQUENCE {
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-Constants-1.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-Constants-1.asn
new file mode 100644
index 0000000000..7eaacdd335
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-Constants-1.asn
@@ -0,0 +1,85 @@
+-- module(Mvrasn-Constants-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Constants".
+--
+-- ASN.1 module: "MAP-Constants"
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981015 eedkbu First draft. Based on GSM 09.02 v. 3.11.0)
+-- ..............................................................
+
+
+Mvrasn-Constants-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+maxNumberOfTeleServices,
+maxNumberOfBearerServices,
+maxNumberOfSupplServices,
+
+maxNumberOfCUG,
+maxNumberOfForwardingFeatures,
+maxNumberOfCallBarringFeatures,
+maxNumberOfHlrId,
+maxAddressLength,
+maxNumberOfSentParameters
+
+;
+
+-- value assignment
+
+maxNumberOfTeleServices INTEGER ::= 20
+maxNumberOfBearerServices INTEGER ::= 50
+maxNumberOfSupplServices INTEGER ::= 30
+
+maxNumberOfCUG INTEGER ::= 10
+maxNumberOfForwardingFeatures INTEGER ::= 13
+maxNumberOfCallBarringFeatures INTEGER ::= 13
+maxNumberOfHlrId INTEGER ::= 50
+maxAddressLength INTEGER ::= 20
+
+
+maxNumberOfSentParameters INTEGER ::= 10
+-- this named value should correspond to the maximum of
+-- the maxNumberOfCUG and the maximum number of authentication
+-- set which may be returned by a HLR plus 1.
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-DataTypes-1.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-DataTypes-1.asn
new file mode 100644
index 0000000000..56b11852ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn-DataTypes-1.asn
@@ -0,0 +1,454 @@
+-- module(Mvrasn-DataTypes-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Data Types".
+--
+-- ASN.1 module: "MAP-DataTypes".
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0.
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 3.11.0.
+-- ..............................................................
+-- PA2 990114 etord Included Reset operation
+-- ..............................................................
+
+Mvrasn-DataTypes-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+-- imports upper boundaries for data types
+
+ maxNumberOfTeleServices,
+ maxNumberOfBearerServices,
+ maxNumberOfSupplServices,
+ maxNumberOfCUG,
+ maxNumberOfForwardingFeatures,
+ maxNumberOfCallBarringFeatures,
+ maxNumberOfHlrId,
+ maxAddressLength,
+ maxNumberOfSentParameters
+FROM Mvrasn-Constants-1
+
+;
+
+
+-- =========================================================
+--
+-- NOTE:
+--
+-- The data type "SendParameterArg" and "ResetArg" are not given in the
+-- original GSM 09.02 v. 3.11.0 standard, but have been
+-- introduced here for two reasons:
+--
+-- 1. In the OPERATION MACRO "SendParameters" is a PARAMETER (=ARGument) and
+-- a RESULT defined. The ASN.1 en/decoder is not able to handle
+-- the MACRO definition. Therefore, the new data type has been
+-- introduced
+--
+-- 2. To align the documentation of the ASN.1 data types in
+-- GSM 09.02 v. 3.11.0 with those of GSM 09.02 v. 6.1.0.
+--
+-- =========================================================
+
+SendParametersArg ::= SEQUENCE {
+ subscriberId SubscriberId,
+ requestParameters RequestParameters
+ }
+
+ResetArg ::= SEQUENCE {
+ networkResource NetworkResource,
+ originatingEntityNumber IsdnAddressString,
+ hlrId HlrList OPTIONAL
+ }
+
+
+-- common data types
+
+SentParameters ::= SEQUENCE
+ SIZE(1..maxNumberOfSentParameters)
+ OF SentParameter
+
+
+TBCD-STRING ::= OCTET STRING
+ -- digits 0 through 9, two digits per octet,
+ -- each digit encoded 0000 to 1001,
+ -- 1111 used as filler when there is an odd number of digit.
+
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- see internal description in section 6.4.1
+
+IsdnAddressString ::= AddressString (SIZE (1..10))
+
+IMSI ::= TBCD-STRING (SIZE (2..8))
+ -- MCC, MNC, MSIN concatenated in this order
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMPLICIT IMSI,
+ tmsi [1] IMPLICIT TMSI}
+
+
+-- data types for numbering and identification
+
+HlrId ::= IMSI
+ -- leading digits of IMSI
+
+HlrList ::= SEQUENCE
+ SIZE(1.. maxNumberOfHlrId)
+ OF HlrId
+
+
+-- data types for subscriber management
+
+--
+Category ::= OCTET STRING (SIZE (1))
+ -- internal structure defined in CCITT Rec Q.763
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/1
+ -- BIT 8 Transparency indicator (if applicable)
+ -- 0 transparent
+ -- 1 non transparent
+
+ -- BIT 7654 Bearer service group
+ -- 0001 3.1 kHz ex PLMN
+ -- 0010 Circuit data asynchronous
+ -- 0011 Circuit data synchronous
+ -- 0100 PAD access c.d.a
+ -- 0101 Packet data synchrounous
+ -- 0110 Alternate speech/c.d.a
+ -- 0111 Alternate speech c.d.s
+ -- 1000 Speech followed by data c.d.a
+ -- 1001 Speech followed by data c.d.s
+ -- 1111 12.6 kb/s unrestricted digital
+
+ -- BIT 321 Rate (when applicable)
+ -- 000 Any
+ -- 001 300-300 b/s
+ -- 010 1200-1200 b/s
+ -- 011 1200-75 b/s
+ -- 100 2400-2400 b/s
+ -- 101 4800-4800 b/s
+ -- 110 9600-9600 b/s
+
+
+ -- Bits 321 = 000 can be used to refer to all
+ -- the bearer services of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- bearer services.
+ -- For the codes referring to a group or all bearer services
+ -- the Transparency Indicator is not applicable and has to be set to "0"
+
+
+BearerServiceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfBearerServices)
+ OF BearerServiceCode
+
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/2
+ -- Bit 8-5 encode the teleservice group
+
+ -- Bit 4-1 = 0000 can be used to refer to all the
+ -- teleservices of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- teleservices
+
+TeleserviceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfTeleServices)
+ OF TeleserviceCode
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT BearerServiceCode,
+ teleservice [3] IMPLICIT TeleserviceCode}
+
+--
+SubscriberStatus ::= ENUMERATED{
+ serviceGranted (0),
+ operatorOGCallBarring (1)}
+
+ -- Data types for supplementary services
+
+SS-Code ::= OCTET STRING (SIZE(1))
+ -- Internal structure according to
+ -- table 6.4/3
+ -- Bit 8-5
+ -- 0001 Number Identification services
+ -- 0010 Forwarding services
+ -- 0011 Call offering services
+ -- 0100 Call completion services
+ -- 0101 Multi-party services
+ -- 0110 Community of interest services
+ -- 0111 Charging services
+ -- 1000 Additional information transfer services
+ -- 1001 Call restriction services
+ -- Bit 4-1 = 0000 can be use to refer to
+ -- a group of supplementary services
+ -- eg, "00100000" can be used to refer to all
+ -- forwarding services
+ -- "00101000" can be used to refer to all
+ -- conditional forwarding services
+ -- "00000000" can be used to refer to all
+ -- supplementary services
+
+SS-Status ::= OCTET STRING (SIZE (1))
+ -- Bit 8-4 Unused
+ -- Bit 3 Provision indicator
+ -- 0 : Not provisioned
+ -- 1 : Provisioned
+ -- Bit 2 Registration indicator (if applicable)
+ -- 0 : Not Registered
+ -- 1 : Registered
+ -- Bit 1 Activation indicator (If applicable)
+ -- 0 : Not Active
+ -- 1 : Active
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfo [1] IMPLICIT CallBarringInfo,
+ cug-Information [2] IMPLICIT CUG-Information,
+ ss-Data [3] IMPLICIT SS-Data}
+
+SS-InfoList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfSupplServices)
+ OF SS-Information
+
+
+--
+SS-Data ::= SEQUENCE{
+ ss-Code SS-Code,
+ ss-Status [4] IMPLICIT SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL}
+
+SS-SubscriptionOption ::= CHOICE{
+ perCallBasis [5] IMPLICIT BOOLEAN,
+ notificationToHeldRetrievedParty [6] IMPLICIT BOOLEAN,
+ userToUserServiceIndicator [7] IMPLICIT UserToUserServiceIndicator,
+ maximumConfereesNumber [8] IMPLICIT MaximumConfereesNumber,
+ huntGroupAccessSelectionOrder [9] IMPLICIT HuntGroupAccessSelectionOrder}
+
+
+
+ForwardingOptions ::= OCTET STRING (SIZE(1))
+ -- Bit 8-7 Notification to forwarding party
+ -- 00 No notification
+ -- 01 notification with calling number identity
+ -- 10 notification without calling number identity
+ -- Bit 6-5 Notification to calling party
+ -- 00 No notification
+ -- 01 Notification with forwarded-to number
+ -- 10 Notification without forwarded-to number
+
+
+UserToUserServiceIndicator ::= OCTET STRING (SIZE(1))
+ -- Bit 8 : service 1
+ -- Bit 7 : service 2
+ -- Bit 6 : service 3
+ -- Bit 5-1 : Reserved
+ -- Bit 8 to 6 coded "1" if the service
+ -- is available to the subscriber
+
+
+MaximumConfereesNumber ::= INTEGER (1..10)
+
+
+
+HuntGroupAccessSelectionOrder ::= ENUMERATED{
+ random (0),
+ sequential (1)}
+
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+
+CUG-Facilities ::= OCTET STRING (SIZE (1))
+ -- Bit 8-3 000000 (Unused)
+ -- Bit 2-1
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Index ::= OCTET STRING (SIZE (1))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Options ::= OCTET STRING (SIZE (1))
+ -- BIT 8-4 00000 (Unused)
+ -- BIT 3 preferential CUG indicator
+ -- 0 no preferential
+ -- 1 preferential CUG
+ -- BIT 2 barring of incoming calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+ -- BIT 1 barring of outgoing calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+
+CUG-Feature ::= SEQUENCE {
+ cug-interlock CUG-Interlock,
+ cug-Index CUG-Index,
+ cug-Options CUG-Options,
+ ss-Status SS-Status}
+
+
+CUG-FeatureList ::= SEQUENCE SIZE (
+ 1..maxNumberOfCUG) OF CUG-Feature
+
+
+-- =========================================================
+--
+-- EEDKBU:
+--
+-- The original CUG-Information data type has been:
+--
+-- ------------------
+--
+-- CUG-Information ::= SEQUENCE{
+-- cug-Facilities CUG-Facilities,
+-- CHOICE{
+-- cug-Feature [0] IMPLICIT CUG-Feature,
+-- cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+--
+-- ------------------
+--
+-- This is incorrect ASN.1 notation! The CHOICE has also to be a named
+-- type. Therefore, the definition was changed and can be seen below:
+--
+-- =========================================================
+
+
+CUG-Information ::= SEQUENCE{
+ cug-Facilities CUG-Facilities,
+ cug-FeatureChoice CHOICE{
+ cug-Feature [0] IMPLICIT CUG-Feature,
+ cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+
+--
+ForwardingInfo ::= SEQUENCE{
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList}
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status,
+ forwardedToNumber [5] IMPLICIT IsdnAddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT NoReplyConditionTime OPTIONAL}
+
+ForwardingFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfForwardingFeatures)
+ OF ForwardingFeature
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeature ::= SEQUENCE{
+ basicServiceCode BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status }
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfCallBarringFeatures)
+OF CallBarringFeature
+
+SubscriberData ::= SEQUENCE{
+ msIsdn [1] IMPLICIT IsdnAddressString OPTIONAL,
+ category [2] IMPLICIT Category OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT BearerServiceList OPTIONAL,
+ teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL,
+ provisonedSupplServices [7] IMPLICIT SS-InfoList OPTIONAL}
+
+-- Data types for security procedures
+
+AuthenticationSet ::= SEQUENCE {
+ rand Rand,
+ sres Sres,
+ kc Kc}
+
+
+Rand ::= OCTET STRING (SIZE (16))
+
+Sres ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+Ki ::= OCTET STRING (SIZE (16))
+
+
+-- Data types for fault recovery, call tracing
+
+NetworkResource ::= ENUMERATED {
+ pLMN (0),
+ hLR (1),
+ vLR (2),
+ previous-VLR (3),
+ controlling-MSC (4),
+ vMSC (5),
+ eIR (6),
+ radioSubSystem (7)}
+
+
+-- other data types
+
+RequestParameter ::= ENUMERATED{
+ request-IMSI (0),
+ request-AuthenticationSet (1),
+ request-SubscriberData (2),
+ request-CUG-Information (3),
+ request-Ki (4)}
+
+RequestParameters ::= SEQUENCE SIZE (1..2) OF RequestParameter
+
+SentParameter ::= CHOICE{
+ imsi [0] IMPLICIT IMSI,
+ authenticationSet [1] IMPLICIT AuthenticationSet,
+ subscriberData [2] IMPLICIT SubscriberData,
+ cug-information [3] IMPLICIT CUG-Information,
+ ki [4] IMPLICIT Ki}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn.set.asn
new file mode 100644
index 0000000000..8a61da0160
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-11-6.asn
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn4.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn4.set.asn
new file mode 100644
index 0000000000..76e8147d12
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn4.set.asn
@@ -0,0 +1,10 @@
+Mvrasn-Constants-1.asn
+Mvrasn-DataTypes-1.asn
+Mvrasn-21-4.asn
+Mvrasn-20-4.asn
+Mvrasn-19-4.asn
+Mvrasn-18-4.asn
+Mvrasn-17-4.asn
+Mvrasn-15-4.asn
+Mvrasn-14-4.asn
+Mvrasn-11-4.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn6.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn6.set.asn
new file mode 100644
index 0000000000..2a3f54ca9a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Mvrasn6.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
+Mvrasn-11-6.asn
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/MyMerge.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/MyMerge.set.asn
new file mode 100644
index 0000000000..32c562b43f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/MyMerge.set.asn
@@ -0,0 +1,2 @@
+MySO
+IMP
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/NoImport.asn b/lib/asn1/test/asn1_bin_SUITE_data/NoImport.asn
new file mode 100644
index 0000000000..2ab09d91fd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/NoImport.asn
@@ -0,0 +1,14 @@
+NoImport DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Typ
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a Typ,
+ b INTEGER}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Nortel.asn b/lib/asn1/test/asn1_bin_SUITE_data/Nortel.asn
new file mode 100755
index 0000000000..a27c78a0b5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Nortel.asn
@@ -0,0 +1,592 @@
+Nortel DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS Nortel;
+
+--IMPORTS
+
+-- IMSI, IMEI
+-- FROM MAP-commonDataTypes { iso (1) identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) };
+
+--
+-- Note that the syntax of AE-title to be used is from
+-- CCITT Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+--
+------------------------------------------------------------------------------
+--
+-- CALL AND EVENT RECORDS
+--
+------------------------------------------------------------------------------
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS GSM 04.08
+--
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+MessageReference ::= OCTET STRING
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+CalledNumber ::= BCDDirectoryNumber
+
+DMI-EXTENSION ::= DMI-TYPE-IDENTIFIER
+
+DMI-TYPE-IDENTIFIER ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+} WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+
+-- ManagementExtension ::= OCTET STRING
+
+ ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+ }
+
+ManagementExtensionSet DMI-EXTENSION ::= {...}
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1)
+ }
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+BCDDirectoryNumber ::= OCTET STRING
+ -- This type contains the binary coded decimal representation of
+ -- a directory number e.g. calling/called/connected/translated number.
+ -- The encoding of the octet string is in accordance with the
+ -- the elements "Calling party BCD number", "Called party BCD number"
+ -- and "Connected number" defined in TS GSM 04.08.
+ -- This encoding includes type of number and number plan information
+ -- together with a BCD encoded digit string.
+ -- It may also contain both a presentation and screening indicator
+ -- (octet 3a).
+ -- For the avoidance of doubt, this field does not include
+ -- octets 1 and 2, the element name and length, as this would be
+ -- redundant.
+
+
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS GSM 04.08
+ gsm0902MapErrorValue [1] INTEGER,
+ -- Note: The value to be stored here corresponds to
+ -- the local values defined in the MAP-Errors and
+ -- MAP-DialogueInformation modules, for full details
+ -- see TS GSM 09.02.
+ ccittQ767Cause [2] INTEGER,
+ -- See CCITT Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension
+ -- To be defined by manufacturer
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS GSM 04.08
+ --
+
+CallEventRecord ::= CHOICE
+{
+-- Record values 0..16 are 3G curcuit switch specifick
+--
+-- sgsnPDPRecord [20] SGSNPDPRecord,
+ ggsnPDPRecord [21] GGSNPDPRecord
+-- sgsnMMRecord [22] SGSNMMRecord,
+-- sgsnSMORecord [23] SGSNSMORecord,
+-- sgsnSMTRecord [24] SGSNSMTRecord
+}
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration in seconds.
+ -- For successful calls this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+
+TimeStamp ::= OCTET STRING (SIZE(9))
+ --
+ -- The contents of this field are a compact form of the UTCTime format
+ -- containing local time plus an offset to universal time. Binary coded
+ -- decimal encoding is employed for the digits to reduce the storage and
+ -- transmission overhead
+ -- e.g. YYMMDDhhmmssShhmm
+ -- where
+ -- YY = Year 00 to 99 BCD encoded
+ -- MM = Month 01 to 12 BCD encoded
+ -- DD = Day 01 to 31 BCD encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ -- ss = second 00 to 59 BCD encoded
+ -- S = Sign 0 = "+", "-" ASCII encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ --
+
+MSISDN ::= ISDN-AddressString
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+GGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI,
+ pdpType [8] PDPType,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics OPTIONAL
+}
+
+-- sgsnPLMNIdentifier [27] PLMN-Id
+
+
+
+
+------------------------------------------------------------------------------
+--
+-- OBJECT IDENTIFIERS
+--
+------------------------------------------------------------------------------
+
+gsm1205InformationModel OBJECT IDENTIFIER ::=
+ { ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Operation-Maintenance (3) gsm-12-05 (5) informationModel (0) }
+
+gsm1205ASN1Module OBJECT IDENTIFIER ::=
+ { gsm1205InformationModel asn1Module(2) }
+
+------------------------------------------------------------------------------
+--
+-- COMMON DATA TYPES
+--
+------------------------------------------------------------------------------
+
+AccessPointNameNI ::= IA5String (SIZE(1..63))
+ --
+ -- Network Identifier part of APN in "dot" representation
+ -- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
+ -- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR.
+
+AccessPointNameOI ::= IA5String (SIZE(1..37))
+ --
+ -- Operator Identifier part of APN in "dot" representation
+ -- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
+ -- and is presented in this form in the CDR.
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- in GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- cause codes 0 to 15 are defined in TS 32.005 as 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2)
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- used in PDP context record only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp
+}
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Descriptions for the bits of the flag set:
+ --
+ -- Bit 1: H (Hot billing) := '00000001'B
+ -- Bit 2: F (Flat rate) := '00000010'B
+ -- Bit 3: P (Prepaid service) := '00000100'B
+ -- Bit 4: N (Normal billing) := '00001000'B
+ -- Bit 5: - (Reserved, set to 0) := '00010000'B
+ -- Bit 6: - (Reserved, set to 0) := '00100000'B
+ -- Bit 7: - (Reserved, set to 0) := '01000000'B
+ -- Bit 8: - (Reserved, set to 0) := '10000000'B
+ --
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+ETSIAddress ::= AddressString
+ --
+ --first octet for nature of address, and numbering plan indicator (3 for X.121)
+ --other octets TBCD
+ -- See TS 29.002
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formated data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078
+ --
+
+GSNAddress ::= IPAddress
+
+GSMQoSInformation ::=SEQUENCE
+{
+ reliability [0] QoSReliability,
+ delay [1] QoSDelay,
+ precedence [2] QoSPrecedence,
+ peakThroughput [3] QoSPeakThroughput,
+ meanThroughput [4] QoSMeanThroughput
+}
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] OCTET STRING (SIZE(4)),
+ iPBinV6Address [1] OCTET STRING (SIZE(16))
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LocalSequenceNumber ::= INTEGER (0..4294967295)
+ --
+ -- Sequence number of the record in this node
+ -- 0.. 4294967295 is equivalent to 0..2**32-1, unsigned integer in four octets
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ eTSIAddress [1] ETSIAddress
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ --OCTET 1: PDP Type Organization
+ --OCTET 2: PDP Type Number
+ -- See TS 29.060
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060
+ -- as follows:
+ -- OCTET 1 of PLMN-Id = OCTET 2 of RAI
+ -- OCTET 2 of PLMN-Id = OCTET 3 of RAI
+ -- OCTET 3 of PLMN-Id = OCTET 4 of RAI
+
+
+QoSDelay ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ delayClass1 (1),
+ delayClass2 (2),
+ delayClass3 (3),
+ delayClass4 (4)
+}
+
+QoSInformation ::= CHOICE
+{
+ gsmQosInformation [0] GSMQoSInformation,
+ umtsQosInformation [1] OCTET STRING (SIZE (4..12))
+}
+-- When dealing with a pre R99 QoS profile the GSN may either choose the "GSMQoSInformation" or the
+-- "umtsQoSInformation" encoding. Dealing with R99 QoS profiles the GSN shall apply the
+-- "umtsQoSInformation" encoding. The umtsQosInformation octet string is a 1:1 copy of the contents
+-- (starting with octet 4) of the "Quality of service Profile" information element specified in
+-- 3GPP TS 29.060 [22] for R99 and GSM TS 09.60 for pre R99 cases.
+--}
+
+QoSMeanThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ subscribedMeanThroughput (0), -- MS to network direction
+ -- Network to MS direction needs not to be covered since value (0) = "reserved"
+ mean100octetPh (1),
+ mean200octetPh (2),
+ mean500octetPh (3),
+ mean1000octetPh (4),
+ mean2000octetPh (5),
+ mean5000octetPh (6),
+ mean10000octetPh (7),
+ mean20000octetPh (8),
+ mean50000octetPh (9),
+ mean100000octetPh (10),
+ mean200000octetPh (11),
+ mean500000octetPh (12),
+ mean1000000octetPh (13),
+ mean2000000octetPh (14),
+ mean5000000octetPh (15),
+ mean10000000octetPh (16),
+ mean20000000octetPh (17),
+ mean50000000octetPh (18),
+ reserved (30),
+ bestEffort (31)
+}
+
+QoSPeakThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ upTo1000octetPs (1),
+ upTo2000octetPs (2),
+ upTo4000octetPs (3),
+ upTo8000octetPs (4),
+ upTo16000octetPs (5),
+ upTo32000octetPs (6),
+ upTo64000octetPs (7),
+ upTo128000octetPs (8),
+ upTo256000octetPs (9)
+}
+
+QoSPrecedence ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ highPriority (1),
+ normalPriority (2),
+ lowPriority (3)
+}
+
+QoSReliability ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecifiedReliability (0),
+ acknowledgedGTP (1),
+ unackGTPAcknowLLC (2),
+ unackGTPLLCAcknowRLC (3),
+ unackGTPLLCRLC (4),
+ unacknowUnprotectedData (5)
+}
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008
+ --
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002
+ --
+
+NumberOfDPEncountered ::= INTEGER
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+SystemType ::= ENUMERATED
+{
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+CallEventRecordType ::= INTEGER
+{
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15),
+ mtTraceRecord (16),
+ termCAMELRecord (17),
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22)
+
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Null.py b/lib/asn1/test/asn1_bin_SUITE_data/Null.py
new file mode 100644
index 0000000000..23e5f38140
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Null.py
@@ -0,0 +1,22 @@
+Null DEFINITIONS ::=
+BEGIN
+
+-- F.2.9 Null
+-- Use a null type to indicate the effective absence of a component
+-- of a sequence.
+-- EXAMPLE
+
+PatientIdentifier ::= SEQUENCE {
+ name VisibleString,
+ roomNumber CHOICE {
+ room INTEGER,
+ outPatient NULL -- if an out-patient --
+ }
+}
+
+lastPatient PatientIdentifier ::= {
+ name "Jane Doe",
+ roomNumber outPatient : NULL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_bin_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..35a54aaac5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,950 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+OLD-MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ terminationAuditResult TerminationAudit
+}
+
+
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList OPTIONAL,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ },
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN,
+ reserveGroup BOOLEAN,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm
+-- nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value
+}
+
+-- NonStandardData ::= SEQUENCE
+-- {
+-- nonStandardIdentifier NonStandardIdentifier,
+-- data OCTET STRING
+-- }
+--
+-- NonStandardIdentifier ::= CHOICE
+-- {
+-- object OBJECT IDENTIFIER,
+-- h221NonStandard H221NonStandard,
+-- experimental IA5String(SIZE(8)),
+-- first two characters should be "X-" or "X+"
+-- ...
+-- }
+--
+-- H221NonStandard ::= SEQUENCE
+-- {
+-- t35CountryCode1 INTEGER(0..255),
+-- t35CountryCode2 INTEGER(0..255), country, as per T.35
+-- t35Extension INTEGER(0..255), assigned nationally
+-- manufacturerCode INTEGER(0..65535), assigned nationally
+-- ...
+-- }
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.asn1config
new file mode 100644
index 0000000000..8d96aaecf1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'OTP-PKIX',
+ [{decode_TBSCert_exclusive,['CertificatePKIX1Explicit88',[{tbsCertificate,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.set.asn
new file mode 100644
index 0000000000..1b198d3b91
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/OTP-PKIX.set.asn
@@ -0,0 +1,5 @@
+SSL-PKIX.asn1
+PKIX1Explicit88.asn1
+PKIX1Implicit88.asn1
+PKIXAttributeCertificate.asn1
+PKIX1Algorithms88.asn1
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ObjIdValues.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ObjIdValues.asn1
new file mode 100644
index 0000000000..9368e8dceb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ObjIdValues.asn1
@@ -0,0 +1,66 @@
+
+ObjIdValues
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+ObjIdType ::= OBJECT IDENTIFIER
+
+mobileDomainId OBJECT IDENTIFIER ::=
+ {ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)}
+mobileDomainId-Alt1 OBJECT IDENTIFIER ::=
+ {ccitt identified-organization etsi (0) mobileDomain (0)}
+mobileDomainId-Alt2 OBJECT IDENTIFIER ::=
+ {0 4 0 0}
+
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+CommonComponentId ::= INTEGER (0..9)
+
+as-Id CommonComponentId ::= 1
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+{gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+-- test for OTP-4354
+-- But it only caused a warning
+objid OBJECT IDENTIFIER ::= {mobileDomainId-Alt2 as-Id}
+
+itu-t-a OBJECT IDENTIFIER ::= {itu-t recommendation a}
+itu-t-b OBJECT IDENTIFIER ::= {itu-t recommendation b}
+itu-t-c OBJECT IDENTIFIER ::= {itu-t recommendation c}
+itu-t-d OBJECT IDENTIFIER ::= {itu-t recommendation d}
+itu-t-e OBJECT IDENTIFIER ::= {itu-t recommendation e}
+itu-t-f OBJECT IDENTIFIER ::= {itu-t recommendation f}
+itu-t-g OBJECT IDENTIFIER ::= {itu-t recommendation g}
+itu-t-h OBJECT IDENTIFIER ::= {itu-t recommendation h}
+itu-t-i OBJECT IDENTIFIER ::= {itu-t recommendation i}
+itu-t-j OBJECT IDENTIFIER ::= {itu-t recommendation j}
+itu-t-k OBJECT IDENTIFIER ::= {itu-t recommendation k}
+itu-t-l OBJECT IDENTIFIER ::= {itu-t recommendation l}
+itu-t-m OBJECT IDENTIFIER ::= {itu-t recommendation m}
+itu-t-n OBJECT IDENTIFIER ::= {itu-t recommendation n}
+itu-t-o OBJECT IDENTIFIER ::= {itu-t recommendation o}
+itu-t-p OBJECT IDENTIFIER ::= {itu-t recommendation p}
+itu-t-q OBJECT IDENTIFIER ::= {itu-t recommendation q}
+itu-t-r OBJECT IDENTIFIER ::= {itu-t recommendation r}
+itu-t-t OBJECT IDENTIFIER ::= {itu-t recommendation t}
+itu-t-u OBJECT IDENTIFIER ::= {itu-t recommendation u}
+itu-t-v OBJECT IDENTIFIER ::= {itu-t recommendation v}
+itu-t-w OBJECT IDENTIFIER ::= {itu-t recommendation w}
+itu-t-x OBJECT IDENTIFIER ::= {itu-t recommendation x}
+itu-t-y OBJECT IDENTIFIER ::= {itu-t recommendation y}
+itu-t-z OBJECT IDENTIFIER ::= {itu-t recommendation z}
+ccitt-q OBJECT IDENTIFIER ::= {ccitt question}
+ccitt-a OBJECT IDENTIFIER ::= {ccitt administration}
+ccitt-n OBJECT IDENTIFIER ::= {ccitt network-operator}
+iso-i OBJECT IDENTIFIER ::= {iso identified-organization}
+joint-iso OBJECT IDENTIFIER ::= {joint-iso-ccitt}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Objects.asn b/lib/asn1/test/asn1_bin_SUITE_data/Objects.asn
new file mode 100644
index 0000000000..f911acbbe9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Objects.asn
@@ -0,0 +1,61 @@
+Objects DEFINITIONS ::=
+BEGIN
+
+OPERATION ::= CLASS
+ {
+ &ArgumentType OPTIONAL,
+ &ResultType OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &resultReturned BOOLEAN DEFAULT TRUE,
+ &operationCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType]
+ [RESULT &ResultType]
+ [RETURN RESULT &resultReturned]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ CODE &operationCode
+ }
+
+ERROR ::= CLASS
+ {
+ &ParameterType OPTIONAL,
+ &errorCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [PARAMETER &ParameterType]
+ CODE &errorCode
+ }
+
+My-Operations OPERATION ::= { operationA | operationB }
+
+operationA OPERATION ::= {
+ ARGUMENT INTEGER
+ ERRORS { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } }
+ CODE 1
+}
+
+operationB OPERATION ::= {
+ ARGUMENT IA5String
+ RESULT BOOLEAN
+ ERRORS { { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+ CODE 2
+}
+
+My-OperationErrors ERROR ::= { My-Operations.&Errors }
+
+My-OperationAERror ERROR ::= {operationA.&Errors}
+-- Equals:
+-- My-OperationErrors ERROR ::= { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } | { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+
+My-OperationErrorCodes INTEGER ::= { My-Operations.&Errors.&errorCode }
+-- Equals:
+-- My-OperationErrorCodes INTEGER ::= { 1000 | 1001 | 1002 | 1003 }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Octetstr.py b/lib/asn1/test/asn1_bin_SUITE_data/Octetstr.py
new file mode 100644
index 0000000000..e971acf192
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Octetstr.py
@@ -0,0 +1,15 @@
+Octetstr DEFINITIONS ::=
+BEGIN
+
+-- F.2.6.1
+-- Use an octet string type to model binary data whose format and length are
+-- unspecified, or specified elsewhere, and whose length in bits is a
+-- multiple of eight.
+-- EXAMPLE
+
+G4FacsimileImage ::= OCTET STRING
+-- a sequence of octets conforming to
+-- Recommendations T.5 and T.6
+image G4FacsimileImage ::= '3FE2EBAD471005'H
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/One.py b/lib/asn1/test/asn1_bin_SUITE_data/One.py
new file mode 100644
index 0000000000..89083fbd66
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/One.py
@@ -0,0 +1,52 @@
+One DEFINITIONS ::=
+
+BEGIN
+EXPORTS Boo,Foo,Bar;
+--IMPORTS
+--Fooo , Abba FROM Bobby
+--Robbe FROM Tst;
+
+Boo ::= [1] INTEGER (0..200)
+
+Foo ::= One.Boo
+
+Bar ::= SEQUENCE {
+ ff One.Foo,
+ aa One.Boo }
+
+
+ S ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ INTEGER, -- defined by authentication protocol
+ authData
+ Boo
+ }
+
+
+--S::= Jojo
+--T ::= S
+--U ::= T
+--Jojo ::= [PRIVATE 21] SET {
+-- Boo ,x
+-- d SEQUENCE {
+-- [0] INTEGER OPTIONAL,
+-- [1] INTEGER DEFAULT 55 },
+-- g [2] INTEGER (0..10) }
+--
+--J ::= [PRIVATE 22] EXPLICIT SEQUENCE {
+-- y SEQUENCE {
+-- one INTEGER,
+-- two INTEGER },
+-- x INTEGER (1..3),
+-- a Boo OPTIONAL,
+-- b INTEGER }
+--
+--Noo ::= [PRIVATE 23] SEQUENCE {
+-- [0] Jojo,
+-- [1] J }
+
+
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/OpenType.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/OpenType.asn1
new file mode 100644
index 0000000000..8016f3663c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/OpenType.asn1
@@ -0,0 +1,12 @@
+OpenType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Stype ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+Ot ::= TYPE-IDENTIFIER.&Type (Stype)
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/OpenTypeImplicitTag.asn b/lib/asn1/test/asn1_bin_SUITE_data/OpenTypeImplicitTag.asn
new file mode 100644
index 0000000000..ee25b5cf3c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/OpenTypeImplicitTag.asn
@@ -0,0 +1,19 @@
+OpenTypeImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a [1] A OPTIONAL,
+ b [2] ANY OPTIONAL,
+ c [3] INTEGER,
+ d [4] C.&Type OPTIONAL
+}
+
+C ::= CLASS {
+ &Type,
+ &id INTEGER
+}
+
+A ::= ANY
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Opt.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Opt.asn1
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Opt.asn1
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Opt.py b/lib/asn1/test/asn1_bin_SUITE_data/Opt.py
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Opt.py
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1config
new file mode 100644
index 0000000000..45405da8bf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'P-Record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1db b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1db
new file mode 100644
index 0000000000..13e1162c64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl
new file mode 100644
index 0000000000..9fc6f50d64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl
@@ -0,0 +1,244 @@
+%% Generated by the Erlang ASN.1 BER-compiler version, utilizing bit-syntax:1.3.1.4
+%% Purpose: encoder and decoder to the types in mod P-Record
+
+-module('P-Record').
+-include("P-Record.hrl").
+-define('RT_PER',asn1rt_per_bin).
+-export([encoding_rule/0]).
+-export([
+'enc_PersonnelRecord'/1,
+'enc_ChildInformation'/1,
+'enc_Name'/1,
+'enc_EmployeeNumber'/1,
+'enc_Date'/1
+]).
+
+-export([
+'dec_PersonnelRecord'/2,
+'dec_ChildInformation'/2,
+'dec_Name'/2,
+'dec_EmployeeNumber'/2,
+'dec_Date'/2
+]).
+
+-export([
+'v'/0
+]).
+
+
+
+-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).
+
+encoding_rule() ->
+ per_bin.
+
+encode(Type,Data) ->
+case catch ?RT_PER:complete(encode_disp(Type,Data)) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {Bytes,Len} ->
+ {ok,Bytes};
+ X ->
+ {ok,X}
+end.
+
+decode(Type,Data) ->
+case catch decode_disp(Type,Data) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {X,_Rest} ->
+ {ok,X};
+ {X,_Rest,_Len} ->
+ {ok,X}
+end.
+
+encode_disp('PersonnelRecord',Data) -> 'enc_PersonnelRecord'(Data);
+encode_disp('ChildInformation',Data) -> 'enc_ChildInformation'(Data);
+encode_disp('Name',Data) -> 'enc_Name'(Data);
+encode_disp('EmployeeNumber',Data) -> 'enc_EmployeeNumber'(Data);
+encode_disp('Date',Data) -> 'enc_Date'(Data);
+encode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+decode_disp('PersonnelRecord',Data) -> 'dec_PersonnelRecord'(Data,mandatory);
+decode_disp('ChildInformation',Data) -> 'dec_ChildInformation'(Data,mandatory);
+decode_disp('Name',Data) -> 'dec_Name'(Data,mandatory);
+decode_disp('EmployeeNumber',Data) -> 'dec_EmployeeNumber'(Data,mandatory);
+decode_disp('Date',Data) -> 'dec_Date'(Data,mandatory);
+decode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+
+
+
+'enc_PersonnelRecord'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{children,6}],Val),
+[
+?RT_PER:setoptionals(Opt),
+
+%% attribute number 1 with type Externaltypereference6P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,title)),
+
+%% attribute number 3 with type INTEGER
+?RT_PER:encode_integer([],?RT_PER:cindex(4,Val1,number)),
+
+%% attribute number 4 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(5,Val1,dateOfHire)),
+
+%% attribute number 5 with type Externaltypereference10P-RecordName
+'enc_Name'(?RT_PER:cindex(6,Val1,nameOfSpouse)),
+case ?RT_PER:cindex(7,Val1,children) of
+asn1_DEFAULT -> [];
+_ ->
+
+%% attribute number 6 with type SEQUENCE OF
+'enc_PersonnelRecord_children'(?RT_PER:cindex(7,Val1,children))
+end].
+
+'enc_PersonnelRecord_children'({'PersonnelRecord_children',Val}) ->
+'enc_PersonnelRecord_children'(Val);
+
+'enc_PersonnelRecord_children'(Val) ->
+[
+
+ ?RT_PER:encode_length(undefined,length(Val)),
+ 'enc_PersonnelRecord_children_components'(Val, [])
+].
+'enc_PersonnelRecord_children_components'([], Acc) -> lists:reverse(Acc);
+
+'enc_PersonnelRecord_children_components'([H|T], Acc) ->
+'enc_PersonnelRecord_children_components'(T, ['enc_ChildInformation'(H)
+
+ | Acc]).
+
+'dec_PersonnelRecord_children'(Bytes,Telltype) ->
+
+{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),
+'dec_PersonnelRecord_children_components'(Num, Bytes1, Telltype, []).
+'dec_PersonnelRecord_children_components'(0, Bytes, Telltype, Acc) ->
+ {lists:reverse(Acc), Bytes};
+'dec_PersonnelRecord_children_components'(Num, Bytes, Telltype, Acc) ->
+ {Term,Remain} = 'P-Record':'dec_ChildInformation'(Bytes,Telltype),
+ 'dec_PersonnelRecord_children_components'(Num-1, Remain, Telltype, [Term|Acc]).
+
+
+'dec_PersonnelRecord'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,1),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = 'dec_Name'(Bytes1,telltype),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+
+%% attribute number 3 with type INTEGER
+{Term3,Bytes4} = ?RT_PER:decode_integer(Bytes3,[]),
+
+%% attribute number 4 with type VisibleString
+{Term4,Bytes5} = ?RT_PER:decode_VisibleString(Bytes4,[]),
+
+%% attribute number 5 with type Name
+{Term5,Bytes6} = 'dec_Name'(Bytes5,telltype),
+
+%% attribute number 6 with type SEQUENCE OF
+{Term6,Bytes7} = case element(1,Opt) of
+1 ->'dec_PersonnelRecord_children'(Bytes6, Telltype);
+0 ->{[],Bytes6}
+
+end,
+{{'PersonnelRecord',Term1,Term2,Term3,Term4,Term5,Term6},Bytes7}.
+
+'enc_ChildInformation'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{name,1},{dateOfBirth,2}],Val),
+[
+?RT_PER:setoptionals(Opt),
+case ?RT_PER:cindex(2,Val1,name) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 1 with type Externaltypereference15P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name))
+end,
+case ?RT_PER:cindex(3,Val1,dateOfBirth) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,dateOfBirth))
+end].
+
+
+'dec_ChildInformation'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,2),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = case element(1,Opt) of
+1 ->'dec_Name'(Bytes1,telltype);
+0 ->{asn1_NOVALUE,Bytes1}
+
+end,
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = case element(2,Opt) of
+1 ->?RT_PER:decode_VisibleString(Bytes2,[]);
+0 ->{asn1_NOVALUE,Bytes2}
+
+end,
+{{'ChildInformation',Term1,Term2},Bytes3}.
+
+'enc_Name'(Val) ->
+Val1 = ?RT_PER:list_to_record('Name', Val),
+[
+
+%% attribute number 1 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(2,Val1,givenName)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,initial)),
+
+%% attribute number 3 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(4,Val1,familyName))].
+
+
+'dec_Name'(Bytes,Telltype) ->
+
+%% attribute number 1 with type VisibleString
+{Term1,Bytes1} = ?RT_PER:decode_VisibleString(Bytes,[]),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes2} = ?RT_PER:decode_VisibleString(Bytes1,[]),
+
+%% attribute number 3 with type VisibleString
+{Term3,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+{{'Name',Term1,Term2,Term3},Bytes3}.
+
+
+'enc_EmployeeNumber'({'EmployeeNumber',Val}) ->
+'enc_EmployeeNumber'(Val);
+
+'enc_EmployeeNumber'(Val) ->
+?RT_PER:encode_integer([],Val).
+
+
+'dec_EmployeeNumber'(Bytes,Telltype) ->
+?RT_PER:decode_integer(Bytes,[]).
+
+
+'enc_Date'({'Date',Val}) ->
+'enc_Date'(Val);
+
+'enc_Date'(Val) ->
+?RT_PER:encode_VisibleString([],Val).
+
+
+'dec_Date'(Bytes,Telltype) ->
+?RT_PER:decode_VisibleString(Bytes,[]).
+
+'v'() ->
+{'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}.
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.hrl b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.hrl
new file mode 100644
index 0000000000..92aa1a44e2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.hrl
@@ -0,0 +1,17 @@
+%% Generated by the Erlang ASN.1 compiler version:1.3.1.4
+%% Purpose: Erlang record definitions for each named and unnamed
+%% SEQUENCE and SET, and macro definitions for each value
+%% definition,in module P-Record
+
+
+
+-record('PersonnelRecord',{
+name, title, number, dateOfHire, nameOfSpouse, children = asn1_DEFAULT}).
+
+-record('ChildInformation',{
+name = asn1_NOVALUE, dateOfBirth = asn1_NOVALUE}).
+
+-record('Name',{
+givenName, initial, familyName}).
+
+-define('v', {'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}).
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.py b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.py
new file mode 100644
index 0000000000..f1db09ac6c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.py
@@ -0,0 +1,59 @@
+P-Record DEFINITIONS ::=
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] SET
+{ name Name,
+ title VisibleString,
+ number EmployeeNumber,
+ dateOfHire Date,
+ nameOfSpouse [1] Name,
+ children SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET
+{ name Name,
+ dateOfBirth Date
+}
+
+Name ::= [APPLICATION 1] SEQUENCE
+{ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] INTEGER
+Date ::= [APPLICATION 3] VisibleString -- YYYY MMDD
+
+v PersonnelRecord ::=
+{
+ name {
+ givenName "John",
+ initial "P",
+ familyName "Smith"
+ },
+ title "Director",
+ number 51,
+ dateOfHire "19710917",
+ nameOfSpouse {
+ givenName "Mary",
+ initial "T",
+ familyName "Smith"
+ },
+ children {
+ {name {
+ givenName "Ralph",
+ initial "T",
+ familyName "Smith"
+ } ,
+ dateOfBirth "19571111"},
+ {name {
+ givenName "Susan",
+ initial "B",
+ familyName "Jones"
+ } ,
+ dateOfBirth "19590717" }
+ }
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA1.asn b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA1.asn
new file mode 100644
index 0000000000..33ba690e1e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA1.asn
@@ -0,0 +1,29 @@
+P-RecordA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString -- YYYYMMDD
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA2.asn b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA2.asn
new file mode 100644
index 0000000000..50ae419399
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA2.asn
@@ -0,0 +1,33 @@
+P-RecordA2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA3.asn b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA3.asn
new file mode 100644
index 0000000000..74023140e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-RecordA3.asn
@@ -0,0 +1,40 @@
+P-RecordA3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE (SIZE(2, ...)) OF ChildInformation OPTIONAL,
+ ...
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date,
+ ...,
+ sex [1] IMPLICIT ENUMERATED {
+ male(1),
+ female(2),
+ unknown(3)
+ } OPTIONAL
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString,
+ ...
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER (0..9999, ...)
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8, ..., 9..20)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64, ...))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P.py b/lib/asn1/test/asn1_bin_SUITE_data/P.py
new file mode 100644
index 0000000000..1431ae07b9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P.py
@@ -0,0 +1,19 @@
+P DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS P1, P2;
+
+P1 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+
+P2 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL,
+ nr BOOLEAN
+ }
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PDUs.py b/lib/asn1/test/asn1_bin_SUITE_data/PDUs.py
new file mode 100644
index 0000000000..907348193f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PDUs.py
@@ -0,0 +1,325 @@
+PDUs DEFINITIONS ::=
+
+-- Search for 'org' to find changes for erlang.
+
+-- SnmpMgmtCom and PDUs only for dbg.
+
+
+BEGIN
+EXPORTS SnmpPrivMsg, SnmpAuthMsg, SnmpMgmtCom, PDUs;
+
+-- From RFC 1442
+
+ -- names of objects
+
+ ObjectName ::=
+ OBJECT IDENTIFIER
+
+
+ -- syntax of objects
+
+ ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ applicationWide
+ ApplicationSyntax
+ }
+
+
+ -- built-in ASN.1 types
+
+ SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integerValue
+ INTEGER,
+
+ stringValue
+ OCTET STRING,
+
+ objectIDValue
+ OBJECT IDENTIFIER,
+
+ -- only the enumerated form is allowed
+ bitValue
+ BIT STRING
+ }
+
+
+ -- indistinguishable from INTEGER, but never needs more than
+ -- 32Bits for a two's complement representation
+ Integer32 ::=
+ [UNIVERSAL 2]
+ IMPLICIT INTEGER (-2147483648..2147483647)
+
+
+ -- applicationWide types
+
+ ApplicationSyntax ::=
+ CHOICE {
+ ipAddressValue
+ IpAddress,
+
+ counterValue
+ Counter32,
+
+ gaugeValue
+ Gauge32,
+
+ timeticksValue
+ TimeTicks,
+
+ arbitraryValue
+ Opaque,
+
+ nsapAddressValue
+ NsapAddress,
+
+ bigCounterValue
+ Counter64,
+
+ unsignedIntegerValue
+ UInteger32
+ }
+
+ -- in networkByte order
+ -- (this is a tagged type for historical reasons)
+ IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+
+
+
+
+ -- this wraps
+ Counter32 ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- this doesn't wrap
+ Gauge32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- hundredths of seconds since an epoch
+ TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- for backwardCompatibility only
+ Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+ -- for OSI NSAP addresses
+ -- (this is a tagged type for historical reasons)
+ NsapAddress ::=
+ [APPLICATION 5]
+-- org: IMPLICIT OCTET STRING (SIZE (1 | 4..21))
+ IMPLICIT OCTET STRING
+
+ -- for counters that wrap in less than one hour with only 32 bits
+ Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+ -- an unsigned 32Bit quantity
+ UInteger32 ::=
+ [APPLICATION 7]
+ IMPLICIT INTEGER (0..4294967295)
+
+
+-- From RFC 1445
+
+ SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
+ privDst
+ OBJECT IDENTIFIER,
+ privData
+ [1] IMPLICIT OCTET STRING
+ }
+
+ SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ ANY, -- defined by authentication protocol
+ authData
+ SnmpMgmtCom
+ }
+
+ SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
+ dstParty
+ OBJECT IDENTIFIER,
+ srcParty
+ OBJECT IDENTIFIER,
+ context
+ OBJECT IDENTIFIER,
+ pdu
+ PDUs
+ }
+
+
+-- From RFC 1448
+
+ -- org: no tag at all. we need a tag to test 'PDUs'.
+ PDUs ::= [PRIVATE 1]
+ -- remove tag when 'PDUs' only is used in another type.
+ CHOICE {
+ getRequest
+ GetRequestPdu,
+
+ getNextRequest
+ GetNextRequestPdu,
+
+ getBulkRequest
+ GetBulkRequestPdu,
+
+ response
+ ResponsePdu,
+
+ setRequest
+ SetRequestPdu,
+
+ informRequest
+ InformRequestPdu,
+
+ snmpV2Trap
+ SNMPv2TrapPdu
+ }
+
+ -- PDUs
+
+ GetRequestPdu ::=
+ [0]
+ IMPLICIT PDU
+
+ GetNextRequestPdu ::=
+ [1]
+ IMPLICIT PDU
+
+ ResponsePdu ::=
+ [2]
+ IMPLICIT PDU
+
+ SetRequestPdu ::=
+ [3]
+ IMPLICIT PDU
+
+ -- [4] is obsolete
+
+ GetBulkRequestPdu ::=
+ [5]
+ IMPLICIT BulkPDU
+
+ InformRequestPdu ::=
+ [6]
+ IMPLICIT PDU
+
+ SNMPv2TrapPdu ::=
+ [7]
+ IMPLICIT PDU
+
+
+ maxBindings
+ INTEGER ::= 2147483647
+
+ PDU ::=
+ SEQUENCE {
+ requestId
+ Integer32,
+
+ errorStatus -- sometimes ignored
+ INTEGER {
+ noError(0),
+ tooBig(1),
+ noSuchName(2), -- for proxy compatibility
+ badValue(3), -- for proxy compatibility
+ readOnly(4), -- for proxy compatibility
+ genErr(5),
+ noAccess(6),
+ wrongType(7),
+ wrongLength(8),
+ wrongEncoding(9),
+ wrongValue(10),
+ noCreation(11),
+ inconsistentValue(12),
+ resourceUnavailable(13),
+ commitFailed(14),
+ undoFailed(15),
+ authorizationError(16),
+ notWritable(17),
+ inconsistentName(18)
+ },
+
+ errorIndex -- sometimes ignored
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are sometimes ignored
+ VarBindList
+ }
+
+
+ BulkPDU ::= -- MUST be identical in
+ SEQUENCE { -- structure to PDU
+ requestId
+ Integer32,
+
+ nonRepeaters
+ INTEGER (0..maxBindings),
+
+ maxRepetitions
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are ignored
+ VarBindList
+ }
+
+
+ VarBind ::=
+ SEQUENCE {
+ name
+ ObjectName,
+
+ data CHOICE {
+ value
+ ObjectSyntax,
+
+ unSpecified -- in retrieval requests
+ NULL,
+
+ -- exceptions in responses
+ noSuchObject[0]
+ IMPLICIT NULL,
+
+ noSuchInstance[1]
+ IMPLICIT NULL,
+
+ endOfMibView[2]
+ IMPLICIT NULL
+ }
+ }
+
+
+ -- variableBinding list
+
+ VarBindList ::=
+ SEQUENCE OF VarBind
+
+-- org:
+-- VarBindList ::=
+-- SEQUENCE (SIZE (0..maxBindings)) OF
+-- VarBind
+
+END
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Algorithms88.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Algorithms88.asn1
new file mode 100644
index 0000000000..e78de69b0e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Algorithms88.asn1
@@ -0,0 +1,274 @@
+ PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) }
+
+ DEFINITIONS EXPLICIT TAGS ::= BEGIN
+
+ -- EXPORTS All;
+
+ -- IMPORTS NONE;
+
+ --
+ -- One-way Hash Functions
+ --
+
+ md2 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 2 }
+
+ md5 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 5 }
+
+ id-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) oiw(14) secsig(3)
+ algorithms(2) 26 }
+
+ --
+ -- DSA Keys and Signatures
+ --
+
+ -- OID for DSA public key
+
+ id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+ -- encoding for DSA public key
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- OID for DSA signature generated with SHA-1 hash
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+ -- encoding for DSA signature generated with SHA-1 hash
+
+ Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- arc for RSA public key and RSA signature OIDs
+
+ pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+ -- OID for RSA public keys
+
+ rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+ -- OID for RSA signature generated with MD2 hash
+
+ md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+ -- OID for RSA signature generated with MD5 hash
+
+ md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+ -- OID for RSA signature generated with SHA-1 hash
+
+ sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+ -- encoding for RSA public key
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046)
+ number-type(2) 1 }
+
+ -- encoding for DSA public key
+
+ DHPublicKey ::= INTEGER -- public key, y = g^x mod p
+
+ DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+ --
+ -- KEA Keys
+ --
+
+ id-keyExchangeAlgorithm OBJECT IDENTIFIER ::=
+ { 2 16 840 1 101 2 1 1 22 }
+
+ KEA-Parms-Id ::= OCTET STRING
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ ansi-X9-62 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) 10045 }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY fieldType }
+
+ -- Arc for ECDSA signature OIDS
+
+ id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
+
+ -- OID for ECDSA signatures with SHA-1
+
+ ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
+
+ -- OID for an elliptic curve signature
+ -- format for the value of an ECDSA signature value
+
+ ECDSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ -- recognized field type OIDs are defined in the following arc
+
+ id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1) }
+
+ -- where fieldType is prime-field, the parameters are of type Prime-p
+
+ prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
+
+ Prime-p ::= INTEGER -- Finite field F(p), where p is an odd prime
+
+ -- where fieldType is characteristic-two-field, the parameters are
+ -- of type Characteristic-two
+
+ characteristic-two-field OBJECT IDENTIFIER ::= { id-fieldType 2 }
+
+ Characteristic-two ::= SEQUENCE {
+ m INTEGER, -- Field size 2^m
+ basis OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY basis }
+
+ -- recognized basis type OIDs are defined in the following arc
+
+ id-characteristic-two-basis OBJECT IDENTIFIER ::= {
+ characteristic-two-field basisType(3) }
+
+ -- gnbasis is identified by OID gnBasis and indicates
+ -- parameters are NULL
+
+ gnBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 1 }
+
+ -- parameters for this basis are NULL
+
+ -- trinomial basis is identified by OID tpBasis and indicates
+ -- parameters of type Pentanomial
+
+ tpBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 2 }
+
+ -- Trinomial basis representation of F2^m
+ -- Integer k for reduction polynomial xm + xk + 1
+
+ Trinomial ::= INTEGER
+
+ -- for pentanomial basis is identified by OID ppBasis and indicates
+ -- parameters of type Pentanomial
+
+ ppBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 3 }
+
+ -- Pentanomial basis representation of F2^m
+ -- reduction polynomial integers k1, k2, k3
+ -- f(x) = x**m + x**k3 + x**k2 + x**k1 + 1
+
+ Pentanomial ::= SEQUENCE {
+ k1 INTEGER,
+ k2 INTEGER,
+ k3 INTEGER }
+
+ -- The object identifiers gnBasis, tpBasis and ppBasis name
+ -- three kinds of basis for characteristic-two finite fields
+
+ FieldElement ::= OCTET STRING -- Finite field element
+
+ ECPoint ::= OCTET STRING -- Elliptic curve point
+
+ -- Elliptic Curve parameters may be specified explicitly,
+ -- specified implicitly through a "named curve", or
+ -- inherited from the CA
+
+ EcpkParameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve OBJECT IDENTIFIER,
+ implicitlyCA NULL }
+
+ ECParameters ::= SEQUENCE { -- Elliptic curve parameters
+ version ECPVer,
+ fieldID FieldID,
+ curve Curve,
+ base ECPoint, -- Base point G
+ order INTEGER, -- Order n of the base point
+ cofactor INTEGER OPTIONAL } -- The integer h = #E(Fq)/n
+
+ ECPVer ::= INTEGER {ecpVer1(1)}
+
+ Curve ::= SEQUENCE {
+ a FieldElement, -- Elliptic curve coefficient a
+ b FieldElement, -- Elliptic curve coefficient b
+ seed BIT STRING OPTIONAL }
+
+ id-publicKeyType OBJECT IDENTIFIER ::= { ansi-X9-62 keyType(2) }
+
+ id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
+
+ -- Named Elliptic Curves in ANSI X9.62.
+
+ ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
+
+ c-TwoCurve OBJECT IDENTIFIER ::= {
+ ellipticCurve characteristicTwo(0) }
+
+ c2pnb163v1 OBJECT IDENTIFIER ::= { c-TwoCurve 1 }
+ c2pnb163v2 OBJECT IDENTIFIER ::= { c-TwoCurve 2 }
+ c2pnb163v3 OBJECT IDENTIFIER ::= { c-TwoCurve 3 }
+ c2pnb176w1 OBJECT IDENTIFIER ::= { c-TwoCurve 4 }
+ c2tnb191v1 OBJECT IDENTIFIER ::= { c-TwoCurve 5 }
+ c2tnb191v2 OBJECT IDENTIFIER ::= { c-TwoCurve 6 }
+ c2tnb191v3 OBJECT IDENTIFIER ::= { c-TwoCurve 7 }
+ c2onb191v4 OBJECT IDENTIFIER ::= { c-TwoCurve 8 }
+ c2onb191v5 OBJECT IDENTIFIER ::= { c-TwoCurve 9 }
+ c2pnb208w1 OBJECT IDENTIFIER ::= { c-TwoCurve 10 }
+ c2tnb239v1 OBJECT IDENTIFIER ::= { c-TwoCurve 11 }
+ c2tnb239v2 OBJECT IDENTIFIER ::= { c-TwoCurve 12 }
+ c2tnb239v3 OBJECT IDENTIFIER ::= { c-TwoCurve 13 }
+ c2onb239v4 OBJECT IDENTIFIER ::= { c-TwoCurve 14 }
+ c2onb239v5 OBJECT IDENTIFIER ::= { c-TwoCurve 15 }
+ c2pnb272w1 OBJECT IDENTIFIER ::= { c-TwoCurve 16 }
+ c2pnb304w1 OBJECT IDENTIFIER ::= { c-TwoCurve 17 }
+ c2tnb359v1 OBJECT IDENTIFIER ::= { c-TwoCurve 18 }
+ c2pnb368w1 OBJECT IDENTIFIER ::= { c-TwoCurve 19 }
+ c2tnb431r1 OBJECT IDENTIFIER ::= { c-TwoCurve 20 }
+
+ primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
+
+ prime192v1 OBJECT IDENTIFIER ::= { primeCurve 1 }
+ prime192v2 OBJECT IDENTIFIER ::= { primeCurve 2 }
+ prime192v3 OBJECT IDENTIFIER ::= { primeCurve 3 }
+ prime239v1 OBJECT IDENTIFIER ::= { primeCurve 4 }
+ prime239v2 OBJECT IDENTIFIER ::= { primeCurve 5 }
+ prime239v3 OBJECT IDENTIFIER ::= { primeCurve 6 }
+ prime256v1 OBJECT IDENTIFIER ::= { primeCurve 7 }
+
+ END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit88.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit88.asn1
new file mode 100644
index 0000000000..7874679a38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit88.asn1
@@ -0,0 +1,619 @@
+PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+-- IMPORTS NONE --
+
+-- UNIVERSAL Types defined in 1993 and 1998 ASN.1
+-- and required by this specification
+
+-- UniversalString ::= [UNIVERSAL 28] IMPLICIT OCTET STRING
+ -- UniversalString is defined in ASN.1:1993
+
+-- BMPString ::= [UNIVERSAL 30] IMPLICIT OCTET STRING
+ -- BMPString is the subtype of UniversalString and models
+ -- the Basic Multilingual Plane of ISO/IEC/ITU 10646-1
+
+--UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+ -- The content of this type conforms to RFC 2279.
+
+-- PKIX specific OIDs
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for private certificate extensions
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ -- arc for policy qualifier types
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+ -- arc for extended key purpose OIDS
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ -- arc for access descriptors
+
+-- policyQualifierIds for Internet policy qualifiers
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- access descriptor definitions
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 }
+id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 }
+
+-- attribute data types
+
+Attribute ::= SEQUENCE {
+ type AttributeType,
+ values SET OF AttributeValue }
+ -- at least one value is required
+
+AttributeType ::= OBJECT IDENTIFIER
+
+AttributeValue ::= ANY
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type AttributeType,
+ value AttributeValue }
+
+-- suggested naming attributes: Definition of the following
+-- information object set may be augmented to meet local
+-- requirements. Note that deleting members of the set may
+-- prevent interoperability with conforming implementations.
+-- presented in pairs: the AttributeType followed by the
+-- type definition for the corresponding AttributeValue
+--Arc for standard naming attributes
+id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
+
+-- Naming attributes of type X520name
+
+id-at-name AttributeType ::= { id-at 41 }
+id-at-surname AttributeType ::= { id-at 4 }
+id-at-givenName AttributeType ::= { id-at 42 }
+id-at-initials AttributeType ::= { id-at 43 }
+id-at-generationQualifier AttributeType ::= { id-at 44 }
+
+X520name ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-name)),
+ printableString PrintableString (SIZE (1..ub-name)),
+ universalString UniversalString (SIZE (1..ub-name)),
+ utf8String UTF8String (SIZE (1..ub-name)),
+ bmpString BMPString (SIZE (1..ub-name)) }
+
+-- Naming attributes of type X520CommonName
+
+id-at-commonName AttributeType ::= { id-at 3 }
+
+X520CommonName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-common-name)),
+ printableString PrintableString (SIZE (1..ub-common-name)),
+ universalString UniversalString (SIZE (1..ub-common-name)),
+ utf8String UTF8String (SIZE (1..ub-common-name)),
+ bmpString BMPString (SIZE (1..ub-common-name)) }
+
+-- Naming attributes of type X520LocalityName
+
+id-at-localityName AttributeType ::= { id-at 7 }
+
+X520LocalityName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-locality-name)),
+ printableString PrintableString (SIZE (1..ub-locality-name)),
+ universalString UniversalString (SIZE (1..ub-locality-name)),
+ utf8String UTF8String (SIZE (1..ub-locality-name)),
+ bmpString BMPString (SIZE (1..ub-locality-name)) }
+
+-- Naming attributes of type X520StateOrProvinceName
+
+id-at-stateOrProvinceName AttributeType ::= { id-at 8 }
+
+X520StateOrProvinceName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-state-name)),
+ printableString PrintableString (SIZE (1..ub-state-name)),
+ universalString UniversalString (SIZE (1..ub-state-name)),
+ utf8String UTF8String (SIZE (1..ub-state-name)),
+ bmpString BMPString (SIZE(1..ub-state-name)) }
+
+-- Naming attributes of type X520OrganizationName
+
+id-at-organizationName AttributeType ::= { id-at 10 }
+
+X520OrganizationName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organization-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organization-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organization-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organization-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organization-name)) }
+
+-- Naming attributes of type X520OrganizationalUnitName
+
+id-at-organizationalUnitName AttributeType ::= { id-at 11 }
+
+X520OrganizationalUnitName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organizational-unit-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organizational-unit-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organizational-unit-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organizational-unit-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organizational-unit-name)) }
+
+-- Naming attributes of type X520Title
+
+id-at-title AttributeType ::= { id-at 12 }
+
+X520Title ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-title)),
+ printableString PrintableString (SIZE (1..ub-title)),
+ universalString UniversalString (SIZE (1..ub-title)),
+ utf8String UTF8String (SIZE (1..ub-title)),
+ bmpString BMPString (SIZE (1..ub-title)) }
+
+-- Naming attributes of type X520dnQualifier
+
+id-at-dnQualifier AttributeType ::= { id-at 46 }
+
+X520dnQualifier ::= PrintableString
+
+-- Naming attributes of type X520countryName (digraph from IS 3166)
+
+id-at-countryName AttributeType ::= { id-at 6 }
+
+X520countryName ::= PrintableString (SIZE (2))
+
+-- Naming attributes of type X520SerialNumber
+
+id-at-serialNumber AttributeType ::= { id-at 5 }
+
+X520SerialNumber ::= PrintableString (SIZE (1..ub-serial-number))
+
+-- Naming attributes of type X520Pseudonym
+
+id-at-pseudonym AttributeType ::= { id-at 65 }
+
+X520Pseudonym ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-pseudonym)),
+ printableString PrintableString (SIZE (1..ub-pseudonym)),
+ universalString UniversalString (SIZE (1..ub-pseudonym)),
+ utf8String UTF8String (SIZE (1..ub-pseudonym)),
+ bmpString BMPString (SIZE (1..ub-pseudonym)) }
+
+-- Naming attributes of type DomainComponent (from RFC 2247)
+
+id-domainComponent AttributeType ::=
+ { 0 9 2342 19200300 100 1 25 }
+
+DomainComponent ::= IA5String
+
+-- Legacy attributes
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+id-emailAddress AttributeType ::= { pkcs-9 1 }
+
+EmailAddress ::= IA5String (SIZE (1..ub-emailaddress-length))
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+-- Directory string type --
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+-- certificate and CRL specific structures begin here
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+UniqueIdentifier ::= BIT STRING
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING }
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+-- CRL structures
+
+CertificateList ::= SEQUENCE {
+ tbsCertList TBSCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertList ::= SEQUENCE {
+ version Version OPTIONAL,
+ -- if present, MUST be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, MUST be v2
+ } OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL }
+ -- if present, MUST be v2
+
+-- Version, Time, CertificateSerialNumber, and Extensions were
+-- defined earlier for use in the certificate structure
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+ -- contains a value of the type
+ -- registered for use with the
+ -- algorithm object identifier value
+
+-- X.400 address syntax starts here
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] IMPLICIT NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] IMPLICIT OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
+ OPTIONAL,
+ personal-name [5] IMPLICIT PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
+ OPTIONAL }
+ -- see also teletex-organizational-unit-names
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address -- see also extended-network-address
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE
+(1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+ -- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] IMPLICIT PrintableString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT PrintableString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+ -- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+ -- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
+ ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] IMPLICIT INTEGER
+ (0..ub-extension-attributes),
+ extension-attribute-value [1]
+ ANY DEFINED BY extension-attribute-type }
+
+-- Extension types and attribute values
+
+common-name INTEGER ::= 1
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name INTEGER ::= 2
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name INTEGER ::= 3
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name INTEGER ::= 4
+
+TeletexPersonalName ::= SET {
+ surname [0] IMPLICIT TeletexString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT TeletexString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT TeletexString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+
+teletex-organizational-unit-names INTEGER ::= 5
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name INTEGER ::= 7
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name INTEGER ::= 8
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE
+(ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code INTEGER ::= 9
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name INTEGER ::= 10
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number INTEGER ::= 11
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components INTEGER ::= 12
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name INTEGER ::= 13
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name INTEGER ::= 14
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components INTEGER ::= 15
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address INTEGER ::= 16
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
+ OF PrintableString (SIZE (1..ub-pds-parameter-length))
+ OPTIONAL,
+ teletex-string TeletexString
+ (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address INTEGER ::= 17
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address INTEGER ::= 18
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address INTEGER ::= 19
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name INTEGER ::= 20
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes INTEGER ::= 21
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address INTEGER ::= 22
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL },
+ psap-address [0] IMPLICIT PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
+
+terminal-type INTEGER ::= 23
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes INTEGER ::= 6
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds MUST be regarded as mandatory
+-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
+-- Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-serial-number INTEGER ::= 64
+ub-match INTEGER ::= 128
+ub-emailaddress-length INTEGER ::= 128
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-pseudonym INTEGER ::= 128
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on string types, such as TeletexString, are
+-- measured in characters. Excepting PrintableString or IA5String, a
+-- significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified
+-- upper bound, whichever is the larger, should be allowed for
+-- TeletexString. For UTF8String or UniversalString at least four
+-- times the upper bound should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit93.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit93.asn1
new file mode 100644
index 0000000000..714a682160
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Explicit93.asn1
@@ -0,0 +1,779 @@
+PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ authorityKeyIdentifier, subjectKeyIdentifier, keyUsage,
+ extendedKeyUsage, privateKeyUsagePeriod, certificatePolicies,
+ policyMappings, subjectAltName, issuerAltName,
+ basicConstraints, nameConstraints, policyConstraints,
+ cRLDistributionPoints, subjectDirectoryAttributes,
+ cRLNumber, reasonCode, instructionCode, invalidityDate,
+ issuingDistributionPoint, certificateIssuer,
+ deltaCRLIndicator, authorityInfoAccess, id-ce
+ FROM PKIX1Implicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-implicit-93(4)} ;
+
+--
+ -- Locally defined OIDs --
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+-- arc for private certificate extensions
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for policy qualifier types
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+-- arc for extended key purpose OIDS
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+-- arc for access descriptors
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+
+-- policyQualifierIds for Internet policy qualifiers
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- based on excerpts from AuthenticationFramework
+-- {joint-iso-ccitt ds(5) modules(1) authenticationFramework(7) 2}
+
+ -- Public Key Certificate --
+
+Certificate ::= SIGNED { SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ extensions [3] Extensions OPTIONAL
+ --if present, version shall be v3--} }
+
+UniqueIdentifier ::= BIT STRING
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+SubjectPublicKeyInfo ::= SEQUENCE{
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING}
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal certificate extensions.
+
+ExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier |
+ keyUsage |
+ extendedKeyUsage |
+ privateKeyUsagePeriod |
+ certificatePolicies |
+ policyMappings |
+ subjectAltName |
+ issuerAltName |
+ basicConstraints |
+ nameConstraints |
+ policyConstraints |
+ cRLDistributionPoints |
+ subjectDirectoryAttributes |
+ authorityInfoAccess }
+
+EXTENSION ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType }
+WITH SYNTAX {
+ SYNTAX &ExtnType
+ IDENTIFIED BY &id }
+
+ -- Certificate Revocation List --
+
+CertificateList ::= SIGNED { SEQUENCE {
+ version Version OPTIONAL, -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions EntryExtensions OPTIONAL } OPTIONAL,
+ crlExtensions [0] CRLExtensions OPTIONAL }}
+
+CRLExtensions ::= SEQUENCE SIZE (1..MAX) OF CRLExtension
+
+CRLExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({CRLExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL extensions.
+
+CRLExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ issuerAltName |
+ cRLNumber |
+ deltaCRLIndicator |
+ issuingDistributionPoint }
+
+-- EXTENSION defined above for certificates
+
+EntryExtensions ::= SEQUENCE SIZE (1..MAX) OF EntryExtension
+
+EntryExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({EntryExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL entry extensions.
+
+EntryExtensionSet EXTENSION ::= { reasonCode |
+ instructionCode |
+ invalidityDate |
+ certificateIssuer }
+
+ -- information object classes used in the defintion --
+ -- of certificates and CRLs --
+
+-- Parameterized Type SIGNED --
+
+ SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+-- Definition of AlgorithmIdentifier
+-- ISO definition was:
+--
+-- AlgorithmIdentifier ::= SEQUENCE {
+-- algorithm ALGORITHM.&id({SupportedAlgorithms}),
+-- parameters ALGORITHM.&Type({SupportedAlgorithms}
+-- { @algorithm}) OPTIONAL }
+-- Definition of ALGORITHM
+-- ALGORITHM ::= TYPE-IDENTIFIER
+
+-- The following PKIX definition replaces the X.509 definition
+--
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM-ID.&id({SupportedAlgorithms}),
+ parameters ALGORITHM-ID.&Type({SupportedAlgorithms}
+ { @algorithm}) OPTIONAL }
+
+-- Definition of ALGORITHM-ID
+
+ ALGORITHM-ID ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL
+ }
+ WITH SYNTAX { OID &id [PARMS &Type] }
+
+-- The definition of SupportedAlgorithms may be modified as this
+-- document does not specify a mandatory algorithm set. In addition,
+-- the set is specified as extensible, since additional algorithms
+-- may be supported
+
+SupportedAlgorithms ALGORITHM-ID ::= { ..., -- extensible
+ rsaPublicKey |
+ rsaSHA-1 |
+ rsaMD5 |
+ rsaMD2 |
+ dssPublicKey |
+ dsaSHA-1 |
+ dhPublicKey }
+
+-- OIDs and parameter structures for ALGORITHM-IDs used
+-- in this specification
+
+rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }
+
+rsaSHA-1 ALGORITHM-ID ::= { OID sha1WithRSAEncryption PARMS NULL }
+
+rsaMD5 ALGORITHM-ID ::= { OID md5WithRSAEncryption PARMS NULL }
+
+rsaMD2 ALGORITHM-ID ::= { OID md2WithRSAEncryption PARMS NULL }
+
+dssPublicKey ALGORITHM-ID ::= { OID id-dsa PARMS Dss-Parms }
+
+dsaSHA-1 ALGORITHM-ID ::= { OID id-dsa-with-sha1 }
+
+dhPublicKey ALGORITHM-ID ::= {OID dhpublicnumber PARMS DomainParameters}
+
+-- algorithm identifiers and parameter structures
+
+pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
+
+DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- The ASN.1 in this section supports the Name type
+ -- and the directoryAttribute extension
+
+-- attribute data types --
+
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type
+ ({SupportedAttributes}{@type})}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ value ATTRIBUTE.&Type ({SupportedAttributes}{@type})}
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+ID ::= OBJECT IDENTIFIER
+
+-- ATTRIBUTE information object class specification
+-- Note: This has been greatly simplified for PKIX !!
+
+ATTRIBUTE ::= CLASS {
+ &Type,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ WITH SYNTAX &Type ID &id }
+
+-- suggested naming attributes
+-- Definition of the following information object set may be
+-- augmented to meet local requirements. Note that deleting
+-- members of the set may prevent interoperability with
+-- conforming implementations.
+
+SupportedAttributes ATTRIBUTE ::= {
+ name | commonName | surname | givenName | initials |
+ generationQualifier | dnQualifier | countryName |
+ localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | pkcs9email }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString { ub-name }
+ ID id-at-name }
+
+commonName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName }
+
+surname ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName }
+
+initials ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials }
+
+generationQualifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier}
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ ID id-at-dnQualifier }
+
+
+countryName ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString (SIZE (2))
+ -- IS 3166 codes only
+ ID id-at-countryName }
+
+localityName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName }
+
+stateOrProvinceName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName }
+
+organizationName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName }
+
+organizationalUnitName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName }
+
+title ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title }
+
+ -- Legacy attributes
+
+pkcs9email ATTRIBUTE ::= {
+ WITH SYNTAX PHGString
+ ID emailAddress }
+
+PHGString ::= IA5String (SIZE(1..ub-emailaddress-length))
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+emailAddress OBJECT IDENTIFIER ::= { pkcs-9 1 }
+
+ -- object identifiers for Name type and directory attribute support
+
+-- Object identifier assignments --
+
+id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
+
+-- Attributes --
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+-- Directory string type, used extensively in Name types --
+
+DirectoryString { INTEGER:maxSize } ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE(1..maxSize)),
+ utf8String UTF8String (SIZE(1..maxSize))
+ }
+
+ -- End of ASN.1 for Name type and directory attribute support --
+
+ -- The ASN.1 in this section supports X.400 style names --
+ -- for implementations that use the x400Address component --
+ -- of GeneralName. --
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- The OR-address is semantically absent from the OR-name if the
+-- built-in-standard-attribute sequence is empty and the
+-- built-in-domain-defined-attributes and extension-attributes are
+-- both omitted.
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names -- }
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address
+-- see also extended-network-address
+
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+-- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString (SIZE (1..ub-surname-length)),
+ given-name [1] PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] PrintableString
+ (SIZE (1..ub-generation-qualifier-length)) OPTIONAL}
+-- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+-- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes)
+ OF ExtensionAttribute
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
+ ({ExtensionAttributeTable}),
+ extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable} {@extension-attribute-type}) }
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER (0..ub-extension-attributes) UNIQUE,
+ &Type }
+WITH SYNTAX {&Type IDENTIFIED BY &id}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= {
+ common-name |
+ teletex-common-name |
+ teletex-organization-name |
+ teletex-personal-name |
+ teletex-organizational-unit-names |
+ teletex-domain-defined-attributes |
+ pds-name |
+ physical-delivery-country-name |
+ postal-code |
+ physical-delivery-office-name |
+ physical-delivery-office-number |
+ extension-OR-address-components |
+ physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ unformatted-postal-address |
+ street-address |
+ post-office-box-address |
+ poste-restante-address |
+ unique-postal-name |
+ local-postal-attributes |
+ extended-network-address |
+ terminal-type }
+
+-- Extension Standard Attributes
+
+common-name EXTENSION-ATTRIBUTE ::= {CommonName IDENTIFIED BY 1}
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::=
+ {TeletexCommonName IDENTIFIED BY 2}
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationName IDENTIFIED BY 3}
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::=
+ {TeletexPersonalName IDENTIFIED BY 4}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString (SIZE (1..ub-surname-length)),
+ given-name [1] TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] TeletexString (SIZE
+ (1..ub-generation-qualifier-length)) OPTIONAL }
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationalUnitNames IDENTIFIED BY 5}
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName IDENTIFIED BY 7}
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryCountryName IDENTIFIED BY 8}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode IDENTIFIED BY 9}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeName IDENTIFIED BY 10}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeNumber IDENTIFIED BY 11}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionORAddressComponents IDENTIFIED BY 12}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryPersonalName IDENTIFIED BY 13}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOrganizationName IDENTIFIED BY 14}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionPhysicalDeliveryAddressComponents IDENTIFIED BY 15}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::=
+ {UnformattedPostalAddress IDENTIFIED BY 16}
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString (SIZE
+ (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address EXTENSION-ATTRIBUTE ::=
+ {StreetAddress IDENTIFIED BY 17}
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::=
+ {PostOfficeBoxAddress IDENTIFIED BY 18}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::=
+ {PosteRestanteAddress IDENTIFIED BY 19}
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::=
+ {UniquePostalName IDENTIFIED BY 20}
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::=
+ {LocalPostalAttributes IDENTIFIED BY 21}
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address EXTENSION-ATTRIBUTE ::=
+ {ExtendedNetworkAddress IDENTIFIED BY 22}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] NumericString
+ (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL},
+ psap-address [0] PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING}
+
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::=
+ {TeletexDomainDefinedAttributes IDENTIFIED BY 6}
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds
+-- shall be regarded as mandatory
+-- from Annex B of ITU-T X.411
+-- Reference Definition of MTS Parameter Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-match INTEGER ::= 128
+
+ub-emailaddress-length INTEGER ::= 128
+
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on TeletexString are measured in characters.
+-- A significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified upper
+-- bound, whichever is the larger, should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit88.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit88.asn1
new file mode 100644
index 0000000000..47362e9061
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit88.asn1
@@ -0,0 +1,349 @@
+PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-kp, id-qt-unotice, id-qt-cps,
+ -- delete following line if "new" types are supported --
+ -- BMPString,
+ -- UTF8String, end "new" types
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, Attribute, DirectoryString
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit(18) };
+
+
+-- ISO arc for standard certificate and CRL extensions
+
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+-- authority key identifier OID and syntax
+
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ -- authorityCertIssuer and authorityCertSerialNumber MUST both
+ -- be present or both be absent
+
+KeyIdentifier ::= OCTET STRING
+
+-- subject key identifier OID and syntax
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+-- key usage extension OID and syntax
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+-- private key usage period extension OID and syntax
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ -- either notBefore or notAfter MUST be present
+
+-- certificate policies extension OID and syntax
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
+
+anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
+
+CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+-- Implementations that recognize additional policy qualifiers MUST
+-- augment the following definition for PolicyQualifierId
+
+PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+-- CPS pointer qualifier
+
+CPSuri ::= IA5String
+
+-- user notice qualifier
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+-- policy mapping extension OID and syntax
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
+
+PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- subject alternative name extension OID and syntax
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
+
+SubjectAltName ::= GeneralNames
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] AnotherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
+-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
+
+AnotherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+-- issuer alternative name extension OID and syntax
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
+
+IssuerAltName ::= GeneralNames
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
+
+SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- basic constraints extension OID and syntax
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
+
+BasicConstraints ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+-- name constraints extension OID and syntax
+
+id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
+
+NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+-- policy constraints extension OID and syntax
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
+
+PolicyConstraints ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- CRL distribution points extension OID and syntax
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ privilegeWithdrawn (7),
+ aACompromise (8) }
+
+-- extended key usage extension OID and syntax
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- permit unspecified key uses
+
+anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
+
+-- extended key purpose OIDs
+
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
+
+-- inhibit any policy OID and syntax
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
+
+InhibitAnyPolicy ::= SkipCerts
+
+-- freshest (delta)CRL extension OID and syntax
+
+id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
+
+FreshestCRL ::= CRLDistributionPoints
+
+-- authority info access
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+-- subject info access
+
+id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
+
+SubjectInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+-- CRL number extension OID and syntax
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+-- issuing distribution point extension OID and syntax
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
+
+IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
+
+BaseCRLNumber ::= CRLNumber
+
+-- CRL reasons extension OID and syntax
+
+id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10) }
+
+-- certificate issuer CRL entry extension OID and syntax
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
+
+CertificateIssuer ::= GeneralNames
+
+-- hold instruction extension OID and syntax
+
+id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
+
+HoldInstructionCode ::= OBJECT IDENTIFIER
+
+-- ANSI x9 holdinstructions
+
+-- ANSI x9 arc holdinstruction arc
+
+holdInstruction OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+
+id-holdinstruction-none OBJECT IDENTIFIER ::=
+ {holdInstruction 1} -- deprecated
+
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
+ {holdInstruction 2}
+
+id-holdinstruction-reject OBJECT IDENTIFIER ::=
+ {holdInstruction 3}
+
+-- invalidity date CRL entry extension OID and syntax
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
+
+InvalidityDate ::= GeneralizedTime
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit93.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit93.asn1
new file mode 100644
index 0000000000..c90b5eb199
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIX1Implicit93.asn1
@@ -0,0 +1,357 @@
+PKIX1Implicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit-93(4)}
+
+DEFINITIONS IMPLICIT TAGS::=
+
+BEGIN
+
+--EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-qt, id-kp, id-ad, id-qt-unotice,
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, CertificateList,
+ AlgorithmIdentifier, ub-name, DirectoryString,
+ Attribute, EXTENSION
+ FROM PKIX1Explicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit-93(3)};
+
+-- Key and policy information extensions --
+
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ ( WITH COMPONENTS {..., authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT} |
+ WITH COMPONENTS {..., authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT} )
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {
+ SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+extendedKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage }
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- PKIX-defined extended key purpose OIDs
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-ipsecEndSystem OBJECT IDENTIFIER ::= { id-kp 5 }
+id-kp-ipsecTunnel OBJECT IDENTIFIER ::= { id-kp 6 }
+id-kp-ipsecUser OBJECT IDENTIFIER ::= { id-kp 7 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY { id-ce-privateKeyUsagePeriod } }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ ( WITH COMPONENTS {..., notBefore PRESENT} |
+ WITH COMPONENTS {..., notAfter PRESENT} )
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies }
+
+CertificatePoliciesSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id
+ ({SupportedPolicyQualifiers}),
+ qualifier CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}
+ {@policyQualifierId})OPTIONAL }
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::= { noticeToUser |
+ pointerToCPS }
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL }
+WITH SYNTAX {
+ POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier] }
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings }
+
+PolicyMappingsSyntax ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- Certificate subject and certificate issuer attributes extensions --
+
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName }
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString {ub-name} OPTIONAL,
+ partyName [1] DirectoryString {ub-name} }
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName }
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes }
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions --
+
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints }
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraints }
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints }
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- Basic CRL extensions --
+
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8) }
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode }
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+-- holdinstructions described in this specification, from ANSI x9
+
+-- ANSI x9 arc holdinstruction arc
+holdInstruction OBJECT IDENTIFIER ::= {
+ joint-iso-ccitt(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+id-holdinstruction-none OBJECT IDENTIFIER ::= {holdInstruction 1}
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::= {holdInstruction 2}
+id-holdinstruction-reject OBJECT IDENTIFIER ::= {holdInstruction 3}
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate }
+
+-- CRL distribution points and delta-CRL extensions --
+
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints }
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ caCompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6) }
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint }
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE }
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer }
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator }
+
+BaseCRLNumber ::= CRLNumber
+
+-- Object identifier assignments for ISO certificate extensions --
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+id-ce-nameConstraints OBJECT IDENTIFIER ::= {id-ce 30}
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 35}
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+-- PKIX 1 extensions
+
+authorityInfoAccess EXTENSION ::= {
+ SYNTAX AuthorityInfoAccessSyntax
+ IDENTIFIED BY id-pe-authorityInfoAccess }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+
+-- PKIX policy qualifier definitions
+
+noticeToUser CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-cps QUALIFIER-TYPE CPSuri}
+
+pointerToCPS CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-unotice QUALIFIER-TYPE UserNotice}
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+
+CPSuri ::= IA5String
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PKIXAttributeCertificate.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PKIXAttributeCertificate.asn1
new file mode 100644
index 0000000000..2d0997fdfc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PKIXAttributeCertificate.asn1
@@ -0,0 +1,189 @@
+ PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-attribute-cert(12)}
+
+ DEFINITIONS IMPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
+ -- PKIX Certificate Extensions
+ Attribute, AlgorithmIdentifier, CertificateSerialNumber,
+ Extensions, UniqueIdentifier,
+ id-pkix, id-pe, id-kp, id-ad, id-at
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
+
+ GeneralName, GeneralNames, id-ce
+ FROM PKIX1Implicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
+
+ id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
+ id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
+ id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
+ id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
+
+ id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
+ id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
+ id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
+ id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
+ id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
+ -- { id-aca 5 } is reserved
+ id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
+
+ id-at-role OBJECT IDENTIFIER ::= { id-at 72}
+ id-at-clearance OBJECT IDENTIFIER ::=
+ { joint-iso-ccitt(2) ds(5) module(1)
+ selected-attribute-types(5) clearance (55) }
+
+ -- Uncomment this if using a 1988 level ASN.1 compiler
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+
+ AttributeCertificate ::= SEQUENCE {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+ AttributeCertificateInfo ::= SEQUENCE {
+ version AttCertVersion, -- version is v2
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= INTEGER { v2(1) }
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the
+ -- holder, for example, an executable
+ }
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- MUST NOT be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+ V2Form ::= SEQUENCE {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST
+ -- NOT be present in this profile
+ }
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+ }
+
+ AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+ IetfAttrSyntax ::= SEQUENCE {
+ policyAuthority[0] GeneralNames OPTIONAL,
+ values SEQUENCE OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+ SvceAuthInfo ::= SEQUENCE {
+ service GeneralName,
+ ident GeneralName,
+ authInfo OCTET STRING OPTIONAL
+ }
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+ Clearance ::= SEQUENCE {
+ policyId [0] OBJECT IDENTIFIER,
+ classList [1] ClassList DEFAULT {unclassified},
+ securityCategories
+ [2] SET OF SecurityCategory OPTIONAL
+ }
+
+ ClassList ::= BIT STRING {
+ unmarked (0),
+ unclassified (1),
+ restricted (2),
+ confidential (3),
+ secret (4),
+ topSecret (5)
+ }
+
+ SecurityCategory ::= SEQUENCE {
+ type [0] IMPLICIT OBJECT IDENTIFIER,
+ value [1] ANY DEFINED BY type
+ }
+
+ AAControls ::= SEQUENCE {
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL,
+ permittedAttrs [0] AttrSpec OPTIONAL,
+ excludedAttrs [1] AttrSpec OPTIONAL,
+ permitUnSpecified BOOLEAN DEFAULT TRUE
+ }
+
+ AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
+
+ ACClearAttrs ::= SEQUENCE {
+ acIssuer GeneralName,
+ acSerial INTEGER,
+ attrs SEQUENCE OF Attribute
+ }
+
+ ProxyInfo ::= SEQUENCE OF Targets
+
+ END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Param.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Param.asn1
new file mode 100644
index 0000000000..b2987a7885
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Param.asn1
@@ -0,0 +1,93 @@
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+Param -- { object identifier to be allocated }--
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- A
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+RANAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..10)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+obj1 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-one
+ CRITICALITY ignore
+ EXTENSION INTEGER
+ PRESENCE optional
+}
+
+obj2 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-two
+ CRITICALITY ignore
+ EXTENSION BOOLEAN
+ PRESENCE optional
+}
+
+id-one INTEGER ::= 1
+id-two INTEGER ::= 2
+
+-- The following code for test of OTP-4242, ValueFromObject
+-- Similar use as in the Camel spec
+
+CONFIG-DATA ::= CLASS {
+ &minLevel INTEGER,
+ &maxLevel INTEGER
+}
+WITH SYNTAX {
+ MINLEVEL &minLevel
+ MAXLEVEL &maxLevel
+}
+
+config-data CONFIG-DATA ::= {MINLEVEL 1 MAXLEVEL 3}
+
+OS1 ::= OCTET STRING (SIZE (config-data.&minLevel .. config-data.&maxLevel))
+
+POS2 {CONFIG-DATA:obj} ::= OCTET STRING (SIZE(obj.&minLevel .. obj.&maxLevel))
+
+OS2 ::= POS2 {config-data}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ParamBasic.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ParamBasic.asn1
new file mode 100644
index 0000000000..491bdf8956
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ParamBasic.asn1
@@ -0,0 +1,23 @@
+ParamBasic DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+General1{T,T:val} ::= SEQUENCE {
+ number INTEGER,
+ string T DEFAULT val
+}
+
+T11 ::= General1{PrintableString,"hej"}
+
+T12 ::= General1{BIT STRING,'1010'B}
+
+General2{T} ::= SEQUENCE {
+ number INTEGER,
+ string T
+}
+
+T21 ::= General2{PrintableString}
+
+T22 ::= General2{BIT STRING}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn
new file mode 100644
index 0000000000..aad3c4d833
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn
@@ -0,0 +1,19 @@
+PartialDecMyHTTP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+GetRequest ::= SEQUENCE {
+ header-only BOOLEAN,
+ lock BOOLEAN,
+ accept-types AcceptTypes,
+ url Url, ...
+}
+
+AcceptTypes ::= SET {
+ standards BIT STRING {html(0), plain-text(1), gif(2), jpeg(3)} (SIZE (4)) OPTIONAL,
+ others SEQUENCE OF VisibleString (SIZE (4)) OPTIONAL
+}
+
+Url ::= VisibleString (FROM ("a".."z"|"A".."Z"|"0".."9"| "./-_~%#"))
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn1config
new file mode 100644
index 0000000000..bafd7f46ac
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecMyHTTP.asn1config
@@ -0,0 +1,3 @@
+{exclusive_decode,{'PartialDecMyHTTP',
+ [{decode_GetRequest_incomplete,
+ ['GetRequest',[{'accept-types',[{others,parts}]}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn
new file mode 100644
index 0000000000..17844f12b9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn
@@ -0,0 +1,34 @@
+PartialDecSeq DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b [0] B DEFAULT {a 12, b TRUE}
+}
+
+C ::= [11] EXPLICIT D
+B ::= [12] C
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+F ::= CHOICE {
+ fa INTEGER,
+ fb E --161
+}
+
+E ::= SEQUENCE {
+ a INTEGER, -- matched
+ b SEQUENCE OF D, -- matched value of component a of first D in E_b
+ c BOOLEAN OPTIONAL,
+ d CHOICE {
+ da SEQUENCE OF A,
+ db INTEGER,
+ dc [3] SET {dca INTEGER,dcb BOOLEAN, dcc SEQUENCE{dcca INTEGER,dccb INTEGER}}
+ }
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn1config
new file mode 100644
index 0000000000..19fa3c990e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq.asn1config
@@ -0,0 +1,22 @@
+{selective_decode,{'PartialDecSeq',
+ [{selected_decode_F1,['F',fb,b,[1],a]},
+ {selected_decode_F2,['F',fb,b]},
+ {selected_decode_F3,['F',fb,b,[1]]},
+ {selected_decode_F4,['F',fb,d,da,[1],b,a]},
+ {selected_decode_E1,['E',d,dc,dcc,dcca]}]}}.
+%% partial_incomplete_decode tuplen inneh�ller tv� element. Den
+%% f�rsta �r bara en nyckel den andra �r en tupel med modulnamnet i
+%% en tupel {module,Name} och det andra elementet �r en lista av tupler:
+%% D�r varje tupel beskriver en partiell ofullst�ndig dekod. F�rsta
+%% elementet i den tupeln �r namnet p� funktionen som ska g�ra den
+%% partiella dekodningen. Det andra elementet �r en lista av typnamn/
+%% komponentnamn som �r en sekvens (path) till de element som ej skall
+%% avkodas.
+{exclusive_decode,{'PartialDecSeq',
+ [{decode_F_fb_incomplete,['F',[{fb,[{b,parts},{d,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]},
+ {decode_F_fb_exclusive2,['F',[{fb,[{b,parts},{d,[{da,parts}]}]}]]}, {decode_F_fb_exclusive3,['F',[{fb,[{b,parts},{d,[{da,parts},{dc,[{dcc,undecoded}]}]}]}]]}]}}.
+{module_name,'Seq.asn1'}.
+{compile_options,[ber_bin,optimize,debug_info]}.
+{multifile_compile,['M1.asn','M2.asn']}.
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn
new file mode 100644
index 0000000000..2e77d250d2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn
@@ -0,0 +1,29 @@
+PartialDecSeq2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+B ::= CHOICE {
+ a INTEGER,
+ b SEQUENCE {aa INTEGER, ba INTEGER},
+ c S
+}
+
+S ::= SEQUENCE {
+ a BOOLEAN,
+ b BOOLEAN
+}
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b B DEFAULT b:{aa 13, ba 14},
+ c CHOICE {a INTEGER,b SEQUENCE{a BOOLEAN, b BOOLEAN}} DEFAULT b:{a TRUE, b FALSE}
+}
+
+C ::= D
+
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn1config
new file mode 100644
index 0000000000..d9967d9958
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq2.asn1config
@@ -0,0 +1,4 @@
+%{partial_decode,{{module,'Seq2'},['F',fb,b,[1],a]}}.
+{exclusive_decode,{'PartialDecSeq2',
+ [{decode_A_c_b_incomplete,['A',[{c,[{a,undecoded},{b,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn
new file mode 100644
index 0000000000..3b530733ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn
@@ -0,0 +1,45 @@
+PartialDecSeq3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+S1 ::= SEQUENCE {
+ a INTEGER,
+ b S2 OPTIONAL,
+ c C1,
+ d SO1
+}
+
+S2 ::= SEQUENCE {
+ a BOOLEAN,
+ b INTEGER,
+ c SEQUENCE OF S3,
+ ...
+}
+
+C1 ::= CHOICE {
+ a SEQUENCE OF S3,
+ b SEQUENCE {a INTEGER, b BOOLEAN, c S4}
+}
+
+S3 ::= SEQUENCE {
+ first INTEGER,
+ second PrintableString,
+ third OCTET STRING (SIZE(2..100)),
+ fourth BIT STRING {one(0),two(1),three(2),four(3),five(4),six(5)}(SIZE(1..6)),
+ ...
+}
+
+S4 ::= SET {
+ name Name,
+ title VisibleString
+}
+
+Name ::= SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+SO1 ::= SEQUENCE (SIZE(2..6)) OF Name
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn1config
new file mode 100644
index 0000000000..44d22aa1d4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PartialDecSeq3.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'PartialDecSeq3',
+ [{decode_S1_incomplete,['S1',[{b,[{c,parts}]},{c,[{a,parts}]},{d,parts}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Pattern.asn b/lib/asn1/test/asn1_bin_SUITE_data/Pattern.asn
new file mode 100644
index 0000000000..730b4ba32a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Pattern.asn
@@ -0,0 +1,8 @@
+Pattern DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYY-HH:MM
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Person.py b/lib/asn1/test/asn1_bin_SUITE_data/Person.py
new file mode 100644
index 0000000000..60c1e06391
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Person.py
@@ -0,0 +1,10 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Prim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Prim.asn1
new file mode 100644
index 0000000000..1a905988f5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Prim.asn1
@@ -0,0 +1,32 @@
+Prim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bool ::= BOOLEAN
+ BoolCon ::= [20] BOOLEAN
+ BoolPri ::= [PRIVATE 21] BOOLEAN
+ BoolApp ::= [APPLICATION 22] BOOLEAN
+ BoolExpCon ::= [30] EXPLICIT BOOLEAN
+ BoolExpPri ::= [PRIVATE 31] EXPLICIT BOOLEAN
+ BoolExpApp ::= [APPLICATION 32] EXPLICIT BOOLEAN
+
+ Int ::= INTEGER
+ IntCon ::= [40] INTEGER
+ IntPri ::= [PRIVATE 41] INTEGER
+ IntApp ::= [APPLICATION 42] INTEGER
+ IntExpCon ::= [50] EXPLICIT INTEGER
+ IntExpPri ::= [PRIVATE 51] EXPLICIT INTEGER
+ IntExpApp ::= [APPLICATION 52] EXPLICIT INTEGER
+
+ IntEnum ::= INTEGER {first(1),last(31)}
+
+ Enum ::= ENUMERATED {monday(1),tuesday(2),wednesday(3),thursday(4),
+ friday(5),saturday(6),sunday(7)}
+
+ ObjId ::= OBJECT IDENTIFIER
+
+ RelOid ::= RELATIVE-OID
+
+ Null ::= NULL
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PrimExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PrimExternal.asn1
new file mode 100644
index 0000000000..2db685896d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PrimExternal.asn1
@@ -0,0 +1,39 @@
+PrimExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XNT, XImp, XExp FROM External;
+
+
+
+NT ::= OCTET STRING
+Imp ::= [1] OCTET STRING
+Exp ::= [2] EXPLICIT OCTET STRING
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XNT
+XImpNT ::= [3] XNT
+XExpNT ::= [4] EXPLICIT XNT
+
+XNTImp ::= XImp
+XImpImp ::= [5] XImp
+XExpImp ::= [6] EXPLICIT XImp
+
+XNTExp ::= XExp
+XImpExp ::= [7] XExp
+XExpExp ::= [8] EXPLICIT XExp
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/PrimStrings.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/PrimStrings.asn1
new file mode 100644
index 0000000000..d287840f30
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/PrimStrings.asn1
@@ -0,0 +1,97 @@
+PrimStrings DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bs1 ::= BIT STRING
+ Bs2 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (7))
+ Bs3 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..7))
+ Bs4 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs5 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs6 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6)} (SIZE (16..32))
+ Bs7 ::= BIT STRING (SIZE (24))
+ BsPri ::= [PRIVATE 61] BIT STRING
+ BsExpPri ::= [PRIVATE 61] EXPLICIT BIT STRING
+ ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+ --TestS is to test OTP-4353. See also x691 15.3 and x680 21.7
+ TestS ::= BIT STRING {a(0),b(1)} (SIZE (3..8))
+
+ -- OTP-5932
+ BSMAX ::= BIT STRING (SIZE (5..MAX))
+
+ -- OTP-7602
+
+BS255 ::= BIT STRING (SIZE (255))
+
+BS256 ::= BIT STRING (SIZE (256))
+
+BS1024 ::= BIT STRING (SIZE (1024))
+
+
+
+ Os ::= OCTET STRING
+ OsCon ::= [60] OCTET STRING
+ OsPri ::= [PRIVATE 61] OCTET STRING
+ OsApp ::= [APPLICATION 62] OCTET STRING
+ OsExpCon ::= [60] EXPLICIT OCTET STRING
+ OsExpPri ::= [PRIVATE 61] EXPLICIT OCTET STRING
+ OsExpApp ::= [APPLICATION 62] EXPLICIT OCTET STRING
+
+ Ns ::= NumericString
+ NsCon ::= [70] NumericString
+ NsExpCon ::= [71] EXPLICIT NumericString
+
+ Ps ::= PrintableString
+
+ Ts ::= TeletexString
+
+ Vxs ::= VideotexString
+
+ Vis ::= VisibleString
+
+ IA5 ::= IA5String
+
+ Grs ::= GraphicString
+
+ ODesc ::= ObjectDescriptor
+
+ ODescSeq ::= SEQUENCE {
+ o ObjectDescriptor OPTIONAL,
+ i INTEGER
+ }
+
+ Ges ::= GeneralString
+
+ Us ::= UniversalString
+ UsCon ::= [70] UniversalString
+ UsExpCon ::= [71] EXPLICIT UniversalString
+
+ BMP ::= BMPString
+
+ Gt ::= GeneralizedTime
+
+ UTC ::= UTCTime
+
+ UTF ::= UTF8String
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-CommonDataTypes.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-CommonDataTypes.asn1
new file mode 100644
index 0000000000..ff5357f000
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-CommonDataTypes.asn1
@@ -0,0 +1,45 @@
+-- RANAP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.5 Common Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+RANAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-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, outcome }
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Constants.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Constants.asn1
new file mode 100644
index 0000000000..c8df218b29
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Constants.asn1
@@ -0,0 +1,355 @@
+-- RANAP-Constants.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.6 Constant Definitions
+--
+-- $Id$
+--
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+RANAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+id-RAB-ModifyRequest INTEGER ::= 29
+id-LocationRelatedData INTEGER ::= 30
+id-InformationTransfer INTEGER ::= 31
+id-UESpecificInformation INTEGER ::= 32
+id-UplinkInformationExchange INTEGER ::= 33
+id-DirectInformationTransfer INTEGER ::= 34
+id-MBMSSessionStart INTEGER ::= 35
+id-MBMSSessionUpdate INTEGER ::= 36
+id-MBMSSessionStop INTEGER ::= 37
+id-MBMSUELinking INTEGER ::= 38
+id-MBMSRegistration INTEGER ::= 39
+id-MBMSCNDe-Registration-Procedure INTEGER ::= 40
+id-MBMSRABEstablishmentIndication INTEGER ::= 41
+id-MBMSRABRelease INTEGER ::= 42
+id-enhancedRelocationComplete INTEGER ::= 43
+id-enhancedRelocationCompleteConfirm INTEGER ::= 44
+id-RANAPenhancedRelocation INTEGER ::= 45
+id-SRVCCPreparation INTEGER ::= 256
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 250
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfSRBs INTEGER ::= 8
+maxNrOfVol INTEGER ::= 2
+maxNrOfLevels INTEGER ::= 256
+maxNrOfAltValues INTEGER ::= 16
+maxNrOfPLMNsSN INTEGER ::= 32
+maxNrOfLAs INTEGER ::= 65536
+maxNrOfSNAs INTEGER ::= 65536
+maxNrOfUEsToBeTraced INTEGER ::= 64
+maxNrOfInterfaces INTEGER ::= 16
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+maxSet INTEGER ::= 9
+maxNrOfHSDSCHMACdFlows-1 INTEGER ::= 7
+maxnoofMulticastServicesPerUE INTEGER ::= 128
+maxnoofMulticastServicesPerRNC INTEGER ::= 512
+maxMBMSSA INTEGER ::= 256
+maxMBMSRA INTEGER ::= 65536
+maxNrOfEDCHMACdFlows-1 INTEGER ::= 7
+maxGANSSSet INTEGER ::= 9
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-Source-ToTarget-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-Target-ToSource-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+id-MessageStructure INTEGER ::= 88
+id-Alt-RAB-Parameters INTEGER ::= 89
+id-Ass-RAB-Parameters INTEGER ::= 90
+id-RAB-ModifyList INTEGER ::= 91
+id-RAB-ModifyItem INTEGER ::= 92
+id-TypeOfError INTEGER ::= 93
+id-BroadcastAssistanceDataDecipheringKeys INTEGER ::= 94
+id-LocationRelatedDataRequestType INTEGER ::= 95
+id-GlobalCN-ID INTEGER ::= 96
+id-LastKnownServiceArea INTEGER ::= 97
+id-SRB-TrCH-Mapping INTEGER ::= 98
+id-InterSystemInformation-TransparentContainer INTEGER ::= 99
+id-NewBSS-To-OldBSS-Information INTEGER ::= 100
+id-SourceRNC-PDCP-context-info INTEGER ::= 103
+id-InformationTransferID INTEGER ::= 104
+id-SNA-Access-Information INTEGER ::= 105
+id-ProvidedData INTEGER ::= 106
+id-GERAN-BSC-Container INTEGER ::= 107
+id-GERAN-Classmark INTEGER ::= 108
+id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item INTEGER ::= 109
+id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse INTEGER ::= 110
+id-VerticalAccuracyCode INTEGER ::= 111
+id-ResponseTime INTEGER ::= 112
+id-PositioningPriority INTEGER ::= 113
+id-ClientType INTEGER ::= 114
+id-LocationRelatedDataRequestTypeSpecificToGERANIuMode INTEGER ::= 115
+id-SignallingIndication INTEGER ::= 116
+id-hS-DSCH-MAC-d-Flow-ID INTEGER ::= 117
+id-UESBI-Iu INTEGER ::= 118
+id-PositionData INTEGER ::= 119
+id-PositionDataSpecificToGERANIuMode INTEGER ::= 120
+id-CellLoadInformationGroup INTEGER ::= 121
+id-AccuracyFulfilmentIndicator INTEGER ::= 122
+id-InformationTransferType INTEGER ::= 123
+id-TraceRecordingSessionInformation INTEGER ::= 124
+id-TracePropagationParameters INTEGER ::= 125
+id-InterSystemInformationTransferType INTEGER ::= 126
+id-SelectedPLMN-ID INTEGER ::= 127
+id-RedirectionCompleted INTEGER ::= 128
+id-RedirectionIndication INTEGER ::= 129
+id-NAS-SequenceNumber INTEGER ::= 130
+id-RejectCauseValue INTEGER ::= 131
+id-APN INTEGER ::= 132
+id-CNMBMSLinkingInformation INTEGER ::= 133
+id-DeltaRAListofIdleModeUEs INTEGER ::= 134
+id-FrequenceLayerConvergenceFlag INTEGER ::= 135
+id-InformationExchangeID INTEGER ::= 136
+id-InformationExchangeType INTEGER ::= 137
+id-InformationRequested INTEGER ::= 138
+id-InformationRequestType INTEGER ::= 139
+id-IPMulticastAddress INTEGER ::= 140
+id-JoinedMBMSBearerServicesList INTEGER ::= 141
+id-LeftMBMSBearerServicesList INTEGER ::= 142
+id-MBMSBearerServiceType INTEGER ::= 143
+id-MBMSCNDe-Registration INTEGER ::= 144
+id-MBMSServiceArea INTEGER ::= 145
+id-MBMSSessionDuration INTEGER ::= 146
+id-MBMSSessionIdentity INTEGER ::= 147
+id-PDP-TypeInformation INTEGER ::= 148
+id-RAB-Parameters INTEGER ::= 149
+id-RAListofIdleModeUEs INTEGER ::= 150
+id-MBMSRegistrationRequestType INTEGER ::= 151
+id-SessionUpdateID INTEGER ::= 152
+id-TMGI INTEGER ::= 153
+id-TransportLayerInformation INTEGER ::= 154
+id-UnsuccessfulLinkingList INTEGER ::= 155
+id-MBMSLinkingInformation INTEGER ::= 156
+id-MBMSSessionRepetitionNumber INTEGER ::= 157
+id-AlternativeRABConfiguration INTEGER ::= 158
+id-AlternativeRABConfigurationRequest INTEGER ::= 159
+id-E-DCH-MAC-d-Flow-ID INTEGER ::= 160
+id-SourceBSS-ToTargetBSS-TransparentContainer INTEGER ::= 161
+id-TargetBSS-ToSourceBSS-TransparentContainer INTEGER ::= 162
+id-TimeToMBMSDataTransfer INTEGER ::= 163
+id-IncludeVelocity INTEGER ::= 164
+id-VelocityEstimate INTEGER ::= 165
+id-RedirectAttemptFlag INTEGER ::= 166
+id-RAT-Type INTEGER ::= 167
+id-PeriodicLocationInfo INTEGER ::= 168
+id-MBMSCountingInformation INTEGER ::= 169
+id-170-not-to-be-used-for-IE-ids INTEGER ::= 170
+id-ExtendedRNC-ID INTEGER ::= 171
+id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf INTEGER ::= 172
+id-Alt-RAB-Parameter-ExtendedMaxBitrateInf INTEGER ::= 173
+id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 174
+id-Ass-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 175
+id-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 176
+id-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 177
+id-Requested-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 178
+id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 179
+id-LAofIdleModeUEs INTEGER ::= 180
+id-newLAListofIdleModeUEs INTEGER ::= 181
+id-LAListwithNoIdleModeUEsAnyMore INTEGER ::= 182
+id-183-not-to-be-used-for-IE-ids INTEGER ::= 183
+id-GANSS-PositioningDataSet INTEGER ::= 184
+id-RequestedGANSSAssistanceData INTEGER ::= 185
+id-BroadcastGANSSAssistanceDataDecipheringKeys INTEGER ::= 186
+id-d-RNTI-for-NoIuCSUP INTEGER ::= 187
+id-RAB-SetupList-EnhancedRelocCompleteReq INTEGER ::= 188
+id-RAB-SetupItem-EnhancedRelocCompleteReq INTEGER ::= 189
+id-RAB-SetupList-EnhancedRelocCompleteRes INTEGER ::= 190
+id-RAB-SetupItem-EnhancedRelocCompleteRes INTEGER ::= 191
+id-RAB-SetupList-EnhRelocInfoReq INTEGER ::= 192
+id-RAB-SetupItem-EnhRelocInfoReq INTEGER ::= 193
+id-RAB-SetupList-EnhRelocInfoRes INTEGER ::= 194
+id-RAB-SetupItem-EnhRelocInfoRes INTEGER ::= 195
+id-OldIuSigConId INTEGER ::= 196
+id-RAB-FailedList-EnhRelocInfoRes INTEGER ::= 197
+id-RAB-FailedItem-EnhRelocInfoRes INTEGER ::= 198
+id-Global-ENB-ID INTEGER ::= 199
+id-UE-History-Information INTEGER ::= 200
+id-MBMSSynchronisationInformation INTEGER ::= 201
+id-SubscriberProfileIDforRFP INTEGER ::= 202
+id-CSG-Id INTEGER ::= 203
+id-OldIuSigConIdCS INTEGER ::= 204
+id-OldIuSigConIdPS INTEGER ::= 205
+id-GlobalCN-IDCS INTEGER ::= 206
+id-GlobalCN-IDPS INTEGER ::= 207
+id-SourceExtendedRNC-ID INTEGER ::= 208
+id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes INTEGER ::= 209
+id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes INTEGER ::= 210
+id-SourceRNC-ID INTEGER ::= 211
+id-Relocation-TargetRNC-ID INTEGER ::= 212
+id-Relocation-TargetExtendedRNC-ID INTEGER ::= 213
+id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf INTEGER ::= 214
+id-Alt-RAB-Parameter-SupportedMaxBitrateInf INTEGER ::= 215
+id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 216
+id-Ass-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 217
+id-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 218
+id-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 219
+id-Requested-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 220
+id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 221
+id-Relocation-SourceRNC-ID INTEGER ::= 222
+id-Relocation-SourceExtendedRNC-ID INTEGER ::= 223
+id-EncryptionKey INTEGER ::= 224
+id-IntegrityProtectionKey INTEGER ::= 225
+id-SRVCC-HO-Indication INTEGER ::= 226
+id-SRVCC-Information INTEGER ::= 227
+id-SRVCC-Operation-Possible INTEGER ::= 228
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Containers.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Containers.asn1
new file mode 100644
index 0000000000..5168fa6917
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-Containers.asn1
@@ -0,0 +1,206 @@
+-- RANAP-Containers.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.7 Container Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+RANAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM RANAP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-IEs.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-IEs.asn1
new file mode 100644
index 0000000000..351dad436b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-IEs.asn1
@@ -0,0 +1,2081 @@
+-- RANAP-IEs.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.4 Information Element Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RANAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxNrOfPDPDirections,
+ maxNrOfPoints,
+ maxNrOfRABs,
+ maxNrOfSRBs,
+ maxNrOfSeparateTrafficDirections,
+ maxRAB-Subflows,
+ maxRAB-SubflowCombination,
+ maxNrOfLevels,
+ maxNrOfAltValues,
+ maxNrOfSNAs,
+ maxNrOfLAs,
+ maxNrOfPLMNsSN,
+ maxSet,
+ maxNrOfHSDSCHMACdFlows-1,
+ maxNrOfUEsToBeTraced,
+ maxNrOfInterfaces,
+ maxnoofMulticastServicesPerRNC,
+ maxMBMSSA,
+ maxMBMSRA,
+ maxnoofMulticastServicesPerUE,
+ maxNrOfEDCHMACdFlows-1,
+ maxGANSSSet,
+
+ id-CN-DomainIndicator,
+ id-MessageStructure,
+ id-SRB-TrCH-Mapping,
+ id-TypeOfError,
+ id-hS-DSCH-MAC-d-Flow-ID,
+ id-SignallingIndication,
+ id-CellLoadInformationGroup,
+ id-TraceRecordingSessionInformation,
+ id-MBMSLinkingInformation,
+ id-AlternativeRABConfiguration,
+ id-AlternativeRABConfigurationRequest,
+ id-E-DCH-MAC-d-Flow-ID,
+ id-RAC,
+ id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-ExtendedMaxBitrateInf,
+ id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-ExtendedMaxBitrateList,
+ id-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-LAofIdleModeUEs,
+ id-newLAListofIdleModeUEs,
+ id-LAListwithNoIdleModeUEsAnyMore,
+ id-ExtendedRNC-ID,
+ id-GANSS-PositioningDataSet,
+ id-d-RNTI-for-NoIuCSUP,
+ id-UE-History-Information,
+ id-SubscriberProfileIDforRFP,
+ id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-SupportedMaxBitrateInf,
+ id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-SupportedMaxBitrateList,
+ id-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList
+
+
+FROM RANAP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM RANAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ RANAP-PROTOCOL-EXTENSION
+FROM RANAP-Containers;
+
+-- A
+
+AccuracyFulfilmentIndicator ::= ENUMERATED{
+ requested-Accuracy-Fulfilled,
+ requested-Accuracy-Not-Fulfilled,
+ ...
+}
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Alt-RAB-Parameters ::= SEQUENCE {
+ altMaxBitrateInf Alt-RAB-Parameter-MaxBitrateInf OPTIONAL,
+ altGuaranteedBitRateInf Alt-RAB-Parameter-GuaranteedBitrateInf OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Alt-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to indicate an alternative RAB configuration --
+ { ID id-AlternativeRABConfiguration CRITICALITY ignore EXTENSION RAB-Parameters PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedMaxBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedMaxBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedGuaranteedBitrateInf PRESENCE optional },
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf ::= SEQUENCE {
+ altExtendedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altExtendedGuaranteedBitrates Alt-RAB-Parameter-ExtendedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedGuaranteedBitrateList
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Alt-RAB-Parameter-GuaranteedBitrateInf ::= SEQUENCE {
+ altGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altGuaranteedBitrates Alt-RAB-Parameter-GuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-GuaranteedBitrateList
+
+
+Alt-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf ::= SEQUENCE {
+ altSupportedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altSupportedGuaranteedBitrates Alt-RAB-Parameter-SupportedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+
+Alt-RAB-Parameter-ExtendedMaxBitrateInf ::= SEQUENCE {
+ altExtendedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altExtendedMaxBitrates Alt-RAB-Parameter-ExtendedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Alternative Maximum Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedMaxBitrateList
+
+Alt-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Alt-RAB-Parameter-MaxBitrateInf ::= SEQUENCE {
+ altMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altMaxBitrates Alt-RAB-Parameter-MaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-MaxBitrateList
+
+
+Alt-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf ::= SEQUENCE {
+ altSupportedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altSupportedMaxBitrates Alt-RAB-Parameter-SupportedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs} } OPTIONAL,
+...
+}
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+
+Alt-RAB-Parameter-SupportedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+AlternativeRABConfigurationRequest ::= ENUMERATED{
+ alternative-RAB-configuration-Requested,
+ ...
+}
+
+APN ::= OCTET STRING (SIZE (1..255))
+-- Reference: 23.003
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+Ass-RAB-Parameters ::= SEQUENCE {
+ assMaxBitrateInf Ass-RAB-Parameter-MaxBitrateList OPTIONAL,
+ assGuaranteedBitRateInf Ass-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Ass-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ass-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate an extended assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an extended assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedMaxBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Ass-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Ass-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+Ass-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+Ass-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+AuthorisedPLMNs ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ authorisedSNAsList AuthorisedSNAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {AuthorisedPLMNs-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+AuthorisedPLMNs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AuthorisedSNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+BroadcastAssistanceDataDecipheringKeys ::= SEQUENCE {
+ cipheringKeyFlag BIT STRING (SIZE (1)),
+ currentDecipheringKey BIT STRING (SIZE (56)),
+ nextDecipheringKey BIT STRING (SIZE (56)),
+ ...
+}
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...,
+ radioNetworkExtension CauseRadioNetworkExtension
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101),
+ abstract-syntax-error-falsely-constructed-message (102)
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ conflict-with-already-existing-integrity-protection-and-or-ciphering-information (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bit-rate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-request-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40),
+ resource-optimisation-relocation (41),
+ requested-information-not-available (42),
+ relocation-desirable-for-radio-reasons (43),
+ relocation-not-supported-in-target-RNC-or-target-system (44),
+ directed-retry (45),
+ radio-connection-with-UE-Lost (46),
+ rNC-unable-to-establish-all-RFCs (47),
+ deciphering-keys-not-available(48),
+ dedicated-assistance-data-not-available(49),
+ relocation-target-not-allowed (50),
+ location-reporting-congestion (51),
+ reduce-load-in-serving-cell (52),
+ no-radio-resources-available-in-target-cell (53),
+ gERAN-Iumode-failure (54),
+ access-restricted-due-to-shared-networks (55),
+ incoming-relocation-not-supported-due-to-PUESBINE-feature (56),
+ traffic-load-in-the-target-cell-higher-than-in-the-source-cell (57),
+ mBMS-no-multicast-service-for-this-UE(58),
+ mBMS-unknown-UE-ID(59),
+ successful-MBMS-session-start-no-data-bearer-necessary(60),
+ mBMS-superseded-due-to-NNSF(61),
+ mBMS-UE-linking-already-done(62),
+ mBMS-UE-de-linking-failure-no-existing-UE-linking(63),
+ tMGI-unknown(64)
+} (1..64)
+
+CauseRadioNetworkExtension ::= INTEGER {
+ iP-multicast-address-and-APN-not-valid(257),
+ mBMS-de-registration-rejected-due-to-implicit-registration(258),
+ mBMS-request-superseded(259),
+ mBMS-de-registration-during-session-not-allowed(260),
+ mBMS-no-data-bearer-necessary(261),
+ periodicLocationInformationNotAvailable(262),
+ gTP-Resources-Unavailable(263),
+ tMGI-inUse-overlapping-MBMS-service-area(264),
+ mBMS-no-cell-in-MBMS-service-area(265),
+ no-Iu-CS-UP-relocation(266),
+ successful-MBMS-Session-Start-IP-Multicast-Bearer-established(267),
+ cS-fallback-triggered(268)
+} (257..512)
+
+CauseNon-Standard ::= INTEGER (129..256)
+-- Cause value 256 shall not be used --
+
+CauseTransmissionNetwork ::= INTEGER {
+ signalling-transport-resource-failure (65),
+ iu-transport-connection-failed-to-establish (66)
+} (65..80)
+
+Cell-Capacity-Class-Value ::= INTEGER (1..100,...)
+
+CellLoadInformation ::= SEQUENCE {
+ cell-Capacity-Class-Value Cell-Capacity-Class-Value,
+ loadValue LoadValue,
+ rTLoadValue RTLoadValue OPTIONAL,
+ nRTLoadInformationValue NRTLoadInformationValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellLoadInformationGroup ::= SEQUENCE {
+ sourceCellID SourceCellID,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformationGroup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformationGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellType ::= ENUMERATED{
+ macro,
+ micro,
+ pico,
+ femto,
+ ...
+}
+
+ClientType ::= ENUMERATED {
+ emergency-Services,
+ value-Added-Services,
+ pLMN-Operator-Services,
+ lawful-Intercept-Services,
+ pLMN-Operator-Broadcast-Services,
+ pLMN-Operator-O-et-M,
+ pLMN-Operator-Anonymous-Statistics,
+ pLMN-Operator-Target-MS-Service-Support,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable reporting the message structure down to the erroneous IE --
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional } |
+-- Extension for Release 99 to enable reporting if a reported error is due to a not understood or a missing IE --
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-RAC CRITICALITY ignore EXTENSION RAC PRESENCE optional },
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+CN-ID ::= INTEGER (0..4095)
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DeltaRAListofIdleModeUEs ::= SEQUENCE {
+ newRAListofIdleModeUEs NewRAListofIdleModeUEs OPTIONAL,
+ rAListwithNoIdleModeUEsAnyMore RAListwithNoIdleModeUEsAnyMore OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DeltaRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+NewRAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+RAListwithNoIdleModeUEsAnyMore ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+DeltaRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-newLAListofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional }|
+ -- This IE shall be present if the New RA List of Idle Mode UEs IE is included. --
+{ ID id-LAListwithNoIdleModeUEsAnyMore CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be presentif the RA List with No Idle Mode UEs Any More IE is included. --
+ ...
+}
+
+ForwardingIndication::=ENUMERATED{
+ forwarding-admitted,
+ ...
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (6..9)
+
+DSCH-ID ::= INTEGER (0..255)
+
+
+-- E
+
+E-DCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfEDCHMACdFlows-1)
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ selectedTAI TAI,
+ ...
+}
+
+GlobalENB-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1), standard-UMTS-encryption-algorithm-UEA2 (2) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+EquipmentsToBeTraced ::= CHOICE {
+ iMEIlist IMEIList,
+ iMEISVlist IMEISVList,
+ iMEIgroup IMEIGroup,
+ iMEISVgroup IMEISVGroup,
+ ...
+}
+
+Event ::= ENUMERATED {
+ stop-change-of-service-area,
+ direct,
+ change-of-servicearea,
+ ...,
+ stop-direct,
+ periodic,
+ stop-periodic
+}
+
+ExtendedGuaranteedBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedMaxBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+FrequenceLayerConvergenceFlag ::= ENUMERATED {
+ no-FLC-flag,
+ ...
+}
+
+-- G
+
+GANSS-PositioningDataSet ::= SEQUENCE(SIZE(1..maxGANSSSet)) OF GANSS-PositioningMethodAndUsage
+
+GANSS-PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...,
+ pointWithUncertaintyEllipse GA-PointWithUnCertaintyEllipse,
+ pointWithAltitude GA-PointWithAltitude,
+ pointWithAltitudeAndUncertaintyEllipsoid GA-PointWithAltitudeAndUncertaintyEllipsoid,
+ ellipsoidArc GA-EllipsoidArc
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-AltitudeAndDirection ::= SEQUENCE {
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ ...
+}
+
+GA-EllipsoidArc ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ innerRadius INTEGER (0..65535),
+ uncertaintyRadius INTEGER (0..127),
+ offsetAngle INTEGER (0..179),
+ includedAngle INTEGER (0..179),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-EllipsoidArc-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-EllipsoidArc-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitude-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithUnCertaintyEllipse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-UncertaintyEllipse ::= SEQUENCE {
+ uncertaintySemi-major INTEGER (0..127),
+ uncertaintySemi-minor INTEGER (0..127),
+ orientationOfMajorAxis INTEGER (0..179), -- The values 90..179 shall not be used.
+ ...
+}
+
+GERAN-BSC-Container ::= OCTET STRING
+ -- GERAN BSC Container as defined in [11] --
+
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Cell-ID-ExtIEs} } OPTIONAL
+}
+
+GERAN-Cell-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERAN-Classmark ::= OCTET STRING
+ -- GERAN Classmark as defined in [11] --
+
+GlobalCN-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cN-ID CN-ID
+}
+
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+HS-DSCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfHSDSCHMACdFlows-1)
+
+-- I
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEIGroup ::= SEQUENCE {
+ iMEI IMEI,
+ iMEIMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEIGroup-ExtIEs} } OPTIONAL
+}
+
+IMEIGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEIList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEI
+
+IMEISV ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEISVGroup ::= SEQUENCE {
+ iMEISV IMEISV,
+ iMEISVMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEISVGroup-ExtIEs} } OPTIONAL
+}
+
+IMEISVGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEISVList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEISV
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IncludeVelocity ::= ENUMERATED {
+ requested
+}
+
+InformationExchangeID ::= INTEGER (0.. 1048575)
+
+InformationExchangeType ::= ENUMERATED {
+ transfer,
+ request,
+ ...
+}
+
+InformationRequested ::= CHOICE {
+ requestedMBMSIPMulticastAddressandAPNRequest RequestedMBMSIPMulticastAddressandAPNRequest,
+ requestedMulticastServiceList RequestedMulticastServiceList,
+ ...
+}
+
+
+InformationRequestType ::= CHOICE {
+ mBMSIPMulticastAddressandAPNRequest MBMSIPMulticastAddressandAPNRequest,
+ permanentNAS-UE-ID PermanentNAS-UE-ID,
+ ...
+}
+
+InformationTransferID ::= INTEGER (0.. 1048575)
+
+InformationTransferType ::= CHOICE {
+ rNCTraceInformation RNCTraceInformation,
+ ...
+}
+
+IntegrityProtectionAlgorithm ::= INTEGER {
+ standard-UMTS-integrity-algorithm-UIA1 (0), standard-UMTS-integrity-algorithm-UIA2 (1),
+ no-value (15)
+} (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+InterSystemInformationTransferType ::= CHOICE {
+ rIM-Transfer RIM-Transfer,
+ ...
+}
+
+InterSystemInformation-TransparentContainer ::= SEQUENCE {
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { InterSystemInformation-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterSystemInformation-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+IPMulticastAddress ::= OCTET STRING (SIZE (4..16))
+-- Reference: 23.003
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LA-LIST ::= SEQUENCE (SIZE (1..maxNrOfLAs)) OF
+ SEQUENCE {
+ lAC LAC,
+ listOF-SNAs ListOF-SNAs,
+ iE-Extensions ProtocolExtensionContainer { { LA-LIST-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LA-LIST-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastKnownServiceArea ::= SEQUENCE {
+ sAI SAI,
+ ageOfSAI INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { {LastKnownServiceArea-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastKnownServiceArea-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedUTRANCell-Item ::= SEQUENCE {
+ uTRAN-CellID UTRAN-CellID,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { {LastVisitedUTRANCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastVisitedUTRANCell-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ListOF-SNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+ListOfInterfacesToTrace ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF InterfacesToTraceItem
+
+InterfacesToTraceItem ::= SEQUENCE {
+ interface ENUMERATED {iu-cs, iu-ps, iur, iub, uu, ...},
+ iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterfacesToTraceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LoadValue ::= INTEGER (0..100)
+
+LocationRelatedDataRequestType ::= SEQUENCE {
+ requestedLocationRelatedDataType RequestedLocationRelatedDataType,
+ requestedGPSAssistanceData RequestedGPSAssistanceData OPTIONAL,
+ -- This IE shall be present if the Requested Location Related Data Type IE is set to �Dedicated Assistance Data for Assisted GPS� or
+ -- `Dedicated Assistance Data for Assisted GPS and GANSS�
+ ...
+}
+
+LocationRelatedDataRequestTypeSpecificToGERANIuMode ::= ENUMERATED {
+ decipheringKeysEOTD,
+ dedicatedMobileAssistedEOTDAssistanceData,
+ dedicatedMobileBasedEOTDAssistanceData,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MBMS-PTP-RAB-ID ::= BIT STRING (SIZE (8))
+
+MBMSBearerServiceType ::= ENUMERATED {
+ multicast,
+ broadcast,
+ ...
+}
+
+MBMSCNDe-Registration ::= ENUMERATED {
+ normalsessionstop,
+ deregister,
+ ...
+}
+
+
+MBMSCountingInformation ::= ENUMERATED {
+ counting,
+ notcounting,
+ ...
+}
+
+MBMSHCIndicator ::= ENUMERATED {
+ uncompressed-header,
+ compressed-header,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ TMGI
+
+MBMSLinkingInformation ::= ENUMERATED {
+ uE-has-joined-multicast-services,
+ ...
+}
+
+MBMSRegistrationRequestType ::= ENUMERATED {
+ register,
+ deregister,
+ ...
+}
+
+MBMSServiceArea ::= OCTET STRING
+
+MBMSSessionDuration ::= OCTET STRING (SIZE (3))
+
+
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+
+MBMSSessionRepetitionNumber ::= OCTET STRING (SIZE (1))
+
+
+-- N
+
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SequenceNumber ::= BIT STRING (SIZE (2))
+-- Reference: 24.008
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NewBSS-To-OldBSS-Information ::= OCTET STRING
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NRTLoadInformationValue ::= INTEGER (0..3)
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM [25]
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value shall not be used -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PeriodicLocationInfo ::= SEQUENCE {
+ reportingAmount INTEGER (1..8639999, ...),
+ reportingInterval INTEGER (1..8639999, ...),
+ iE-Extensions ProtocolExtensionContainer { { PeriodicLocationInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PeriodicLocationInfo-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+PLMNs-in-shared-network ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lA-LIST LA-LIST,
+ iE-Extensions ProtocolExtensionContainer { { PLMNs-in-shared-network-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PLMNs-in-shared-network-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PositioningDataDiscriminator ::= BIT STRING (SIZE(4))
+
+PositioningDataSet ::= SEQUENCE(SIZE(1..maxSet)) OF PositioningMethodAndUsage
+
+PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+PositioningPriority ::= ENUMERATED {
+ high-Priority,
+ normal-Priority,
+...
+}
+
+PositionData ::= SEQUENCE {
+ positioningDataDiscriminator PositioningDataDiscriminator,
+ positioningDataSet PositioningDataSet OPTIONAL,
+-- This IE shall be present if the PositioningDataDiscriminator IE is set to the value "0000" --
+ iE-Extensions ProtocolExtensionContainer { {PositionData-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PositionData-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-PositioningDataSet CRITICALITY ignore EXTENSION GANSS-PositioningDataSet PRESENCE optional },
+ ...
+}
+
+PositionDataSpecificToGERANIuMode ::= OCTET STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProvidedData ::= CHOICE {
+ shared-network-information Shared-Network-Information,
+ ...
+}
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+--This IE shall be ignored if Supported Guaranteed Bit rate is present--
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+--This IE shall be ignored if Supported Maximum Bit rate is present--
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Interactive" --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ relocationRequirement RelocationRequirement OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable indication that Interactive User Plane data is of a signalling nature --
+ { ID id-SignallingIndication CRITICALITY ignore EXTENSION SignallingIndication PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Guaranteed Bitrate --
+{ ID id-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Maximum Bitrate --
+{ ID id-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Maximum Bitrate --
+{ ID id-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Guaranteed Bitrate --
+{ ID id-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ iE-Extensions ProtocolExtensionContainer { { RAB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of RAB Subflow mapping onto Iur transport channel Ids for a given indicated domain --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional },
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAListofIdleModeUEs ::= CHOICE {
+ notEmptyRAListofIdleModeUEs NotEmptyRAListofIdleModeUEs,
+ emptyFullRAListofIdleModeUEs ENUMERATED {emptylist,fulllist,...},
+ ...
+}
+
+NotEmptyRAListofIdleModeUEs ::= SEQUENCE {
+ rAofIdleModeUEs RAofIdleModeUEs,
+ iE-Extensions ProtocolExtensionContainer { {NotEmptyRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+RAofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+NotEmptyRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-LAofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be present if the RA of Idle Mode UEs IE is included. --
+ ...
+}
+
+LAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ LAI
+
+RAT-Type ::= ENUMERATED {
+ utran,
+ geran,
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RedirectAttemptFlag ::= NULL
+
+RedirectionCompleted ::= ENUMERATED {
+ redirection-completed,
+ ...
+}
+
+RejectCauseValue ::= ENUMERATED {
+ pLMN-Not-Allowed,
+ location-Area-Not-Allowed,
+ roaming-Not-Allowed-In-This-Location-Area,
+ no-Suitable-Cell-In-Location-Area,
+ gPRS-Services-Not-Allowed-In-This-PLMN,
+ cS-PS-coordination-required,
+ ...
+}
+
+
+RelocationRequirement ::= ENUMERATED {
+ lossless,
+ none,
+ ...,
+ realtime
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-area,
+ ...
+}
+
+RequestedGPSAssistanceData ::= OCTET STRING (SIZE (1 .. 38 ))
+ -- gpsAssistanceData as defined in 24.080 --
+
+RequestedGANSSAssistanceData ::= OCTET STRING (SIZE (1 .. 201 ))
+ -- ganssAssistanceData as defined in 24.080 --
+
+RequestedLocationRelatedDataType ::= ENUMERATED {
+ decipheringKeysUEBasedOTDOA,
+ decipheringKeysAssistedGPS,
+ dedicatedAssistanceDataUEBasedOTDOA,
+ dedicatedAssistanceDataAssistedGPS,
+ ...,
+-- Release 7 extension elements --
+ decipheringKeysAssistedGANSS,
+ dedicatedAssistanceDataAssistedGANSS,
+ decipheringKeysAssistedGPSandGANSS,
+ dedicatedAssistanceDataAssistedGPSandGANSS
+}
+
+RequestedMBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ MBMSIPMulticastAddressandAPNlist
+
+MBMSIPMulticastAddressandAPNlist ::= SEQUENCE {
+ tMGI TMGI,
+ iPMulticastAddress IPMulticastAddress,
+ aPN APN,
+ iE-Extensions ProtocolExtensionContainer { {MBMSIPMulticastAddressandAPNlist-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNlist-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestedMulticastServiceList ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ TMGI
+
+Requested-RAB-Parameter-Values ::= SEQUENCE {
+ requestedMaxBitrates Requested-RAB-Parameter-MaxBitrateList OPTIONAL,
+ requestedGuaranteedBitrates Requested-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Requested-RAB-Parameter-Values-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Requested-RAB-Parameter-Values-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable RNC to request the execution of an alternative RAB configuration --
+ { ID id-AlternativeRABConfigurationRequest CRITICALITY ignore EXTENSION AlternativeRABConfigurationRequest PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Requested-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Requested-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Requested-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+Requested-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResponseTime ::= ENUMERATED {
+ lowdelay,
+ delaytolerant,
+...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIM-Transfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RIM-Transfer-ExtIEs} } OPTIONAL
+}
+
+RIM-Transfer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMRoutingAddress ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+
+RNCTraceInformation::= SEQUENCE {
+ traceReference TraceReference,
+ traceActivationIndicator ENUMERATED {activated,deactivated},
+ equipmentsToBeTraced EquipmentsToBeTraced OPTIONAL,
+ -- This IE shall be present if the Trace Activation Indicator IE is set to "Activated".
+ iE-Extensions ProtocolExtensionContainer { { RNCTraceInformation-ExtIEs} } OPTIONAL
+}
+
+RNCTraceInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RRC-Container ::= OCTET STRING
+
+RTLoadValue ::= INTEGER (0..100)
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ sapi-0,
+ sapi-3,
+ ...
+}
+
+SessionUpdateID ::= INTEGER (0.. 1048575)
+
+Shared-Network-Information ::= SEQUENCE {
+ pLMNs-in-shared-network PLMNs-in-shared-network,
+ iE-Extensions ProtocolExtensionContainer { {Shared-Network-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Shared-Network-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignallingIndication ::= ENUMERATED {
+ signalling,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE shall be present if the Delivery Of Erroneous SDU IE is set to "Yes" or "No" --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNA-Access-Information ::= SEQUENCE {
+ authorisedPLMNs AuthorisedPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SNA-Access-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SNA-Access-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNAC ::= INTEGER (0..65535)
+
+Service-Handover ::= ENUMERATED {
+ handover-to-GSM-should-be-performed,
+ handover-to-GSM-should-not-be-performed,
+ handover-to-GSM-shall-not-be-performed,
+ ...
+}
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Source RNC to
+-- Target RNC Transparent Container or the Source eNB to Target eNB Transparent Container IE as
+-- defined in [49]
+
+SourceeNodeB-ToTargeteNodeB-TransparentContainer ::= OCTET STRING
+
+
+SourceCellID ::= CHOICE {
+ sourceUTRANCellID SourceUTRANCellID,
+ sourceGERANCellID CGI,
+ ...
+}
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID,
+ sAI SAI,
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL,
+ cipheringKey EncryptionKey OPTIONAL,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL,
+ d-RNTI D-RNTI OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE not involved in relocation of SRNS" --,
+ targetCellId TargetCellId OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE involved in relocation of SRNS" --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of SRB mapping onto Iur transport channel Ids --
+ { ID id-SRB-TrCH-Mapping CRITICALITY reject EXTENSION SRB-TrCH-Mapping PRESENCE optional }|
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-CellLoadInformationGroup CRITICALITY ignore EXTENSION CellLoadInformationGroup PRESENCE optional}|
+-- Extension for Release 6 to provide Trace Recording Session Information to the Target RNC --
+ {ID id-TraceRecordingSessionInformation CRITICALITY ignore EXTENSION TraceRecordingSessionInformation PRESENCE optional}|
+-- Extension for Release 6 to indicate to the Target RNC that the UE has activated Multicast Service --
+ {ID id-MBMSLinkingInformation CRITICALITY ignore EXTENSION MBMSLinkingInformation PRESENCE optional}|
+ {ID id-d-RNTI-for-NoIuCSUP CRITICALITY reject EXTENSION D-RNTI PRESENCE optional}|
+ {ID id-UE-History-Information CRITICALITY ignore EXTENSION UE-History-Information PRESENCE optional}|
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SupportedRAB-ParameterBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF SupportedBitrate
+
+SupportedBitrate ::= INTEGER (1..1000000000, ...)
+-- Unit is bits per sec
+
+SourceUTRANCellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ iE-Extensions ProtocolExtensionContainer { {SourceUTRANCellID-ExtIEs} } OPTIONAL
+}
+
+SourceUTRANCellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRB-ID ::= INTEGER (1..32)
+
+SRB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfSRBs)) OF
+ SRB-TrCH-MappingItem
+
+SRB-TrCH-MappingItem ::= SEQUENCE {
+ sRB-ID SRB-ID,
+ trCH-ID TrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { SRB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SRB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-HO-Indication ::= ENUMERATED {
+ ps-and-cs,
+ cs-only,
+ ...
+}
+
+SRVCC-Information ::= SEQUENCE {
+ nonce BIT STRING (SIZE (128)),
+ iE-Extensions ProtocolExtensionContainer { { SRVCC-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SRVCC-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-Operation-Possible ::= ENUMERATED {
+ srvcc-possible,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+TAC ::= OCTET STRING (SIZE (2))
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
+}
+
+TAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Target RNC to
+-- Source RNC Transparent Container or the Target eNB to Source eNB Transparent Container IE as
+-- defined in [49]
+
+TargeteNodeB-ToSourceeNodeB-TransparentContainer ::= OCTET STRING
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+
+ ...,
+ targeteNB-ID Global-ENB-ID
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TimeToMBMSDataTransfer ::= OCTET STRING(SIZE(1))
+
+
+TMGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ serviceID OCTET STRING (SIZE (3)),
+ iE-Extensions ProtocolExtensionContainer { {TMGI-ExtIEs} } OPTIONAL
+}
+
+TMGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ ...
+}
+
+TracePropagationParameters ::= SEQUENCE {
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ traceDepth TraceDepth,
+ listOfInterfacesToTrace ListOfInterfacesToTrace OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TracePropagationParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TracePropagationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionInformation ::= SEQUENCE {
+ traceReference TraceReference,
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ iE-Extensions ProtocolExtensionContainer { { TraceRecordingSessionInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceRecordingSessionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionReference ::= INTEGER (0..65535)
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL,
+ dSCH-ID DSCH-ID OPTIONAL,
+ uSCH-ID USCH-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TrCH-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TrCH-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable transfer of HS-DSCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-hS-DSCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION HS-DSCH-MAC-d-Flow-ID PRESENCE optional}|
+-- Extension for Release 6 to enable transfer of E-DCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-E-DCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION E-DCH-MAC-d-Flow-ID PRESENCE optional},
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+
+UE-History-Information ::= OCTET STRING
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...,
+ imeisv IMEISV
+
+}
+
+UESBI-Iu ::= SEQUENCE {
+ uESBI-IuA UESBI-IuA OPTIONAL,
+ uESBI-IuB UESBI-IuB OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UESBI-Iu-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UESBI-Iu-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.994 --
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.995 --
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+UTRAN-CellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cellID TargetCellId,
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-CellID-ExtIEs} } OPTIONAL
+}
+
+UTRAN-CellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- V
+
+VelocityEstimate ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVeritcalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty,
+ ...
+}
+
+HorizontalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ uncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocityWithUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocityWithUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ horizontalUncertaintySpeed INTEGER (0..255),
+ verticalUncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocityAndUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalSpeedAndBearing ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047)
+}
+
+VerticalVelocity ::= SEQUENCE {
+ veritcalSpeed INTEGER (0..255),
+ veritcalSpeedDirection VerticalSpeedDirection
+}
+
+VerticalSpeedDirection ::= ENUMERATED {
+ upward,
+ downward
+}
+
+VerticalAccuracyCode ::= INTEGER (0..127)
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Contents.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Contents.asn1
new file mode 100644
index 0000000000..c83f60f13e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Contents.asn1
@@ -0,0 +1,3383 @@
+-- RANAP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.3 PDU Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+RANAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ AccuracyFulfilmentIndicator,
+ APN,
+ BroadcastAssistanceDataDecipheringKeys,
+ LocationRelatedDataRequestType,
+ LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ DataVolumeReference,
+ CellLoadInformation,
+ AreaIdentity,
+ CN-DomainIndicator,
+ Cause,
+ ClientType,
+ CriticalityDiagnostics,
+ ChosenEncryptionAlgorithm,
+ ChosenIntegrityProtectionAlgorithm,
+ ClassmarkInformation2,
+ ClassmarkInformation3,
+ CSG-Id,
+ DL-GTP-PDU-SequenceNumber,
+ DL-N-PDU-SequenceNumber,
+ DataVolumeReportingIndication,
+ DeltaRAListofIdleModeUEs,
+ DRX-CycleLengthCoefficient,
+ EncryptionInformation,
+ EncryptionKey,
+ ExtendedRNC-ID,
+ FrequenceLayerConvergenceFlag,
+ GERAN-BSC-Container,
+ GERAN-Classmark,
+ Global-ENB-ID,
+ GlobalCN-ID,
+ GlobalRNC-ID,
+ GTP-TEI,
+ IncludeVelocity,
+ InformationExchangeID,
+ InformationExchangeType,
+ InformationRequested,
+ InformationRequestType,
+ InformationTransferID,
+ InformationTransferType,
+ InterSystemInformationTransferType,
+ IntegrityProtectionInformation,
+ IntegrityProtectionKey,
+ InterSystemInformation-TransparentContainer,
+ IPMulticastAddress,
+ IuSignallingConnectionIdentifier,
+ IuTransportAssociation,
+ KeyStatus,
+ L3-Information,
+ LAI,
+ LastKnownServiceArea,
+ MBMS-PTP-RAB-ID,
+ MBMSBearerServiceType,
+ MBMSCountingInformation,
+ MBMSCNDe-Registration,
+ MBMSHCIndicator,
+ MBMSRegistrationRequestType,
+ MBMSServiceArea,
+ MBMSSessionDuration,
+ MBMSSessionIdentity,
+ MBMSSessionRepetitionNumber,
+ NAS-PDU,
+ NAS-SequenceNumber,
+ NAS-SynchronisationIndicator,
+ NewBSS-To-OldBSS-Information,
+ NonSearchingIndication,
+ NumberOfSteps,
+ OMC-ID,
+ OldBSS-ToNewBSS-Information,
+ PagingAreaID,
+ PagingCause,
+ PDP-TypeInformation,
+ PermanentNAS-UE-ID,
+ PLMNidentity,
+ PositionData,
+ PositionDataSpecificToGERANIuMode,
+ PositioningPriority,
+ ProvidedData,
+ RAB-ID,
+ RAB-Parameters,
+ RAC,
+ RAListofIdleModeUEs,
+ RAT-Type,
+ RedirectAttemptFlag,
+ RedirectionCompleted,
+ RejectCauseValue,
+ RelocationType,
+ RequestedGANSSAssistanceData,
+ RequestType,
+ Requested-RAB-Parameter-Values,
+ ResponseTime,
+ RRC-Container,
+ SAI,
+ SAPI,
+ Service-Handover,
+ SessionUpdateID,
+ SNA-Access-Information,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceID,
+ Source-ToTarget-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SRVCC-HO-Indication,
+ SRVCC-Information,
+ SRVCC-Operation-Possible,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargetID,
+ Target-ToSource-TransparentContainer,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TemporaryUE-ID,
+ TimeToMBMSDataTransfer,
+ TMGI,
+ TracePropagationParameters,
+ TraceReference,
+ TraceType,
+ UnsuccessfullyTransmittedDataVolume,
+ TransportLayerAddress,
+ TriggerID,
+ UE-ID,
+ UESBI-Iu,
+ UL-GTP-PDU-SequenceNumber,
+ UL-N-PDU-SequenceNumber,
+ UP-ModeVersions,
+ UserPlaneMode,
+ VelocityEstimate,
+ VerticalAccuracyCode,
+ Alt-RAB-Parameters,
+ Ass-RAB-Parameters,
+ PeriodicLocationInfo,
+ SubscriberProfileIDforRFP
+FROM RANAP-IEs
+
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Container{},
+ RANAP-PRIVATE-IES,
+ RANAP-PROTOCOL-EXTENSION,
+ RANAP-PROTOCOL-IES,
+ RANAP-PROTOCOL-IES-PAIR
+FROM RANAP-Containers
+
+ maxNrOfDTs,
+ maxNrOfErrors,
+ maxNrOfIuSigConIds,
+ maxNrOfRABs,
+ maxNrOfVol,
+ maxnoofMulticastServicesPerUE,
+
+ id-AccuracyFulfilmentIndicator,
+ id-APN,
+ id-AreaIdentity,
+ id-Alt-RAB-Parameters,
+ id-Ass-RAB-Parameters,
+ id-BroadcastAssistanceDataDecipheringKeys,
+ id-LocationRelatedDataRequestType,
+ id-CN-DomainIndicator,
+ id-Cause,
+ id-ChosenEncryptionAlgorithm,
+ id-ChosenIntegrityProtectionAlgorithm,
+ id-ClassmarkInformation2,
+ id-ClassmarkInformation3,
+ id-ClientType,
+ id-CNMBMSLinkingInformation,
+ id-CriticalityDiagnostics,
+ id-CSG-Id,
+ id-DeltaRAListofIdleModeUEs,
+ id-DRX-CycleLengthCoefficient,
+ id-DirectTransferInformationItem-RANAP-RelocInf,
+ id-DirectTransferInformationList-RANAP-RelocInf,
+ id-DL-GTP-PDU-SequenceNumber,
+ id-EncryptionInformation,
+ id-EncryptionKey,
+ id-ExtendedRNC-ID,
+ id-FrequenceLayerConvergenceFlag,
+ id-GERAN-BSC-Container,
+ id-GERAN-Classmark,
+ id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item,
+ id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse,
+ id-Global-ENB-ID,
+ id-GlobalCN-ID,
+ id-GlobalCN-IDCS,
+ id-GlobalCN-IDPS,
+ id-GlobalRNC-ID,
+ id-IncludeVelocity,
+ id-InformationExchangeID,
+ id-InformationExchangeType,
+ id-InformationRequested,
+ id-InformationRequestType,
+ id-InformationTransferID,
+ id-InformationTransferType,
+ id-IntegrityProtectionInformation,
+ id-IntegrityProtectionKey,
+ id-InterSystemInformationTransferType,
+ id-InterSystemInformation-TransparentContainer,
+ id-IPMulticastAddress,
+ id-IuSigConId,
+ id-OldIuSigConId,
+ id-OldIuSigConIdCS,
+ id-OldIuSigConIdPS,
+ id-IuSigConIdItem,
+ id-IuSigConIdList,
+ id-IuTransportAssociation,
+ id-JoinedMBMSBearerServicesList,
+ id-KeyStatus,
+ id-L3-Information,
+ id-LAI,
+ id-LastKnownServiceArea,
+ id-LeftMBMSBearerServicesList,
+ id-LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ id-MBMSBearerServiceType,
+ id-MBMSCountingInformation,
+ id-MBMSCNDe-Registration,
+ id-MBMSRegistrationRequestType,
+ id-MBMSSynchronisationInformation,
+ id-MBMSServiceArea,
+ id-MBMSSessionDuration,
+ id-MBMSSessionIdentity,
+ id-MBMSSessionRepetitionNumber,
+ id-NAS-PDU,
+ id-NAS-SequenceNumber,
+ id-NewBSS-To-OldBSS-Information,
+ id-NonSearchingIndication,
+ id-NumberOfSteps,
+ id-OMC-ID,
+ id-OldBSS-ToNewBSS-Information,
+ id-PagingAreaID,
+ id-PagingCause,
+ id-PDP-TypeInformation,
+ id-PermanentNAS-UE-ID,
+ id-PositionData,
+ id-PositionDataSpecificToGERANIuMode,
+ id-PositioningPriority,
+ id-ProvidedData,
+ id-RAB-ContextItem,
+ id-RAB-ContextList,
+ id-RAB-ContextFailedtoTransferItem,
+ id-RAB-ContextFailedtoTransferList,
+ id-RAB-ContextItem-RANAP-RelocInf,
+ id-RAB-ContextList-RANAP-RelocInf,
+ id-RAB-DataForwardingItem,
+ id-RAB-DataForwardingItem-SRNS-CtxReq,
+ id-RAB-DataForwardingList,
+ id-RAB-DataForwardingList-SRNS-CtxReq,
+ id-RAB-DataVolumeReportItem,
+ id-RAB-DataVolumeReportList,
+ id-RAB-DataVolumeReportRequestItem,
+ id-RAB-DataVolumeReportRequestList,
+ id-RAB-FailedItem,
+ id-RAB-FailedList,
+ id-RAB-FailedList-EnhRelocInfoRes,
+ id-RAB-FailedItem-EnhRelocInfoRes,
+ id-RAB-FailedtoReportItem,
+ id-RAB-FailedtoReportList,
+ id-RAB-ID,
+ id-RAB-ModifyList,
+ id-RAB-ModifyItem,
+ id-RAB-Parameters,
+ id-RAB-QueuedItem,
+ id-RAB-QueuedList,
+ id-RAB-ReleaseFailedList,
+ id-RAB-ReleaseItem,
+ id-RAB-ReleasedItem-IuRelComp,
+ id-RAB-ReleaseList,
+ id-RAB-ReleasedItem,
+ id-RAB-ReleasedList,
+ id-RAB-ReleasedList-IuRelComp,
+ id-RAB-RelocationReleaseItem,
+ id-RAB-RelocationReleaseList,
+ id-RAB-SetupItem-RelocReq,
+ id-RAB-SetupItem-RelocReqAck,
+ id-RAB-SetupList-RelocReq,
+ id-RAB-SetupList-RelocReqAck,
+ id-RAB-SetupList-EnhRelocInfoReq,
+ id-RAB-SetupItem-EnhRelocInfoReq,
+ id-RAB-SetupList-EnhRelocInfoRes,
+ id-RAB-SetupItem-EnhRelocInfoRes,
+ id-RAB-SetupList-EnhancedRelocCompleteReq,
+ id-RAB-SetupItem-EnhancedRelocCompleteReq,
+ id-RAB-SetupList-EnhancedRelocCompleteRes,
+ id-RAB-SetupItem-EnhancedRelocCompleteRes,
+ id-RAB-SetupOrModifiedItem,
+ id-RAB-SetupOrModifiedList,
+ id-RAB-SetupOrModifyItem,
+ id-RAB-SetupOrModifyList,
+ id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes,
+ id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes,
+ id-RAC,
+ id-RAListofIdleModeUEs,
+ id-RAT-Type,
+ id-RedirectAttemptFlag,
+ id-RedirectionCompleted,
+ id-RedirectionIndication,
+ id-RejectCauseValue,
+ id-RelocationType,
+ id-Relocation-SourceRNC-ID,
+ id-Relocation-SourceExtendedRNC-ID,
+ id-Relocation-TargetRNC-ID,
+ id-Relocation-TargetExtendedRNC-ID,
+ id-RequestedGANSSAssistanceData,
+ id-RequestType,
+ id-ResponseTime,
+ id-SAI,
+ id-SAPI,
+ id-SelectedPLMN-ID,
+ id-SessionUpdateID,
+ id-SNA-Access-Information,
+ id-SourceBSS-ToTargetBSS-TransparentContainer,
+ id-SourceRNC-ID,
+ id-SourceExtendedRNC-ID,
+ id-SourceID,
+ id-Source-ToTarget-TransparentContainer,
+ id-SourceRNC-PDCP-context-info,
+ id-SRVCC-HO-Indication,
+ id-SRVCC-Information,
+ id-SRVCC-Operation-Possible,
+ id-TargetBSS-ToSourceBSS-TransparentContainer,
+ id-TargetID,
+ id-Target-ToSource-TransparentContainer,
+ id-TemporaryUE-ID,
+ id-TimeToMBMSDataTransfer,
+ id-TMGI,
+ id-TracePropagationParameters,
+ id-TraceReference,
+ id-TraceType,
+ id-TransportLayerAddress,
+ id-TransportLayerInformation,
+ id-TriggerID,
+ id-UE-ID,
+ id-UESBI-Iu,
+ id-UL-GTP-PDU-SequenceNumber,
+ id-UnsuccessfulLinkingList,
+ id-VelocityEstimate,
+ id-VerticalAccuracyCode,
+ id-PeriodicLocationInfo,
+ id-BroadcastGANSSAssistanceDataDecipheringKeys,
+ id-SubscriberProfileIDforRFP
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE shall always be present although its presence is optional --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY reject TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY reject TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a RNC-ID IE or eNB-ID -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE optional } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-SourceBSS-ToTargetBSS-TransparentContainer CRITICALITY ignore EXTENSION SourceBSS-ToTargetBSS-TransparentContainer PRESENCE optional }|
+-- Extension for Release 8 for SRVCC operation --
+ { ID id-SRVCC-HO-Indication CRITICALITY reject EXTENSION SRVCC-HO-Indication PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE optional } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-TargetBSS-ToSourceBSS-TransparentContainer CRITICALITY ignore EXTENSION TargetBSS-ToSourceBSS-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE optional } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional} |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional },
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY reject EXTENSION GlobalCN-ID PRESENCE optional} |
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional} |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to convey the selected PLMN id in network sharing mobility scenarios --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 6 to enable MBMS UE linking at relocation --
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore EXTENSION CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+CNMBMSLinkingInformation ::= SEQUENCE {
+ joinedMBMSBearerService-IEs JoinedMBMSBearerService-IEs,
+ iE-Extensions ProtocolExtensionContainer { {CNMBMSLinkingInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNMBMSLinkingInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ mBMS-PTP-RAB-ID MBMS-PTP-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {JoinedMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+JoinedMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE optional } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY reject TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- The SGSN may include the IE, when available to indicate the RAT from which the context request originates, to correct measurement points in SRNC. --
+ {ID id-RAT-Type CRITICALITY ignore EXTENSION RAT-Type PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE optional } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY reject TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY reject TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY reject TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY reject TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Request
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteRequestExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-OldIuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-Relocation-SourceRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-SourceExtendedRNC-ID CRITICALITY ignore TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-Relocation-TargetRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-TargetExtendedRNC-ID CRITICALITY reject TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupList-EnhancedRelocCompleteReq PRESENCE optional }
+, ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhancedRelocCompleteReq-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddressReq1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationReq1 IuTransportAssociation OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Response
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteResponseExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-SetupList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-SetupItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteRes CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddressRes1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationRes1 IuTransportAssociation OPTIONAL,
+ rab2beReleasedList RAB-ToBeReleasedList-EnhancedRelocCompleteRes OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ToBeReleasedList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Failure
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteFailureExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Confirm
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional } |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to indicate the selected plmn in GWCN configuration for network sharing non-supporting UEs --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ -- This information is mandatory for UTRAN, optional for GERAN Iu mode --
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable signalling based activation for Subscriber and Equipment Trace over Iu interface --
+ { ID id-TracePropagationParameters CRITICALITY ignore EXTENSION TracePropagationParameters PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ -- This information is optional for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-VerticalAccuracyCode CRITICALITY ignore EXTENSION VerticalAccuracyCode PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ResponseTime CRITICALITY ignore EXTENSION ResponseTime PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-PositioningPriority CRITICALITY ignore EXTENSION PositioningPriority PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ClientType CRITICALITY ignore EXTENSION ClientType PRESENCE optional } |
+-- Extension for Release 7 to allow the request of velocity over Iu --
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional } |
+-- Extension for Release 7 to allow periodic reporting over Iu --
+ { ID id-PeriodicLocationInfo CRITICALITY ignore EXTENSION PeriodicLocationInfo PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional } ,
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable report of Last Known Service Area with its Age over Iu --
+ { ID id-LastKnownServiceArea CRITICALITY ignore EXTENSION LastKnownServiceArea PRESENCE optional} |
+-- Extension for Release 5 to pass the positioning methods that have been used --
+ { ID id-PositionData CRITICALITY ignore EXTENSION PositionData PRESENCE optional}|
+-- Extension for Release 5 to pass the positioning methods that have been used for GERAN Iu mode --
+ { ID id-PositionDataSpecificToGERANIuMode CRITICALITY ignore EXTENSION PositionDataSpecificToGERANIuMode PRESENCE optional }|
+ -- This extension is optional for GERAN Iu mode only, not applicable for UTRAN --
+-- Extension for Release 6 to indicate whether the returned position estimate satisfies the requested accuracy or not --
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore EXTENSION AccuracyFulfilmentIndicator PRESENCE optional}|
+-- Extension for Release 7 to provide a velocity estimate --
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE shall be present if the CN Domain Indicator IE is set to "PS domain" -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to convey the selected PLMN id in shared networks --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore EXTENSION PermanentNAS-UE-ID PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-NAS-SequenceNumber CRITICALITY ignore EXTENSION NAS-SequenceNumber PRESENCE optional } |
+-- Extension for Release 6 to indicate rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectAttemptFlag CRITICALITY ignore EXTENSION RedirectAttemptFlag PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional } |
+-- Extension for Release 8 to support CSG --
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE optional } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE optional } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE optional } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE optional },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectionIndication CRITICALITY ignore EXTENSION RedirectionIndication PRESENCE optional }|
+-- Extension for Release 6 to indicate the MOCN rerouting is completed --
+ { ID id-RedirectionCompleted CRITICALITY ignore EXTENSION RedirectionCompleted PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+RedirectionIndication ::= ProtocolIE-Container { {RedirectionIndication-IEs} }
+
+RedirectionIndication-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-RejectCauseValue CRITICALITY ignore TYPE RejectCauseValue PRESENCE mandatory}|
+ { ID id-NAS-SequenceNumber CRITICALITY ignore TYPE NAS-SequenceNumber PRESENCE optional}|
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable the indication to the RNC which CN domain is suffering the signalling traffic overload --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional } |
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE optional } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation OPTIONAL,
+ transportLayerInformation TransportLayerInformation OPTIONAL,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {TransportLayerInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional } ,
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE optional } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE optional } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE optional } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional },
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse CRITICALITY ignore EXTENSION GERAN-Iumode-RAB-FailedList-RABAssgntResponse PRESENCE optional} ,
+ ...
+}
+
+GERAN-Iumode-RAB-FailedList-RABAssgntResponse ::= RAB-IE-ContainerList { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs} }
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item CRITICALITY ignore TYPE GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item PRESENCE mandatory },
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ gERAN-Classmark GERAN-Classmark OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ cN-DomainIndicator CN-DomainIndicator,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP ENHANCED RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Request
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-OldIuSigConIdCS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-OldIuSigConIdPS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-RAB-SetupList-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupList-EnhRelocInfoReq PRESENCE optional } |
+ { ID id-SNA-Access-Information CRITICALITY ignore TYPE SNA-Access-Information PRESENCE optional} |
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional}|
+ { ID id-SelectedPLMN-ID CRITICALITY ignore TYPE PLMNidentity PRESENCE optional }|
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore TYPE CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoReq-IEs} }
+
+RAB-SetupItem-EnhRelocInfoReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ dataForwardingInformation TNLInformationEnhRelInfoReq OPTIONAL,
+ sourceSideIuULTNLInfo TNLInformationEnhRelInfoReq OPTIONAL,
+
+ service-Handover Service-Handover OPTIONAL,
+ alt-RAB-Parameters Alt-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TNLInformationEnhRelInfoReq ::=SEQUENCE{
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RANAP-EnhancedRelocationInformationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Response
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-SetupList-EnhRelocInfoRes PRESENCE optional} |
+ { ID id-RAB-FailedList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-FailedList-EnhRelocInfoRes PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoRes-IEs} }
+
+RAB-SetupItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ dataForwardingInformation TNLInformationEnhRelInfoRes OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-FailedItem-EnhRelocInfoRes-IEs} }
+
+RAB-FailedItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-FailedItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-FailedItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+TNLInformationEnhRelInfoRes ::=SEQUENCE{
+ dl-forwardingTransportLayerAddress TransportLayerAddress,
+ dl-forwardingTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RAB MODIFICATION REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Modify Request
+--
+-- **************************************************************
+
+RAB-ModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ModifyRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ModifyRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyList CRITICALITY ignore TYPE RAB-ModifyList PRESENCE mandatory},
+ ...
+}
+
+RAB-ModifyList ::= RAB-IE-ContainerList { {RAB-ModifyItemIEs} }
+
+RAB-ModifyItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyItem CRITICALITY ignore TYPE RAB-ModifyItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ModifyItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ requested-RAB-Parameter-Values Requested-RAB-Parameter-Values,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ModifyRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION RELATED DATA ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Related Data Request
+--
+-- **************************************************************
+
+LocationRelatedDataRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationRelatedDataRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationRelatedDataRequestExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-LocationRelatedDataRequestType CRITICALITY reject TYPE LocationRelatedDataRequestType PRESENCE optional },
+ -- This IE is mandatory for UTRAN, optional for GERAN Iu Mode �-
+ ...
+}
+
+LocationRelatedDataRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable LCS support for GERAN Iu mode --
+ { ID id-LocationRelatedDataRequestTypeSpecificToGERANIuMode CRITICALITY reject EXTENSION LocationRelatedDataRequestTypeSpecificToGERANIuMode PRESENCE optional }|
+ -- The previous extension is optional for GERAN Iu Mode only, not applicable for UTRAN --
+ -- Extension for Release 7 to request GANSS Assistance Data. This IE shall be present if the Requested Location Related Data Type IE is set to
+ -- �Dedicated Assistance Data for Assisted GANSS� or `Dedicated Assistance Data for Assisted GPS and GANSS�--
+ { ID id-RequestedGANSSAssistanceData CRITICALITY reject EXTENSION RequestedGANSSAssistanceData PRESENCE conditional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Response
+--
+-- **************************************************************
+
+LocationRelatedDataResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataResponseExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-BroadcastAssistanceDataDecipheringKeys CRITICALITY ignore TYPE BroadcastAssistanceDataDecipheringKeys PRESENCE optional },
+ ...
+}
+
+LocationRelatedDataResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional }|
+ { ID id-BroadcastGANSSAssistanceDataDecipheringKeys CRITICALITY ignore EXTENSION BroadcastAssistanceDataDecipheringKeys PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Failure
+--
+-- **************************************************************
+
+LocationRelatedDataFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataFailureExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+LocationRelatedDataFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Information Transfer Indication
+--
+-- **************************************************************
+
+InformationTransferIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY reject TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-ProvidedData CRITICALITY reject TYPE ProvidedData PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional},
+ ...
+}
+
+InformationTransferIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Confirmation
+--
+-- **************************************************************
+
+InformationTransferConfirmation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferConfirmationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferConfirmationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferConfirmationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferConfirmationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Failure
+--
+-- **************************************************************
+
+InformationTransferFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferFailureExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE SPECIFIC INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Specific Information Indication
+--
+-- **************************************************************
+
+UESpecificInformationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UESpecificInformationIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UESpecificInformationIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+UESpecificInformationIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional },
+ ...
+}
+
+UESpecificInformationIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Information Transfer
+--
+-- **************************************************************
+
+DirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DirectInformationTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { { DirectInformationTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectInformationTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InterSystemInformationTransferType CRITICALITY ignore TYPE InterSystemInformationTransferType PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+DirectInformationTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK INFORMATION EXCHANGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Request
+--
+-- **************************************************************
+
+UplinkInformationExchangeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeRequestExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationExchangeType CRITICALITY reject TYPE InformationExchangeType PRESENCE mandatory } |
+ { ID id-InformationTransferType CRITICALITY reject TYPE InformationTransferType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "transfer" -- } |
+ { ID id-InformationRequestType CRITICALITY reject TYPE InformationRequestType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "request" -- } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+UplinkInformationExchangeRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Response
+--
+-- **************************************************************
+
+UplinkInformationExchangeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeResponseExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationRequested CRITICALITY ignore TYPE InformationRequested PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Failure
+--
+-- **************************************************************
+
+UplinkInformationExchangeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeFailureExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION START PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Start
+--
+-- **************************************************************
+
+MBMSSessionStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-MBMSSessionIdentity CRITICALITY ignore TYPE MBMSSessionIdentity PRESENCE optional } |
+ { ID id-MBMSBearerServiceType CRITICALITY reject TYPE MBMSBearerServiceType PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory }|
+ { ID id-RAB-Parameters CRITICALITY reject TYPE RAB-Parameters PRESENCE mandatory } |
+ { ID id-PDP-TypeInformation CRITICALITY ignore TYPE PDP-TypeInformation PRESENCE optional } |
+ { ID id-MBMSSessionDuration CRITICALITY reject TYPE MBMSSessionDuration PRESENCE mandatory } |
+ { ID id-MBMSServiceArea CRITICALITY reject TYPE MBMSServiceArea PRESENCE mandatory } |
+ { ID id-FrequenceLayerConvergenceFlag CRITICALITY ignore TYPE FrequenceLayerConvergenceFlag PRESENCE optional } |
+ { ID id-RAListofIdleModeUEs CRITICALITY ignore TYPE RAListofIdleModeUEs PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-MBMSSessionRepetitionNumber CRITICALITY ignore TYPE MBMSSessionRepetitionNumber PRESENCE optional } |
+ { ID id-TimeToMBMSDataTransfer CRITICALITY reject TYPE TimeToMBMSDataTransfer PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStartExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable MBMS counting in broadcast mode --
+ { ID id-MBMSCountingInformation CRITICALITY ignore EXTENSION MBMSCountingInformation PRESENCE optional } |
+ { ID id-MBMSSynchronisationInformation CRITICALITY ignore EXTENSION MBMSSynchronisationInformation PRESENCE optional },
+ ...
+}
+
+MBMSSynchronisationInformation ::= SEQUENCE {
+ mBMSHCIndicator MBMSHCIndicator,
+ iPMulticastAddress IPMulticastAddress,
+ gTPDLTEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {MBMSSynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSSynchronisationInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Response
+--
+-- **************************************************************
+
+MBMSSessionStartResponse::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSSessionStartResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSSessionStartResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Failure
+--
+-- **************************************************************
+
+MBMSSessionStartFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Update
+--
+-- **************************************************************
+
+MBMSSessionUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY reject TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-DeltaRAListofIdleModeUEs CRITICALITY reject TYPE DeltaRAListofIdleModeUEs PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionUpdateExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Response
+--
+-- **************************************************************
+
+MBMSSessionUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Failure
+--
+-- **************************************************************
+
+MBMSSessionUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION STOP PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Stop
+--
+-- **************************************************************
+
+MBMSSessionStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSCNDe-Registration CRITICALITY reject TYPE MBMSCNDe-Registration PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStopExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Stop Response
+--
+-- **************************************************************
+
+MBMSSessionStopResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStopResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE LINKING PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS UE Linking Request
+--
+-- **************************************************************
+
+MBMSUELinkingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-JoinedMBMSBearerServicesList CRITICALITY reject TYPE JoinedMBMSBearerService-IEs PRESENCE optional } |
+ { ID id-LeftMBMSBearerServicesList CRITICALITY reject TYPE LeftMBMSBearerService-IEs PRESENCE optional },
+ ...
+}
+
+LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ iE-Extensions ProtocolExtensionContainer { {LeftMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LeftMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE Linking Response
+--
+-- **************************************************************
+
+MBMSUELinkingResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulLinkingList CRITICALITY ignore TYPE UnsuccessfulLinking-IEs PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulLinking-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UnsuccessfulLinking-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Registration Request
+--
+-- **************************************************************
+
+MBMSRegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSRegistrationRequestType CRITICALITY reject TYPE MBMSRegistrationRequestType PRESENCE mandatory } |
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-IPMulticastAddress CRITICALITY reject TYPE IPMulticastAddress PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-APN CRITICALITY reject TYPE APN PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+MBMSRegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Response
+--
+-- **************************************************************
+
+MBMSRegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Failure
+--
+-- **************************************************************
+
+MBMSRegistrationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN DE-REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Request
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+MBMSCNDe-RegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Response
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB ESTABLISHMENT INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Establishment Indication
+--
+-- **************************************************************
+
+MBMSRABEstablishmentIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRABEstablishmentIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRABEstablishmentIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABEstablishmentIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE mandatory } ,
+ ...
+}
+
+MBMSRABEstablishmentIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB RELEASE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Release Request
+--
+-- **************************************************************
+
+MBMSRABReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+
+MBMSRABReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release
+--
+-- **************************************************************
+
+MBMSRABRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release Failure
+--
+-- **************************************************************
+
+MBMSRABReleaseFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Request
+--
+-- **************************************************************
+
+SRVCC-CSKeysRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysRequestIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+SRVCC-CSKeysRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Response
+--
+-- **************************************************************
+
+SRVCC-CSKeysResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionKey CRITICALITY reject TYPE IntegrityProtectionKey PRESENCE mandatory }|
+ { ID id-EncryptionKey CRITICALITY reject TYPE EncryptionKey PRESENCE mandatory }|
+ { ID id-SRVCC-Information CRITICALITY reject TYPE SRVCC-Information PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SRVCC-CSKeysResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Descriptions.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Descriptions.asn1
new file mode 100644
index 0000000000..a7f4aded76
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP-PDU-Descriptions.asn1
@@ -0,0 +1,619 @@
+-- RANAP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+RANAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM RANAP-CommonDataTypes
+
+ Iu-ReleaseCommand,
+ Iu-ReleaseComplete,
+ RelocationCommand,
+ RelocationPreparationFailure,
+ RelocationRequired,
+ RelocationRequest,
+ RelocationRequestAcknowledge,
+ RelocationFailure,
+ RelocationCancel,
+ RelocationCancelAcknowledge,
+ EnhancedRelocationCompleteRequest,
+ EnhancedRelocationCompleteResponse,
+ EnhancedRelocationCompleteFailure,
+ EnhancedRelocationCompleteConfirm,
+ SRNS-ContextRequest,
+ SRNS-ContextResponse,
+ SecurityModeCommand,
+ SecurityModeComplete,
+ SecurityModeReject,
+ DataVolumeReportRequest,
+ DataVolumeReport,
+ Reset,
+ ResetAcknowledge,
+ RAB-ReleaseRequest,
+ Iu-ReleaseRequest,
+ RelocationDetect,
+ RelocationComplete,
+ Paging,
+ CommonID,
+ CN-InvokeTrace,
+ CN-DeactivateTrace,
+ LocationReportingControl,
+ LocationReport,
+ InitialUE-Message,
+ DirectTransfer,
+ Overload,
+ ErrorIndication,
+ SRNS-DataForwardCommand,
+ ForwardSRNS-Context,
+ RAB-AssignmentRequest,
+ RAB-AssignmentResponse,
+ RAB-ModifyRequest,
+ PrivateMessage,
+ ResetResource,
+ ResetResourceAcknowledge,
+ RANAP-RelocationInformation,
+ RANAP-EnhancedRelocationInformationRequest,
+ RANAP-EnhancedRelocationInformationResponse,
+ LocationRelatedDataRequest,
+ LocationRelatedDataResponse,
+ LocationRelatedDataFailure,
+ InformationTransferIndication,
+ InformationTransferConfirmation,
+ InformationTransferFailure,
+ UESpecificInformationIndication,
+ DirectInformationTransfer,
+ UplinkInformationExchangeRequest,
+ UplinkInformationExchangeResponse,
+ UplinkInformationExchangeFailure,
+ MBMSSessionStart,
+ MBMSSessionStartResponse,
+ MBMSSessionStartFailure,
+ MBMSSessionUpdate,
+ MBMSSessionUpdateResponse,
+ MBMSSessionUpdateFailure,
+ MBMSSessionStop,
+ MBMSSessionStopResponse,
+ MBMSUELinkingRequest,
+ MBMSUELinkingResponse,
+ MBMSRegistrationRequest,
+ MBMSRegistrationResponse,
+ MBMSRegistrationFailure,
+ MBMSCNDe-RegistrationRequest,
+ MBMSCNDe-RegistrationResponse,
+ MBMSRABEstablishmentIndication,
+ MBMSRABReleaseRequest,
+ MBMSRABRelease,
+ MBMSRABReleaseFailure,
+ SRVCC-CSKeysRequest,
+ SRVCC-CSKeysResponse
+FROM RANAP-PDU-Contents
+
+ id-LocationRelatedData,
+ id-CN-DeactivateTrace,
+ id-CN-InvokeTrace,
+ id-CommonID,
+ id-DataVolumeReport,
+ id-DirectTransfer,
+ id-ErrorIndication,
+ id-ForwardSRNS-Context,
+ id-InformationTransfer,
+ id-InitialUE-Message,
+ id-Iu-Release,
+ id-Iu-ReleaseRequest,
+ id-LocationReport,
+ id-LocationReportingControl,
+ id-OverloadControl,
+ id-Paging,
+ id-privateMessage,
+ id-RAB-Assignment,
+ id-RAB-ReleaseRequest,
+ id-RAB-ModifyRequest,
+ id-RANAP-Relocation,
+ id-RANAPenhancedRelocation,
+ id-RelocationCancel,
+ id-RelocationComplete,
+ id-RelocationDetect,
+ id-RelocationPreparation,
+ id-RelocationResourceAllocation,
+ id-enhancedRelocationComplete,
+ id-enhancedRelocationCompleteConfirm,
+ id-Reset,
+ id-SRNS-ContextTransfer,
+ id-SRNS-DataForward,
+ id-SecurityModeControl,
+ id-ResetResource,
+ id-UESpecificInformation,
+ id-DirectInformationTransfer,
+ id-UplinkInformationExchange,
+ id-MBMSSessionStart,
+ id-MBMSSessionUpdate,
+ id-MBMSSessionStop,
+ id-MBMSUELinking,
+ id-MBMSRegistration,
+ id-MBMSCNDe-Registration-Procedure,
+ id-MBMSRABEstablishmentIndication,
+ id-MBMSRABRelease,
+ id-SRVCCPreparation
+
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ reset |
+ resetResource ,
+ ...,
+ locationRelatedData |
+ informationTransfer |
+ uplinkInformationExchange |
+ mBMSSessionStart |
+ mBMSSessionUpdate |
+ mBMSSessionStop |
+ mBMSUELinking |
+ mBMSRegistration |
+ mBMSCNDe-Registration |
+ mBMSRABRelease |
+ enhancedRelocationComplete |
+ rANAP-enhancedRelocation |
+ sRVCCPreparation}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...,
+ rAB-ModifyRequest |
+ uESpecificInformation |
+ directInformationTransfer |
+ mBMSRABEstablishmentIndication |
+ enhancedRelocationCompleteConfirm
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY reject
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY reject
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY reject
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY reject
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY reject
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY reject
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY reject
+}
+
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY reject
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY reject
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+rAB-ModifyRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ModifyRequest
+ PROCEDURE CODE id-RAB-ModifyRequest
+ CRITICALITY ignore
+}
+
+locationRelatedData RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationRelatedDataRequest
+ SUCCESSFUL OUTCOME LocationRelatedDataResponse
+ UNSUCCESSFUL OUTCOME LocationRelatedDataFailure
+ PROCEDURE CODE id-LocationRelatedData
+ CRITICALITY reject
+}
+
+informationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationTransferIndication
+ SUCCESSFUL OUTCOME InformationTransferConfirmation
+ UNSUCCESSFUL OUTCOME InformationTransferFailure
+ PROCEDURE CODE id-InformationTransfer
+ CRITICALITY reject
+}
+
+uESpecificInformation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UESpecificInformationIndication
+ PROCEDURE CODE id-UESpecificInformation
+ CRITICALITY ignore
+}
+
+directInformationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectInformationTransfer
+ PROCEDURE CODE id-DirectInformationTransfer
+ CRITICALITY ignore
+}
+
+uplinkInformationExchange RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkInformationExchangeRequest
+ SUCCESSFUL OUTCOME UplinkInformationExchangeResponse
+ UNSUCCESSFUL OUTCOME UplinkInformationExchangeFailure
+ PROCEDURE CODE id-UplinkInformationExchange
+ CRITICALITY reject
+}
+
+mBMSSessionStart RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStart
+ SUCCESSFUL OUTCOME MBMSSessionStartResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionStartFailure
+ PROCEDURE CODE id-MBMSSessionStart
+ CRITICALITY reject
+}
+
+mBMSSessionUpdate RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionUpdate
+ SUCCESSFUL OUTCOME MBMSSessionUpdateResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionUpdateFailure
+ PROCEDURE CODE id-MBMSSessionUpdate
+ CRITICALITY reject
+}
+
+mBMSSessionStop RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStop
+ SUCCESSFUL OUTCOME MBMSSessionStopResponse
+ PROCEDURE CODE id-MBMSSessionStop
+ CRITICALITY reject
+}
+
+mBMSUELinking RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSUELinkingRequest
+ OUTCOME MBMSUELinkingResponse
+ PROCEDURE CODE id-MBMSUELinking
+ CRITICALITY reject
+}
+
+mBMSRegistration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRegistrationRequest
+ SUCCESSFUL OUTCOME MBMSRegistrationResponse
+ UNSUCCESSFUL OUTCOME MBMSRegistrationFailure
+ PROCEDURE CODE id-MBMSRegistration
+ CRITICALITY reject
+}
+
+mBMSCNDe-Registration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSCNDe-RegistrationRequest
+ SUCCESSFUL OUTCOME MBMSCNDe-RegistrationResponse
+ PROCEDURE CODE id-MBMSCNDe-Registration-Procedure
+ CRITICALITY reject
+}
+
+mBMSRABEstablishmentIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABEstablishmentIndication
+ PROCEDURE CODE id-MBMSRABEstablishmentIndication
+ CRITICALITY ignore
+}
+
+mBMSRABRelease RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABReleaseRequest
+ SUCCESSFUL OUTCOME MBMSRABRelease
+ UNSUCCESSFUL OUTCOME MBMSRABReleaseFailure
+ PROCEDURE CODE id-MBMSRABRelease
+ CRITICALITY reject
+}
+enhancedRelocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteRequest
+ SUCCESSFUL OUTCOME EnhancedRelocationCompleteResponse
+ UNSUCCESSFUL OUTCOME EnhancedRelocationCompleteFailure
+ PROCEDURE CODE id-enhancedRelocationComplete
+ CRITICALITY reject
+}
+
+enhancedRelocationCompleteConfirm RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteConfirm
+ PROCEDURE CODE id-enhancedRelocationCompleteConfirm
+ CRITICALITY ignore
+}
+
+rANAP-enhancedRelocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-EnhancedRelocationInformationRequest
+ SUCCESSFUL OUTCOME RANAP-EnhancedRelocationInformationResponse
+ PROCEDURE CODE id-RANAPenhancedRelocation
+ CRITICALITY reject
+}
+
+sRVCCPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRVCC-CSKeysRequest
+ OUTCOME SRVCC-CSKeysResponse
+ PROCEDURE CODE id-SRVCCPreparation
+ CRITICALITY reject
+}
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAP.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAP.asn1
new file mode 100644
index 0000000000..55fb58b163
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAP.asn1
@@ -0,0 +1,3237 @@
+RANAP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+-- RANAP-CommonDataTypes { object identifier to be allocated }--
+-- 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, outcome }
+
+-- END
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+-- RANAP-Constants { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-CN-InformationBroadcast INTEGER ::= 8
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 1000
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPieces INTEGER ::= 16
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfVol INTEGER ::= 2
+
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-BroadcastInformationPiece INTEGER ::= 1
+id-CN-BroadcastInformationPieceList INTEGER ::= 2
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-SourceRNC-ToTargetRNC-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-TargetRNC-ToSourceRNC-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+
+-- END **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+-- RANAP-Containers { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- END **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+-- RANAP-IEs { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- A
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101)
+
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ change-of-ciphering-and-or-integrity-protection-is-not-supported (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bitr-ate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-report-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40)
+} (1..64)
+
+CauseNon-Standard ::= INTEGER (129..256)
+
+CauseTransmissionNetwork ::= INTEGER {
+ logical-error-unknown-iu-transport-association (65)
+} (65..80)
+
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ criticalityResponse Criticality OPTIONAL,
+ iEsCriticalityResponses CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ criticalityResponse Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+
+CN-BroadcastArea ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (2..12)
+DSCH-ID ::= INTEGER (0..255)
+
+-- E
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+Event ::= ENUMERATED {
+ stop,
+ direct,
+ change-of-servicearea,
+ ...
+}
+
+-- F
+-- G
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+-- Reference: xx.xxx
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+-- I
+InformationIdentity ::= INTEGER (0..255)
+
+InformationPriority ::= INTEGER (0..15)
+
+InformationControl ::= ENUMERATED {
+ on,
+ off
+}
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IntegrityProtectionAlgorithm ::= INTEGER { standard-UMTS-integrity-algorithm-UIA1 (0) } (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MCC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+MNC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+-- N
+
+
+NAS-BroadcastInformation ::= OCTET STRING
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM TS 12.20
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ speech-call,
+ cs-data-call,
+ ps-data-call,
+ sms,
+ ...
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value is used for OSP:IHOSS -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMN-ID ::= TBCD-STRING (SIZE (3))
+
+Pre-emptionCapability ::= ENUMERATED {
+ can-not-trigger-pre-emption,
+ can-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-vulnerable-to-pre-emption,
+ vulnerable-to-pre-emption
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE is only present when traffic class indicates Interactiv --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber ::= INTEGER (0..255)
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-coordinates,
+ ...
+}
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ -- To be used if Geographical Coordinates shall be reported with a requested accuracy. --
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+RRC-Container ::= OCTET STRING
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ normal-priority,
+ low-priority,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL
+ -- This IE is only present for RABs that have predefined SDU size(s) --,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL
+ -- At least either of subflowSDU-Size or rABsubflowCombinationBitRate --
+ -- shall be present when SDUformatInformationParameter is present --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE is not present when DeliveryOfErroneousSDU is set to no-error-detection-consideration --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL
+ -- When signalled, this IE indicates that the RAB is rate controllable --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID, -- If UMTS target
+ sAI SAI, -- if GSM target
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ cipheringKey EncryptionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ d-RNTI D-RNTI OPTIONAL
+ -- Included for SRNS Relocation without UE involvement --,
+ targetCellId TargetCellId OPTIONAL
+ -- Included for SRNS Relocation with UE involvement --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL
+ -- Included for SRNS Relocation without UE involvement and --
+ -- if RABs are carried on DCH, USCH or DSCH transport channels --,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID, -- If UMTS target
+ cGI CGI, -- If GSM target
+ ...
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL
+ -- Must always be present towards the PS domain and never towards the CS domain --,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ dSCH-ID DSCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ uSCH-ID USCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+-- U
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...
+}
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+-- END **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+-- RANAP-PDU-Contents { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+CN-BroadcastInfPiece-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfPieces, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group is only present if data volume reporting for PS domain is required -- } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain when the release was initiated by UTRAN -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY ignore TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY ignore TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be present when initiating relocation of SRNS -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY reject TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group if applicable is only present for RABs towards the PS domain -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE is only present if available at the sending side --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- Must be included if applicapble and if not sent via the other CN -- } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY ignore TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY ignore TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INFORMATION BROADCAST
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Information Broadcast Request
+--
+-- **************************************************************
+
+CN-InformationBroadcastRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRequestExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CN-BroadcastInformationPieceList CRITICALITY ignore TYPE CN-BroadcastInformationPieceList PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPieceList ::= CN-BroadcastInfPiece-IE-ContainerList { {CN-BroadcastInformationPieceIEs} }
+
+CN-BroadcastInformationPieceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-BroadcastInformationPiece CRITICALITY ignore TYPE CN-BroadcastInformationPiece PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPiece ::= SEQUENCE {
+ informationIdentity InformationIdentity,
+ nAS-BroadcastInformation NAS-BroadcastInformation OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ cN-BroadcastArea CN-BroadcastArea OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationPriority InformationPriority OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationControl InformationControl,
+ iE-Extensions ProtocolExtensionContainer { {CN-BroadcastInformationPiece-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CN-BroadcastInformationPiece-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CN-InformationBroadcastRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Confirm
+--
+-- **************************************************************
+
+CN-InformationBroadcastConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Reject
+--
+-- **************************************************************
+
+CN-InformationBroadcastReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRejectExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE mandatory } |
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present for RABs towards the PS domain -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE conditional
+ -- This IE is always used in downlink direction-- },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional } |
+ { ID id-IuTransportAssociation CRITICALITY ignore TYPE IuTransportAssociation PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction when message is sent connectionless -- },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain -- },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation
+ -- This IE is only present for RABs towards the PS domain -- OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ iuTransportAssociation IuTransportAssociation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if the RAB has been modified and --
+ -- RAB data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- END
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+-- RANAP-PDU-Descriptions { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ cN-InformationBroadcast |
+ reset |
+ resetResource ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY ignore
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY ignore
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY ignore
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY ignore
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY ignore
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY ignore
+}
+
+cN-InformationBroadcast RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InformationBroadcastRequest
+ SUCCESSFUL OUTCOME CN-InformationBroadcastConfirm
+ UNSUCCESSFUL OUTCOME CN-InformationBroadcastReject
+ PROCEDURE CODE id-CN-InformationBroadcast
+ CRITICALITY ignore
+}
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY ignore
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY ignore
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY ignore
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAPSET.set.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/RANAPSET.set.asn1
new file mode 100644
index 0000000000..b40936514e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAPSET.set.asn1
@@ -0,0 +1,6 @@
+RANAP-CommonDataTypes.asn1
+RANAP-Constants.asn1
+RANAP-Containers.asn1
+RANAP-IEs.asn1
+RANAP-PDU-Contents.asn1
+RANAP-PDU-Descriptions.asn1
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/RANAPextract1.asn b/lib/asn1/test/asn1_bin_SUITE_data/RANAPextract1.asn
new file mode 100644
index 0000000000..2f28cb7384
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/RANAPextract1.asn
@@ -0,0 +1,142 @@
+RANAPextract1 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+
+InitiatingMessage2 ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES-2}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode})
+}
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY notify
+}
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release-3,
+ &criticality reject
+ }
+
+
+-- OTP-5466
+testObject RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify
+}
+
+testObject2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test2
+ CRITICALITY notify
+}
+-- OTP-5466
+
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+-- additional definition R-E-P and change in RANAP-ELEMENTARY-PROCEDURES-2
+-- from RANAP-ELEMENTARY-PROCEDURE to R-E-P to test OTP-4441
+
+R-E-P ::= RANAP-ELEMENTARY-PROCEDURE
+
+-- add for RANAP-ELEMENTARY-PROCEDURES-2 and object3 OTP-4275
+RANAP-ELEMENTARY-PROCEDURES-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...,
+ object3
+}
+
+
+-- OTP-5466
+RANAP-ELEMENTARY-PROCEDURES-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify}
+}
+
+RANAP-ELEMENTARY-PROCEDURES-4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release|
+ testObject,
+ ...,
+ relocationPreparation |
+ testObject2
+}
+-- OTP-5466
+
+
+
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-Iu-Release-3 INTEGER ::= 3
+-- OTP-5466
+id-test INTEGER ::= 4
+id-test2 INTEGER ::= 5
+-- OTP-5466
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ROSE.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/ROSE.asn1
new file mode 100644
index 0000000000..2fefae3caf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ROSE.asn1
@@ -0,0 +1,449 @@
+ROSE DEFINITIONS IMPLICIT TAGS ::=
+
+
+BEGIN
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Real.py b/lib/asn1/test/asn1_bin_SUITE_data/Real.py
new file mode 100644
index 0000000000..6b7a748b4e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Real.py
@@ -0,0 +1,31 @@
+Real DEFINITIONS ::=
+BEGIN
+
+-- F.2.4.1
+-- Use a real type to model an approximate number.
+-- EXAMPLE
+
+AngleInRadians ::= REAL
+
+pi REAL ::=
+ {mantissa 3141592653589793238462643383279, base 10, exponent -30}
+
+-- F.2.4.2
+-- Application designers may wish to ensure full interworking with real
+-- values despite
+-- differences in floating point hardware, and in implementation
+-- decisions to use
+-- (for example) single or double length floating point for an application.
+-- This can be achieved by the following:
+ App-X-Real ::= REAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2),
+ exponent (-125..128) } )
+
+-- Senders shall not transmit values outside these ranges
+-- and conforming receivers shall be capable of receiving
+-- and processing all values in these ranges.
+
+ girth App-X-Real ::= {mantissa 16, base 2, exponent 1}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
new file mode 100644
index 0000000000..7dcf4fda0e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
@@ -0,0 +1,203 @@
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS OPERATION, ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+END -- end of generic ROS PDU definitions
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Information-Objects.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Information-Objects.asn1
new file mode 100644
index 0000000000..b467c0a754
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Information-Objects.asn1
@@ -0,0 +1,130 @@
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS emptyBind, emptyUnbind
+FROM Remote-Operations-Useful-Definitions
+{joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+END -- end of Information Object specifications
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Merged.set.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Merged.set.asn1
new file mode 100644
index 0000000000..c321464a2e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Merged.set.asn1
@@ -0,0 +1,3 @@
+Remote-Operations-Generic-ROS-PDUs.asn1
+Remote-Operations-Information-Objects.asn1
+Remote-Operations-Useful-Definitions.asn1
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Useful-Definitions.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Useful-Definitions.asn1
new file mode 100644
index 0000000000..989c23dd5f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Remote-Operations-Useful-Definitions.asn1
@@ -0,0 +1,149 @@
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) useful-definitions(7) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS
+
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs
+ {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/S1AP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..3ddbf35a2f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-CommonDataTypes.asn
@@ -0,0 +1,35 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Constants.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Constants.asn
new file mode 100644
index 0000000000..ff4e8779cd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Constants.asn
@@ -0,0 +1,251 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCSGs INTEGER ::= 256
+maxNrOfE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxNrOfErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCells INTEGER ::= 16
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Containers.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Containers.asn
new file mode 100644
index 0000000000..63883f424c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-Containers.asn
@@ -0,0 +1,201 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_bin_SUITE_data/S1AP-IEs.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-IEs.asn
new file mode 100644
index 0000000000..719bf1359b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-IEs.asn
@@ -0,0 +1,1178 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ maxNrOfCSGs,
+ maxNrOfE-RABs,
+ maxNrOfErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofTACs,
+ maxnoofCells,
+ maxnoofCellID,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+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,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+-- E
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- H
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ 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,
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+-- I
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+
+-- M
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberofBroadcast ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OverloadAction ::= ENUMERATED {
+reject-non-emergency-mo-dt,
+reject-all-rrc-cr-signalling,
+permit-emergency-sessions-only,
+ ...
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PLMNidentity ::= TBCD-STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RAC ::= OCTET STRING (SIZE (1))
+
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4096)
+
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...
+}
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...
+}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- V
+-- W
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Y
+-- Z
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Contents.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..e9762a2b62
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Contents.asn
@@ -0,0 +1,2083 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ UEAggregateMaximumBitrate,
+ Cause,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ CNDomain,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ GTP-TEID,
+ GUMMEI,
+ HandoverRestrictionList,
+ HandoverType,
+ MMEname,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PLMNidentity,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause
+
+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-uEaggregateMaximumBitrate,
+ id-Cause,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-CNDomain,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-NAS-DownlinkCount,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxNrOfErrors,
+ maxNrOfE-RABs,
+ maxNrOfIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY 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-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-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } |
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional } |
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs 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-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY 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-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } |
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- },
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs 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-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } |
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-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 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-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY 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 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs 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-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs 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-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory },
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs 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-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs 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-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory }|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional },
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs 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-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory } |
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } |
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } |
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } |
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional },
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} |
+
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs 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-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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-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-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} |
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} |
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} |
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI 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 }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME Configuration UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnelingIEs 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-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } |
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnelingIEs 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-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } |
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } |
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } |
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs 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-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs 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-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+...
+}
+
+CellTrafficTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs 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-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs 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},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY reject TYPE BroadcastCompletedAreaList PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Descriptions.asn b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..46667cac2d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,548 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkNASTransport,
+ DownlinkS1cdma2000tunneling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UplinkNASTransport,
+ UplinkS1cdma2000tunneling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkNASTransport,
+ id-DownlinkS1cdma2000tunneling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-uplinkNASTransport,
+ id-UplinkS1cdma2000tunneling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer
+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 |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunneling |
+ uplinkS1cdma2000tunneling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ 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
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunneling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunneling
+ PROCEDURE CODE id-UplinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+INITIATING MESSAGE CellTrafficTrace
+PROCEDURE CODE id-CellTrafficTrace
+CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SOpttest.asn b/lib/asn1/test/asn1_bin_SUITE_data/SOpttest.asn
new file mode 100644
index 0000000000..498d3ebec1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SOpttest.asn
@@ -0,0 +1,30 @@
+SOpttest DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+S ::= SEQUENCE {
+ a [0] A,
+ b [1] B OPTIONAL,
+ c [2] C OPTIONAL
+
+ }
+
+
+A ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] EXPLICIT INTEGER OPTIONAL,
+ scriptAttribute2 [2] EXPLICIT INTEGER OPTIONAL
+ }
+
+B ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+C ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SSL-PKIX.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SSL-PKIX.asn1
new file mode 100644
index 0000000000..31d78bebbe
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SSL-PKIX.asn1
@@ -0,0 +1,704 @@
+SSL-PKIX {iso(1) identified-organization(3) dod(6) internet(1)
+ private(4) enterprices(1) ericsson(193) otp(19) ssl(10)
+ pkix1(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL
+
+IMPORTS
+ -- Certificate (parts of)
+ Version,
+ CertificateSerialNumber,
+ --AlgorithmIdentifier,
+ Validity,
+ UniqueIdentifier,
+
+ -- AttribyteTypeAndValue
+ Name,
+ AttributeType,
+ id-at-name,
+ id-at-surname,
+ id-at-givenName,
+ id-at-initials,
+ id-at-generationQualifier, X520name,
+ id-at-commonName, X520CommonName,
+ id-at-localityName, X520LocalityName,
+ id-at-stateOrProvinceName, X520StateOrProvinceName,
+ id-at-organizationName, X520OrganizationName,
+ id-at-organizationalUnitName, X520OrganizationalUnitName,
+ id-at-title, X520Title,
+ id-at-dnQualifier, X520dnQualifier,
+ id-at-countryName, X520countryName,
+ id-at-serialNumber, X520SerialNumber,
+ id-at-pseudonym, X520Pseudonym,
+ id-domainComponent, DomainComponent,
+ id-emailAddress, EmailAddress,
+
+ -- Extension Attributes
+ common-name, CommonName,
+ teletex-common-name, TeletexCommonName,
+ teletex-personal-name, TeletexPersonalName,
+ pds-name, PDSName,
+ physical-delivery-country-name, PhysicalDeliveryCountryName,
+ postal-code, PostalCode,
+ physical-delivery-office-name, PhysicalDeliveryOfficeName,
+ physical-delivery-office-number, PhysicalDeliveryOfficeNumber,
+ extension-OR-address-components, ExtensionORAddressComponents,
+ physical-delivery-personal-name, PhysicalDeliveryPersonalName,
+ physical-delivery-organization-name, PhysicalDeliveryOrganizationName,
+ extension-physical-delivery-address-components,
+ ExtensionPhysicalDeliveryAddressComponents,
+ unformatted-postal-address, UnformattedPostalAddress,
+ street-address, StreetAddress,
+ post-office-box-address, PostOfficeBoxAddress,
+ poste-restante-address, PosteRestanteAddress,
+ unique-postal-name, UniquePostalName,
+ local-postal-attributes, LocalPostalAttributes,
+ extended-network-address, ExtendedNetworkAddress,
+ terminal-type, TerminalType,
+ teletex-domain-defined-attributes, TeletexDomainDefinedAttributes
+
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18) }
+
+ -- Extensions
+ id-ce-authorityKeyIdentifier, AuthorityKeyIdentifier,
+ id-ce-subjectKeyIdentifier, SubjectKeyIdentifier,
+ id-ce-keyUsage, KeyUsage,
+ id-ce-privateKeyUsagePeriod, PrivateKeyUsagePeriod,
+ id-ce-certificatePolicies, CertificatePolicies,
+ id-ce-policyMappings, PolicyMappings,
+ id-ce-subjectAltName, SubjectAltName,
+ id-ce-issuerAltName, IssuerAltName,
+ id-ce-subjectDirectoryAttributes, SubjectDirectoryAttributes,
+ id-ce-basicConstraints, BasicConstraints,
+ id-ce-nameConstraints, NameConstraints,
+ id-ce-policyConstraints, PolicyConstraints,
+ id-ce-cRLDistributionPoints, CRLDistributionPoints,
+ id-ce-extKeyUsage, ExtKeyUsageSyntax,
+ id-ce-inhibitAnyPolicy, InhibitAnyPolicy,
+ id-ce-freshestCRL, FreshestCRL,
+ id-pe-authorityInfoAccess, AuthorityInfoAccessSyntax,
+ id-pe-subjectInfoAccess, SubjectInfoAccessSyntax,
+ id-ce-cRLNumber, CRLNumber,
+ id-ce-issuingDistributionPoint, IssuingDistributionPoint,
+ id-ce-deltaCRLIndicator, BaseCRLNumber,
+ id-ce-cRLReasons, CRLReason,
+ id-ce-certificateIssuer, CertificateIssuer,
+ id-ce-holdInstructionCode, HoldInstructionCode,
+ id-ce-invalidityDate, InvalidityDate
+
+ FROM PKIX1Implicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-implicit(19) }
+
+ --Keys and Signatures
+ id-dsa, Dss-Parms, DSAPublicKey,
+ id-dsa-with-sha1,
+ md2WithRSAEncryption,
+ md5WithRSAEncryption,
+ sha1WithRSAEncryption,
+ rsaEncryption, RSAPublicKey,
+ dhpublicnumber, DomainParameters, DHPublicKey,
+ id-keyExchangeAlgorithm, KEA-Parms-Id, --KEA-PublicKey,
+ ecdsa-with-SHA1,
+ prime-field, Prime-p,
+ characteristic-two-field, --Characteristic-two,
+ gnBasis,
+ tpBasis, Trinomial,
+ ppBasis, Pentanomial,
+ id-ecPublicKey, EcpkParameters, ECPoint
+ FROM PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) };
+
+--
+-- Certificate
+--
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm SignatureAlgorithm,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature SignatureAlgorithm,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+
+-- Attribute type and values
+--
+
+ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE-TYPE-AND-VALUE-CLASS.&id
+ ({SupportedAttributeTypeAndValues}),
+ value ATTRIBUTE-TYPE-AND-VALUE-CLASS.&Type
+ ({SupportedAttributeTypeAndValues}{@type}) }
+
+SupportedAttributeTypeAndValues ATTRIBUTE-TYPE-AND-VALUE-CLASS ::=
+ { name | surname | givenName | initials | generationQualifier |
+ commonName | localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | dnQualifier | countryName |
+ serialNumber | pseudonym | domainComponent | emailAddress }
+
+name ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-name
+ TYPE X520name }
+
+surname ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-surname
+ TYPE X520name }
+
+givenName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-givenName
+ TYPE X520name }
+
+initials ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-initials
+ TYPE X520name }
+
+generationQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-generationQualifier
+ TYPE X520name }
+
+commonName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-commonName
+ TYPE X520CommonName }
+
+localityName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-localityName
+ TYPE X520LocalityName }
+
+stateOrProvinceName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-stateOrProvinceName
+ TYPE X520StateOrProvinceName }
+
+organizationName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationName
+ TYPE X520OrganizationName }
+
+organizationalUnitName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationalUnitName
+ TYPE X520OrganizationalUnitName }
+
+title ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-title
+ TYPE X520Title }
+
+dnQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-dnQualifier
+ TYPE X520dnQualifier }
+
+countryName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-countryName
+ TYPE X520countryName }
+
+serialNumber ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-serialNumber
+ TYPE X520SerialNumber }
+
+pseudonym ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-pseudonym
+ TYPE X520Pseudonym }
+
+domainComponent ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-domainComponent
+ TYPE DomainComponent }
+
+emailAddress ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-emailAddress
+ TYPE EmailAddress }
+
+--
+-- Signature and Public Key Algorithms
+--
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm SEQUENCE {
+ algo PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@.algo})
+ OPTIONAL
+ },
+ subjectPublicKey PUBLIC-KEY-ALGORITHM-CLASS.&PublicKeyType
+ ({SupportedPublicKeyAlgorithms}{@algorithm.algo}) }
+
+-- The following is needed for conversion of SubjectPublicKeyInfo.
+
+SubjectPublicKeyInfo-Any ::= SEQUENCE {
+ algorithm PublicKeyAlgorithm,
+ subjectPublicKey ANY }
+
+
+SIGNATURE-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+PUBLIC-KEY-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL,
+ &PublicKeyType OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type]
+ [PUBLIC-KEY-TYPE &PublicKeyType] }
+
+SignatureAlgorithm ::= SEQUENCE {
+ algorithm SIGNATURE-ALGORITHM-CLASS.&id
+ ({SupportedSignatureAlgorithms}),
+ parameters SIGNATURE-ALGORITHM-CLASS.&Type
+ ({SupportedSignatureAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SignatureAlgorithm-Any ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY OPTIONAL }
+
+PublicKeyAlgorithm ::= SEQUENCE {
+ algorithm PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SupportedSignatureAlgorithms SIGNATURE-ALGORITHM-CLASS ::= {
+ dsa-with-sha1 | md2-with-rsa-encryption |
+ md5-with-rsa-encryption | sha1-with-rsa-encryption |
+ ecdsa-with-sha1 }
+
+SupportedPublicKeyAlgorithms PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ dsa | rsa-encryption | dh | kea | ec-public-key }
+
+ -- DSA Keys and Signatures
+
+ -- SubjectPublicKeyInfo:
+
+ dsa PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-dsa
+ TYPE Dss-Parms -- XXX Must be OPTIONAL
+ PUBLIC-KEY-TYPE DSAPublicKey }
+
+ -- Certificate.signatureAlgorithm
+
+ dsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID id-dsa-with-sha1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ md2-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md2WithRSAEncryption
+ TYPE NULL }
+
+ md5-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md5WithRSAEncryption
+ TYPE NULL }
+
+ sha1-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID sha1WithRSAEncryption
+ TYPE NULL }
+
+ -- Certificate.signature
+ -- See PKCS #1 (RFC 2313). XXX
+
+ -- SubjectPublicKeyInfo:
+
+ rsa-encryption PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID rsaEncryption
+ TYPE NULL
+ PUBLIC-KEY-TYPE RSAPublicKey }
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ dh PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID dhpublicnumber
+ TYPE DomainParameters
+ PUBLIC-KEY-TYPE DHPublicKey }
+
+ -- There are no Diffie-Hellman signature algorithms
+
+ --
+ -- KEA Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ KEA-PublicKey ::= INTEGER
+
+ kea PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-keyExchangeAlgorithm
+ TYPE KEA-Parms-Id
+ PUBLIC-KEY-TYPE KEA-PublicKey }
+
+ -- There are no KEA signature algorithms
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ ecdsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID ecdsa-with-SHA1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ FIELD-ID-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType FIELD-ID-CLASS.&id({SupportedFieldIds}),
+ parameters FIELD-ID-CLASS.&Type({SupportedFieldIds}{@fieldType}) }
+
+ SupportedFieldIds FIELD-ID-CLASS ::= {
+ field-prime-field | field-characteristic-two }
+
+ field-prime-field FIELD-ID-CLASS ::= {
+ ID prime-field
+ TYPE Prime-p }
+
+ CHARACTERISTIC-TWO-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ Characteristic-two ::= SEQUENCE { -- Finite field
+ m INTEGER, -- Field size 2^m
+ basis CHARACTERISTIC-TWO-CLASS.&id({SupportedCharacteristicTwos}),
+ parameters CHARACTERISTIC-TWO-CLASS.&Type
+ ({SupportedCharacteristicTwos}{@basis}) }
+
+ SupportedCharacteristicTwos CHARACTERISTIC-TWO-CLASS ::= {
+ gn-basis | tp-basis | pp-basis }
+
+ field-characteristic-two FIELD-ID-CLASS ::= {
+ ID characteristic-two-field
+ TYPE Characteristic-two }
+
+ gn-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID gnBasis
+ TYPE NULL }
+
+ tp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID tpBasis
+ TYPE Trinomial }
+
+ pp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID ppBasis
+ TYPE Pentanomial }
+
+ -- SubjectPublicKeyInfo.algorithm
+
+ ec-public-key PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-ecPublicKey
+ TYPE EcpkParameters
+ PUBLIC-KEY-TYPE ECPoint }
+
+--
+-- Extension Attributes
+--
+
+EXTENSION-ATTRIBUTE-CLASS ::= CLASS {
+ &id INTEGER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ExtensionAttributes ::= SET SIZE (1..MAX) OF ExtensionAttribute
+
+-- XXX Below we should have extension-attribute-type and extension-
+-- attribute-value but Erlang ASN1 does not like it.
+ExtensionAttribute ::= SEQUENCE {
+ extensionAttributeType [0] IMPLICIT EXTENSION-ATTRIBUTE-CLASS.&id
+ ({SupportedExtensionAttributes}),
+ extensionAttributeValue [1] EXTENSION-ATTRIBUTE-CLASS.&Type
+ ({SupportedExtensionAttributes}{@extensionAttributeType}) }
+
+SupportedExtensionAttributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ x400-common-name |
+ x400-teletex-common-name |
+ x400-teletex-personal-name |
+ x400-pds-name |
+ x400-physical-delivery-country-name |
+ x400-postal-code |
+ x400-physical-delivery-office-name |
+ x400-physical-delivery-office-number |
+ x400-extension-OR-address-components |
+ x400-physical-delivery-personal-name |
+ x400-physical-delivery-organization-name |
+ x400-extension-physical-delivery-address-components |
+ x400-unformatted-postal-address |
+ x400-street-address |
+ x400-post-office-box-address |
+ x400-poste-restante-address |
+ x400-unique-postal-name |
+ x400-local-postal-attributes |
+ x400-extended-network-address |
+ x400-terminal-type |
+ x400-teletex-domain-defined-attributes }
+
+-- Extension types and attribute values
+
+x400-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID common-name
+ TYPE CommonName }
+
+x400-teletex-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-common-name
+ TYPE TeletexCommonName }
+
+x400-teletex-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-personal-name
+ TYPE TeletexPersonalName }
+
+x400-pds-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID pds-name
+ TYPE PDSName }
+
+x400-physical-delivery-country-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-country-name
+ TYPE PhysicalDeliveryCountryName }
+
+x400-postal-code EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID postal-code
+ TYPE PostalCode }
+
+x400-physical-delivery-office-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-name
+ TYPE PhysicalDeliveryOfficeName }
+
+x400-physical-delivery-office-number EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-number
+ TYPE PhysicalDeliveryOfficeNumber }
+
+x400-extension-OR-address-components EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-OR-address-components
+ TYPE ExtensionORAddressComponents }
+
+x400-physical-delivery-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-personal-name
+ TYPE PhysicalDeliveryPersonalName }
+
+x400-physical-delivery-organization-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-organization-name
+ TYPE PhysicalDeliveryOrganizationName }
+
+x400-extension-physical-delivery-address-components
+ EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-physical-delivery-address-components
+ TYPE ExtensionPhysicalDeliveryAddressComponents }
+
+x400-unformatted-postal-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unformatted-postal-address
+ TYPE UnformattedPostalAddress }
+
+x400-street-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID street-address
+ TYPE StreetAddress }
+
+x400-post-office-box-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID post-office-box-address
+ TYPE PostOfficeBoxAddress }
+
+x400-poste-restante-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID poste-restante-address
+ TYPE PosteRestanteAddress }
+
+x400-unique-postal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unique-postal-name
+ TYPE UniquePostalName }
+
+x400-local-postal-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID local-postal-attributes
+ TYPE LocalPostalAttributes }
+
+x400-extended-network-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extended-network-address
+ TYPE ExtendedNetworkAddress }
+
+x400-terminal-type EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID terminal-type
+ TYPE TerminalType }
+
+x400-teletex-domain-defined-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-domain-defined-attributes
+ TYPE TeletexDomainDefinedAttributes }
+
+-- Extensions
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+EXTENSION-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL}
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+Extension ::= SEQUENCE {
+ extnID EXTENSION-CLASS.&id({SupportedExtensions}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue EXTENSION-CLASS.&Type({SupportedExtensions}{@extnID}) }
+
+-- The following is needed for conversion between Extension and Extension-Cd
+
+ObjId ::= OBJECT IDENTIFIER
+Boolean ::= BOOLEAN
+Any ::= ANY
+
+Extension-Any ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue ANY }
+
+SupportedExtensions EXTENSION-CLASS ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier | keyUsage | privateKeyUsagePeriod |
+ certificatePolicies | policyMappings | subjectAltName |
+ issuerAltName | subjectDirectoryAttributes | basicConstraints |
+ nameConstraints | policyConstraints | cRLDistributionPoints |
+ extKeyUsage | inhibitAnyPolicy | freshestCRL | authorityInfoAccess |
+ subjectInfoAccess | cRLNumber | issuingDistributionPoint |
+ deltaCRLIndicator | cRLReasons | certificateIssuer |
+ holdInstructionCode | invalidityDate }
+
+authorityKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-authorityKeyIdentifier
+ TYPE AuthorityKeyIdentifier }
+
+subjectKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-subjectKeyIdentifier
+ TYPE SubjectKeyIdentifier }
+
+keyUsage EXTENSION-CLASS ::= {
+ ID id-ce-keyUsage
+ TYPE KeyUsage }
+
+privateKeyUsagePeriod EXTENSION-CLASS ::= {
+ ID id-ce-privateKeyUsagePeriod
+ TYPE PrivateKeyUsagePeriod }
+
+certificatePolicies EXTENSION-CLASS ::= {
+ ID id-ce-certificatePolicies
+ TYPE CertificatePolicies }
+
+policyMappings EXTENSION-CLASS ::= {
+ ID id-ce-policyMappings
+ TYPE PolicyMappings }
+
+subjectAltName EXTENSION-CLASS ::= {
+ ID id-ce-subjectAltName
+ TYPE SubjectAltName }
+
+issuerAltName EXTENSION-CLASS ::= {
+ ID id-ce-issuerAltName
+ TYPE IssuerAltName }
+
+subjectDirectoryAttributes EXTENSION-CLASS ::= {
+ ID id-ce-subjectDirectoryAttributes
+ TYPE SubjectDirectoryAttributes }
+
+basicConstraints EXTENSION-CLASS ::= {
+ ID id-ce-basicConstraints
+ TYPE BasicConstraints }
+
+nameConstraints EXTENSION-CLASS ::= {
+ ID id-ce-nameConstraints
+ TYPE NameConstraints }
+
+policyConstraints EXTENSION-CLASS ::= {
+ ID id-ce-policyConstraints
+ TYPE PolicyConstraints }
+
+cRLDistributionPoints EXTENSION-CLASS ::= {
+ ID id-ce-cRLDistributionPoints
+ TYPE CRLDistributionPoints }
+
+extKeyUsage EXTENSION-CLASS ::= {
+ ID id-ce-extKeyUsage
+ TYPE ExtKeyUsageSyntax }
+
+inhibitAnyPolicy EXTENSION-CLASS ::= {
+ ID id-ce-inhibitAnyPolicy
+ TYPE InhibitAnyPolicy }
+
+freshestCRL EXTENSION-CLASS ::= {
+ ID id-ce-freshestCRL
+ TYPE FreshestCRL }
+
+authorityInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-authorityInfoAccess
+ TYPE AuthorityInfoAccessSyntax }
+
+subjectInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-subjectInfoAccess
+ TYPE SubjectInfoAccessSyntax }
+
+cRLNumber EXTENSION-CLASS ::= {
+ ID id-ce-cRLNumber
+ TYPE CRLNumber }
+
+issuingDistributionPoint EXTENSION-CLASS ::= {
+ ID id-ce-issuingDistributionPoint
+ TYPE IssuingDistributionPoint }
+
+deltaCRLIndicator EXTENSION-CLASS ::= {
+ ID id-ce-deltaCRLIndicator
+ TYPE BaseCRLNumber }
+
+cRLReasons EXTENSION-CLASS ::= {
+ ID id-ce-cRLReasons
+ TYPE CRLReason }
+
+certificateIssuer EXTENSION-CLASS ::= {
+ ID id-ce-certificateIssuer
+ TYPE CertificateIssuer }
+
+holdInstructionCode EXTENSION-CLASS ::= {
+ ID id-ce-holdInstructionCode
+ TYPE HoldInstructionCode }
+
+invalidityDate EXTENSION-CLASS ::= {
+ ID id-ce-invalidityDate
+ TYPE InvalidityDate }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..25f20e5c01
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SelectionType.asn b/lib/asn1/test/asn1_bin_SUITE_data/SelectionType.asn
new file mode 100644
index 0000000000..d7bfbf1788
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SelectionType.asn
@@ -0,0 +1,59 @@
+SelectionType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Element ::= CHOICE {bool BOOLEAN,
+ atomic-no INTEGER(1..103),
+ bs BIT STRING,
+ os OCTET STRING,
+ null NULL,
+ oi OBJECT IDENTIFIER,
+ od ObjectDescriptor,
+ ext EXTERNAL,
+ ePDV EMBEDDED PDV,
+ utf UTF8String,
+ ro RELATIVE-OID,
+ nums NumericString,
+ symbol PrintableString,
+ telet TeletexString,
+ t61 T61String,
+ video VideotexString,
+ ia5 IA5String,
+ utctime UTCTime,
+ generalizedTime GeneralizedTime,
+ gs GraphicString,
+ vs VisibleString,
+-- iso64 ISO646String,
+ generalString GeneralString,
+ univ UniversalString,
+ cs CHARACTER STRING,
+ bmp BMPString}
+
+MendeleyevTable ::= SEQUENCE OF symbol < Element
+BoolType ::= bool < Element
+
+einsteinium symbol < Element ::= "Es"
+boolv bool < Element ::= TRUE
+intv atomic-no < Element ::= 4
+bsv bs < Element ::= '1001'B
+osv os < Element ::= '313'H
+nullv null < Element ::= NULL
+oiv oi < Element ::= {2 1 1}
+odv od < Element ::= "ObjectDesc"
+utfv utf < Element ::= "utf8"
+rov ro < Element ::= {5 32767 256}
+numsv nums < Element ::= "089"
+teletv telet < Element ::= "telet"
+t61v t61 < Element ::= "t61"
+videov video < Element ::= "video"
+ia5v ia5 < Element ::= "ia5"
+utctimev utctime < Element ::= "9805281429Z"
+gTime generalizedTime < Element ::= "19980528142905.1"
+gsv gs < Element ::= "graphic"
+vsv vs < Element ::= "visible"
+--iso64v iso64 < Element ::= "iso"
+gStringv generalString < Element ::= "general"
+univv univ < Element ::= "Universal"
+bmov bmp < Element ::= "bmp"
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Seq.py b/lib/asn1/test/asn1_bin_SUITE_data/Seq.py
new file mode 100644
index 0000000000..f345373ab5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Seq.py
@@ -0,0 +1,152 @@
+Seq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Set1 FROM SeqSetLib;
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+SeqDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SET
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SET
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqImp1 ::= SET
+{
+ set Set1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqImp2 ::= SET
+{
+ bool BOOLEAN,
+ set Set1,
+ int INTEGER
+}
+
+
+SeqImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set Set1
+}
+
+
+
+END
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Seq2738.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/Seq2738.asn1
new file mode 100644
index 0000000000..c852adc57e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Seq2738.asn1
@@ -0,0 +1,37 @@
+Seq2738 DEFINITIONS IMPLICIT TAGS ::=
+
+-- Tests that a missing mandatory component of an optional
+-- component is detected as an error and not just as if the optional
+-- component was missing
+
+BEGIN
+
+-- We create a value of type SeqWithOptFake , encode it and then
+-- try to decode it as a value of type SeqWithOpt.
+-- The decoder should detect this as an error, because the
+-- mandatory first component of type INTEGER in OptSeq is missing
+
+SeqOpt ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeq OPTIONAL
+}
+
+SeqOptFake ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeqFake OPTIONAL
+}
+
+OptSeq ::= SEQUENCE
+{
+ int INTEGER
+}
+
+OptSeqFake ::= SEQUENCE
+{
+ bool BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqBadComma.asn b/lib/asn1/test/asn1_bin_SUITE_data/SeqBadComma.asn
new file mode 100644
index 0000000000..64729beccd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqBadComma.asn
@@ -0,0 +1,10 @@
+SeqBadComma DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ n BOOLEAN,
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqDefault.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqDefault.asn1
new file mode 100644
index 0000000000..99e79da972
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqDefault.asn1
@@ -0,0 +1,77 @@
+SeqDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqDef1 ::= SEQUENCE
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] SeqIn DEFAULT {}
+}
+
+SeqDef1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SEQUENCE
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn DEFAULT {},
+ bool2 [2] BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn DEFAULT {},
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SEQUENCE
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN DEFAULT TRUE,
+ seq3 [2] SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ seq3 [2] EXPLICIT SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqExtension.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqExtension.asn1
new file mode 100644
index 0000000000..bb0a7cca3a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqExtension.asn1
@@ -0,0 +1,37 @@
+SeqExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqExt1, XSeqExt2 FROM External;
+
+
+SeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+SeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SeqExt3 ::= SEQUENCE
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SeqExt4 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SeqExt1X ::= XSeqExt1
+SeqExt2X ::= XSeqExt2
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqExternal.asn1
new file mode 100644
index 0000000000..9d575c1d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqExternal.asn1
@@ -0,0 +1,68 @@
+SeqExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+
+SeqXSet1 ::= SEQUENCE
+{
+ set XSet1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqXSet2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ set XSet1,
+ int INTEGER
+}
+
+
+SeqXSet3 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set XSet1
+}
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSeqNT
+XImpNT ::= [3] XSeqNT
+XExpNT ::= [4] EXPLICIT XSeqNT
+
+XNTImp ::= XSeqImp
+XImpImp ::= [5] XSeqImp
+XExpImp ::= [6] EXPLICIT XSeqImp
+
+XNTExp ::= XSeqExp
+XImpExp ::= [7] XSeqExp
+XExpExp ::= [8] EXPLICIT XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.asn1
new file mode 100644
index 0000000000..330944cf5c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.asn1
@@ -0,0 +1,65 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqOs ::= SEQUENCE OF OCTET STRING
+SeqOsImp ::= [23] SEQUENCE OF OCTET STRING
+SeqOsExp ::= [24] EXPLICIT SEQUENCE OF OCTET STRING
+
+SeqCho ::= SEQUENCE OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+SeqOfInt ::= SEQUENCE OF INTEGER
+
+
+
+
+SeqEmp ::= SEQUENCE
+{
+ seq1 SEQUENCE OF Empty DEFAULT {}
+}
+
+Empty ::= SEQUENCE
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.py b/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.py
new file mode 100644
index 0000000000..c941418934
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOf.py
@@ -0,0 +1,45 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOfCho.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfCho.asn1
new file mode 100644
index 0000000000..8d3d006ed9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfCho.asn1
@@ -0,0 +1,73 @@
+SeqOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqChoDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn DEFAULT {}
+}
+
+SeqChoOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn OPTIONAL
+}
+
+SeqChoEmbDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SeqChoEmbOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SeqOfChoEmbDef ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SeqOfChoEmbOpt ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOfEnum.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfEnum.asn1
new file mode 100644
index 0000000000..b8ca9c4654
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfEnum.asn1
@@ -0,0 +1,11 @@
+SeqOfEnum DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Enum ::= ENUMERATED {a (0),
+ b (1),
+ c (2)}
+
+SeqOfEnum ::= SEQUENCE OF Enum
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOfExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfExternal.asn1
new file mode 100644
index 0000000000..607e81540f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfExternal.asn1
@@ -0,0 +1,42 @@
+SeqOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SEQUENCE OF NT
+ImpNT ::= [3] SEQUENCE OF NT
+ExpNT ::= [4] EXPLICIT SEQUENCE OF NT
+
+NTImp ::= SEQUENCE OF Imp
+ImpImp ::= [5] SEQUENCE OF Imp
+ExpImp ::= [6] EXPLICIT SEQUENCE OF Imp
+
+NTExp ::= SEQUENCE OF Exp
+ImpExp ::= [7] SEQUENCE OF Exp
+ExpExp ::= [8] EXPLICIT SEQUENCE OF Exp
+
+XNTNT ::= SEQUENCE OF XSeqNT
+XImpNT ::= [3] SEQUENCE OF XSeqNT
+XExpNT ::= [4] EXPLICIT SEQUENCE OF XSeqNT
+
+XNTImp ::= SEQUENCE OF XSeqImp
+XImpImp ::= [5] SEQUENCE OF XSeqImp
+XExpImp ::= [6] EXPLICIT SEQUENCE OF XSeqImp
+
+XNTExp ::= SEQUENCE OF XSeqExp
+XImpExp ::= [7] SEQUENCE OF XSeqExp
+XExpExp ::= [8] EXPLICIT SEQUENCE OF XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOfTag.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfTag.asn1
new file mode 100644
index 0000000000..74b820a28d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOfTag.asn1
@@ -0,0 +1,65 @@
+SeqOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTagNt ::= [APPLICATION 20] SEQUENCE {
+ nt SEQUENCE OF NT}
+
+SeqTagNtI ::= [APPLICATION 20] SEQUENCE {
+ imp SEQUENCE OF Imp}
+
+SeqTagNtE ::= [APPLICATION 20] SEQUENCE {
+ exp SEQUENCE OF Exp }
+
+SeqTagI ::= [APPLICATION 21] SEQUENCE {
+ nt [0] SEQUENCE OF NT}
+
+SeqTagII ::= [APPLICATION 21] SEQUENCE {
+ imp [1] SEQUENCE OF Imp}
+
+SeqTagIE ::= [APPLICATION 21] SEQUENCE {
+ exp [2] SEQUENCE OF Exp}
+
+SeqTagE ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT SEQUENCE OF NT}
+
+SeqTagEI ::= [APPLICATION 22] SEQUENCE {
+ imp [1] EXPLICIT SEQUENCE OF Imp}
+
+SeqTagEE ::= [APPLICATION 22] SEQUENCE {
+ exp [2] EXPLICIT SEQUENCE OF Exp}
+
+SeqTagXNt ::= [APPLICATION 30] SEQUENCE {
+ xnt SEQUENCE OF XSeqNT}
+
+SeqTagXI ::= [APPLICATION 30] SEQUENCE {
+ ximp SEQUENCE OF XSeqImp}
+
+SeqTagXE ::= [APPLICATION 30] SEQUENCE {
+ xexp SEQUENCE OF XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] SEQUENCE OF XSeqNT,
+ ximp [4] SEQUENCE OF XSeqImp,
+ xexp [5] SEQUENCE OF XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT SEQUENCE OF XSeqNT,
+ ximp [4] EXPLICIT SEQUENCE OF XSeqImp,
+ xexp [5] EXPLICIT SEQUENCE OF XSeqExp }
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional.asn1
new file mode 100644
index 0000000000..a8fef52dda
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional.asn1
@@ -0,0 +1,86 @@
+SeqOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional2.asn b/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional2.asn
new file mode 100644
index 0000000000..7de9134096
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqOptional2.asn
@@ -0,0 +1,90 @@
+SeqOptional2 DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL,
+ seq2 [2] SeqIn OPTIONAL,
+ ...,
+ int2 [3] SeqIn,
+ int3 [3] SeqIn
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqPrim.asn1
new file mode 100644
index 0000000000..20c4126c0b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqPrim.asn1
@@ -0,0 +1,19 @@
+SeqPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SEQUENCE {}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqSetIndefinite.asn b/lib/asn1/test/asn1_bin_SUITE_data/SeqSetIndefinite.asn
new file mode 100644
index 0000000000..b56b8cdc17
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqSetIndefinite.asn
@@ -0,0 +1,41 @@
+SeqSetIndefinite DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetS3Ext ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+}
+
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SeqS3Ext ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqSetLib.py b/lib/asn1/test/asn1_bin_SUITE_data/SeqSetLib.py
new file mode 100644
index 0000000000..f7d15ae3b4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqSetLib.py
@@ -0,0 +1,32 @@
+SeqSetLib DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+EXPORTS Seq1,Set1;
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqTag.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqTag.asn1
new file mode 100644
index 0000000000..950f88d663
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqTag.asn1
@@ -0,0 +1,48 @@
+SeqTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTag ::= [APPLICATION 20] SEQUENCE {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SeqTagImp ::= [APPLICATION 21] SEQUENCE {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SeqTagExp ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SeqTagX ::= [APPLICATION 30] SEQUENCE {
+ xnt XSeqNT,
+ ximp XSeqImp,
+ xexp XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] XSeqNT,
+ ximp [4] XSeqImp,
+ xexp [5] XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT XSeqNT,
+ ximp [4] EXPLICIT XSeqImp,
+ xexp [5] EXPLICIT XSeqExp }
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefCho.asn1
new file mode 100644
index 0000000000..5c662fbd95
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefCho.asn1
@@ -0,0 +1,28 @@
+SeqTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRcho ::= SEQUENCE
+{
+ seqCho SeqCho,
+ seqChoE [135] EXPLICIT SeqCho,
+
+ seqCho-E SeqChoExp,
+ seqChoE-E [335] EXPLICIT SeqChoExp
+
+}
+
+SeqCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SeqChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefPrim.asn1
new file mode 100644
index 0000000000..93f03fad2b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefPrim.asn1
@@ -0,0 +1,48 @@
+SeqTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqTR ::= SEQUENCE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+-- Types to test {Type,Value} notation, see OTP-4057
+
+Int ::= INTEGER
+Bool ::= BOOLEAN
+Enum ::= ENUMERATED {a(0),b(1),c(2)}
+BitStr ::= BIT STRING
+Null ::= NULL
+OId ::= OBJECT IDENTIFIER
+VStr ::= VisibleString
+
+Seq ::= SEQUENCE {
+ octstr OctStr,
+ int Int,
+ bool Bool,
+ enum Enum,
+ bitstr BitStr,
+ null Null,
+ oid OId,
+ vstr VStr
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSeq.asn1
new file mode 100644
index 0000000000..0e528ac710
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSeq.asn1
@@ -0,0 +1,113 @@
+SeqTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqSTag ::= SEQUENCE
+{
+ seqS1 SEQUENCE { b1 BOOLEAN,
+ i1 INTEGER },
+ seqS2 [7] SEQUENCE { b2 BOOLEAN,
+ i2 INTEGER },
+ seqS3 [8] EXPLICIT SEQUENCE { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+
+SeqTRseq ::= SEQUENCE
+{
+ seqSeq SeqSeq,
+ seqSeqI [134] SeqSeq,
+ seqSeqE [135] EXPLICIT SeqSeq,
+
+ seqSeq-I SeqSeqImp,
+ seqSeqI-I [234] SeqSeqImp,
+ seqSeqE-I [235] EXPLICIT SeqSeqImp,
+
+ seqSeq-E SeqSeqExp,
+ seqSeqI-E [334] SeqSeqExp,
+ seqSeqE-E [335] EXPLICIT SeqSeqExp
+
+}
+
+SeqSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSet.asn1
new file mode 100644
index 0000000000..45dc05a0c3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SeqTypeRefSet.asn1
@@ -0,0 +1,39 @@
+SeqTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRset ::= SEQUENCE
+{
+ seqSet SeqSet,
+ seqSetI [124] SeqSet,
+ seqSetE [125] EXPLICIT SeqSet,
+
+ seqSet-I SeqSetImp,
+ seqSetI-I [224] SeqSetImp,
+ seqSetE-I [225] EXPLICIT SeqSetImp,
+
+ seqSet-E SeqSetExp,
+ seqSetI-E [324] SeqSetExp,
+ seqSetE-E [325] EXPLICIT SeqSetExp
+
+}
+
+SeqSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComma.asn b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComma.asn
new file mode 100644
index 0000000000..436815aa9b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComma.asn
@@ -0,0 +1,10 @@
+SequenceBadComma DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentName.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentName.asn1
new file mode 100644
index 0000000000..8b2b8816db
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentName.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentName DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a INTEGER,
+ C Typ}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentType.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentType.asn1
new file mode 100644
index 0000000000..0c33f48906
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SequenceBadComponentType.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentType DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c T}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Set.py b/lib/asn1/test/asn1_bin_SUITE_data/Set.py
new file mode 100644
index 0000000000..4062f6b804
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Set.py
@@ -0,0 +1,141 @@
+Set DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Seq1 FROM SeqSetLib;
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SetImp1 ::= SET
+{
+ seq Seq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetImp2 ::= SET
+{
+ bool BOOLEAN,
+ seq Seq1,
+ int INTEGER
+}
+
+
+SetImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq Seq1
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetDefault.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetDefault.asn1
new file mode 100644
index 0000000000..cb9e0ead62
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetDefault.asn1
@@ -0,0 +1,33 @@
+SetDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetExtension.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetExtension.asn1
new file mode 100644
index 0000000000..53091d3eea
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetExtension.asn1
@@ -0,0 +1,37 @@
+SetExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetExt1, XSetExt2 FROM External;
+
+SetExt1 ::= SET
+{
+ ...
+}
+
+SetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SetExt3 ::= SET
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SetExt4 ::= SET
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SetExt1X ::= XSetExt1
+SetExt2X ::= XSetExt2
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetExternal.asn1
new file mode 100644
index 0000000000..394a068280
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetExternal.asn1
@@ -0,0 +1,68 @@
+SetExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+
+
+SetXSeq1 ::= SET
+{
+ seq XSeq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetXSeq2 ::= SET
+{
+ bool BOOLEAN,
+ seq XSeq1,
+ int INTEGER
+}
+
+
+SetXSeq3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq XSeq1
+}
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSetNT
+XImpNT ::= [3] XSetNT
+XExpNT ::= [4] EXPLICIT XSetNT
+
+XNTImp ::= XSetImp
+XImpImp ::= [5] XSetImp
+XExpImp ::= [6] EXPLICIT XSetImp
+
+XNTExp ::= XSetExp
+XImpExp ::= [7] XSetExp
+XExpExp ::= [8] EXPLICIT XSetExp
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOf.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetOf.asn1
new file mode 100644
index 0000000000..cdb770f8de
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOf.asn1
@@ -0,0 +1,61 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetOs ::= SET OF OCTET STRING
+SetOsImp ::= [23] SET OF OCTET STRING
+SetOsExp ::= [24] EXPLICIT SET OF OCTET STRING
+
+SetCho ::= SET OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+
+
+SetEmp ::= SET
+{
+ set1 SET OF Empty DEFAULT {}
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOf.py b/lib/asn1/test/asn1_bin_SUITE_data/SetOf.py
new file mode 100644
index 0000000000..4e2ea16fcc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOf.py
@@ -0,0 +1,42 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOfCho.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetOfCho.asn1
new file mode 100644
index 0000000000..3571a2b277
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOfCho.asn1
@@ -0,0 +1,73 @@
+SetOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetChoDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn DEFAULT {}
+}
+
+SetChoOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn OPTIONAL
+}
+
+SetChoEmbDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SetChoEmbOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SetOfChoEmbDef ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SetOfChoEmbOpt ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOfExternal.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetOfExternal.asn1
new file mode 100644
index 0000000000..c08f2a51ee
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOfExternal.asn1
@@ -0,0 +1,42 @@
+SetOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SET OF NT
+ImpNT ::= [3] SET OF NT
+ExpNT ::= [4] EXPLICIT SET OF NT
+
+NTImp ::= SET OF Imp
+ImpImp ::= [5] SET OF Imp
+ExpImp ::= [6] EXPLICIT SET OF Imp
+
+NTExp ::= SET OF Exp
+ImpExp ::= [7] SET OF Exp
+ExpExp ::= [8] EXPLICIT SET OF Exp
+
+XNTNT ::= SET OF XSetNT
+XImpNT ::= [3] SET OF XSetNT
+XExpNT ::= [4] EXPLICIT SET OF XSetNT
+
+XNTImp ::= SET OF XSetImp
+XImpImp ::= [5] SET OF XSetImp
+XExpImp ::= [6] EXPLICIT SET OF XSetImp
+
+XNTExp ::= SET OF XSetExp
+XImpExp ::= [7] SET OF XSetExp
+XExpExp ::= [8] EXPLICIT SET OF XSetExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOfTag.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetOfTag.asn1
new file mode 100644
index 0000000000..e137e8fa40
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOfTag.asn1
@@ -0,0 +1,65 @@
+SetOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+SetTagNt ::= [APPLICATION 20] SET {
+ nt SET OF NT}
+
+SetTagNtI ::= [APPLICATION 20] SET {
+ imp SET OF Imp}
+
+SetTagNtE ::= [APPLICATION 20] SET {
+ exp SET OF Exp }
+
+SetTagI ::= [APPLICATION 21] SET {
+ nt [0] SET OF NT}
+
+SetTagII ::= [APPLICATION 21] SET {
+ imp [1] SET OF Imp}
+
+SetTagIE ::= [APPLICATION 21] SET {
+ exp [2] SET OF Exp}
+
+SetTagE ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT SET OF NT}
+
+SetTagEI ::= [APPLICATION 22] SET {
+ imp [1] EXPLICIT SET OF Imp}
+
+SetTagEE ::= [APPLICATION 22] SET {
+ exp [2] EXPLICIT SET OF Exp}
+
+SetTagXNt ::= [APPLICATION 30] SET {
+ xnt SET OF XSetNT}
+
+SetTagXI ::= [APPLICATION 30] SET {
+ ximp SET OF XSetImp}
+
+SetTagXE ::= [APPLICATION 30] SET {
+ xexp SET OF XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] SET OF XSetNT,
+ ximp [4] SET OF XSetImp,
+ xexp [5] SET OF XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT SET OF XSetNT,
+ ximp [4] EXPLICIT SET OF XSetImp,
+ xexp [5] EXPLICIT SET OF XSetExp }
+
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetOptional.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetOptional.asn1
new file mode 100644
index 0000000000..5d2f2526b3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetOptional.asn1
@@ -0,0 +1,77 @@
+SetOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] SetIn OPTIONAL
+}
+
+SetOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] EXPLICIT SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Imp ::= SEQUENCE
+{
+ set2 [1] SetIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Exp ::= SEQUENCE
+{
+ set2 [1] EXPLICIT SetIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ set3 [2] SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ set3 [2] EXPLICIT SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetPrim.asn1
new file mode 100644
index 0000000000..06c4932625
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetPrim.asn1
@@ -0,0 +1,20 @@
+SetPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetTag.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetTag.asn1
new file mode 100644
index 0000000000..3f7422edaf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetTag.asn1
@@ -0,0 +1,47 @@
+SetTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+SetTag ::= [APPLICATION 20] SET {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SetTagImp ::= [APPLICATION 21] SET {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SetTagExp ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SetTagX ::= [APPLICATION 30] SET {
+ xnt XSetNT,
+ ximp XSetImp,
+ xexp XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] XSetNT,
+ ximp [4] XSetImp,
+ xexp [5] XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT XSetNT,
+ ximp [4] EXPLICIT XSetImp,
+ xexp [5] EXPLICIT XSetExp }
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefCho.asn1
new file mode 100644
index 0000000000..32c9d95703
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefCho.asn1
@@ -0,0 +1,27 @@
+SetTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetTRcho ::= SET
+{
+ setCho SetCho,
+ setChoE [135] EXPLICIT SetCho,
+
+ setCho-E SetChoExp,
+ setChoE-E [335] EXPLICIT SetChoExp
+
+}
+
+SetCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SetChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefPrim.asn1
new file mode 100644
index 0000000000..d8f2396c02
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefPrim.asn1
@@ -0,0 +1,29 @@
+SetTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTR ::= SET
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSeq.asn1
new file mode 100644
index 0000000000..72dd71c6eb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSeq.asn1
@@ -0,0 +1,38 @@
+SetTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTRseq ::= SET
+{
+ setSeq SetSeq,
+ setSeqI [134] SetSeq,
+ setSeqE [135] EXPLICIT SetSeq,
+
+ setSeq-I SetSeqImp,
+ setSeqI-I [234] SetSeqImp,
+ setSeqE-I [235] EXPLICIT SetSeqImp,
+
+ setSeq-E SetSeqExp,
+ setSeqI-E [334] SetSeqExp,
+ setSeqE-E [335] EXPLICIT SetSeqExp
+
+}
+
+SetSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSet.asn1
new file mode 100644
index 0000000000..b215d598dc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SetTypeRefSet.asn1
@@ -0,0 +1,110 @@
+SetTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+Set4 ::= SEQUENCE
+{
+ set41 SetIn,
+ set42 SetIn,
+ set43 SetIn
+}
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetSTag ::= SET
+{
+ setS1 SET { b1 BOOLEAN,
+ i1 INTEGER },
+ setS2 [7] SET { b2 BOOLEAN,
+ i2 INTEGER },
+ setS3 [8] EXPLICIT SET { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+SetTRset ::= SET
+{
+ setSet SetSet,
+ setSetI [124] SetSet,
+ setSetE [125] EXPLICIT SetSet,
+
+ setSet-I SetSetImp,
+ setSetI-I [224] SetSetImp,
+ setSetE-I [225] EXPLICIT SetSetImp,
+
+ setSet-E SetSetExp,
+ setSetI-E [324] SetSetExp,
+ setSetE-E [325] EXPLICIT SetSetExp
+
+}
+
+SetSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/String.py b/lib/asn1/test/asn1_bin_SUITE_data/String.py
new file mode 100644
index 0000000000..338d50784b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/String.py
@@ -0,0 +1,7 @@
+String DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+IA51 ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/SwCDR.py b/lib/asn1/test/asn1_bin_SUITE_data/SwCDR.py
new file mode 100644
index 0000000000..9492183cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/SwCDR.py
@@ -0,0 +1,213 @@
+SwCDR DEFINITIONS
+ IMPLICIT TAGS ::=
+
+
+BEGIN
+
+EXPORTS
+ SwCDR;
+
+SwCDR ::= CHOICE
+{
+ origSvcCallRecord [0] OrigSvcCallRecord,
+ termSvcCallRecord [1] TermSvcCallRecord
+}
+
+--OrigSvcCallRecord ::= SET
+OrigSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER,
+-- egressCellrate01 [] INTEGER,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+--TermSvcCallRecord ::= SET
+TermSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER ,
+-- egressCellrate01 [] INTEGER ,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+ChargingIndicator ::= INTEGER
+{
+ origCallRecord (0),
+ termCallRecord (1)
+}
+
+CallingNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+CalledNumber ::= OCTET STRING (SIZE (20))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+ConnectedNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+
+QoSClass ::= INTEGER
+ -- Explicit values ToBeDefined,
+ -- until then: value received in SETUP-msg
+
+--BearerClass ::= INTEGER
+--{
+-- bcobA (0),
+-- bcobC (1),
+-- bcobX (2)
+--}
+TrafficType ::= INTEGER
+{
+ noIndication (0),
+ abr (1),
+ cbr (2),
+ vbr (3),
+ vbrrt (4),
+ vbrnrt (5),
+ ubr (6)
+}
+
+--TimingRequirements ::= INTEGER
+--{
+-- noIndication (0),
+-- endToEndRequired (1),
+-- endToEndNotRequired (2)
+--}
+
+--ClippingSusceptibility ::= INTEGER
+--{
+-- notSusceptible (0),
+-- susceptible (1)
+--}
+UserPlaneConnection ::= INTEGER
+{
+ pointToPoint (0),
+ pointToMultipoint (1)
+}
+
+--AALParameters ::= INTEGER AAL Type only
+--{
+-- userDefined (0),
+-- aal1 (1),
+-- aal2 (2),
+-- aal34 (3),
+-- aal5 (5)
+--}
+
+CellRate ::= INTEGER
+ -- Value range not less than 2^24.
+
+-- BurstSize ::= ToBeDefined
+
+-- TaggingRequest ::= ToBeDefined
+--Timestamp ::= OCTET STRING (SIZE (11))
+ -- The contents of this field is a compact form of
+ -- the UTCTime format, containing local time plus
+ -- an offset to universal time.
+ -- The compact format is YYMMDDhhmmssdddShhmm, where:
+ -- YY = year, 00-99, BCD encoded
+ -- MM = month, 01-12, BCD encoded
+ -- DD = day, 01-31, BCD encoded
+ -- hh = hour, 00-23, BCD encoded
+ -- mm = minute, 00-59, BCD encoded
+ -- ss = second, 00-59, BCD encoded
+ -- ddd = millisecond, 000-999, BCD encoded
+ -- and rightjustified as "0ddd"
+ -- S = sign, "+"/"-", ASCII encoded
+
+StartDate ::= OCTET STRING (SIZE (8))
+
+StartTime ::= OCTET STRING (SIZE (6))
+
+CallDuration ::= INTEGER
+-- Expressed as number of millseconds
+
+Cellrate ::= INTEGER
+-- Value range 0-2^64
+CauseForTerm ::= INTEGER
+{
+ unsuccessfulCallAttempt (0),
+ abnormalTermination (1)
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Syntax.py b/lib/asn1/test/asn1_bin_SUITE_data/Syntax.py
new file mode 100644
index 0000000000..867d1148e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Syntax.py
@@ -0,0 +1,10 @@
+Syntax DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages-simple.asn b/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages-simple.asn
new file mode 100644
index 0000000000..a9ace659d5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages-simple.asn
@@ -0,0 +1,206 @@
+TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) }
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS OPERATION, ERROR, Component, InvokeIdType;
+
+-- Transaction Portion fields
+
+MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional,
+ begin [APPLICATION 2] IMPLICIT Begin,
+ end [APPLICATION 4] IMPLICIT End,
+ continue [APPLICATION 5] IMPLICIT Continue,
+ abort [APPLICATION 7] IMPLICIT Abort }
+
+Unidirectional ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion }
+
+Begin ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+End ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Continue ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL
+ }
+
+-- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must be
+-- present.The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+
+DialoguePortion ::= [APPLICATION 11] EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
+-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
+-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
+-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
+-- is carried (e.g. when user information is sent in a 1988 Abort message).
+
+OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
+DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
+ unrecognizedMessageType (0),
+ unrecognizedTransactionID (1),
+ badlyFormattedTransactionPortion (2),
+ incorrectTransactionPortion (3),
+ resourceLimitation (4) }
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
+-- The Component Portion may be absent.
+
+ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- Component Portion fields
+-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs).
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+
+Component ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResultLast [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject,
+ returnResultNotLast [7] IMPLICIT ReturnResult }
+
+-- The Components are sequences of data elements.
+
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
+-- in the type definition of a particular operation.
+
+ReturnResult ::= SEQUENCE {
+ invokeID InvokeIdType,
+ result SEQUENCE {
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode
+ } OPTIONAL
+ }
+
+-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
+-- of a particular operation.
+
+ReturnError ::= SEQUENCE {
+ invokeID InvokeIdType,
+ errorCode ERROR,
+ parameter ANY DEFINED BY errorCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+
+
+-- Recommendation Q.773 (06/97) 3
+
+Reject ::= SEQUENCE {
+ invokeID CHOICE {
+ derivable InvokeIdType,
+ not-derivable NULL },
+ problem CHOICE {
+ generalProblem [0] IMPLICIT GeneralProblem,
+ invokeProblem [1] IMPLICIT InvokeProblem,
+ returnResultProblem [2] IMPLICIT ReturnResultProblem,
+ returnErrorProblem [3] IMPLICIT ReturnErrorProblem
+ }
+ }
+
+InvokeIdType ::= INTEGER ( -128..127)
+
+-- OPERATIONS
+-- Operations are specified with the OPERATION MACRO.
+-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
+-- Default values and optional parameters are permitted.
+
+-- FAKE OPERATION
+OPERATION ::= INTEGER ( 0..65535 )
+ERROR ::= INTEGER ( 0..65535 )
+
+--OPERATION MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter Result Errors LinkedOperations
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER"
+-- Result ::= "RESULT" ResultType | empty
+-- Errors ::= "ERRORS" "{"ErrorNames"}" | empty
+-- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty
+-- ResultType ::= NamedType | empty
+-- ErrorNames ::= ErrorList | empty
+-- ErrorList ::= Error | ErrorList "," Error
+-- Error ::= value (ERROR)
+--
+-- shall reference an error value
+--
+-- | type
+-- shall reference an error type
+--
+-- if no error value is specified
+-- LinkedOperationNames ::= OperationList | empty
+-- OperationList ::= Operation | OperationList "," Operation
+-- Operation ::= value (OPERATION)
+-- shall reference an operation value
+-- | type
+-- shall reference an operation type if
+--
+-- no operation value is specified
+-- NamedType ::= identifier type | type
+--END
+
+-- ERRORS
+-- Errors are specified with the ERROR MACRO.
+-- When an error is specified, the valid parameters for that error are indicated.
+-- Default values and optional parameters are permitted.
+
+--ERROR MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= "PARAMETER" NamedType | empty
+-- NamedType ::= identifier type | type
+--END
+
+-- PROBLEMS
+
+GeneralProblem ::= INTEGER { unrecognizedComponent (0),
+ mistypedComponent (1),
+ badlyStructuredComponent (2) }
+InvokeProblem ::= INTEGER { duplicateInvokeID (0),
+ unrecognizedOperation (1),
+ mistypedParameter (2),
+ resourceLimitation (3),
+ initiatingRelease (4),
+ unrecognizedLinkedID (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7) }
+ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnResultUnexpected (1),
+ mistypedParameter (2) }
+ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnErrorUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4) }
+
+END -- TCAPMessages
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages.asn b/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages.asn
new file mode 100644
index 0000000000..ed8b4c6927
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TCAPMessages.asn
@@ -0,0 +1,98 @@
+-- Module TCAPMessages (Q.773:06/1997)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn
new file mode 100644
index 0000000000..fcaeff3bfa
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn
@@ -0,0 +1,271 @@
+TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0)
+ tcapPackage(0) version4(4)} DEFINITIONS ::=
+
+-- iso(1) memberbody(2)
+-- usa(840) T1.114(10013)
+BEGIN -- defining a module called TCAPPackage which contains type
+
+-- definitions for the contents of any generic TCAP message
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+-- TCAPRemoteperationsInformationbjects {iso(1) memberbody(2) usa(840)
+-- t1-114(10013) modules(0) information-objects(1) version4(4)};
+
+PackageType ::= CHOICE {
+ unidirectional [PRIVATE 1] IMPLICIT UniTransactionPDU,
+ queryWithPerm [PRIVATE 2] IMPLICIT TransactionPDU,
+ queryWithoutPerm [PRIVATE 3] IMPLICIT TransactionPDU,
+ response [PRIVATE 4] IMPLICIT TransactionPDU,
+ conversationWithPerm [PRIVATE 5] IMPLICIT TransactionPDU,
+ conversationWithoutPerm [PRIVATE 6] IMPLICIT TransactionPDU,
+ abort [PRIVATE 22] IMPLICIT Abort}
+
+UniTransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence}
+
+TransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence OPTIONAL}
+
+-- TransactionPDU should include either a Dialogue Portion,
+-- a Component Sequence or both
+TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING
+
+-- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort
+-- 8 octets for Conversation in the order Originating then Responding TID
+Abort ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ causeInformation
+ CHOICE {abortCause P-Abort-cause,
+ userInformation UserAbortInformation} OPTIONAL}
+
+-- When the Abort package is generated by the Transaction sublayer,
+-- the P-Abort-cause must be present
+P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER {
+ unrecognizedPackageType(1), incorrectTransactionPortion(2),
+ badlyStructuredTransactionPortion(3), unassignedRespondingTransactionID(4),
+ permissionToReleaseProblem(5), -- for further study
+ resourceUnavailable(6), unrecognizedDialoguePortionID(7),
+ badlyStructuredDialoguePortion(8), missingDialoguePortion(9),
+ inconsistentDialoguePortion(10)}
+
+DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE {
+ version ProtocolVersion OPTIONAL,
+ applicationContext
+ CHOICE {integerApplicationId IntegerApplicationContext,
+ objectApplicationId ObjectIDApplicationContext} OPTIONAL,
+ userInformation UserInformation OPTIONAL,
+ securityContext
+ CHOICE {integerSecurityId [0] IMPLICIT INTEGER,
+ objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ confidentiality [2] IMPLICIT Confidentiality OPTIONAL}
+
+ProtocolVersion ::= [PRIVATE 26] IMPLICIT OCTET STRING(SIZE (1))
+
+-- 0000 0000 not used
+-- 0000 0001 T1.114-1996
+-- 0000 0010 T1.114-2000
+-- other reserved
+-- These values can be combined using the bit-wise logical or operation
+-- to indicate support for more than one version, e.g. the value 0000 0011
+-- means that both 1996 and 2000 versions are supported
+IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER
+
+ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER
+
+UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL
+
+Confidentiality ::= SEQUENCE {
+ confidentialityId
+ CHOICE {integerConfidentialityId [0] IMPLICIT INTEGER,
+ objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ ...
+ -- The extension marker indicates the possible presence of items
+ -- in the confidentiality set that are used by the confidentiality
+ -- algorithm.--}
+
+UserAbortInformation ::= [PRIVATE 24] EXTERNAL
+
+--ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU
+ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU{NoInvokeId,ProbeAndAcknowledge,ProbeAndAcknowledge}
+-- Component Portion specification starts below
+ComponentPDU{InvokeId:InvokeIdSet, OPERATION:Invocable, OPERATION:Returnable}
+ ::= CHOICE {
+ invokeLast
+ [PRIVATE 9] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be TRUE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultLast [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}},
+ returnError
+ [PRIVATE 11] IMPLICIT ReturnError{{Errors {{Returnable}}}},
+ reject [PRIVATE 12] IMPLICIT Reject,
+ invokeNotLast
+ [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be FALSE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult{{Returnable}}}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalunrecognisedComponentType)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ componentIDs
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..2))
+ -- The invoke ID precedes the correlation id. There may be no
+ -- identifier,only an invoke ID, or both invoke and correlation
+ -- ID.
+ (CONSTRAINED BY {-- must be unambiguous --} !
+ RejectProblem:invokeduplicateInvocation)
+ (CONSTRAINED BY {-- correlation ID must identify an--
+ -- outstanding operation --} !
+ RejectProblem:invokeunrecognisedCorrelationId)
+ OPTIONAL,
+ -- operationCode
+ opcode
+ OPERATION.&operationCode
+ -- ((Operations) !RejectProblem:invokeunrecognisedOperation),
+ ({Operations} !RejectProblem:invokeunrecognisedOperation),
+ parameter
+ -- OPERATION.&ParameterType
+ OPERATION.&ResultType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:
+ returnResultunrecognisedCorrelationId)
+ (CONSTRAINED BY {-- which returns a result --} !
+ RejectProblem:returnResultunexpectedReturnResult),
+ parameter
+ OPERATION.&ResultType
+ -- ({Operations}{@opcode} !RejectProblem:returnResultincorrectParameter)
+-- ({Operations}{@componentID} !RejectProblem:returnResultincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:returnErrorunrecognisedCorrelationId)
+ (CONSTRAINED BY {--which returns an error--} !
+ RejectProblem:returnErrorunexpectedReturnError),
+ errorCode
+ ERROR.&errorCode({Errors} !RejectProblem:returnErrorunrecognisedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the--
+ -- associated operation --} !RejectProblem:returnErrorunexpectedError),
+ parameter
+ -- Error.&ParameterType
+ ERROR.&ParameterType
+ -- ({Errors}{@errorcode} !RejectProblem:returnErrorincorrectParameter)
+ ({Errors}{@errorCode} !RejectProblem:returnErrorincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+Reject ::= SEQUENCE {
+ componentID [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..1)),
+ rejectProblem [PRIVATE 21] IMPLICIT Problem,
+ parameter
+ CHOICE {paramSequence [PRIVATE 16] IMPLICIT SEQUENCE {},
+ paramSet [PRIVATE 18] IMPLICIT SET {}}}
+ -- The choice between paramSequence and paramSet is implementation
+ -- dependent, however paramSequence is preferred.
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+-- PROBLEMS, the specification of Problems follows
+Problem ::= INTEGER {
+ generalunrecognisedComponentType(257), generalincorrectComponentPortion(258),
+ generalbadlyStructuredCompPortion(259), generalincorrectComponentCoding(260),
+ invokeduplicateInvocation(513), invokeunrecognisedOperation(514),
+ invokeincorrectParameter(515), invokeunrecognisedCorrelationID(516),
+ returnResultunrecognisedCorrelationID(769),
+ returnResultunexpectedReturnResult(770), returnResultincorrectParameter(771),
+ returnErrorunrecognisedCorrelationID(1025),
+ returnErrorunexpectedReturnError(1026), returnErrorunrecognisedError(1027),
+ returnErrorunexpectedError(1028),
+ returnErrorincorrectParameter(1029),
+ -- Applications using T1.114-1988 report Transaction portion
+ -- problems using a Reject component with a problem code in
+ -- the range 1281e6
+ -- It is preferred that other applications report
+ -- these problems using the Abort package type
+ transactionunrecognizedPackageType(1281),
+ transactionincorrectTransPortion(1282),
+ transactionbadlyStructuredTransPortion(1283),
+ transactionunassignedRespondingTransID(1284),
+ transactionpermissionToReleaseProblem(1285),
+ transactionresourceUnavailable(1286)}
+
+ --added imaginary defs by Bertil
+
+ InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ ERRORS ErrorSet
+ ALWAYS RESPONDS TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ ALWAYS RESPONDS TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+error1 ERROR ::= {PARAMETER INTEGER PRIORITY 25 CODE local:22}
+error2 ERROR ::= {PARAMETER BOOLEAN PRIORITY 15 CODE local:21}
+ErrorSet ERROR ::= {error1|error2}
+--parameterized object set definition
+Errors{OPERATION:OperationSet} ERROR ::= {OperationSet.&Errors}
+
+END -- end of the TCAPPackage Module
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn1config
new file mode 100644
index 0000000000..b0ccd7d34c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage.asn1config
@@ -0,0 +1,12 @@
+{exclusive_decode, {'TCAPPackage',
+ [{decode_PackageType, ['PackageType',
+ [{unidirectional, undecoded},
+ {queryWithPerm, [{componentPortion, parts}]},
+ {queryWithoutPerm, undecoded},
+ {response, [{componentPortion, parts}]},
+ {conversationWithPerm, undecoded},
+ {conversationWithoutPerm, undecoded},
+ {abort, undecoded}]]},
+ {decode_TransactionPDU, ['TransactionPDU',
+ [{componentPortion, parts}]]}]}}.
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage_msg.erl b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage_msg.erl
new file mode 100644
index 0000000000..cc9a483f49
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TCAPPackage_msg.erl
@@ -0,0 +1,141 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module('TCAPPackage_msg').
+
+-compile(export_all).
+
+-include("TCAPPackage.hrl").
+
+val('PackageType',unidirectional) ->
+ {unidirectional,val('UniTransactionPDU')};
+val('PackageType',abort) ->
+ {abort,val('Abort')};
+val('PackageType',Component) ->
+ {Component,val('TransactionPDU')};
+val('ComponentPDU',1) ->
+ {invokeLast,val('Invoke')};
+val('ComponentPDU',2) ->
+ {returnResultLast,val('ReturnResult')};
+val('ComponentPDU',3) ->
+ {returnError,val('ReturnError')}.
+
+
+
+val('UniTransactionPDU') ->
+ #'UniTransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionPDU') ->
+ #'TransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionID') ->
+ "OCTET STRING";
+val('DialoguePortion') ->
+ #'DialoguePortion'{version=val('ProtocolVersion'),
+ applicationContext={integerApplicationId,12},
+ userInformation=val('UserInformation'),
+ securityContext={integerSecurityId,13},
+ confidentiality=val('Confidentiality')};
+val('Confidentiality') ->
+ #'Confidentiality'{confidentialityId={integerConfidentialityId,14}};
+val('ProtocolVersion') ->
+ "K";
+val('UserInformation') ->
+ [val('EXTERNAL'),val('EXTERNAL')];
+val('EXTERNAL') ->
+ #'EXTERNAL'{'direct-reference'={0,1,2},
+ encoding={'single-ASN1-type',[1,2,3,4]}};
+val('ComponentSequence') ->
+ [val('ComponentPDU',1),val('ComponentPDU',2),val('ComponentPDU',3)];
+val('Invoke') ->
+ #'Invoke'{componentIDs="AB",
+ opcode={local,-2},
+ parameter=running};
+val('ReturnResult') ->
+ #'ReturnResult'{componentID="C",
+ parameter=[1,2,3,4]};
+val('ReturnError') ->
+ #'ReturnError'{componentID="D",
+ errorCode={local,21},
+ parameter=true};
+val('Abort') ->
+ #'Abort'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ causeInformation={abortCause,unrecognizedPackageType}};
+val(Type) ->
+ io:format("Missing type: ~p~n",[Type]).
+
+
+check_result('PackageType',unidirectional,Res) ->
+ {unidirectional,
+ {'UniTransactionPDU',
+ "OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,{_,"C",_}},
+ {returnError,{_,"D",{local,21},true}}]}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',abort,Res)->
+ {abort,{'Abort',"OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ {abortCause,unrecognizedPackageType}}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',response,Res) ->
+ {response,{'TransactionPDU',"OCTET STRING",
+ {'DialoguePortion',
+ "K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,
+ {_,"C",_}},
+ {returnError,
+ {_,"D",{local,21},true}}]}} = Res,
+ ok.
+%% check_OT_val(OTVal).
+
+check_OT_val([160,4,1,2,3,4]) ->
+ ok;
+check_OT_val(<<160,4,1,2,3,4>>) ->
+ ok;
+check_OT_val(_) ->
+ error.
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TConstr.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/TConstr.asn1
new file mode 100644
index 0000000000..63f5dbde77
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TConstr.asn1
@@ -0,0 +1,95 @@
+-- The idea with this spec is to gather definitions that has a
+-- complicated structure of table constraints.
+TConstr DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+MYCLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type,
+ &Result OPTIONAL
+} WITH SYNTAX {
+ ID &id
+ TYPE &Type
+ [RESULT &Result]
+}
+
+object1 MYCLASS ::= {ID id-object1 TYPE Type-object1 RESULT INTEGER}
+object2 MYCLASS ::= {ID id-object2 TYPE Type-object2}
+object3 MYCLASS ::= {ID id-object3 TYPE Type-object3 RESULT BOOLEAN}
+
+ObjectSet MYCLASS ::= {object1 | object2 | object3}
+
+id-object1 OBJECT IDENTIFIER ::= {2 4}
+id-object2 OBJECT IDENTIFIER ::= {2 5}
+id-object3 OBJECT IDENTIFIER ::= {2 6 7}
+
+
+Type-object1 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+Type-object2 ::= ENUMERATED {first, second, third}
+
+Type-object3 ::= CHOICE {
+ first SEQUENCE {a BOOLEAN, b INTEGER},
+ second INTEGER
+}
+
+Seq1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab MYCLASS.&id ({ObjectSet})},
+ b SEQUENCE {ba INTEGER, bb MYCLASS.&Type ({ObjectSet}{@a.ab})}
+}
+
+Seq2 ::= SEQUENCE {
+ identity INTEGER,
+ content SEQUENCE {
+ subid MYCLASS.&id ({ObjectSet}),
+ subcontent MYCLASS.&Type ({ObjectSet}{@content.subid}),
+ subresult MYCLASS.&Result ({ObjectSet}{@content.subid})
+ }
+}
+
+
+-- following from Peter's definitions
+
+
+MY-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+Info ::= SEQUENCE {
+ xyz SEQUENCE {
+ abc MY-CLASS.&id({Supported})
+ },
+ uvw MY-CLASS.&Type ({Supported}{@xyz.abc}) }
+
+Supported MY-CLASS ::= { dsa | rsa }
+
+-- dsa
+
+ id-dsa OBJECT IDENTIFIER ::= { 1 2 }
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ dsa MY-CLASS ::= {
+ ID id-dsa
+ TYPE DSAPublicKey }
+
+-- rsa
+
+ rsaEncryption OBJECT IDENTIFIER ::= { 1 3 4 }
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ rsa MY-CLASS ::= {
+ ID rsaEncryption
+ TYPE RSAPublicKey }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/TConstrChoice.asn1 b/lib/asn1/test/asn1_bin_SUITE_data/TConstrChoice.asn1
new file mode 100644
index 0000000000..4f17786e78
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/TConstrChoice.asn1
@@ -0,0 +1,175 @@
+TConstrChoice DEFINITIONS ::=
+BEGIN
+
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings [1] SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ any [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ final [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}) }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion }
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion ATTRIBUTE.&equality-match.&AssertionType
+ ({SupportedAttributes}{@type}) }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ type MATCHING-RULE.&id({MatchingRules}),
+ assertion MATCHING-RULE.&AssertionType ({MatchingRules}{@type})
+ }
+
+AttributeType ::= INTEGER(0..127)
+
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL,
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage Attribute-Usage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id }
+
+Attribute-Usage ::= ENUMERATED { userApplications(0),
+ directoryOperation(1), distributedOperation(2),
+ dSAOperation(3) }
+
+
+surname ATTRIBUTE ::= { -- family name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= { -- first name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-givenName }
+
+countryName ATTRIBUTE ::= { -- country
+ SUBTYPE OF name
+ WITH SYNTAX PrintableString (SIZE (2)) -- [ISO3166] codes
+ SINGLE VALUE TRUE
+ ID id-at-countryName}
+
+SupportedAttributes ATTRIBUTE ::=
+{surname | givenName | countryName}
+
+-- id-at-surname DirectoryString ::= universalString:"SureName"
+
+id-at-surname OBJECT IDENTIFIER ::= {2 4}
+
+-- id-at-givenName DirectoryString ::= printableString:"GivenName"
+
+id-at-givenName OBJECT IDENTIFIER ::= {2 5}
+
+-- id-at-countryName PrintableString (SIZE (2)) ::= "CN"
+
+id-at-countryName OBJECT IDENTIFIER ::= {2 6}
+
+MATCHING-RULE ::= CLASS {
+ &AssertionType OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SYNTAX &AssertionType]
+ ID &id }
+
+MatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch }
+
+LessMatchingRules MATCHING-RULE ::= {
+ MatchingRules EXCEPT caseIgnoreMatch }
+
+ExtensibleMatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch, ... }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-name }
+
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE (1..maxSize))
+-- utf8String UTF8String (SIZE (1..maxSize))
+ }
+
+maxSize INTEGER ::= 25
+
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString
+ ID id-caseIgnoreMatch
+ }
+
+booleanMatch MATCHING-RULE ::= {
+ SYNTAX BOOLEAN
+ ID id-booleanMatch
+ }
+
+integerMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-integerMatch
+ }
+
+id-mr OBJECT IDENTIFIER ::=
+{2 5 11}
+
+id-name OBJECT IDENTIFIER ::= {2 5 11 5}
+
+id-caseIgnoreMatch OBJECT IDENTIFIER ::= {2 5 11 2}
+
+id-booleanMatch OBJECT IDENTIFIER ::= {2 5 11 13}
+
+id-integerMatch OBJECT IDENTIFIER ::= {2 5 11 14}
+
+--{joint-iso-itu-t ds(5) matchingRule(13)}
+
+-- test code for OTP-4248
+
+NOTUNIQUE ::= CLASS {
+ &value INTEGER,
+ &Type
+}
+WITH SYNTAX {
+ VALUE &value
+ TYPE &Type
+}
+
+
+nuObject NOTUNIQUE ::= {VALUE 3 TYPE FilterItem}
+
+NuObjectSet NOTUNIQUE ::= {nuObject}
+
+Seq ::= SEQUENCE {
+ a NOTUNIQUE.&value ({NuObjectSet}),
+ b NOTUNIQUE.&Type ({NuObjectSet}{@a})
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Time.py b/lib/asn1/test/asn1_bin_SUITE_data/Time.py
new file mode 100644
index 0000000000..e3672464e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Time.py
@@ -0,0 +1,7 @@
+Time DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Pstr ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Tst.py b/lib/asn1/test/asn1_bin_SUITE_data/Tst.py
new file mode 100644
index 0000000000..d80b32dad5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Tst.py
@@ -0,0 +1,153 @@
+Tst { 2 6 6 24 7 1 } DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+--EXPORTS SomeSet , Id0 , Aset,Id1 ,A,B,C,
+-- Uhh ,Foo ,Cho,Person,Hobbe,Robbe,X,Y;
+
+IMPORTS Fooo FROM Bobby;
+
+
+Robbe ::= SET {
+ ttt TT }
+
+Koo ::= SET {
+ c CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ s SET OF Id0 }
+
+
+Hobbe ::= [APPLICATION 1] SET {
+ aaa [0] SET OF INTEGER,
+ bbb [1] UU
+ }
+
+UU ::= PP
+PP ::= CHOICE {
+ cc [1] CHOICE {
+ a [0] INTEGER,
+ b [1] BOOLEAN,
+ c [2] BIT STRING },
+ ii [0] Id0
+ }
+
+
+TT ::= SS
+SS ::= SET {
+ b BOOLEAN DEFAULT TRUE
+ }
+
+Aset ::= [PRIVATE 2] SET OF Uhh
+
+
+
+SomeSet ::= [PRIVATE 3] IMPLICIT SET {
+ aaaa [2] SET{
+ ggg [0] INTEGER},
+ kkkk [1] SET OF Id2,
+ booby [4] OCTET STRING,
+ puck [3] INTEGER {red(0),blue(1),yellow(-2)},
+ baby [5] IMPLICIT Id1,
+ bool [6] BOOLEAN }
+
+
+Id0 ::= INTEGER (4 .. 99)
+
+Id1 ::= Id0
+
+Id2 ::= [PRIVATE 4] EXPLICIT Id1
+
+
+Uhh ::= SET {
+ a [1] IMPLICIT Id1}
+
+
+
+Soon ::= [PRIVATE 5] Moon
+
+Moon ::= [PRIVATE 6] IMPLICIT Person
+
+
+Person ::= [PRIVATE 7] IMPLICIT SEQUENCE {
+ szzzs SET OF SET {
+ aaa [0] INTEGER,
+ bbb [1] Id0},
+ cho Cho,
+ name OCTET STRING ,
+ location INTEGER,
+ asss Aset,
+ oops [2] IMPLICIT SET {
+ q [0] INTEGER,
+ p [1] Uhh},
+ on INTEGER,
+ mybits [3] IMPLICIT BIT STRING,
+ foo Foo,
+ age INTEGER,
+ hobbe [5] SEQUENCE {
+ a [4] CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ b [5] Id0}}
+
+
+
+
+
+Foo ::= [PRIVATE 8] IMPLICIT SEQUENCE {
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H,
+ hoohoo [11] IMPLICIT SEQUENCE {
+ bar [1] Id1 OPTIONAL,
+ foo INTEGER,
+ zombie [9] CHOICE {
+ a [1] IMPLICIT INTEGER,
+ b [2] IMPLICIT BOOLEAN }
+ },
+ moon [4] IMPLICIT INTEGER }
+
+
+
+Cho ::= [PRIVATE 9] EXPLICIT CHOICE {
+ somestring [2] IMPLICIT OCTET STRING,
+ goofy [9] INTEGER,
+ moon [4] IMPLICIT INTEGER }
+
+
+A ::= [APPLICATION 2] SET {
+ ppp IA5String ,
+ a [0] INTEGER {aaa(6),bbb(77)} DEFAULT 998,
+ b [1] Id1 OPTIONAL,
+ c [2] OCTET STRING (SIZE(8)),
+ dd [3] BIT STRING DEFAULT '11001'B }
+
+B ::= [APPLICATION 3] SET {
+ ww [1] SET {
+ a A OPTIONAL,
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H }
+ }
+
+
+C::= [APPLICATION 4] SEQUENCE OF X
+
+Y ::= OBJECT IDENTIFIER
+
+X ::= SET {
+ a NULL,
+ b GeneralString,
+ c UTCTime,
+ d VideotexString,
+ g GeneralizedTime,
+ h GraphicString,
+ i VisibleString,
+ j IA5String,
+ k PrintableString,
+ l OCTET STRING,
+ e TeletexString,
+ m ANY,
+ n ObjectDescriptor,
+ o OBJECT IDENTIFIER,
+ f NumericString }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/Two.py b/lib/asn1/test/asn1_bin_SUITE_data/Two.py
new file mode 100644
index 0000000000..c8e6f1a55b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/Two.py
@@ -0,0 +1,34 @@
+Two { 1 2 3} DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+EXPORTS A, D,Boo,Szz;
+
+
+
+D ::= [PRIVATE 1] SEQUENCE {
+ a INTEGER,
+ b Boo,
+ c ANY DEFINED BY a ,
+ d ANY }
+
+
+Boo ::= SEQUENCE OF INTEGER (198..200)
+
+A ::= [PRIVATE 2] SEQUENCE {
+ a INTEGER (1..1),
+ b INTEGER (3..3) }
+
+
+Szz ::= CHOICE {
+ one INTEGER,
+ two BOOLEAN }
+
+C ::= SET {
+ a [0] INTEGER (0..8),
+ xx [4] CHOICE {
+ [7] INTEGER (9..10),
+ a INTEGER (11 ..13) },
+ f Boo,
+ r [2] INTEGER (20..22)}
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/UPERDefault.asn b/lib/asn1/test/asn1_bin_SUITE_data/UPERDefault.asn
new file mode 100644
index 0000000000..7b81a0e09f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/UPERDefault.asn
@@ -0,0 +1,18 @@
+UPERDefault DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- OTP-7681
+Int ::= INTEGER (0..32767)
+
+Seq ::= SEQUENCE {
+ a Int,
+ b INTEGER (-27..27) DEFAULT 0, -- OTP-7678
+ c INTEGER OPTIONAL
+}
+
+seq Seq ::=
+{a 12,
+ b 0}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/UndefType.py b/lib/asn1/test/asn1_bin_SUITE_data/UndefType.py
new file mode 100644
index 0000000000..cdbe083803
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/UndefType.py
@@ -0,0 +1,14 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+IMPORTS
+ ImportedFromUndefined FROM UndefinedModule;
+
+Feltyp ::= UndefinedType
+Feltyp2 ::= ImportedFromUndefined
+Person ::= [PRIVATE 19] SEQUENCE {
+ name Undefined,
+ location INTEGER {home(0),field(1),roving(2)},
+ age ImportedFromUndefined OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/UpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/UpperBounds.asn
new file mode 100755
index 0000000000..247260495b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 1023-- This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/UsefulDefinitions.asn
new file mode 100755
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/ValueTest.asn b/lib/asn1/test/asn1_bin_SUITE_data/ValueTest.asn
new file mode 100644
index 0000000000..dae9ae498a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/ValueTest.asn
@@ -0,0 +1,53 @@
+ValueTest DEFINITIONS ::=
+
+BEGIN
+
+--Criticality ::= ENUMERATED { reject, ignore, notify }(reject)
+
+--Ignore ::= Criticality(ignore)
+
+--SubCriticality ::= Criticality(reject|notify)
+
+INNL ::= INTEGER {zero(0),one(1),ten(10)}
+BSNNL ::= BIT STRING {zero(0),one(1),two(2)}
+RadioButton ::= ENUMERATED {button1(0),button2(1),button3(2)}
+
+-- OTP-6695
+vANY ANY ::= INTEGER:12
+
+-- basic type value test for coverage
+vBOOLEAN BOOLEAN ::= TRUE
+vINTEGER INTEGER ::= 12
+vINTEGERNNL INNL ::= zero
+vENUMERATED RadioButton ::= button1
+vBS BSNNL ::= {zero,two}
+vNULL NULL ::= NULL
+vOS OCTET STRING ::= '313233'H
+vOD OBJECT IDENTIFIER ::= {2 1 1}
+
+
+--Character strings
+numericstring NumericString ::= "01234567"
+printablestring PrintableString ::= "PrintableString"
+visiblestring VisibleString ::= "VisibleString"
+cr IA5String ::= {0,13}
+ia5string1 IA5String ::= {"First line",cr, "Second line"}
+ia5string2 IA5String ::= {{5,5},{4,4},{6,6}}
+teletexstring TeletexString ::= "TeletexString"
+videotexstring VideotexString ::= "VideotexString"
+utctime UTCTime ::= "97100211-0500"
+generalizedtime GeneralizedTime ::= "19971002103130.5"
+objectdescriptor ObjectDescriptor ::= "ObjectDescriptor"
+graphicstring GraphicString ::= "GraphicString"
+generalstring GeneralString ::= "GeneralString"
+bmpstring1 BMPString ::= "BMPString"
+--bmpstring2 BMPString ::= [{0,0,0,66},{0,0,0,77},{0,0,0,80},{0,0,0,115},{0,0,0,116},{0,0,0,114},{0,0,0,105},{0,0,0,110},{0,0,0,103}]
+latinCapitalLetterA UniversalString ::= {0,0,0,65}
+greekCapitalLetterSigma UniversalString ::= {0,0,3,145}
+my-universalstring UniversalString ::= {"This is a capital A: ",
+ latinCapitalLetterA,
+ ", and a capital sigma: ",
+ greekCapitalLetterSigma,
+ "; try and spot the difference!"}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/XSeq.py b/lib/asn1/test/asn1_bin_SUITE_data/XSeq.py
new file mode 100644
index 0000000000..b068ab4393
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/XSeq.py
@@ -0,0 +1,42 @@
+XSeq DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.2
+-- Use a sequence type to model a collection of variables whose
+-- types are the same,
+-- whose number is known and modest, and whose order is significant,
+-- provided that the
+-- makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+NamesOfOfficers ::= SEQUENCE {
+ president VisibleString,
+ vicePresident VisibleString,
+ secretary VisibleString}
+
+acmeCorp NamesOfOfficers ::= {
+ president "Jane Doe",
+ vicePresident "John Doe",
+ secretary "Joe Doe"}
+
+-- F.2.10.3
+-- Use a sequence type to model a collection of variables whose types differ,
+-- whose number is known and modest, and whose order is significant,
+-- provided that
+-- the makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+Credentials ::= SEQUENCE {
+ userName VisibleString,
+ password VisibleString,
+ accountNumber INTEGER}
+
+-- Empty SEQUENCE stupid but just for test
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/XSeqOf.py b/lib/asn1/test/asn1_bin_SUITE_data/XSeqOf.py
new file mode 100644
index 0000000000..f9fee92e56
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/XSeqOf.py
@@ -0,0 +1,19 @@
+XSeqOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.1
+-- Use a sequence-of type to model a collection of variables whose
+-- types are the same,
+-- whose number is large or unpredictable, and whose order is significant.
+-- EXAMPLE
+
+NamesOfMemberNations ::= SEQUENCE OF VisibleString
+-- in alphabetical order
+
+firstTwo NamesOfMemberNations ::= {"Australia", "Austria"}
+
+DayNames1 ::= SEQUENCE SIZE(7) OF VisibleString
+DayNames2 ::= SEQUENCE SIZE(1..7) OF VisibleString
+DayNames3 ::= SEQUENCE (SIZE(7)) OF VisibleString
+DayNames4 ::= SEQUENCE (SIZE(1..7)) OF VisibleString
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/XSet.py b/lib/asn1/test/asn1_bin_SUITE_data/XSet.py
new file mode 100644
index 0000000000..39e58a39ab
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/XSet.py
@@ -0,0 +1,47 @@
+XSet DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.1
+-- Use a set type to model a collection of variables whose number is
+-- known and modest
+-- and whose order is insignificant. If automatic tagging is not in
+-- effect, identify each
+-- variable by context-specifically tagging it as shown below.
+-- (With automatic tagging, the tags are not needed.)
+-- EXAMPLE
+
+ UserName ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString,
+ countryName [2] VisibleString}
+
+ user UserName ::= {
+ countryName "Nigeria",
+ personalName "Jonas Maruba",
+ organizationName "Meteorology, Ltd."}
+
+ UserName2 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL
+ -- defaults to that of the local organization -- ,
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country -- }
+
+-- F.2.11.3
+-- Use a set type to model a collection of variables whose makeup is
+-- likely to change
+-- from one version of the protocol to the next.
+-- Identify each variable by context-specifically
+-- tagging it to retain control of the tags used.
+-- EXAMPLE
+
+ UserName3 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL ,
+ -- defaults to that of the local organization
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country
+ -- other optional attributes are for further study --}
+ user3 UserName3 ::= { personalName "Jonas Maruba" }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/XSetOf.py b/lib/asn1/test/asn1_bin_SUITE_data/XSetOf.py
new file mode 100644
index 0000000000..93337d0c33
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/XSetOf.py
@@ -0,0 +1,12 @@
+XSetOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.4
+--Use a set-of type to model a collection of variables whose types are
+-- the same and whose order is insignificant.
+-- EXAMPLE
+
+ Keywords ::= SET OF VisibleString -- in arbitrary order
+ someASN1Keywords Keywords ::= {"INTEGER", "BOOLEAN", "REAL"}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/a_SeqIn.erl b/lib/asn1/test/asn1_bin_SUITE_data/a_SeqIn.erl
new file mode 100644
index 0000000000..a447524358
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/a_SeqIn.erl
@@ -0,0 +1,31 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(a_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #a_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
+
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/b_SeqIn.erl b/lib/asn1/test/asn1_bin_SUITE_data/b_SeqIn.erl
new file mode 100644
index 0000000000..a416322b8c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/b_SeqIn.erl
@@ -0,0 +1,29 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(b_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #b_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg1.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg1.val
new file mode 100644
index 0000000000..7802193dd2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg1.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg10.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg10.val
new file mode 100644
index 0000000000..8ba4a710ba
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg10.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg11.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg11.val
new file mode 100644
index 0000000000..c2298be3d9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg11.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg12.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg12.val
new file mode 100644
index 0000000000..cb5c0c666c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg12.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg13.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg13.val
new file mode 100644
index 0000000000..3fe1df73bb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg13.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg14.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg14.val
new file mode 100644
index 0000000000..17ad9159c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg14.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg15.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg15.val
new file mode 100644
index 0000000000..4ef840762d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg15.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg16.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg16.val
new file mode 100644
index 0000000000..5252c4da38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg16.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg17.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg17.val
new file mode 100644
index 0000000000..8e040d78a2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg17.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg18.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg18.val
new file mode 100644
index 0000000000..0980cd37d4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg18.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg19.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg19.val
new file mode 100644
index 0000000000..c49f885c71
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg19.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg2.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg2.val
new file mode 100644
index 0000000000..eeb8a5fb90
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg2.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg20.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg20.val
new file mode 100644
index 0000000000..7b55708fa6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg20.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg21.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg21.val
new file mode 100644
index 0000000000..108eeb8b07
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg21.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg22.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg22.val
new file mode 100644
index 0000000000..3d9f9fefcf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg22.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg23.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg23.val
new file mode 100644
index 0000000000..61a329a76a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg23.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg24.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg24.val
new file mode 100644
index 0000000000..55adab5e8f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg24.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg25.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg25.val
new file mode 100644
index 0000000000..d351fb575a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg25.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg3.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg3.val
new file mode 100644
index 0000000000..01b7a1335a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg3.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg4.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg4.val
new file mode 100644
index 0000000000..462033fa84
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg4.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg5.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg5.val
new file mode 100644
index 0000000000..78bdaa3200
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg5.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg6.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg6.val
new file mode 100644
index 0000000000..24af9044a8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg6.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg7.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg7.val
new file mode 100644
index 0000000000..ab028e7128
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg7.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg8.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg8.val
new file mode 100644
index 0000000000..2d42b73c0c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg8.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg9.val b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg9.val
new file mode 100644
index 0000000000..3581dc033a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/megacomessages/Msg9.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/BasicAccessControl.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/CertificateExtensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/InformationFramework.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/InformationFramework.asn
new file mode 100644
index 0000000000..5c26febd5b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+-- TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+-- HierarchySelections, FamilyGrouping, FamilyReturn
+-- FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+--contextAssertionSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {contextAssertionDefaults}
+-- ID id-sc-contextAssertionSubentry
+--}
+
+-- serviceAdminSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {searchRules}
+-- ID id-sc-serviceAdminSubentry
+-- }
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+-- contextAssertionDefaults ATTRIBUTE ::= {
+-- WITH SYNTAX TypeAndContextAssertion
+-- EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-contextAssertionDefault
+-- }
+
+-- searchRules ATTRIBUTE ::= {
+-- WITH SYNTAX SearchRuleDescription
+-- EQUALITY MATCHING RULE integerFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-searchRules
+-- }
+
+-- SearchRuleDescription ::= SEQUENCE {
+-- COMPONENTS OF SearchRule,
+-- name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+-- description [29] DirectoryString{ub-search} OPTIONAL,
+-- obsolete [30] BOOLEAN DEFAULT FALSE
+-- }
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+-- SearchRule ::= SEQUENCE {
+-- COMPONENTS OF SearchRuleId,
+-- serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+-- userClass [2] INTEGER OPTIONAL,
+-- inputAttributeTypes
+-- [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+-- attributeCombination [4] AttributeCombination DEFAULT and:{},
+-- outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+-- defaultControls [6] ControlOptions OPTIONAL,
+-- mandatoryControls [7] ControlOptions OPTIONAL,
+-- searchRuleControls [8] ControlOptions OPTIONAL,
+-- familyGrouping [9] FamilyGrouping OPTIONAL,
+-- familyReturn [10] FamilyReturn OPTIONAL,
+-- relaxation [11] RelaxationPolicy OPTIONAL,
+-- additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+-- allowedSubset [13] AllowedSubset DEFAULT '111'B,
+-- imposedSubset [14] ImposedSubset OPTIONAL,
+-- entryLimit [15] EntryLimit OPTIONAL
+-- }
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+-- ControlOptions ::= SEQUENCE {
+-- serviceControls [0] ServiceControlOptions DEFAULT {},
+-- searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+-- hierarchyOptions [2] HierarchySelections OPTIONAL
+-- }
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+-- SEARCH-RULE ::= CLASS {
+-- &dmdId OBJECT IDENTIFIER,
+-- &serviceType OBJECT IDENTIFIER OPTIONAL,
+-- &userClass INTEGER OPTIONAL,
+-- &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+-- &combination AttributeCombination OPTIONAL,
+-- &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+-- &defaultControls ControlOptions OPTIONAL,
+-- &mandatoryControls ControlOptions OPTIONAL,
+-- &searchRuleControls ControlOptions OPTIONAL,
+-- &familyGrouping FamilyGrouping OPTIONAL,
+-- &familyReturn FamilyReturn OPTIONAL,
+-- &additionalControl AttributeType OPTIONAL,
+-- &relaxation RelaxationPolicy OPTIONAL,
+-- &entryLimit EntryLimit OPTIONAL,
+-- &allowedSubset AllowedSubset DEFAULT '111'B,
+-- &imposedSubset ImposedSubset OPTIONAL,
+-- &id INTEGER UNIQUE
+-- }
+-- WITH SYNTAX {
+-- DMD ID &dmdId
+-- [SERVICE-TYPE &serviceType]
+-- [USER-CLASS &userClass]
+-- [INPUT ATTRIBUTES &InputAttributeTypes]
+-- [COMBINATION &combination]
+-- [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+-- [DEFAULT CONTROL &defaultControls]
+-- [MANDATORY CONTROL &mandatoryControls]
+-- [SEARCH-RULE CONTROL &searchRuleControls]
+-- [FAMILY-GROUPING &familyGrouping]
+-- [FAMILY-RETURN &familyReturn]
+-- [ADDITIONAL CONTROL &additionalControl]
+-- [RELAXATION &relaxation]
+-- [ALLOWED SUBSET &allowedSubset]
+-- [IMPOSED SUBSET &imposedSubset]
+-- [ENTRY LIMIT &entryLimit]
+-- ID &id
+-- }
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/PKCS7.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/PKCS7.asn
new file mode 100644
index 0000000000..7a06661cc0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/PKCS7.asn
@@ -0,0 +1,343 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+-- pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}) OPTIONAL
+ pkcs7-content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UpperBounds.asn
new file mode 100644
index 0000000000..37890f8b49
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 32768
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/p7_signed_data.pem b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/p7_signed_data.pem
new file mode 100644
index 0000000000..fc6bdebd8b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/modified_x420/p7_signed_data.pem
@@ -0,0 +1,23 @@
+-----BEGIN PKCS7-----
+MIIDxQYJKoZIhvcNAQcCoIIDtjCCA7ICAQExCzAJBgUrDgMCGgUAMBoGCSqGSIb3
+DQEHAaANBAtwbGFpbiB0ZXh0CqCCAeMwggHfMIIBSAIJAKB+Sm2O7vxbMA0GCSqG
+SIb3DQEBBAUAMDQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEP
+MA0GA1UECxMGTkVUU2ltMB4XDTA4MDIyOTE1MzEwMFoXDTE4MDIyNjE1MzEwMFow
+NDELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0VyaWNzc29uIEFCMQ8wDQYDVQQLEwZO
+RVRTaW0wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2EtqGq/lu0DdUfexOk
+X4icontyAFXqJL8TRtsL4tSTleQiHICH+glBpJ1Grk/x5YV6Fke49hSBHhG3J8A7
+CpicAmXTiZR2LGvdLoO2HEwItlR9IaFICsr2/piHzB/ZWnu0uzeHBQW3gJNGG21V
+KltZapcBew3jNG8wdPdykPpnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAK//FOT1m
+KamyWjwWs1hzmngpqmvQAR4CcD3F5jtbwz8bNZtfoRr1VnJktZhorVb5uWPfahH2
+qnvJEX8EtoY7un8O3N1sJFVFcTkEIz2THalYZG6bQ8owqr4s3vZ3XoOBD5ukVwjE
+sVdDSa4b713tiHCsWoGca7cn6i6y6s/oDpwxggGbMIIBlwIBATBBMDQxCzAJBgNV
+BAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEPMA0GA1UECxMGTkVUU2ltAgkA
+oH5KbY7u/FswCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
+MBwGCSqGSIb3DQEJBTEPFw0wODAyMjkxNTMxMDFaMCMGCSqGSIb3DQEJBDEWBBQF
+/OBF9SkVcUzcMGOVsg3QKX/hGTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMH
+MA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG
+9w0DAgIBKDANBgkqhkiG9w0BAQEFAASBgEA7LwwdYP7LMMAoBl7qX+XMF66c5stq
+e9f2BpGsFGqhfDac+tmnCkRu1clr9VUld0DSuw+Qc3oUnpix/Vo5mwmbQ19iR/f9
+oBmm85iZMBDy8vScS6Vm7u+mHvQ9d4iNNS7MDQ8peEu9ItxWe1x3LuCAMbvGMiXE
+75U3Iy4ZYCq4
+-----END PKCS7-----
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
new file mode 100755
index 0000000000..e3f6e83d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
@@ -0,0 +1,58 @@
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+NBAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-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 }
+
+MessageDiscriminator ::= ENUMERATED { common, dedicated }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProcedureID ::= SEQUENCE {
+ procedureCode ProcedureCode,
+ ddMode ENUMERATED { tdd, fdd, common, ... }
+}
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TransactionID ::= CHOICE {
+ shortTransActionId INTEGER (0..127),
+ longTransActionId INTEGER (0..32767)
+}
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome, outcome }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Constants.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Constants.asn
new file mode 100755
index 0000000000..1411d455b7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Constants.asn
@@ -0,0 +1,688 @@
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+NBAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Constants (4)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-audit ProcedureCode ::= 0
+id-auditRequired ProcedureCode ::= 1
+id-blockResource ProcedureCode ::= 2
+id-cellDeletion ProcedureCode ::= 3
+id-cellReconfiguration ProcedureCode ::= 4
+id-cellSetup ProcedureCode ::= 5
+id-cellSynchronisationInitiation ProcedureCode ::= 45
+id-cellSynchronisationReconfiguration ProcedureCode ::= 46
+id-cellSynchronisationReporting ProcedureCode ::= 47
+id-cellSynchronisationTermination ProcedureCode ::= 48
+id-cellSynchronisationFailure ProcedureCode ::= 49
+id-commonMeasurementFailure ProcedureCode ::= 6
+id-commonMeasurementInitiation ProcedureCode ::= 7
+id-commonMeasurementReport ProcedureCode ::= 8
+id-commonMeasurementTermination ProcedureCode ::= 9
+id-commonTransportChannelDelete ProcedureCode ::= 10
+id-commonTransportChannelReconfigure ProcedureCode ::= 11
+id-commonTransportChannelSetup ProcedureCode ::= 12
+id-compressedModeCommand ProcedureCode ::= 14
+id-dedicatedMeasurementFailure ProcedureCode ::= 16
+id-dedicatedMeasurementInitiation ProcedureCode ::= 17
+id-dedicatedMeasurementReport ProcedureCode ::= 18
+id-dedicatedMeasurementTermination ProcedureCode ::= 19
+id-downlinkPowerControl ProcedureCode ::= 20
+id-downlinkPowerTimeslotControl ProcedureCode ::= 38
+id-errorIndicationForCommon ProcedureCode ::= 35
+id-errorIndicationForDedicated ProcedureCode ::= 21
+id-informationExchangeFailure ProcedureCode ::= 40
+id-informationExchangeInitiation ProcedureCode ::= 41
+id-informationExchangeTermination ProcedureCode ::= 42
+id-informationReporting ProcedureCode ::= 43
+id-BearerRearrangement ProcedureCode ::= 50
+id-physicalSharedChannelReconfiguration ProcedureCode ::= 37
+id-privateMessageForCommon ProcedureCode ::= 36
+id-privateMessageForDedicated ProcedureCode ::= 22
+id-radioLinkAddition ProcedureCode ::= 23
+id-radioLinkDeletion ProcedureCode ::= 24
+id-radioLinkFailure ProcedureCode ::= 25
+id-radioLinkPreemption ProcedureCode ::= 39
+id-radioLinkRestoration ProcedureCode ::= 26
+id-radioLinkSetup ProcedureCode ::= 27
+id-reset ProcedureCode ::= 13
+id-resourceStatusIndication ProcedureCode ::= 28
+id-cellSynchronisationAdjustment ProcedureCode ::= 44
+id-synchronisedRadioLinkReconfigurationCancellation ProcedureCode ::= 29
+id-synchronisedRadioLinkReconfigurationCommit ProcedureCode ::= 30
+id-synchronisedRadioLinkReconfigurationPreparation ProcedureCode ::= 31
+id-systemInformationUpdate ProcedureCode ::= 32
+id-unblockResource ProcedureCode ::= 33
+id-unSynchronisedRadioLinkReconfiguration ProcedureCode ::= 34
+id-radioLinkActivation ProcedureCode ::= 51
+id-radioLinkParameterUpdate ProcedureCode ::= 52
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCodes INTEGER ::= 10
+maxNrOfDLTSs INTEGER ::= 15
+maxNrOfDLTSLCRs INTEGER ::= 6
+maxNrOfErrors INTEGER ::= 256
+maxNrOfTFs INTEGER ::= 32
+maxNrOfTFCs INTEGER ::= 1024
+maxNrOfRLs INTEGER ::= 16
+maxNrOfRLs-1 INTEGER ::= 15 -- maxNrOfRLs - 1
+maxNrOfRLs-2 INTEGER ::= 14 -- maxNrOfRLs - 2
+maxNrOfRLSets INTEGER ::= maxNrOfRLs
+maxNrOfDPCHs INTEGER ::= 240
+maxNrOfDPCHLCRs INTEGER ::= 240
+maxNrOfSCCPCHs INTEGER ::= 8
+maxNrOfCPCHs INTEGER ::= 16
+maxNrOfPCPCHs INTEGER ::= 64
+maxNrOfDCHs INTEGER ::= 128
+maxNrOfDSCHs INTEGER ::= 32
+maxNrOfFACHs INTEGER ::= 8
+maxNrOfCCTrCHs INTEGER ::= 16
+maxNrOfPDSCHs INTEGER ::= 256
+maxNrOfHSPDSCHs INTEGER ::= 16
+maxNrOfPUSCHs INTEGER ::= 256
+maxNrOfPDSCHSets INTEGER ::= 256
+maxNrOfPRACHLCRs INTEGER ::= 8
+maxNrOfPUSCHSets INTEGER ::= 256
+maxNrOfSCCPCHLCRs INTEGER ::= 8
+maxNrOfULTSs INTEGER ::= 15
+maxNrOfULTSLCRs INTEGER ::= 6
+maxNrOfUSCHs INTEGER ::= 32
+maxAPSigNum INTEGER ::= 16
+maxNrOfSlotFormatsPRACH INTEGER ::= 8
+maxCellinNodeB INTEGER ::= 256
+maxCCPinNodeB INTEGER ::= 256
+maxCPCHCell INTEGER ::= maxNrOfCPCHs
+maxCTFC INTEGER ::= 16777215
+maxLocalCellinNodeB INTEGER ::= maxCellinNodeB
+maxNoofLen INTEGER ::= 7
+maxFPACHCell INTEGER ::= 8
+maxRACHCell INTEGER ::= maxPRACHCell
+maxPRACHCell INTEGER ::= 16
+maxPCPCHCell INTEGER ::= 64
+maxSCCPCHCell INTEGER ::= 32
+maxSCPICHCell INTEGER ::= 32
+maxTTI-count INTEGER ::= 4
+maxIBSEG INTEGER ::= 16
+maxIB INTEGER ::= 64
+maxFACHCell INTEGER ::= 256 -- maxNrOfFACHs * maxSCCPCHCell
+maxRateMatching INTEGER ::= 256
+maxCodeNrComp-1 INTEGER ::= 256
+maxHS-PDSCHCodeNrComp-1 INTEGER ::= 15
+maxHS-SCCHCodeNrComp-1 INTEGER ::= 127
+maxNrOfCellSyncBursts INTEGER ::= 10
+maxNrOfCodeGroups INTEGER ::= 256
+maxNrOfReceptsPerSyncFrame INTEGER ::= 16
+maxNrOfMeasNCell INTEGER ::= 96
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell - 1
+maxNrOfTFCIGroups INTEGER ::= 256
+maxNrOfTFCI1Combs INTEGER ::= 512
+maxNrOfTFCI2Combs INTEGER ::= 1024
+maxNrOfTFCI2Combs-1 INTEGER ::= 1023
+maxNrOfSF INTEGER ::= 8
+maxTGPS INTEGER ::= 6
+maxCommunicationContext INTEGER ::= 1048575
+maxNrOfLevels INTEGER ::= 256
+maxNoSat INTEGER ::= 16
+maxNoGPSItems INTEGER ::= 8
+maxNrOfHSSCCHs INTEGER ::= 32
+maxNrOfHSSICHs INTEGER ::= 4
+maxNrOfSyncFramesLCR INTEGER ::= 512
+maxNrOfReceptionsperSyncFrameLCR INTEGER ::= 8
+maxNrOfSyncDLCodesLCR INTEGER ::= 32
+maxNrOfHSSCCHCodes INTEGER ::= 4
+maxNrOfMACdFlows INTEGER ::= 8
+maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows - 1
+maxNrOfMACdPDUIndexes INTEGER ::= 8
+maxNrOfMACdPDUIndexes-1 INTEGER ::= 7 -- maxNoOfMACdPDUIndexes - 1
+maxNrOfPriorityQueues INTEGER ::= 8
+maxNrOfPriorityQueues-1 INTEGER ::= 7 -- maxNoOfPriorityQueues - 1
+maxNrOfHARQProcesses INTEGER ::= 8
+maxNrOfContextsOnUeList INTEGER ::= 16
+maxNrOfCellPortionsPerCell INTEGER ::= 64
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 63
+maxNrOfPriorityClasses INTEGER ::= 16
+maxNrOfSatAlmanac-maxNoSat INTEGER ::= 16 -- maxNrofSatAlmanac - maxNoSat
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AICH-Information ProtocolIE-ID ::= 0
+id-AICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 1
+id-BCH-Information ProtocolIE-ID ::= 7
+id-BCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 8
+id-BCCH-ModificationTime ProtocolIE-ID ::= 9
+id-BlockingPriorityIndicator ProtocolIE-ID ::= 10
+id-Cause ProtocolIE-ID ::= 13
+id-CCP-InformationItem-AuditRsp ProtocolIE-ID ::= 14
+id-CCP-InformationList-AuditRsp ProtocolIE-ID ::= 15
+id-CCP-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 16
+id-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 17
+id-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 18
+id-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 19
+id-CellParameterID ProtocolIE-ID ::= 23
+id-CFN ProtocolIE-ID ::= 24
+id-C-ID ProtocolIE-ID ::= 25
+id-CommonMeasurementAccuracy ProtocolIE-ID ::= 39
+id-CommonMeasurementObjectType-CM-Rprt ProtocolIE-ID ::= 31
+id-CommonMeasurementObjectType-CM-Rqst ProtocolIE-ID ::= 32
+id-CommonMeasurementObjectType-CM-Rsp ProtocolIE-ID ::= 33
+id-CommonMeasurementType ProtocolIE-ID ::= 34
+id-CommonPhysicalChannelID ProtocolIE-ID ::= 35
+id-CommonPhysicalChannelType-CTCH-SetupRqstFDD ProtocolIE-ID ::= 36
+id-CommonPhysicalChannelType-CTCH-SetupRqstTDD ProtocolIE-ID ::= 37
+id-CommunicationControlPortID ProtocolIE-ID ::= 40
+id-ConfigurationGenerationID ProtocolIE-ID ::= 43
+id-CRNC-CommunicationContextID ProtocolIE-ID ::= 44
+id-CriticalityDiagnostics ProtocolIE-ID ::= 45
+id-DCHs-to-Add-FDD ProtocolIE-ID ::= 48
+id-DCH-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 49
+id-DCHs-to-Add-TDD ProtocolIE-ID ::= 50
+id-DCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 52
+id-DCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 53
+id-DCH-DeleteList-RL-ReconfRqstFDD ProtocolIE-ID ::= 54
+id-DCH-DeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 55
+id-DCH-FDD-Information ProtocolIE-ID ::= 56
+id-DCH-TDD-Information ProtocolIE-ID ::= 57
+id-DCH-InformationResponse ProtocolIE-ID ::= 59
+id-FDD-DCHs-to-Modify ProtocolIE-ID ::= 62
+id-TDD-DCHs-to-Modify ProtocolIE-ID ::= 63
+id-DCH-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 65
+id-DCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 135
+id-DedicatedMeasurementObjectType-DM-Rprt ProtocolIE-ID ::= 67
+id-DedicatedMeasurementObjectType-DM-Rqst ProtocolIE-ID ::= 68
+id-DedicatedMeasurementObjectType-DM-Rsp ProtocolIE-ID ::= 69
+id-DedicatedMeasurementType ProtocolIE-ID ::= 70
+id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 72
+id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 73
+id-DL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 76
+id-DL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 77
+id-DL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 79
+id-DL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 81
+id-DL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 82
+id-DL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 83
+id-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 21
+id-DL-ReferencePowerInformationItem-DL-PC-Rqst ProtocolIE-ID ::= 84
+id-DLReferencePower ProtocolIE-ID ::= 85
+id-DLReferencePowerList-DL-PC-Rqst ProtocolIE-ID ::= 86
+id-DSCH-AddItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 87
+id-DSCHs-to-Add-FDD ProtocolIE-ID ::= 89
+id-DSCH-DeleteItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 91
+id-DSCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 93
+id-DSCHs-to-Add-TDD ProtocolIE-ID ::= 96
+id-DSCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 98
+id-DSCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 100
+id-DSCH-InformationResponse ProtocolIE-ID ::= 105
+id-DSCH-FDD-Information ProtocolIE-ID ::= 106
+id-DSCH-TDD-Information ProtocolIE-ID ::= 107
+id-DSCH-ModifyItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 108
+id-DSCH-ModifyList-RL-ReconfPrepFDD ProtocolIE-ID ::= 112
+id-DSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 136
+id-End-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 113
+id-FACH-Information ProtocolIE-ID ::= 116
+id-FACH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 117
+id-FACH-ParametersList-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 120
+id-FACH-ParametersListIE-CTCH-SetupRqstFDD ProtocolIE-ID ::= 121
+id-FACH-ParametersListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 122
+id-IndicationType-ResourceStatusInd ProtocolIE-ID ::= 123
+id-Local-Cell-ID ProtocolIE-ID ::= 124
+id-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 2
+id-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 3
+id-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 4
+id-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 5
+id-Local-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 125
+id-Local-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 126
+id-Local-Cell-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 127
+id-Local-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 128
+id-AdjustmentPeriod ProtocolIE-ID ::= 129
+id-MaxAdjustmentStep ProtocolIE-ID ::= 130
+id-MaximumTransmissionPower ProtocolIE-ID ::= 131
+id-MeasurementFilterCoefficient ProtocolIE-ID ::= 132
+id-MeasurementID ProtocolIE-ID ::= 133
+id-MessageStructure ProtocolIE-ID ::= 115
+id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ProtocolIE-ID ::= 134
+id-NodeB-CommunicationContextID ProtocolIE-ID ::= 143
+id-NeighbouringCellMeasurementInformation ProtocolIE-ID ::= 455
+id-P-CCPCH-Information ProtocolIE-ID ::= 144
+id-P-CCPCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 145
+id-P-CPICH-Information ProtocolIE-ID ::= 146
+id-P-CPICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 147
+id-P-SCH-Information ProtocolIE-ID ::= 148
+id-PCCPCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 150
+id-PCCPCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 151
+id-PCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 155
+id-PCH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 156
+id-PCH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 157
+id-PCH-Information ProtocolIE-ID ::= 158
+id-PDSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 161
+id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 162
+id-PDSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 163
+id-PDSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 164
+id-PDSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 165
+id-PICH-Information ProtocolIE-ID ::= 166
+id-PICH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 168
+id-PowerAdjustmentType ProtocolIE-ID ::= 169
+id-PRACH-Information ProtocolIE-ID ::= 170
+id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 175
+id-PrimaryCCPCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 176
+id-PrimaryCPICH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 177
+id-PrimaryCPICH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 178
+id-PrimarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 179
+id-PrimarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 180
+id-PrimaryScramblingCode ProtocolIE-ID ::= 181
+id-SCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 183
+id-SCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 184
+id-PUSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 185
+id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 186
+id-PUSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 187
+id-PUSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 188
+id-PUSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 189
+id-RACH-Information ProtocolIE-ID ::= 190
+id-RACH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 196
+id-RACH-ParameterItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 197
+id-ReportCharacteristics ProtocolIE-ID ::= 198
+id-Reporting-Object-RL-FailureInd ProtocolIE-ID ::= 199
+id-Reporting-Object-RL-RestoreInd ProtocolIE-ID ::= 200
+id-RL-InformationItem-DM-Rprt ProtocolIE-ID ::= 202
+id-RL-InformationItem-DM-Rqst ProtocolIE-ID ::= 203
+id-RL-InformationItem-DM-Rsp ProtocolIE-ID ::= 204
+id-RL-InformationItem-RL-AdditionRqstFDD ProtocolIE-ID ::= 205
+id-RL-informationItem-RL-DeletionRqst ProtocolIE-ID ::= 206
+id-RL-InformationItem-RL-FailureInd ProtocolIE-ID ::= 207
+id-RL-InformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 286
+id-RL-InformationItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 208
+id-RL-InformationItem-RL-ReconfRqstFDD ProtocolIE-ID ::= 209
+id-RL-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 210
+id-RL-InformationItem-RL-SetupRqstFDD ProtocolIE-ID ::= 211
+id-RL-InformationList-RL-AdditionRqstFDD ProtocolIE-ID ::= 212
+id-RL-informationList-RL-DeletionRqst ProtocolIE-ID ::= 213
+id-RL-InformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 237
+id-RL-InformationList-RL-ReconfPrepFDD ProtocolIE-ID ::= 214
+id-RL-InformationList-RL-ReconfRqstFDD ProtocolIE-ID ::= 215
+id-RL-InformationList-RL-SetupRqstFDD ProtocolIE-ID ::= 216
+id-RL-InformationResponseItem-RL-AdditionRspFDD ProtocolIE-ID ::= 217
+id-RL-InformationResponseItem-RL-ReconfReady ProtocolIE-ID ::= 218
+id-RL-InformationResponseItem-RL-ReconfRsp ProtocolIE-ID ::= 219
+id-RL-InformationResponseItem-RL-SetupRspFDD ProtocolIE-ID ::= 220
+id-RL-InformationResponseList-RL-AdditionRspFDD ProtocolIE-ID ::= 221
+id-RL-InformationResponseList-RL-ReconfReady ProtocolIE-ID ::= 222
+id-RL-InformationResponseList-RL-ReconfRsp ProtocolIE-ID ::= 223
+id-RL-InformationResponseList-RL-SetupRspFDD ProtocolIE-ID ::= 224
+id-RL-InformationResponse-RL-AdditionRspTDD ProtocolIE-ID ::= 225
+id-RL-InformationResponse-RL-SetupRspTDD ProtocolIE-ID ::= 226
+id-RL-Information-RL-AdditionRqstTDD ProtocolIE-ID ::= 227
+id-RL-Information-RL-ReconfRqstTDD ProtocolIE-ID ::= 228
+id-RL-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 229
+id-RL-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 230
+id-RL-ReconfigurationFailureItem-RL-ReconfFailure ProtocolIE-ID ::= 236
+id-RL-Set-InformationItem-DM-Rprt ProtocolIE-ID ::= 238
+id-RL-Set-InformationItem-DM-Rsp ProtocolIE-ID ::= 240
+id-RL-Set-InformationItem-RL-FailureInd ProtocolIE-ID ::= 241
+id-RL-Set-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 242
+id-S-CCPCH-Information ProtocolIE-ID ::= 247
+id-S-CPICH-Information ProtocolIE-ID ::= 249
+id-SCH-Information ProtocolIE-ID ::= 251
+id-S-SCH-Information ProtocolIE-ID ::= 253
+id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 257
+id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 258
+id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 259
+id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ProtocolIE-ID ::= 260
+id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ProtocolIE-ID ::= 261
+id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ProtocolIE-ID ::= 262
+id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD ProtocolIE-ID ::= 263
+id-SecondarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 264
+id-SecondarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 265
+id-SegmentInformationListIE-SystemInfoUpdate ProtocolIE-ID ::= 266
+id-SFN ProtocolIE-ID ::= 268
+id-SignallingBearerRequestIndicator ProtocolIE-ID ::= 138
+id-ShutdownTimer ProtocolIE-ID ::= 269
+id-Start-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 114
+id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 270
+id-Successful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 271
+id-SyncCase ProtocolIE-ID ::= 274
+id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ProtocolIE-ID ::= 275
+id-T-Cell ProtocolIE-ID ::= 276
+id-TargetCommunicationControlPortID ProtocolIE-ID ::= 139
+id-TimeSlotConfigurationList-Cell-ReconfRqstTDD ProtocolIE-ID ::= 277
+id-TimeSlotConfigurationList-Cell-SetupRqstTDD ProtocolIE-ID ::= 278
+id-TransmissionDiversityApplied ProtocolIE-ID ::= 279
+id-TypeOfError ProtocolIE-ID ::= 508
+id-UARFCNforNt ProtocolIE-ID ::= 280
+id-UARFCNforNd ProtocolIE-ID ::= 281
+id-UARFCNforNu ProtocolIE-ID ::= 282
+id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 284
+id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 285
+id-UL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 288
+id-UL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 289
+id-UL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 291
+id-UL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 293
+id-UL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 294
+id-UL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 295
+id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 296
+id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 297
+id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ProtocolIE-ID ::= 300
+id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ProtocolIE-ID ::= 301
+id-USCH-Information-Add ProtocolIE-ID ::= 302
+id-USCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 304
+id-USCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 306
+id-USCH-InformationResponse ProtocolIE-ID ::= 309
+id-USCH-Information ProtocolIE-ID ::= 310
+id-USCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 141
+id-Active-Pattern-Sequence-Information ProtocolIE-ID ::= 315
+id-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 316
+id-AdjustmentRatio ProtocolIE-ID ::= 317
+id-AP-AICH-Information ProtocolIE-ID ::= 320
+id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 322
+id-FACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 323
+id-CauseLevel-PSCH-ReconfFailure ProtocolIE-ID ::= 324
+id-CauseLevel-RL-AdditionFailureFDD ProtocolIE-ID ::= 325
+id-CauseLevel-RL-AdditionFailureTDD ProtocolIE-ID ::= 326
+id-CauseLevel-RL-ReconfFailure ProtocolIE-ID ::= 327
+id-CauseLevel-RL-SetupFailureFDD ProtocolIE-ID ::= 328
+id-CauseLevel-RL-SetupFailureTDD ProtocolIE-ID ::= 329
+id-CDCA-ICH-Information ProtocolIE-ID ::= 330
+id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 332
+id-Closed-Loop-Timing-Adjustment-Mode ProtocolIE-ID ::= 333
+id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 334
+id-Compressed-Mode-Deactivation-Flag ProtocolIE-ID ::= 335
+id-CPCH-Information ProtocolIE-ID ::= 336
+id-CPCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 342
+id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 343
+id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 346
+id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 347
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 348
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 349
+id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 350
+id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 351
+id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 352
+id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 353
+id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 355
+id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 356
+id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 357
+id-DL-TPC-Pattern01Count ProtocolIE-ID ::= 358
+id-DPC-Mode ProtocolIE-ID ::= 450
+id-DPCHConstant ProtocolIE-ID ::= 359
+id-DSCH-FDD-Common-Information ProtocolIE-ID ::= 94
+id-EnhancedDSCHPC ProtocolIE-ID ::= 110
+id-EnhancedDSCHPCIndicator ProtocolIE-ID ::= 111
+id-FACH-ParametersList-CTCH-SetupRsp ProtocolIE-ID ::= 362
+id-Limited-power-increase-information-Cell-SetupRqstFDD ProtocolIE-ID ::= 369
+id-PCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 374
+id-PCH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 375
+id-PCPCH-Information ProtocolIE-ID ::= 376
+id-PICH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 380
+id-PRACHConstant ProtocolIE-ID ::= 381
+id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 383
+id-PUSCHConstant ProtocolIE-ID ::= 384
+id-RACH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 385
+id-SSDT-CellIDforEDSCHPC ProtocolIE-ID ::= 443
+id-Synchronisation-Configuration-Cell-ReconfRqst ProtocolIE-ID ::= 393
+id-Synchronisation-Configuration-Cell-SetupRqst ProtocolIE-ID ::= 394
+id-Transmission-Gap-Pattern-Sequence-Information ProtocolIE-ID ::= 395
+id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 396
+id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 397
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 398
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 399
+id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 400
+id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 401
+id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 402
+id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 403
+id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 405
+id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 406
+id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 407
+id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 408
+id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 409
+id-CommunicationContextInfoItem-Reset ProtocolIE-ID ::= 412
+id-CommunicationControlPortInfoItem-Reset ProtocolIE-ID ::= 414
+id-ResetIndicator ProtocolIE-ID ::= 416
+id-TFCI2-Bearer-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 417
+id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ProtocolIE-ID ::= 418
+id-TFCI2-BearerInformationResponse ProtocolIE-ID ::= 419
+id-TFCI2BearerRequestIndicator ProtocolIE-ID ::= 142
+id-TimingAdvanceApplied ProtocolIE-ID ::= 287
+id-CFNReportingIndicator ProtocolIE-ID ::= 6
+id-SFNReportingIndicator ProtocolIE-ID ::= 11
+id-InnerLoopDLPCStatus ProtocolIE-ID ::= 12
+id-TimeslotISCPInfo ProtocolIE-ID ::= 283
+id-PICH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 167
+id-PRACH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 20
+id-CCTrCH-InformationItem-RL-FailureInd ProtocolIE-ID ::= 46
+id-CCTrCH-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 47
+id-CauseLevel-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 420
+id-CellAdjustmentInfo-SyncAdjustmntRqstTDD ProtocolIE-ID ::= 421
+id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ProtocolIE-ID ::= 494
+id-CellSyncBurstInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 482
+id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 422
+id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 423
+id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 424
+id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 425
+id-CellSyncBurstTransInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 426
+id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 427
+id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ProtocolIE-ID ::= 428
+id-CellSyncInfo-CellSyncReprtTDD ProtocolIE-ID ::= 429
+id-CSBTransmissionID ProtocolIE-ID ::= 430
+id-CSBMeasurementID ProtocolIE-ID ::= 431
+id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 432
+id-NCyclesPerSFNperiod ProtocolIE-ID ::= 433
+id-NRepetitionsPerCyclePeriod ProtocolIE-ID ::= 434
+id-SyncFrameNumber ProtocolIE-ID ::= 437
+id-SynchronisationReportType ProtocolIE-ID ::= 438
+id-SynchronisationReportCharacteristics ProtocolIE-ID ::= 439
+id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 440
+id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 119
+id-ReferenceClockAvailability ProtocolIE-ID ::= 435
+id-ReferenceSFNoffset ProtocolIE-ID ::= 436
+id-InformationExchangeID ProtocolIE-ID ::= 444
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID ::= 445
+id-InformationType ProtocolIE-ID ::= 446
+id-InformationReportCharacteristics ProtocolIE-ID ::= 447
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID ::= 448
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID ::= 449
+id-IPDLParameter-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 451
+id-IPDLParameter-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 452
+id-IPDLParameter-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 453
+id-IPDLParameter-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 454
+id-DL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 74
+id-DwPCH-LCR-Information ProtocolIE-ID ::= 78
+id-DwPCH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 90
+id-DwPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 97
+id-DwPCH-LCR-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 99
+id-DwPCH-LCR-Information-ResourceStatusInd ProtocolIE-ID ::= 101
+id-maxFACH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 154
+id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 174
+id-FPACH-LCR-Information ProtocolIE-ID ::= 290
+id-FPACH-LCR-Information-AuditRsp ProtocolIE-ID ::= 292
+id-FPACH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 22
+id-FPACH-LCR-InformationList-ResourceStatusInd ProtocolIE-ID ::= 311
+id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 312
+id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 314
+id-PCCPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 456
+id-PCH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 457
+id-PCH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 458
+id-PICH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 459
+id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 461
+id-RL-InformationResponse-LCR-RL-SetupRspTDD ProtocolIE-ID ::= 463
+id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 465
+id-TimeSlot ProtocolIE-ID ::= 495
+id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 466
+id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 467
+id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD ProtocolIE-ID ::= 468
+id-TimeSlotLCR-CM-Rqst ProtocolIE-ID ::= 469
+id-UL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 470
+id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 472
+id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 473
+id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 474
+id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 475
+id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 477
+id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 479
+id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD ProtocolIE-ID ::= 480
+id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 481
+id-UL-DPCH-LCR-InformationModify-AddList ProtocolIE-ID ::= 483
+id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 485
+id-UL-SIRTarget ProtocolIE-ID ::= 510
+id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 486
+id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 487
+id-PDSCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 26
+id-PDSCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 27
+id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 488
+id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 489
+id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 490
+id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 491
+id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 492
+id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 493
+id-timeslotInfo-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 496
+id-SyncReportType-CellSyncReprtTDD ProtocolIE-ID ::= 497
+id-Power-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 498
+id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 499
+id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 500
+id-Power-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 501
+id-Power-Local-Cell-Group-InformationList-ResourceStatusInd ProtocolIE-ID ::= 502
+id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd ProtocolIE-ID ::= 503
+id-Power-Local-Cell-Group-ID ProtocolIE-ID ::= 504
+id-PUSCH-Info-DM-Rqst ProtocolIE-ID ::= 505
+id-PUSCH-Info-DM-Rsp ProtocolIE-ID ::= 506
+id-PUSCH-Info-DM-Rprt ProtocolIE-ID ::= 507
+id-InitDL-Power ProtocolIE-ID ::= 509
+id-cellSyncBurstRepetitionPeriod ProtocolIE-ID ::= 511
+id-ReportCharacteristicsType-OnModification ProtocolIE-ID ::= 512
+id-SFNSFNMeasurementValueInformation ProtocolIE-ID ::= 513
+id-SFNSFNMeasurementThresholdInformation ProtocolIE-ID ::= 514
+id-TUTRANGPSMeasurementValueInformation ProtocolIE-ID ::= 515
+id-TUTRANGPSMeasurementThresholdInformation ProtocolIE-ID ::= 516
+id-Rx-Timing-Deviation-Value-LCR ProtocolIE-ID ::= 520
+id-RL-InformationResponse-LCR-RL-AdditionRspTDD ProtocolIE-ID ::= 51
+id-DL-PowerBalancing-Information ProtocolIE-ID ::= 28
+id-DL-PowerBalancing-ActivationIndicator ProtocolIE-ID ::= 29
+id-DL-PowerBalancing-UpdatedIndicator ProtocolIE-ID ::= 30
+id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 517
+id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 518
+id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD ProtocolIE-ID ::= 519
+id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 41
+id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 42
+id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst ProtocolIE-ID ::= 522
+id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst ProtocolIE-ID ::= 523
+id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 524
+id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 525
+id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 526
+id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 527
+id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 528
+id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 529
+id-bindingID ProtocolIE-ID ::= 102
+id-RL-Specific-DCH-Info ProtocolIE-ID ::= 103
+id-transportlayeraddress ProtocolIE-ID ::= 104
+id-DelayedActivation ProtocolIE-ID ::= 231
+id-DelayedActivationList-RL-ActivationCmdFDD ProtocolIE-ID ::= 232
+id-DelayedActivationInformation-RL-ActivationCmdFDD ProtocolIE-ID ::= 233
+id-DelayedActivationList-RL-ActivationCmdTDD ProtocolIE-ID ::= 234
+id-DelayedActivationInformation-RL-ActivationCmdTDD ProtocolIE-ID ::= 235
+id-neighbouringTDDCellMeasurementInformationLCR ProtocolIE-ID ::= 58
+id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 543
+id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 544
+id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 545
+id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 546
+id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 547
+id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ProtocolIE-ID ::= 548
+id-SyncDLCodeIdThreInfoLCR ProtocolIE-ID ::= 549
+id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD ProtocolIE-ID ::= 550
+id-DwPCH-Power ProtocolIE-ID ::= 551
+id-AccumulatedClockupdate-CellSyncReprtTDD ProtocolIE-ID ::= 552
+id-Angle-Of-Arrival-Value-LCR ProtocolIE-ID ::= 521
+id-HSDSCH-FDD-Information ProtocolIE-ID ::= 530
+id-HSDSCH-FDD-Information-Response ProtocolIE-ID ::= 531
+id-HSDSCH-Information-to-Modify ProtocolIE-ID ::= 534
+id-HSDSCH-RNTI ProtocolIE-ID ::= 535
+id-HSDSCH-TDD-Information ProtocolIE-ID ::= 536
+id-HSDSCH-TDD-Information-Response ProtocolIE-ID ::= 537
+id-HSPDSCH-RL-ID ProtocolIE-ID ::= 541
+id-PrimCCPCH-RSCP-DL-PC-RqstTDD ProtocolIE-ID ::= 542
+id-Qth-Parameter ProtocolIE-ID ::= 64
+id-PDSCH-RL-ID ProtocolIE-ID ::= 66
+id-HSDSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 553
+id-UL-Synchronisation-Parameters-LCR ProtocolIE-ID ::= 554
+id-HSDSCH-FDD-Update-Information ProtocolIE-ID ::= 555
+id-HSDSCH-TDD-Update-Information ProtocolIE-ID ::= 556
+id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 558
+id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 559
+id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD ProtocolIE-ID ::= 560
+id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 561
+id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD ProtocolIE-ID ::= 562
+id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 563
+id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 564
+id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 565
+id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 566
+id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 567
+id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 568
+id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 569
+id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 570
+id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 571
+id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 572
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 573
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 574
+id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 575
+id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 576
+id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 577
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 578
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 579
+id-Initial-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 580
+id-Maximum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 581
+id-Minimum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 582
+id-HS-DSCHProvidedBitRate ProtocolIE-ID ::= 583
+id-HS-DSCHRequiredPower ProtocolIE-ID ::= 585
+id-HS-DSCHRequiredPowerValue ProtocolIE-ID ::= 586
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission ProtocolIE-ID ::= 587
+id-HS-SICH-Reception-Quality ProtocolIE-ID ::= 588
+id-HS-SICH-Reception-Quality-Measurement-Value ProtocolIE-ID ::= 589
+id-HSSICH-Info-DM-Rprt ProtocolIE-ID ::= 590
+id-HSSICH-Info-DM-Rqst ProtocolIE-ID ::= 591
+id-HSSICH-Info-DM-Rsp ProtocolIE-ID ::= 592
+id-Best-Cell-Portions-Value ProtocolIE-ID ::= 593
+id-Primary-CPICH-Usage-for-Channel-Estimation ProtocolIE-ID ::= 594
+id-Secondary-CPICH-Information-Change ProtocolIE-ID ::= 595
+id-NumberOfReportedCellPortions ProtocolIE-ID ::= 596
+id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD ProtocolIE-ID ::= 599
+id-Unidirectional-DCH-Indicator ProtocolIE-ID ::= 602
+id-TimingAdjustmentValueLCR ProtocolIE-ID ::= 603
+id-multipleRL-dl-DPCH-InformationList ProtocolIE-ID ::= 604
+id-multipleRL-dl-DPCH-InformationModifyList ProtocolIE-ID ::= 605
+id-multipleRL-ul-DPCH-InformationList ProtocolIE-ID ::= 606
+id-multipleRL-ul-DPCH-InformationModifyList ProtocolIE-ID ::= 607
+id-RL-ID ProtocolIE-ID ::= 608
+id-SAT-Info-Almanac-ExtItem ProtocolIE-ID ::= 609
+id-HSDPA-Capability ProtocolIE-ID ::= 610
+id-HSDSCH-Resources-Information-AuditRsp ProtocolIE-ID ::= 611
+id-HSDSCH-Resources-Information-ResourceStatusInd ProtocolIE-ID ::= 612
+id-HSDSCH-MACdFlows-to-Add ProtocolIE-ID ::= 613
+id-HSDSCH-MACdFlows-to-Delete ProtocolIE-ID ::= 614
+id-HSDSCH-Information-to-Modify-Unsynchronised ProtocolIE-ID ::= 615
+id-TnlQos ProtocolIE-ID ::= 616
+id-PrimaryCCPCH-RSCP-Delta ProtocolIE-ID ::= 623
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Containers.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Containers.asn
new file mode 100755
index 0000000000..fb08451103
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-Containers.asn
@@ -0,0 +1,197 @@
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+NBAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxProtocolExtensions,
+ maxPrivateIEs,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+NBAP-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 {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {NBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality NBAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value NBAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality NBAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue NBAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality NBAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue NBAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality NBAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue NBAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {NBAP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {NBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PRIVATE-IES.&id
+ ({IEsSetParam}),
+ criticality NBAP-PRIVATE-IES.&criticality
+ ({IEsSetParam}{@id}),
+ value NBAP-PRIVATE-IES.&Value
+ ({IEsSetParam}{@id})
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-IEs.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-IEs.asn
new file mode 100755
index 0000000000..848d8f6099
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-IEs.asn
@@ -0,0 +1,4127 @@
+--******************************************************************************
+--
+-- Information Element Definitions
+--
+--******************************************************************************
+
+NBAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ maxNrOfRLs,
+ maxNrOfTFCs,
+ maxNrOfErrors,
+ maxCTFC,
+ maxNrOfTFs,
+ maxTTI-count,
+ maxRateMatching,
+ maxCodeNrComp-1,
+ maxHS-PDSCHCodeNrComp-1,
+ maxHS-SCCHCodeNrComp-1,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodeGroups,
+ maxNrOfMeasNCell,
+ maxNrOfMeasNCell-1,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfTFCIGroups,
+ maxNrOfTFCI1Combs,
+ maxNrOfTFCI2Combs,
+ maxNrOfTFCI2Combs-1,
+ maxNrOfSF,
+ maxTGPS,
+ maxNrOfUSCHs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfCodes,
+ maxNrOfDSCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDCHs,
+ maxNrOfLevels,
+ maxNoGPSItems,
+ maxNoSat,
+ maxNrOfCellPortionsPerCell,
+ maxNrOfCellPortionsPerCell-1,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSCCHCodes,
+ maxNrOfMACdFlows,
+ maxNrOfMACdFlows-1,
+ maxNrOfMACdPDUIndexes,
+ maxNrOfMACdPDUIndexes-1,
+ maxNrOfPriorityQueues,
+ maxNrOfPriorityQueues-1,
+ maxNrOfHARQProcesses,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfSyncFramesLCR,
+ maxNrOfContextsOnUeList,
+ maxNrOfPriorityClasses,
+ maxNrOfSatAlmanac-maxNoSat,
+
+ id-MessageStructure,
+ id-ReportCharacteristicsType-OnModification,
+ id-Rx-Timing-Deviation-Value-LCR,
+ id-SFNSFNMeasurementValueInformation,
+ id-SFNSFNMeasurementThresholdInformation,
+ id-TUTRANGPSMeasurementValueInformation,
+ id-TUTRANGPSMeasurementThresholdInformation,
+ id-TypeOfError,
+ id-transportlayeraddress,
+ id-bindingID,
+ id-Angle-Of-Arrival-Value-LCR,
+ id-SyncDLCodeIdThreInfoLCR,
+ id-neighbouringTDDCellMeasurementInformationLCR,
+ id-HS-SICH-Reception-Quality,
+ id-HS-SICH-Reception-Quality-Measurement-Value,
+ id-Initial-DL-Power-TimeslotLCR-InformationItem,
+ id-Maximum-DL-Power-TimeslotLCR-InformationItem,
+ id-Minimum-DL-Power-TimeslotLCR-InformationItem,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ id-HS-DSCHRequiredPower,
+ id-HS-DSCHProvidedBitRate,
+ id-HS-DSCHRequiredPowerValue,
+ id-Best-Cell-Portions-Value,
+ id-Unidirectional-DCH-Indicator,
+ id-SAT-Info-Almanac-ExtItem,
+ id-TnlQos
+FROM NBAP-Constants
+
+ Criticality,
+ ProcedureID,
+ ProtocolIE-ID,
+ TransactionID,
+ TriggeringMessage
+FROM NBAP-CommonDataTypes
+
+ NBAP-PROTOCOL-IES,
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers;
+
+-- ==========================================
+-- A
+-- ==========================================
+
+AckNack-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+Ack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+Acknowledged-PCPCH-access-preambles ::= INTEGER (0..15,...)
+-- According to mapping in [22].
+
+Acknowledged-PRACH-preambles-Value ::= INTEGER(0..240,...)
+-- According to mapping in [22].
+
+AddorDeleteIndicator ::= ENUMERATED {
+ add,
+ delete
+}
+
+Active-Pattern-Sequence-Information ::= SEQUENCE {
+ cMConfigurationChangeCFN CFN,
+ transmission-Gap-Pattern-Sequence-Status Transmission-Gap-Pattern-Sequence-Status-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Active-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Active-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List ::= SEQUENCE (SIZE (0..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGPRC TGPRC,
+ tGCFN CFN,
+ iE-Extensions ProtocolExtensionContainer { { Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-Power ::= INTEGER (-22..5)
+-- Offset in dB.
+
+AICH-TransmissionTiming ::= ENUMERATED {
+ v0,
+ v1
+}
+
+AllocationRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationRetentionPriority-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Angle-Of-Arrival-Value-LCR ::= SEQUENCE {
+ aOA-LCR AOA-LCR,
+ aOA-LCR-Accuracy-Class AOA-LCR-Accuracy-Class,
+ iE-Extensions ProtocolExtensionContainer { {Angle-Of-Arrival-Value-LCR-ExtIEs} } OPTIONAL,
+...
+}
+
+Angle-Of-Arrival-Value-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AOA-LCR ::= INTEGER (0..719)
+-- Angle Of Arrival for 1.28Mcps TDD
+
+AOA-LCR-Accuracy-Class ::= ENUMERATED {a,b,c,d,e,f,g,h,...}
+
+APPreambleSignature ::= INTEGER (0..15)
+
+APSubChannelNumber ::= INTEGER (0..11)
+
+AvailabilityStatus ::= ENUMERATED {
+ empty,
+ in-test,
+ failed,
+ power-off,
+ off-line,
+ off-duty,
+ dependency,
+ degraded,
+ not-installed,
+ log-full,
+ ...
+}
+
+-- ==========================================
+-- B
+-- ==========================================
+
+BCCH-ModificationTime ::= INTEGER (0..511)
+-- Time = BCCH-ModificationTime * 8
+-- Range 0 to 4088, step 8
+-- All SFN values in which MIB may be mapped are allowed
+
+Best-Cell-Portions-Value::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Best-Cell-Portions-Item
+
+Best-Cell-Portions-Item ::= SEQUENCE {
+ cellPortionID CellPortionID,
+ sIRValue SIR-Value,
+ iE-Extensions ProtocolExtensionContainer { { Best-Cell-Portions-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Best-Cell-Portions-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BindingID ::= OCTET STRING (SIZE (1..4, ...))
+-- If the Binding ID includes a UDP port, the UDP port is included in octet 1 and 2.The first octet of
+-- the UDP port field is included in the first octet of the Binding ID.
+
+BetaCD ::= INTEGER (0..15)
+
+BlockingPriorityIndicator ::= ENUMERATED {
+ high,
+ normal,
+ low,
+ ...
+}
+-- High priority: Block resource immediately.
+-- Normal priority: Block resource when idle or upon timer expiry.
+-- Low priority: Block resource when idle.
+
+SCTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+-- ==========================================
+-- C
+-- ==========================================
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ oam-intervention,
+ not-enough-user-plane-processing-resources,
+ 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,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unknown-C-ID,
+ cell-not-available,
+ power-level-not-supported,
+ dl-radio-resources-not-available,
+ ul-radio-resources-not-available,
+ rl-already-ActivatedOrAllocated,
+ nodeB-Resources-unavailable,
+ measurement-not-supported-for-the-object,
+ combining-resources-not-available,
+ requested-configuration-not-supported,
+ synchronisation-failure,
+ priority-transport-channel-established,
+ sIB-Origination-in-Node-B-not-Supported,
+ requested-tx-diversity-mode-not-supported,
+ unspecified,
+ bCCH-scheduling-error,
+ measurement-temporarily-not-available,
+ invalid-CM-settings,
+ reconfiguration-CFN-not-elapsed,
+ number-of-DL-codes-not-supported,
+ s-cipch-not-supported,
+ combining-not-supported,
+ ul-sf-not-supported,
+ dl-SF-not-supported,
+ common-transport-channel-type-not-supported,
+ dedicated-transport-channel-type-not-supported,
+ downlink-shared-channel-type-not-supported,
+ uplink-shared-channel-type-not-supported,
+ cm-not-supported,
+ tx-diversity-no-longer-supported,
+ unknown-Local-Cell-ID,
+ ...,
+ number-of-UL-codes-not-supported,
+ information-temporarily-not-available,
+ information-provision-not-supported-for-the-object,
+ cell-synchronisation-not-supported,
+ cell-synchronisation-adjustment-not-supported,
+ dpc-mode-change-not-supported,
+ iPDL-already-activated,
+ iPDL-not-supported,
+ iPDL-parameters-not-available,
+ frequency-acquisition-not-supported,
+ power-balancing-status-not-compatible,
+ requested-typeofbearer-re-arrangement-not-supported,
+ signalling-Bearer-Re-arrangement-not-supported,
+ bearer-Re-arrangement-needed,
+ delayed-activation-not-supported,
+ rl-timing-adjustment-not-supported
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CCTrCH-ID ::= INTEGER (0..15)
+
+CDSubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+CellParameterID ::= INTEGER (0..127,...)
+
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+CellSyncBurstCode ::= INTEGER(0..7, ...)
+
+CellSyncBurstCodeShift ::= INTEGER(0..7)
+
+CellSyncBurstRepetitionPeriod ::= INTEGER (0..4095)
+
+CellSyncBurstSIR ::= INTEGER (0..31)
+
+CellSyncBurstTiming ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+CellSyncBurstTimingLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+CellSyncBurstTimingThreshold ::= INTEGER(0..254)
+
+CFN ::= INTEGER (0..255)
+
+Channel-Assignment-Indication ::= ENUMERATED {
+ cA-Active,
+ cA-Inactive
+}
+
+ChipOffset ::= INTEGER (0..38399)
+-- Unit Chip
+
+C-ID ::= INTEGER (0..65535)
+
+Closedlooptimingadjustmentmode ::= ENUMERATED {
+ adj-1-slot,
+ adj-2-slot,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw ::= SEQUENCE (SIZE(1..maxNrOfSF)) OF
+ SEQUENCE {
+ dl-Cost INTEGER (0..65535),
+ ul-Cost INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { CommonChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementAccuracy ::= CHOICE {
+ tUTRANGPSMeasurementAccuracyClass TUTRANGPSAccuracyClass,
+ ...
+}
+
+CommonMeasurementType ::= ENUMERATED {
+ received-total-wide-band-power,
+ transmitted-carrier-power,
+ acknowledged-prach-preambles,
+ ul-timeslot-iscp,
+ acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles,
+ ...,
+ uTRAN-GPS-Timing-of-Cell-Frames-for-UE-Positioning,
+ sFN-SFN-Observed-Time-Difference,
+ transmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ hS-DSCH-Required-Power,
+ hS-DSCH-Provided-Bit-Rate
+}
+
+CommonMeasurementValue ::= CHOICE {
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-CommonMeasurementValue Extension-CommonMeasurementValue
+}
+
+Extension-CommonMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementValueIE }}
+
+Extension-CommonMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementValueInformation CRITICALITY ignore TYPE TUTRANGPSMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementValueInformation CRITICALITY ignore TYPE SFNSFNMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPower CRITICALITY ignore TYPE HS-DSCHRequiredPower PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRate CRITICALITY ignore TYPE HS-DSCHProvidedBitRate PRESENCE mandatory }
+}
+
+CommonMeasurementValueInformation ::= CHOICE {
+ measurementAvailable CommonMeasurementAvailable,
+ measurementnotAvailable CommonMeasurementnotAvailable
+}
+
+CommonMeasurementAvailable::= SEQUENCE {
+ commonmeasurementValue CommonMeasurementValue,
+ ie-Extensions ProtocolExtensionContainer { { CommonMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CommonMeasurementnotAvailable ::= NULL
+
+CommonPhysicalChannelID ::= INTEGER (0..255)
+
+Common-PhysicalChannel-Status-Information ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-PhysicalChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-PhysicalChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelID ::= INTEGER (0..255)
+
+CommonTransportChannel-InformationResponse ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonTransportChannel-InformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonTransportChannel-InformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-TransportChannel-Status-Information ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-TransportChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-TransportChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortID ::= INTEGER (0..65535)
+
+Compressed-Mode-Deactivation-Flag::= ENUMERATED {
+ deactivate,
+ maintain-Active
+}
+
+ConfigurationGenerationID ::= INTEGER (0..255)
+-- Value '0' means "No configuration"
+
+ConstantValue ::= INTEGER (-10..10,...)
+-- -10 dB - +10 dB
+-- unit dB
+-- step 1 dB
+
+CPCH-Allowed-Total-Rate ::= ENUMERATED {
+ v15,
+ v30,
+ v60,
+ v120,
+ v240,
+ v480,
+ v960,
+ v1920,
+ v2880,
+ v3840,
+ v4800,
+ v5760,
+ ...
+}
+
+CPCHScramblingCodeNumber ::= INTEGER (0..79)
+
+CPCH-UL-DPCCH-SlotFormat ::= INTEGER (0..2,...)
+
+CQI-Feedback-Cycle ::= ENUMERATED {v0, v2, v4, v8, v10, v20, v40, v80, v160,...}
+
+CQI-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+CQI-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureID ProcedureID OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ transactionID TransactionID OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+CRNC-CommunicationContextID ::= INTEGER (0..1048575)
+
+CSBMeasurementID ::= INTEGER (0..65535)
+
+CSBTransmissionID ::= INTEGER (0..65535)
+
+-- ==========================================
+-- D
+-- ==========================================
+
+DATA-ID ::= INTEGER (0..3)
+
+DCH-ID ::= INTEGER (0..255)
+
+DCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-FDD-InformationItem
+
+DCH-FDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-FDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+DCH-Specific-FDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-FDD-Item
+
+DCH-Specific-FDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-FDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-FDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+DCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-InformationResponseItem
+
+DCH-InformationResponseItem ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-TDD-InformationItem
+
+DCH-TDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-TDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-Specific-TDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-TDD-Item
+
+DCH-Specific-TDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID,
+ dl-CCTrCH-ID CCTrCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector OPTIONAL,
+ -- This IE shall be present if DCH is part of set of Coordinated DCHs
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-TDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-TDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+FDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF FDD-DCHs-to-ModifyItem
+
+FDD-DCHs-to-ModifyItem ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-FDD,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-FDD::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-FDD
+
+DCH-ModifySpecificItem-FDD::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-FDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-FDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifyItem-TDD
+
+DCH-ModifyItem-TDD ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-TDD,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-TDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-TDD
+
+DCH-ModifySpecificItem-TDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ dl-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-TDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-TDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw ::= SEQUENCE ( SIZE(1..maxNrOfSF) ) OF
+ SEQUENCE {
+ dl-Cost-1 INTEGER (0..65535),
+ dl-Cost-2 INTEGER (0..65535),
+ ul-Cost-1 INTEGER (0..65535),
+ ul-Cost-2 INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { DedicatedChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementType ::= ENUMERATED {
+ sir,
+ sir-error,
+ transmitted-code-power,
+ rscp,
+ rx-timing-deviation,
+ round-trip-time,
+ ...,
+ rx-timing-deviation-LCR,
+ angle-Of-Arrival-LCR,
+ hs-sich-quality,
+ best-Cell-Portions
+
+}
+
+DedicatedMeasurementValue ::= CHOICE {
+ sIR-Value SIR-Value,
+ sIR-ErrorValue SIR-Error-Value,
+ transmittedCodePowerValue Transmitted-Code-Power-Value,
+ rSCP RSCP-Value,
+ rxTimingDeviationValue Rx-Timing-Deviation-Value,
+ roundTripTime Round-Trip-Time-Value,
+ ...,
+ extension-DedicatedMeasurementValue Extension-DedicatedMeasurementValue
+}
+
+Extension-DedicatedMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-DedicatedMeasurementValueIE }}
+
+Extension-DedicatedMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory }|
+ { ID id-Angle-Of-Arrival-Value-LCR CRITICALITY reject TYPE Angle-Of-Arrival-Value-LCR PRESENCE mandatory }|
+ { ID id-HS-SICH-Reception-Quality CRITICALITY reject TYPE HS-SICH-Reception-Quality-Value PRESENCE mandatory }|
+ { ID id-Best-Cell-Portions-Value CRITICALITY reject TYPE Best-Cell-Portions-Value PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementValueInformation ::= CHOICE {
+ measurementAvailable DedicatedMeasurementAvailable,
+ measurementnotAvailable DedicatedMeasurementnotAvailable
+}
+
+DedicatedMeasurementAvailable::= SEQUENCE {
+ dedicatedmeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DedicatedMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementnotAvailable ::= NULL
+
+DelayedActivation ::= CHOICE {
+ cfn CFN,
+ separate-indication NULL
+}
+
+DelayedActivationUpdate ::= CHOICE {
+ activate Activate-Info,
+ deactivate Deactivate-Info
+}
+
+Activate-Info ::= SEQUENCE {
+ activation-type Execution-Type,
+ initial-dl-tx-power DL-Power,
+ firstRLS-Indicator FirstRLS-Indicator OPTIONAL, --FDD Only
+ propagation-delay PropagationDelay OPTIONAL, --FDD Only
+ iE-Extensions ProtocolExtensionContainer { { Activate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Activate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Deactivate-Info ::= SEQUENCE {
+ deactivation-type Execution-Type,
+ iE-Extensions ProtocolExtensionContainer { { Deactivate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Deactivate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Execution-Type ::= CHOICE {
+ synchronised CFN,
+ unsynchronised NULL
+}
+
+Detected-PCPCH-access-preambles ::= INTEGER (0..240,...)
+-- According to mapping in [22].
+
+DeltaSIR ::= INTEGER (0..30)
+-- Unit dB, Step 0.1 dB, Range 0..3 dB.
+
+DGPSCorrections ::= SEQUENCE {
+ gpstow GPSTOW,
+ status-health GPS-Status-Health,
+ satelliteinfo SAT-Info-DGPSCorrections,
+ ie-Extensions ProtocolExtensionContainer { { DGPSCorrections-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSCorrections-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGPSThresholds ::= SEQUENCE {
+ prcdeviation PRCDeviation,
+ ie-Extensions ProtocolExtensionContainer { { DGPSThresholds-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSThresholds-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiscardTimer ::= ENUMERATED {v20,v40,v60,v80,v100,v120,v140,v160,v180,v200,v250,v300,v400,v500,v750,v1000,v1250,v1500,v1750,v2000,v2500,v3000,v3500,v4000,v4500,v5000,v7500,
+ ...
+}
+
+DiversityControlField ::= ENUMERATED {
+ may,
+ must,
+ must-not,
+ ...
+}
+
+DiversityMode ::= ENUMERATED {
+ none,
+ sTTD,
+ closed-loop-mode1,
+ closed-loop-mode2,
+ ...
+}
+
+DL-DPCH-SlotFormat ::= INTEGER (0..16,...)
+
+DL-DPCH-TimingAdjustment ::= ENUMERATED {
+ timing-advance,
+ timing-delay
+}
+
+DL-Timeslot-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationItem
+
+DL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-Information TDD-DL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-TimeslotLCR-InformationItem
+
+DL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-LCR-Information TDD-DL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Initial-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Maximum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+DL-FrameType ::= ENUMERATED {
+ typeA,
+ typeB,
+ ...
+}
+
+DL-or-Global-CapacityCredit ::= INTEGER (0..65535)
+
+DL-Power ::= INTEGER (-350..150)
+-- Value = DL-Power/10
+-- Unit dB, Range -35dB .. +15dB, Step +0.1dB
+
+DLPowerAveragingWindowSize ::= INTEGER (1..60)
+
+DL-PowerBalancing-Information ::= SEQUENCE {
+ powerAdjustmentType PowerAdjustmentType,
+ dLReferencePower DL-Power OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common'
+ dLReferencePowerList-DL-PC-Rqst DL-ReferencePowerInformationList OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Individual'
+ maxAdjustmentStep MaxAdjustmentStep OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentPeriod AdjustmentPeriod OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentRatio ScaledAdjustmentRatio OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ iE-Extensions ProtocolExtensionContainer { { DL-PowerBalancing-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-PowerBalancing-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF DL-ReferencePowerInformationItem
+
+DL-ReferencePowerInformationItem ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-Reference-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { {DL-ReferencePowerInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PowerBalancing-ActivationIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Activated
+}
+
+DL-PowerBalancing-UpdatedIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Updated
+}
+
+DL-ScramblingCode ::= INTEGER (0..15)
+-- 0= Primary scrambling code of the cell, 1..15= Secondary scrambling code --
+
+DL-TimeslotISCP ::= INTEGER (0..91)
+
+DL-TimeslotISCPInfo ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-TimeslotISCPInfoItem
+
+DL-TimeslotISCPInfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotISCPInfoLCR ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-TimeslotISCPInfoItemLCR
+
+DL-TimeslotISCPInfoItemLCR ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItemLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TPC-Pattern01Count ::= INTEGER (0..30,...)
+
+Downlink-Compressed-Mode-Method ::= ENUMERATED {
+ puncturing,
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+DPC-Mode ::= ENUMERATED {
+ mode0,
+ mode1,
+ ...
+}
+
+DPCH-ID ::= INTEGER (0..239)
+
+DSCH-ID ::= INTEGER (0..255)
+
+DSCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-InformationResponseItem
+
+DSCH-InformationResponseItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-InformationResponseItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DSCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Common-Information ::= SEQUENCE {
+ enhancedDSCHPCIndicator EnhancedDSCHPCIndicator OPTIONAL,
+ enhancedDSCHPC EnhancedDSCHPC OPTIONAL,
+ -- The IE shall be present if the Enhanced DSCH PC Indicator IE is set to "Enhanced DSCH PC Active in the UE".
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-Common-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-Common-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-FDD-InformationItem
+
+DSCH-FDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-TDD-InformationItem
+
+DSCH-TDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DsField ::= BIT STRING (SIZE (8))
+
+DwPCH-Power ::= INTEGER (-150..400,...)
+-- DwPCH-power = power * 10
+-- If power <= -15 DwPCH shall be set to -150
+-- If power >= 40 DwPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+
+-- ==========================================
+-- E
+-- ==========================================
+
+End-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ end-of-audit-sequence,
+ not-end-of-audit-sequence
+}
+
+EnhancedDSCHPC ::= SEQUENCE {
+ enhancedDSCHPCWnd EnhancedDSCHPCWnd,
+ enhancedDSCHPCCounter EnhancedDSCHPCCounter,
+ enhancedDSCHPowerOffset EnhancedDSCHPowerOffset,
+ ...
+}
+
+EnhancedDSCHPCCounter ::= INTEGER (1..50)
+
+EnhancedDSCHPCIndicator ::= ENUMERATED {
+ enhancedDSCHPCActiveInTheUE,
+ enhancedDSCHPCNotActiveInTheUE
+}
+
+EnhancedDSCHPCWnd ::= INTEGER (1..10)
+
+EnhancedDSCHPowerOffset ::= INTEGER (-15..0)
+
+-- ==========================================
+-- F
+-- ==========================================
+
+FDD-DL-ChannelisationCodeNumber ::= INTEGER(0.. 511)
+-- According to the mapping in [9]. The maximum value is equal to the DL spreading factor -1--
+
+FDD-DL-CodeInformation ::= SEQUENCE (SIZE (1..maxNrOfCodes)) OF FDD-DL-CodeInformationItem
+
+FDD-DL-CodeInformationItem ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ transmissionGapPatternSequenceCodeInformation TransmissionGapPatternSequenceCodeInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DL-CodeInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DL-CodeInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-S-CCPCH-Offset ::= INTEGER (0..149)
+-- 0: 0 chip, 1: 256 chip, 2: 512 chip, .. ,149: 38144 chip [7] --
+
+FDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size0-5,
+ step-size1,
+ step-size1-5,
+ step-size2,
+ ...
+}
+
+FirstRLS-Indicator ::= ENUMERATED {
+ first-RLS,
+ not-first-RLS,
+ ...
+}
+
+FNReportingIndicator ::= ENUMERATED {
+ fN-reporting-required,
+ fN-reporting-not-required
+}
+
+FrameHandlingPriority ::= INTEGER (0..15)
+-- 0=lowest priority, 15=highest priority --
+
+FrameAdjustmentValue ::= INTEGER(0..4095)
+
+FrameOffset ::= INTEGER (0..255)
+
+FPACH-Power ::= INTEGER (-150..400,...) -- FPACH-power = power * 10
+-- If power <= -15 FPACH shall be set to -150
+-- If power >= 40 FPACH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+-- ==========================================
+-- G
+-- ==========================================
+
+GapLength ::= INTEGER (1..14)
+-- Unit slot
+
+GapDuration ::= INTEGER (1..144,...)
+-- Unit frame
+
+GenericTrafficCategory ::= BIT STRING (SIZE (8))
+
+GPS-Almanac ::= SEQUENCE {
+ wna-alm BIT STRING (SIZE (8)),
+ sat-info-almanac SAT-Info-Almanac,
+ sVGlobalHealth-alm BIT STRING (SIZE (364)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GPS-Almanac-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Almanac-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SAT-Info-Almanac-ExtItem CRITICALITY ignore EXTENSION SAT-Info-Almanac-ExtList PRESENCE optional},
+ ...
+}
+
+GPS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (8)),
+ alpha-one-ionos BIT STRING (SIZE (8)),
+ alpha-two-ionos BIT STRING (SIZE (8)),
+ alpha-three-ionos BIT STRING (SIZE (8)),
+ beta-zero-ionos BIT STRING (SIZE (8)),
+ beta-one-ionos BIT STRING (SIZE (8)),
+ beta-two-ionos BIT STRING (SIZE (8)),
+ beta-three-ionos BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-Ionospheric-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Ionospheric-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Information ::= SEQUENCE (SIZE (0..maxNoGPSItems)) OF GPS-Information-Item
+-- This IE shall be present if the Information Type Item IE indicates 'GPS Information'
+
+GPS-Information-Item ::= ENUMERATED {
+ gps-navigation-model-and-time-recovery,
+ gps-ionospheric-model,
+ gps-utc-model,
+ gps-almanac,
+ gps-rt-integrity,
+ ...
+}
+
+GPS-RealTime-Integrity ::= CHOICE {
+ bad-satellites GPSBadSat-Info-RealTime-Integrity,
+ no-bad-satellites NULL
+}
+
+GPSBadSat-Info-RealTime-Integrity ::= SEQUENCE {
+ sat-info SATInfo-RealTime-Integrity,
+ ie-Extensions ProtocolExtensionContainer { { GPSBadSat-Info-RealTime-Integrity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPSBadSat-Info-RealTime-Integrity-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-NavigationModel-and-TimeRecovery ::= SEQUENCE (SIZE (1..maxNoSat)) OF GPS-NavandRecovery-Item
+
+GPS-NavandRecovery-Item ::= SEQUENCE {
+ tx-tow-nav INTEGER (0..1048575),
+ sat-id-nav SAT-ID,
+ tlm-message-nav BIT STRING (SIZE (14)),
+ tlm-revd-c-nav BIT STRING (SIZE (2)),
+ ho-word-nav BIT STRING (SIZE (22)),
+ w-n-nav BIT STRING (SIZE (10)),
+ ca-or-p-on-l2-nav BIT STRING (SIZE (2)),
+ user-range-accuracy-index-nav BIT STRING (SIZE (4)),
+ sv-health-nav BIT STRING (SIZE (6)),
+ iodc-nav BIT STRING (SIZE (10)),
+ l2-p-dataflag-nav BIT STRING (SIZE (1)),
+ sf1-reserved-nav BIT STRING (SIZE (87)),
+ t-gd-nav BIT STRING (SIZE (8)),
+ t-oc-nav BIT STRING (SIZE (16)),
+ a-f-2-nav BIT STRING (SIZE (8)),
+ a-f-1-nav BIT STRING (SIZE (16)),
+ a-f-zero-nav BIT STRING (SIZE (22)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ gps-e-nav BIT STRING (SIZE (32)),
+ c-us-nav BIT STRING (SIZE (16)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ t-oe-nav BIT STRING (SIZE (16)),
+ fit-interval-flag-nav BIT STRING (SIZE (1)),
+ aodo-nav BIT STRING (SIZE (5)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-is-nav BIT STRING (SIZE (16)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ gps-omega-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ idot-nav BIT STRING (SIZE (14)),
+ spare-zero-fill BIT STRING (SIZE (20)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-NavandRecovery-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-NavandRecovery-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GPS-RX-POS ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { { GPS-RX-POS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-RX-POS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Status-Health ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GPSTOW ::= INTEGER (0..604799)
+
+GPS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ delta-t-ls-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ w-n-lsf-utc BIT STRING (SIZE (8)),
+ dn-utc BIT STRING (SIZE (8)),
+ delta-t-lsf-utc BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-UTC-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-UTC-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- H
+-- ==========================================
+
+
+HARQ-MemoryPartitioning ::= CHOICE {
+ implicit HARQ-MemoryPartitioning-Implicit,
+ explicit HARQ-MemoryPartitioning-Explicit,
+ ...
+ }
+
+HARQ-MemoryPartitioning-Implicit ::= SEQUENCE {
+ number-of-Processes INTEGER (1..8,...),
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Implicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Implicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit ::= SEQUENCE {
+ hARQ-MemoryPartitioningList HARQ-MemoryPartitioningList,
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Explicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioningList ::= SEQUENCE (SIZE (1..maxNrOfHARQProcesses)) OF HARQ-MemoryPartitioningItem
+
+HARQ-MemoryPartitioningItem ::= SEQUENCE {
+ process-Memory-Size ENUMERATED {
+ hms800, hms1600, hms2400, hms3200, hms4000,
+ hms4800, hms5600, hms6400, hms7200, hms8000,
+ hms8800, hms9600, hms10400, hms11200, hms12000,
+ hms12800, hms13600, hms14400, hms15200, hms16000,
+ hms17600, hms19200, hms20800, hms22400, hms24000,
+ hms25600, hms27200, hms28800, hms30400, hms32000,
+ hms36000, hms40000, hms44000, hms48000, hms52000,
+ hms56000, hms60000, hms64000, hms68000, hms72000,
+ hms76000, hms80000, hms88000, hms96000, hms104000,
+ hms112000, hms120000, hms128000, hms136000, hms144000,
+ hms152000, hms160000, hms176000, hms192000, hms208000,
+ hms224000, hms240000, hms256000, hms272000, hms288000,
+ hms304000,...},
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioningItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioningItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDPA-Capability ::= ENUMERATED {hsdpa-capable, hsdpa-non-capable}
+
+HS-DSCHProvidedBitRate ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHProvidedBitRate-Item
+
+HS-DSCHProvidedBitRate-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHProvidedBitRateValue HS-DSCHProvidedBitRateValue,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHProvidedBitRate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHProvidedBitRate-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHProvidedBitRateValue ::= INTEGER(0..16777215,...)
+-- Unit bit/s, Range 0..2^24-1, Step 1 bit
+
+
+HS-DSCHRequiredPower ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHRequiredPower-Item
+
+HS-DSCHRequiredPower-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHRequiredPowerValue HS-DSCHRequiredPowerValue,
+ hS-DSCHRequiredPowerPerUEInformation HS-DSCHRequiredPowerPerUEInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPower-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPower-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerValue ::= INTEGER(0..1000)
+-- Unit %, Range 0 ..1000, Step 0.1%
+
+HS-DSCHRequiredPowerPerUEInformation ::= SEQUENCE (SIZE (1.. maxNrOfContextsOnUeList)) OF HS-DSCHRequiredPowerPerUEInformation-Item
+
+
+HS-DSCHRequiredPowerPerUEInformation-Item ::= SEQUENCE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ hS-DSCHRequiredPowerPerUEWeight HS-DSCHRequiredPowerPerUEWeight OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEWeight ::= INTEGER(0..100)
+-- Unit %, Range 0 ..100, Step 1%
+
+
+HSDSCH-FDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ cqiFeedback-CycleK CQI-Feedback-Cycle,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ -- This IE shall be present if the CQI Feedback Cycle k is greater than 0
+ ackNackRepetitionFactor AckNack-RepetitionFactor,
+ cqiPowerOffset CQI-Power-Offset,
+ ackPowerOffset Ack-Power-Offset,
+ nackPowerOffset Nack-Power-Offset,
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ tDD-AckNack-Power-Offset TDD-AckNack-Power-Offset,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HSDSCH-Information-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModify PriorityQueue-InfoList-to-Modify OPTIONAL,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL, -- For FDD only
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL, -- For FDD only
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL, -- For FDD only
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL, -- For FDD only
+ hSSCCHCodeChangeGrant HSSCCH-Code-Change-Grant OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem-to-Modify
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModifyUnsynchronised PriorityQueue-InfoList-to-Modify-Unsynchronised OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-FDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseFDD HSSCCH-Specific-InformationRespListFDD OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseTDD HSSCCH-Specific-InformationRespListTDD OPTIONAL, -- Not Applicable to 1.28Mcps TDD
+ hsSCCH-Specific-Information-ResponseTDDLCR HSSCCH-Specific-InformationRespListTDDLCR OPTIONAL, -- Not Applicable to 3.84Mcps TDD
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InformationResp-Item
+
+HSDSCH-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ hsDSCHMacdFlow-Id HSDSCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-Information ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-Info HSDSCH-MACdFlow-Specific-InfoList,
+ priorityQueue-Info PriorityQueue-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem
+
+HSDSCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlows-to-Delete-Item
+
+HSDSCH-MACdFlows-to-Delete-Item ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-to-Delete-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-PowerOffset ::= INTEGER (0..255)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+HSDSCH-Initial-Capacity-Allocation::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF HSDSCH-Initial-Capacity-AllocationItem
+
+HSDSCH-Initial-Capacity-AllocationItem ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ maximum-MACdPDU-Size MACdPDU-Size,
+ hSDSCH-InitialWindowSize HSDSCH-InitialWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Initial-Capacity-AllocationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Initial-Capacity-AllocationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-d PDUs.
+
+HSSCCH-Specific-InformationRespListFDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Codes
+
+HSSCCH-Codes ::= SEQUENCE {
+ codeNumber INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDD
+
+HSSCCH-Specific-InformationRespItemTDD ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-Info HSSICH-Info,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDDLCR
+
+HSSCCH-Specific-InformationRespItemTDDLCR ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-InfoLCR HSSICH-InfoLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-Info ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-InfoLCR ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Reception-Quality-Value ::= SEQUENCE {
+ failed-HS-SICH HS-SICH-failed,
+ missed-HS-SICH HS-SICH-missed,
+ total-HS-SICH HS-SICH-total,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Reception-Quality-Value-ExtIEs} } OPTIONAL,
+...
+}
+
+HS-SICH-Reception-Quality-Value-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-failed ::= INTEGER (0..20)
+
+HS-SICH-missed ::= INTEGER (0..20)
+
+HS-SICH-total ::= INTEGER (0..20)
+
+HS-SICH-Reception-Quality-Measurement-Value ::= INTEGER (0..20)
+-- According to mapping in [23]
+
+HSDSCH-MACdFlow-ID ::= INTEGER (0..maxNrOfMACdFlows-1)
+
+HSDSCH-RNTI ::= INTEGER (0..65535)
+
+HS-PDSCH-FDD-Code-Information ::= SEQUENCE {
+ number-of-HS-PDSCH-codes INTEGER (0..maxHS-PDSCHCodeNrComp-1),
+ hS-PDSCH-Start-code-number HS-PDSCH-Start-code-number OPTIONAL,
+-- Only included when number of HS-DSCH codes > 0
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-FDD-Code-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-PDSCH-FDD-Code-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-Start-code-number ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+
+HS-SCCH-ID ::= INTEGER (0..31)
+HS-SICH-ID ::= INTEGER (0..31)
+
+HS-SCCH-FDD-Code-Information::= CHOICE {
+ replace HS-SCCH-FDD-Code-List,
+ remove NULL,
+ ...
+}
+
+HS-SCCH-FDD-Code-List ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-FDD-Code-Information-Item
+
+HS-SCCH-FDD-Code-Information-Item ::= INTEGER (0..maxHS-SCCHCodeNrComp-1)
+
+HSSCCH-CodeChangeIndicator ::= ENUMERATED {
+ hsSCCHCodeChangeNeeded
+}
+
+HSSCCH-Code-Change-Grant ::= ENUMERATED {
+ changeGranted
+}
+
+HSDSCH-FDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL,
+ ackPowerOffset Ack-Power-Offset OPTIONAL,
+ nackPowerOffset Nack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- I
+-- ==========================================
+
+IB-OC-ID ::= INTEGER (1..16)
+
+IB-SG-DATA ::= BIT STRING
+-- Contains SIB data fixed" or "SIB data variable" in segment as encoded in ref.[18].
+
+IB-SG-POS ::= INTEGER (0..4094)
+-- Only even positions allowed
+
+IB-SG-REP ::= ENUMERATED {rep4, rep8, rep16, rep32, rep64, rep128, rep256, rep512, rep1024, rep2048, rep4096}
+
+IB-Type ::= ENUMERATED {
+ mIB,
+ sB1,
+ sB2,
+ sIB1,
+ sIB2,
+ sIB3,
+ sIB4,
+ sIB5,
+ sIB6,
+ sIB7,
+ sIB8,
+ sIB9,
+ sIB10,
+ sIB11,
+ sIB12,
+ sIB13,
+ sIB13dot1,
+ sIB13dot2,
+ sIB13dot3,
+ sIB13dot4,
+ sIB14,
+ sIB15,
+ sIB15dot1,
+ sIB15dot2,
+ sIB15dot3,
+ sIB16,
+ ...,
+ sIB17,
+ sIB15dot4,
+ sIB18,
+ sIB15dot5
+}
+
+InformationReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic InformationReportCharacteristicsType-ReportPeriodicity,
+ onModification InformationReportCharacteristicsType-OnModification,
+ ...
+}
+
+InformationReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ min ReportPeriodicity-Scaledmin,
+ hours ReportPeriodicity-Scaledhour,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification ::= SEQUENCE {
+ information-thresholds InformationThresholds OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { InformationReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationThresholds ::= CHOICE {
+ dgps DGPSThresholds,
+ ...
+}
+
+InformationExchangeID ::= INTEGER (0..1048575)
+
+InformationType ::= SEQUENCE {
+ information-Type-Item Information-Type-Item,
+ gPSInformation GPS-Information OPTIONAL,
+ -- The IE shall be present if the Information Type Item IE indicates "GPS Information".
+ iE-Extensions ProtocolExtensionContainer { { Information-Type-ExtIEs} } OPTIONAL,
+...
+}
+
+Information-Type-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Information-Type-Item ::= ENUMERATED {
+ gpsinformation,
+ dgpscorrections,
+ gpsrxpos,
+ ...
+}
+
+InnerLoopDLPCStatus ::= ENUMERATED {
+ active,
+ inactive
+}
+
+IPDL-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+
+IPDL-FDD-Parameters ::= SEQUENCE {
+ iP-SpacingFDD ENUMERATED{sp5,sp7,sp10,sp15,sp20,sp30,sp40,sp50,...},
+ iP-Length ENUMERATED{len5, len10},
+ seed INTEGER(0..63),
+ burstModeParams BurstModeParams OPTIONAL,
+ iP-Offset INTEGER(0..9),
+ iE-Extensions ProtocolExtensionContainer { { IPDLFDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLFDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDL-TDD-Parameters ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Slot INTEGER(0..14),
+ iP-PCCPCH ENUMERATED{switchOff-1-Frame,switchOff-2-Frames},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDL-TDD-Parameters-LCR ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Sub ENUMERATED{first,second,both},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameterLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstModeParams ::= SEQUENCE {
+ burstStart INTEGER(0..15),
+ burstLength INTEGER(10..25),
+ burstFreq INTEGER(1..16),
+ ...
+}
+
+IPDLTDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLTDDParameterLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- J
+-- ==========================================
+
+-- ==========================================
+-- K
+-- ==========================================
+
+-- ==========================================
+-- L
+-- ==========================================
+
+LimitedPowerIncrease ::= ENUMERATED {
+ used,
+ not-used
+}
+
+Local-Cell-ID ::= INTEGER (0..268435455)
+
+-- ==========================================
+-- M
+-- ==========================================
+
+MACdPDU-Size ::= INTEGER (1..5000,...)
+
+MACdPDU-Size-Indexlist ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem
+
+MACdPDU-Size-IndexItem ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MACdPDU-Size-Indexlist-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem-to-Modify
+
+MACdPDU-Size-IndexItem-to-Modify ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MAChsGuaranteedBitRate ::= INTEGER (0..16777215,...)
+
+MAChsReorderingBufferSize-for-RLC-UM ::= INTEGER (0..300,...)
+-- Unit kBytes
+
+MAC-hsWindowSize ::= ENUMERATED {v4, v6, v8, v12, v16, v24, v32,...}
+
+MaximumDL-PowerCapability ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+Maximum-PDSCH-Power ::= SEQUENCE {
+ maximum-PDSCH-Power-SF4 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF8 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF16 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF32 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF64 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF128 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF256 DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Maximum-PDSCH-Power-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Maximum-PDSCH-Power-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MaximumTransmissionPower ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+MaxNrOfUL-DPDCHs ::= INTEGER (1..6)
+
+Max-Number-of-PCPCHes ::= INTEGER (1..64,...)
+
+MaxPRACH-MidambleShifts ::= ENUMERATED {
+ shift4,
+ shift8,
+ ...
+}
+
+MeasurementFilterCoefficient ::= ENUMERATED {k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k11, k13, k15, k17, k19,...}
+-- Measurement Filter Coefficient to be used for measurement
+
+MeasurementID ::= INTEGER (0..1048575)
+
+Measurement-Power-Offset ::= INTEGER(-12 .. 26)
+-- Actual value = IE value * 0.5
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MidambleConfigurationLCR ::= ENUMERATED {v2, v4, v6, v8, v10, v12, v14, v16, ...}
+
+MidambleConfigurationBurstType1And3 ::= ENUMERATED {v4, v8, v16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {v3, v6}
+
+MidambleShiftAndBurstType ::= CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftShort,
+ ...
+ },
+ ...
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+MidambleShiftLong ::= INTEGER (0..15)
+
+MidambleShiftShort ::= INTEGER (0..5)
+
+MidambleShiftLCR ::= SEQUENCE {
+ midambleAllocationMode MidambleAllocationMode,
+ midambleShift MidambleShiftLong OPTIONAL,
+ -- The IE shall be present if the Midamble Allocation Mode IE is set to "UE specific midamble".
+midambleConfigurationLCR MidambleConfigurationLCR,
+ iE-Extensions ProtocolExtensionContainer { {MidambleShiftLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MidambleAllocationMode ::= ENUMERATED {
+ defaultMidamble,
+ commonMidamble,
+ uESpecificMidamble,
+ ...
+ }
+
+MidambleShiftLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MinimumDL-PowerCapability ::= INTEGER(0..800)
+-- Unit dBm, Range -30dBm .. 50dBm, Step +0.1dB
+
+MinSpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ v512
+}
+-- TDD Mapping scheme for the minimum spreading factor 1 and 2: "256" means 1, "512" means 2
+
+ModifyPriorityQueue ::= CHOICE {
+ addPriorityQueue PriorityQueue-InfoItem-to-Add,
+ modifyPriorityQueue PriorityQueue-InfoItem-to-Modify,
+ deletePriorityQueue PriorityQueue-Id,
+ ...
+}
+
+Modulation ::= ENUMERATED {
+ qPSK,
+ eightPSK,
+ ...
+}
+
+MinUL-ChannelisationCodeLength ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+MultiplexingPosition ::= ENUMERATED {
+ fixed,
+ flexible
+}
+
+-- ==========================================
+-- N
+-- ==========================================
+
+Nack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+NCyclesPerSFNperiod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ ...,
+ v16,
+ v32,
+ v64
+}
+
+NEOT ::= INTEGER (0..8)
+
+NFmax ::= INTEGER (1..64,...)
+
+NRepetitionsPerCyclePeriod ::= INTEGER (2..10)
+
+N-INSYNC-IND ::= INTEGER (1..256)
+
+N-OUTSYNC-IND ::= INTEGER (1..256)
+
+NeighbouringCellMeasurementInformation ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ CHOICE {
+ neighbouringFDDCellMeasurementInformation NeighbouringFDDCellMeasurementInformation, -- FDD only
+ neighbouringTDDCellMeasurementInformation NeighbouringTDDCellMeasurementInformation,
+ -- Applicable to 3.84Mcps TDD only
+ ...,
+ extension-neighbouringCellMeasurementInformation Extension-neighbouringCellMeasurementInformation
+ }
+
+Extension-neighbouringCellMeasurementInformation ::= ProtocolIE-Single-Container {{ Extension-neighbouringCellMeasurementInformationIE }}
+
+Extension-neighbouringCellMeasurementInformationIE NBAP-PROTOCOL-IES ::= {
+ { ID id-neighbouringTDDCellMeasurementInformationLCR CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformationLCR PRESENCE mandatory }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringFDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCR ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NodeB-CommunicationContextID ::= INTEGER (0..1048575)
+
+NumberOfReportedCellPortions ::= INTEGER (1..maxNrOfCellPortionsPerCell,...)
+
+NStartMessage ::= INTEGER (1..8)
+
+NSubCyclesPerCyclePeriod ::= INTEGER (1..16,...)
+
+-- ==========================================
+-- O
+-- ==========================================
+
+-- ==========================================
+-- P
+-- ==========================================
+
+PagingIndicatorLength ::= ENUMERATED {
+ v2,
+ v4,
+ v8,
+ ...
+}
+
+PayloadCRC-PresenceIndicator ::= ENUMERATED {
+ cRC-Included,
+ cRC-NotIncluded,
+ ...
+}
+
+PCCPCH-Power ::= INTEGER (-150..400,...)
+-- PCCPCH-power = power * 10
+-- If power <= -15 PCCPCH shall be set to -150
+-- If power >= 40 PCCPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+PCP-Length ::= ENUMERATED{
+ v0,
+ v8
+}
+
+PDSCH-CodeMapping ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ signallingMethod CHOICE {
+ code-Range PDSCH-CodeMapping-PDSCH-CodeMappingInformationList,
+ tFCI-Range PDSCH-CodeMapping-DSCH-MappingInformationList,
+ explicit PDSCH-CodeMapping-PDSCH-CodeInformationList,
+ ...,
+ replace PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList
+ },
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-CodeNumberComp ::= INTEGER (0..maxCodeNrComp-1)
+
+PDSCH-CodeMapping-SpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfCodeGroups)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ start-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ stop-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value PDSCH-CodeMapping-MaxTFCI-Field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-MaxTFCI-Field2-Value ::= INTEGER (1..1023)
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ tfci-Field2 TFCS-MaxTFCI-field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Multi-CodeInfo ::= INTEGER (1..16)
+
+PDSCH-ID ::= INTEGER (0..255)
+
+PDSCHSet-ID ::= INTEGER (0..255)
+
+PICH-Mode ::= ENUMERATED {
+ v18,
+ v36,
+ v72,
+ v144,
+ ...
+}
+
+PICH-Power ::= INTEGER (-10..5)
+-- Unit dB, Range -10dB .. +5dB, Step +1dB
+
+PowerAdjustmentType ::= ENUMERATED {
+ none,
+ common,
+ individual
+}
+
+PowerOffset ::= INTEGER (0..24)
+-- PowerOffset = offset * 0.25
+-- Unit dB, Range 0dB .. +6dB, Step +0.25dB
+
+PowerRaiseLimit ::= INTEGER (0..10)
+
+PRACH-Midamble ::= ENUMERATED {
+ inverted,
+ direct,
+ ...
+}
+
+PRC ::= INTEGER (-2047..2047)
+--pseudo range correction; scaling factor 0.32 meters
+
+PRCDeviation ::= ENUMERATED {
+ one,
+ two,
+ five,
+ ten,
+ ...
+}
+
+PreambleSignatures ::= BIT STRING {
+ signature15(0),
+ signature14(1),
+ signature13(2),
+ signature12(3),
+ signature11(4),
+ signature10(5),
+ signature9(6),
+ signature8(7),
+ signature7(8),
+ signature6(9),
+ signature5(10),
+ signature4(11),
+ signature3(12),
+ signature2(13),
+ signature1(14),
+ signature0(15)
+ } (SIZE (16))
+
+PreambleThreshold ::= INTEGER (0..72)
+-- 0= -36.0dB, 1= -35.5dB, ... , 72= 0.0dB
+
+PredictedSFNSFNDeviationLimit ::=INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+PredictedTUTRANGPSDeviationLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PrimaryCPICH-Power ::= INTEGER(-100..500)
+-- step 0.1 (Range -10.0..50.0) Unit is dBm
+
+Primary-CPICH-Usage-for-Channel-Estimation ::= ENUMERATED {
+primary-CPICH-may-be-used,
+primary-CPICH-shall-not-be-used
+}
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+PriorityLevel ::= INTEGER (0..15)
+-- 0 = spare, 1 = highest priority, ...14 = lowest priority and 15 = no priority
+
+PriorityQueue-Id ::= INTEGER (0..maxNrOfPriorityQueues-1)
+
+PriorityQueue-InfoList ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem
+
+PriorityQueue-InfoItem ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF ModifyPriorityQueue
+
+PriorityQueue-InfoItem-to-Add ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Add-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Add-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ t1 T1 OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index-to-Modify MACdPDU-Size-Indexlist-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify-Unsynchronised ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem-to-Modify-Unsynchronised
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-RSCP ::= INTEGER (0..91)
+-- Mapping of non-negative values according to [23]
+
+PrimaryCCPCH-RSCP-Delta ::= INTEGER (-5..-1,...)
+-- Mapping of negative values according to [23]
+
+PropagationDelay ::= INTEGER (0..255)
+-- Unit: chips, step size 3 chips
+-- example: 0 = 0chip, 1 = 3chips
+
+SCH-TimeSlot ::= INTEGER (0..6)
+
+PunctureLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100%
+
+PUSCH-ID ::= INTEGER (0..255)
+
+PUSCHSet-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- Q
+-- ==========================================
+
+QE-Selector ::= ENUMERATED {
+ selected,
+ non-selected
+}
+
+Qth-Parameter ::= INTEGER (-20..0)
+-- Unit dB, Step 1dB
+
+-- ==========================================
+-- R
+-- ==========================================
+
+RACH-SlotFormat ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ ...
+}
+
+RACH-SubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+RL-Specific-DCH-Info ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF RL-Specific-DCH-Info-Item
+
+RL-Specific-DCH-Info-Item ::= SEQUENCE {
+ dCH-id DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportlayeraddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-DCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-DCH-Info-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Range-Correction-Rate ::= INTEGER (-127..127)
+-- scaling factor 0.032 m/s
+
+ReferenceClockAvailability ::= ENUMERATED {
+ available,
+ notAvailable
+}
+
+ReferenceSFNoffset ::= INTEGER (0..255)
+
+RepetitionLength ::= INTEGER (1..63)
+
+RepetitionPeriod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+RefTFCNumber ::= INTEGER (0..3)
+
+ReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic ReportCharacteristicsType-ReportPeriodicity,
+ event-a ReportCharacteristicsType-EventA,
+ event-b ReportCharacteristicsType-EventB,
+ event-c ReportCharacteristicsType-EventC,
+ event-d ReportCharacteristicsType-EventD,
+ event-e ReportCharacteristicsType-EventE,
+ event-f ReportCharacteristicsType-EventF,
+ ...,
+ extension-ReportCharacteristics Extension-ReportCharacteristics
+}
+
+Extension-ReportCharacteristics ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsIE }}
+
+Extension-ReportCharacteristicsIE NBAP-PROTOCOL-IES ::= {
+ { ID id-ReportCharacteristicsType-OnModification CRITICALITY reject TYPE ReportCharacteristicsType-OnModification PRESENCE mandatory }
+}
+
+ReportCharacteristicsType-EventA ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventA-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventA-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventB ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventB-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventB-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventC ::= SEQUENCE {
+ measurementIncreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventC-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventC-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventD ::= SEQUENCE {
+ measurementDecreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventE ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventE-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventE-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventF ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventF-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventF-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-OnModification ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value-IncrDecrThres,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value-IncrDecrThres,
+ sir SIR-Value-IncrDecrThres,
+ sir-error SIR-Error-Value-IncrDecrThres,
+ transmitted-code-power Transmitted-Code-Power-Value-IncrDecrThres,
+ rscp RSCP-Value-IncrDecrThres,
+ round-trip-time Round-Trip-Time-IncrDecrThres,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE NBAP-PROTOCOL-IES ::= {
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-MeasurementThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ sir SIR-Value,
+ sir-error SIR-Error-Value,
+ transmitted-code-power Transmitted-Code-Power-Value,
+ rscp RSCP-Value,
+ rx-timing-deviation Rx-Timing-Deviation-Value,
+ round-trip-time Round-Trip-Time-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementThreshold Extension-ReportCharacteristicsType-MeasurementThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementThresholdIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGPSMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementThresholdInformation CRITICALITY reject TYPE SFNSFNMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory}|
+ { ID id-HS-SICH-Reception-Quality-Measurement-Value CRITICALITY reject TYPE HS-SICH-Reception-Quality-Measurement-Value PRESENCE mandatory}|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}|
+ { ID id-HS-DSCHRequiredPowerValue CRITICALITY reject TYPE HS-DSCHRequiredPowerValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-ScaledMeasurementChangeTime ::= CHOICE {
+ msec MeasurementChangeTime-Scaledmsec,
+ ...
+}
+
+MeasurementChangeTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementChangeTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ScaledMeasurementHysteresisTime ::= CHOICE {
+ msec MeasurementHysteresisTime-Scaledmsec,
+ ...
+}
+
+MeasurementHysteresisTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementHysteresisTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ msec ReportPeriodicity-Scaledmsec,
+ min ReportPeriodicity-Scaledmin,
+ ...
+}
+
+ReportPeriodicity-Scaledmsec ::= INTEGER (1..6000,...)
+-- ReportPeriodicity-msec = ReportPeriodicity * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportPeriodicity-Scaledmin ::= INTEGER (1..60,...)
+-- Unit min, Range 1min .. 60min(hour), Step 1min
+
+ReportPeriodicity-Scaledhour ::= INTEGER (1..24,...)
+-- Unit hour, Range 1hour .. 24hours(day), Step 1hour
+
+ResourceOperationalState ::= ENUMERATED {
+ enabled,
+ disabled
+}
+
+RL-ID ::= INTEGER (0..31)
+
+RL-Set-ID ::= INTEGER (0..31)
+
+RLC-Mode ::= ENUMERATED {
+ rLC-AM,
+ rLC-UM,
+ ...
+}
+
+Round-Trip-Time-IncrDecrThres ::= INTEGER(0..32766)
+
+RNC-ID ::= INTEGER (0..4095)
+
+Round-Trip-Time-Value ::= INTEGER(0..32767)
+-- According to mapping in [22]
+
+RSCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+RSCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+Received-total-wide-band-power-Value ::= INTEGER(0..621)
+-- According to mapping in [22]/[23]
+
+Received-total-wide-band-power-Value-IncrDecrThres ::= INTEGER (0..620)
+
+RequestedDataValueInformation ::= CHOICE {
+ informationAvailable InformationAvailable,
+ informationnotAvailable InformationnotAvailable
+}
+
+InformationAvailable::= SEQUENCE {
+ requesteddataValue RequestedDataValue,
+ ie-Extensions ProtocolExtensionContainer { { InformationAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationnotAvailable ::= NULL
+
+RequestedDataValue ::= SEQUENCE {
+ dgps-corrections DGPSCorrections OPTIONAL,
+ gps-navandrecovery GPS-NavigationModel-and-TimeRecovery OPTIONAL,
+ gps-ionos-model GPS-Ionospheric-Model OPTIONAL,
+ gps-utc-model GPS-UTC-Model OPTIONAL,
+ gps-almanac GPS-Almanac OPTIONAL,
+ gps-rt-integrity GPS-RealTime-Integrity OPTIONAL,
+ gpsrxpos GPS-RX-POS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestedDataValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestedDataValue-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Rx-Timing-Deviation-Value ::= INTEGER (0..8191)
+-- According to mapping in [23]
+
+Rx-Timing-Deviation-Value-LCR ::= INTEGER (0..511)
+-- According to mapping in [23]
+
+-- ==========================================
+-- S
+-- ==========================================
+
+AdjustmentPeriod ::= INTEGER(1..256)
+-- Unit Frame
+
+SAT-ID ::= INTEGER (0..63)
+
+SAT-Info-Almanac ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-Almanac-Item
+
+SAT-Info-Almanac-Item ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-Item-ExtIEs} } OPTIONAL,
+ ...
+} -- This GPS-Almanac-Information is for the 1st 16 satellites
+
+SAT-Info-Almanac-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-Almanac-ExtList ::= SEQUENCE (SIZE (1..maxNrOfSatAlmanac-maxNoSat)) OF SAT-Info-Almanac-ExtItem
+
+SAT-Info-Almanac-ExtItem ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-ExtItemIEs } } OPTIONAL,
+ ...
+} -- Includes the GPS-Almanac-Information for 17th through 32nd satellites.
+
+SAT-Info-Almanac-ExtItemIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-DGPSCorrections ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-DGPSCorrections-Item
+
+SAT-Info-DGPSCorrections-Item ::= SEQUENCE {
+ sat-id SAT-ID,
+ iode-dgps BIT STRING (SIZE (8)),
+ udre UDRE,
+ prc PRC,
+ range-correction-rate Range-Correction-Rate,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-DGPSCorrections-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-DGPSCorrections-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SATInfo-RealTime-Integrity ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-RealTime-Integrity-Item
+
+SAT-Info-RealTime-Integrity-Item ::= SEQUENCE {
+ bad-sat-id SAT-ID,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-RealTime-Integrity-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-RealTime-Integrity-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScaledAdjustmentRatio ::= INTEGER(0..100)
+-- AdjustmentRatio = ScaledAdjustmentRatio / 100
+
+MaxAdjustmentStep ::= INTEGER(1..10)
+-- Unit Slot
+
+SchedulingPriorityIndicator ::= INTEGER (0..15) -- lowest (0), highest (15)
+
+SID ::= INTEGER (0..maxNrOfMACdPDUIndexes-1)
+
+ScramblingCodeNumber ::= INTEGER (0..15)
+
+Secondary-CPICH-Information-Change ::= CHOICE {
+ new-secondary-CPICH CommonPhysicalChannelID,
+ secondary-CPICH-shall-not-be-used NULL,
+...
+}
+
+SecondaryCCPCH-SlotFormat ::= INTEGER(0..17,...)
+
+Segment-Type ::= ENUMERATED {
+ first-segment,
+ first-segment-short,
+ subsequent-segment,
+ last-segment,
+ last-segment-short,
+ complete-SIB,
+ complete-SIB-short,
+ ...
+}
+
+S-FieldLength ::= ENUMERATED {
+ v1,
+ v2,
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+SFNSFN-FDD ::= INTEGER (0..614399)
+
+SFNSFN-TDD ::= INTEGER (0..40961)
+
+SFNSFNChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+SFNSFNDriftRate ::= INTEGER (-100..100)
+-- Unit chip/s, Step 1/256 chip/s, Range -100/256..+100/256 chip/s
+
+SFNSFNDriftRateQuality ::= INTEGER (0..100)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..100/256 chip/s
+
+SFNSFNMeasurementThresholdInformation::= SEQUENCE {
+ sFNSFNChangeLimit SFNSFNChangeLimit OPTIONAL,
+ predictedSFNSFNDeviationLimit PredictedSFNSFNDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNMeasurementValueInformation ::= SEQUENCE {
+ successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(1..maxNrOfMeasNCell)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ sFNSFNValue SFNSFNValue,
+ sFNSFNQuality SFNSFNQuality OPTIONAL,
+ sFNSFNDriftRate SFNSFNDriftRate,
+ sFNSFNDriftRateQuality SFNSFNDriftRateQuality OPTIONAL,
+ sFNSFNTimeStampInformation SFNSFNTimeStampInformation,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(0..maxNrOfMeasNCell-1)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ iE-Extensions ProtocolExtensionContainer { { UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+ShutdownTimer ::= INTEGER (1..3600)
+-- Unit sec
+
+SIB-Originator ::= ENUMERATED {
+ nodeB,
+ cRNC,
+ ...
+}
+
+SIR-Error-Value ::= INTEGER (0..125)
+-- According to mapping in [22]
+
+SFNSFNTimeStampInformation ::= CHOICE {
+ sFNSFNTimeStamp-FDD SFN,
+ sFNSFNTimeStamp-TDD SFNSFNTimeStamp-TDD,
+ ...}
+
+SFNSFNTimeStamp-TDD::= SEQUENCE {
+ sFN SFN,
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNTimeStamp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNTimeStamp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNValue ::= CHOICE {
+ sFNSFN-FDD SFNSFN-FDD,
+ sFNSFN-TDD SFNSFN-TDD,
+ ...
+}
+
+SIR-Error-Value-IncrDecrThres ::= INTEGER (0..124)
+
+SIR-Value ::= INTEGER (0..63)
+-- According to mapping in [22]/[23]
+
+SIR-Value-IncrDecrThres ::= INTEGER (0..62)
+
+SignallingBearerRequestIndicator::= ENUMERATED {bearerRequested}
+
+SpecialBurstScheduling ::= INTEGER (1..256) -- Number of frames between special burst transmission during DTX
+
+SSDT-Cell-Identity ::= ENUMERATED {a, b, c, d, e, f, g, h}
+
+SSDT-CellID-Length ::= ENUMERATED {
+ short,
+ medium,
+ long
+}
+
+SSDT-Indication ::= ENUMERATED {
+ ssdt-active-in-the-UE,
+ ssdt-not-active-in-the-UE
+}
+
+Start-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ start-of-audit-sequence,
+ not-start-of-audit-sequence
+}
+
+STTD-Indicator ::= ENUMERATED {
+ active,
+ inactive,
+ ...
+}
+
+SSDT-SupportIndicator ::= ENUMERATED {
+ sSDT-Supported,
+ sSDT-not-supported
+}
+
+SyncCase ::= INTEGER (1..2,...)
+
+SYNCDlCodeId ::= INTEGER (1..32,...)
+
+SyncFrameNumber ::= INTEGER (1..10)
+
+SynchronisationReportCharacteristics ::= SEQUENCE {
+ synchronisationReportCharacteristicsType SynchronisationReportCharacteristicsType,
+ synchronisationReportCharactThreExc SynchronisationReportCharactThreExc OPTIONAL,
+ -- This IE shall be included if the synchronisationReportCharacteristicsType IE is set to "thresholdExceeding".
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharacteristics-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharacteristics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SyncDLCodeIdThreInfoLCR CRITICALITY ignore EXTENSION SyncDLCodeIdThreInfoLCR PRESENCE optional },
+ ...
+}
+
+SynchronisationReportCharactThreExc ::= SEQUENCE (SIZE (1..maxNrOfCellSyncBursts)) OF SynchronisationReportCharactThreInfoItem -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+
+SynchronisationReportCharactThreInfoItem ::= SEQUENCE {
+ syncFrameNumber SyncFrameNumber,
+ cellSyncBurstInformation SEQUENCE (SIZE (1.. maxNrOfReceptsPerSyncFrame)) OF SynchronisationReportCharactCellSyncBurstInfoItem,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactThreInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactThreInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem ::= SEQUENCE {
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ cellSyncBurstTiming CellSyncBurstTiming OPTIONAL,
+ cellSyncBurstTimingThreshold CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdThreInfoLCR ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdThreInfoList --Mandatory for 1.28Mcps TDD only. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdThreInfoList ::= SEQUENCE {
+ syncFrameNoToReceive SyncFrameNumber,
+ syncDLCodeIdInfoLCR SyncDLCodeInfoListLCR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdThreInfoList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdThreInfoList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeInfoListLCR ::= SEQUENCE (SIZE (1..maxNrOfSyncDLCodesLCR)) OF SyncDLCodeInfoItemLCR
+
+SyncDLCodeInfoItemLCR ::= SEQUENCE {
+ syncDLCodeId SYNCDlCodeId,
+ syncDLCodeIdArrivTime CellSyncBurstTimingLCR OPTIONAL,
+ syncDLCodeIdTimingThre CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeInfoItem-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeInfoItem-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharacteristicsType ::= ENUMERATED {
+ frameRelated,
+ sFNperiodRelated,
+ cycleLengthRelated,
+ thresholdExceeding,
+ frequencyAcquisitionCompleted,
+ ...
+}
+
+SynchronisationReportType ::= ENUMERATED {
+ initialPhase,
+ steadyStatePhase,
+ lateEntrantCell,
+ frequencyAcquisition,
+ ...
+}
+
+-- ==========================================
+-- T
+-- ==========================================
+
+T1 ::= ENUMERATED {v10,v20,v30,v40,v50,v60,v70,v80,v90,v100,v120,v140,v160,v200,v300,v400,...}
+
+T-Cell ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ v4,
+ v5,
+ v6,
+ v7,
+ v8,
+ v9
+}
+
+T-RLFAILURE ::= INTEGER (0..255)
+-- Unit seconds, Range 0s .. 25.5s, Step 0.1s
+
+TDD-AckNack-Power-Offset ::= INTEGER (-7..8,...)
+-- Unit dB, Range -7dB .. +8dB, Step 1dB
+
+TDD-ChannelisationCode ::= ENUMERATED {
+ chCode1div1,
+ chCode2div1,
+ chCode2div2,
+ chCode4div1,
+ chCode4div2,
+ chCode4div3,
+ chCode4div4,
+ chCode8div1,
+ chCode8div2,
+ chCode8div3,
+ chCode8div4,
+ chCode8div5,
+ chCode8div6,
+ chCode8div7,
+ chCode8div8,
+ chCode16div1,
+ chCode16div2,
+ chCode16div3,
+ chCode16div4,
+ chCode16div5,
+ chCode16div6,
+ chCode16div7,
+ chCode16div8,
+ chCode16div9,
+ chCode16div10,
+ chCode16div11,
+ chCode16div12,
+ chCode16div13,
+ chCode16div14,
+ chCode16div15,
+ chCode16div16,
+ ...
+}
+
+TDD-ChannelisationCodeLCR ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ modulation Modulation, -- Modulation options for 1.28Mcps TDD in contrast to 3.84Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { TDD-ChannelisationCodeLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-ChannelisationCodeLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-DL-Code-InformationItem
+
+TDD-DL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-DL-Code-LCR-InformationItem
+
+TDD-DL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-DL-DPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TDD-DPCHOffset ::= CHOICE {
+ initialOffset INTEGER (0..255),
+ noinitialOffset INTEGER (0..63)
+}
+
+TDD-PhysicalChannelOffset ::= INTEGER (0..63)
+
+TDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TDD-TPC-UplinkStepSize-LCR ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TransportFormatCombination-Beta ::= CHOICE {
+ signalledGainFactors SEQUENCE {
+ gainFactor CHOICE {
+ fdd SEQUENCE {
+ betaC BetaCD,
+ betaD BetaCD,
+ iE-Extensions ProtocolExtensionContainer { { GainFactorFDD-ExtIEs } } OPTIONAL,
+ ...
+ },
+ tdd BetaCD,
+ ...
+ },
+ refTFCNumber RefTFCNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SignalledGainFactors-ExtIEs } } OPTIONAL,
+ ...
+ },
+ computedGainFactors RefTFCNumber,
+ ...
+}
+
+GainFactorFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignalledGainFactors-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-InformationItem
+
+TDD-UL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-UL-Code-LCR-InformationItem
+
+TDD-UL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-UL-DPCH-TimeSlotFormat-LCR TDD-UL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..69,...)
+
+EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TFCI-Coding ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ ...
+}
+
+TFCI-Presence ::= ENUMERATED {
+ present,
+ not-present
+}
+
+TFCI-SignallingMode ::= SEQUENCE {
+ tFCI-SignallingOption TFCI-SignallingMode-TFCI-SignallingOption,
+ splitType TFCI-SignallingMode-SplitType OPTIONAL,
+ -- This IE shall be present if the TFCI signalling option is set to "split" --
+ lengthOfTFCI2 TFCI-SignallingMode-LengthOfTFCI2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TFCI-SignallingMode-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI-SignallingMode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI-SignallingMode-LengthOfTFCI2 ::= INTEGER (1..10)
+
+TFCI-SignallingMode-SplitType ::= ENUMERATED {
+ hard,
+ logical
+}
+
+TFCI-SignallingMode-TFCI-SignallingOption ::= ENUMERATED {
+ normal,
+ split
+}
+
+TFCI2-BearerInformationResponse ::= SEQUENCE {
+ bindingID BindingID,
+ transportLayerAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-BearerInformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-BearerInformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2BearerRequestIndicator ::= ENUMERATED {newBearerRequested}
+
+TGD ::= INTEGER (0|15..269)
+-- 0 = Undefined, only one transmission gap in the transmission gap pattern sequence
+
+TGPRC ::= INTEGER (0..511)
+-- 0 = infinity
+
+TGPSID ::= INTEGER (1.. maxTGPS)
+
+TGSN ::= INTEGER (0..14)
+
+TimeSlot ::= INTEGER (0..14)
+
+TimeSlotDirection ::= ENUMERATED {
+ ul,
+ dl,
+ ...
+}
+
+TimeSlotLCR ::= INTEGER (0..6)
+
+TimeSlotStatus ::= ENUMERATED {
+ active,
+ not-active,
+ ...
+}
+
+TimingAdjustmentValue ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+TimingAdjustmentValueLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+TimingAdvanceApplied ::= ENUMERATED {
+ yes,
+ no
+}
+
+TnlQos ::= CHOICE {
+ dsField DsField,
+ genericTrafficCategory GenericTrafficCategory,
+ ...
+}
+
+ToAWE ::= INTEGER (0..2559)
+-- Unit ms
+
+ToAWS ::= INTEGER (0..1279)
+-- Unit ms
+
+Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGSN TGSN,
+ tGL1 GapLength,
+ tGL2 GapLength OPTIONAL,
+ tGD TGD,
+ tGPL1 GapDuration,
+ tGPL2 GapDuration OPTIONAL,
+ uL-DL-mode UL-DL-mode,
+ downlink-Compressed-Mode-Method Downlink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "DL only" or "UL/DL"
+ uplink-Compressed-Mode-Method Uplink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "UL only" or "UL/DL"
+ dL-FrameType DL-FrameType,
+ delta-SIR1 DeltaSIR,
+ delta-SIR-after1 DeltaSIR,
+ delta-SIR2 DeltaSIR OPTIONAL,
+ delta-SIR-after2 DeltaSIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Transmission-Gap-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Transmission-Gap-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionGapPatternSequenceCodeInformation ::= ENUMERATED{
+code-change,
+nocode-change
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue ::= INTEGER(0..100)
+-- According to mapping in [22] and [23]
+
+Transmitted-Carrier-Power-Value ::= INTEGER(0..100)
+-- According to mapping in [22]/[23]
+
+Transmitted-Code-Power-Value ::= INTEGER (0..127)
+-- According to mapping in [22]/[23]. Values 0 to 9 and 123 to 127 shall not be used.
+
+Transmitted-Code-Power-Value-IncrDecrThres ::= INTEGER (0..112,...)
+
+TransmissionDiversityApplied ::= BOOLEAN
+-- true: applied, false: not applied
+
+TransmitDiversityIndicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TFCS ::= SEQUENCE {
+ tFCSvalues CHOICE {
+ no-Split-in-TFCI TFCS-TFCSList,
+ split-in-TFCI SEQUENCE {
+ transportFormatCombination-DCH TFCS-DCHList,
+ signallingMethod CHOICE {
+ tFCI-Range TFCS-MapingOnDSCHList,
+ explicit TFCS-DSCHList,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { Split-in-TFCI-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TFCS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Split-in-TFCI-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-TFCSList ::= SEQUENCE (SIZE (1..maxNrOfTFCs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ tFC-Beta TransportFormatCombination-Beta OPTIONAL,
+ -- The IE shall be present if the TFCS concerns a UL DPCH or PRACH channel [FDD - or PCPCH channel].
+ iE-Extensions ProtocolExtensionContainer { { TFCS-TFCSList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-TFCSList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-CTFC ::= CHOICE {
+ ctfc2bit INTEGER (0..3),
+ ctfc4bit INTEGER (0..15),
+ ctfc6bit INTEGER (0..63),
+ ctfc8bit INTEGER (0..255),
+ ctfc12bit INTEGER (0..4095),
+ ctfc16bit INTEGER (0..65535),
+ ctfcmaxbit INTEGER (0..maxCTFC)
+}
+
+TFCS-DCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI1Combs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MapingOnDSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value TFCS-MaxTFCI-field2-Value,
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-MapingOnDSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-MapingOnDSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MaxTFCI-field2-Value ::= INTEGER (1..maxNrOfTFCI2Combs-1)
+
+TFCS-DSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportBearerRequestIndicator ::= ENUMERATED {
+ bearerRequested,
+ bearerNotRequested,
+ ...
+}
+
+TransportFormatSet ::= SEQUENCE {
+ dynamicParts TransportFormatSet-DynamicPartList,
+ semi-staticPart TransportFormatSet-Semi-staticPart,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-DynamicPartList ::= SEQUENCE (SIZE (1..maxNrOfTFs)) OF
+ SEQUENCE {
+ nrOfTransportBlocks TransportFormatSet-NrOfTransportBlocks,
+ transportBlockSize TransportFormatSet-TransportBlockSize OPTIONAL,
+ -- This IE shall be present if the Number of Transport Blocks IE is set to a value greater than 0
+ mode TransportFormatSet-ModeDP,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-DynamicPartList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransportFormatSet-DynamicPartList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-TransportFormatSet-ModeDP ::= SEQUENCE {
+ transmissionTimeIntervalInformation TransmissionTimeIntervalInformation OPTIONAL,
+ -- This IE shall be present if the Transmission Time Interval IE in the Semi-static Transport Format Information IE is set to "dynamic"
+ iE-Extensions ProtocolExtensionContainer { {TDD-TransportFormatSet-ModeDP-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TDD-TransportFormatSet-ModeDP-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionTimeIntervalInformation ::= SEQUENCE (SIZE (1..maxTTI-count)) OF
+ SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalDynamic,
+ iE-Extensions ProtocolExtensionContainer { { TransmissionTimeIntervalInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransmissionTimeIntervalInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-Semi-staticPart ::= SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalSemiStatic,
+ channelCoding TransportFormatSet-ChannelCodingType,
+ codingRate TransportFormatSet-CodingRate OPTIONAL,
+ -- This IE shall be present if the Type of channel coding IE is set to 'convolutional' or 'turbo'
+ rateMatchingAttribute TransportFormatSet-RateMatchingAttribute,
+ cRC-Size TransportFormatSet-CRC-Size,
+ mode TransportFormatSet-ModeSSP ,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-Semi-staticPart-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-ChannelCodingType ::= ENUMERATED {
+ no-codingTDD,
+ convolutional-coding,
+ turbo-coding,
+ ...
+}
+
+TransportFormatSet-CodingRate ::= ENUMERATED {
+ half,
+ third,
+ ...
+}
+
+TransportFormatSet-CRC-Size ::= ENUMERATED {
+ v0,
+ v8,
+ v12,
+ v16,
+ v24,
+ ...
+}
+
+TransportFormatSet-ModeDP ::= CHOICE {
+ tdd TDD-TransportFormatSet-ModeDP,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-ModeSSP ::= CHOICE {
+ tdd TransportFormatSet-SecondInterleavingMode,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-NrOfTransportBlocks ::= INTEGER (0..512)
+
+TransportFormatSet-RateMatchingAttribute ::= INTEGER (1..maxRateMatching)
+
+TransportFormatSet-SecondInterleavingMode ::= ENUMERATED {
+ frame-related,
+ timeSlot-related,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalDynamic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalSemiStatic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...,
+ msec-5
+}
+
+TransportFormatSet-TransportBlockSize ::= INTEGER (0..5000)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TSTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TUTRANGPS ::= SEQUENCE {
+ ms-part INTEGER (0..16383),
+ ls-part INTEGER (0..4294967295)
+}
+
+TUTRANGPSChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+TUTRANGPSDriftRate ::= INTEGER (-50..50)
+-- Unit chip/s, Step 1/256 chip/s, Range -50/256..+50/256 chip/s
+
+TUTRANGPSDriftRateQuality ::= INTEGER (0..50)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..50/256 chip/s
+
+TUTRANGPSAccuracyClass ::= ENUMERATED {
+ accuracy-class-A,
+ accuracy-class-B,
+ accuracy-class-C,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation ::= SEQUENCE {
+ tUTRANGPSChangeLimit TUTRANGPSChangeLimit OPTIONAL,
+ predictedTUTRANGPSDeviationLimit PredictedTUTRANGPSDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TUTRANGPSMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGPS TUTRANGPS,
+ tUTRANGPSQuality TUTRANGPSQuality OPTIONAL,
+ tUTRANGPSDriftRate TUTRANGPSDriftRate,
+ tUTRANGPSDriftRateQuality TUTRANGPSDriftRateQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TUTRANGPSMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- ==========================================
+-- U
+-- ==========================================
+
+UARFCN ::= INTEGER (0..16383, ...)
+-- corresponds to 0MHz .. 3276.6MHz
+
+UC-Id ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { {UC-Id-ExtIEs} } OPTIONAL,
+ ...
+}
+UC-Id-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UDRE ::= ENUMERATED {
+ udre-minusequal-one-m,
+ udre-betweenoneandfour-m,
+ udre-betweenfourandeight-m,
+ udre-greaterequaleight-m
+}
+
+
+UE-Capability-Information ::= SEQUENCE {
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ iE-Extensions ProtocolExtensionContainer { { UE-Capability-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Capability-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CapacityCredit ::= INTEGER (0..65535)
+
+UL-DL-mode ::= ENUMERATED {
+ ul-only,
+ dl-only,
+ both-ul-and-dl
+}
+
+Uplink-Compressed-Mode-Method ::= ENUMERATED {
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+UL-Timeslot-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationItem
+
+UL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeslotLCR-InformationItem
+
+UL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCCH-SlotFormat ::= INTEGER (0..5,...)
+
+UL-SIR ::= INTEGER (-82..173)
+-- According to mapping in [16]
+
+UL-FP-Mode ::= ENUMERATED {
+ normal,
+ silent,
+ ...
+}
+
+UL-PhysCH-SF-Variation ::= ENUMERATED {
+ sf-variation-supported,
+ sf-variation-not-supported
+}
+
+UL-ScramblingCode ::= SEQUENCE {
+ uL-ScramblingCodeNumber UL-ScramblingCodeNumber,
+ uL-ScramblingCodeLength UL-ScramblingCodeLength,
+ iE-Extensions ProtocolExtensionContainer { { UL-ScramblingCode-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-ScramblingCode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-ScramblingCodeNumber ::= INTEGER (0..16777215)
+
+UL-ScramblingCodeLength ::= ENUMERATED {
+ short,
+ long
+}
+
+UL-Synchronisation-Parameters-LCR ::= SEQUENCE {
+ uL-Synchronisation-StepSize UL-Synchronisation-StepSize,
+ uL-Synchronisation-Frequency UL-Synchronisation-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { UL-Synchronisation-Parameters-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-Synchronisation-Parameters-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Synchronisation-StepSize ::= INTEGER (1..8)
+
+UL-Synchronisation-Frequency ::= INTEGER (1..8)
+
+UL-TimeSlot-ISCP-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-TimeSlot-ISCP-InfoItem
+
+UL-TimeSlot-ISCP-InfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeSlot-ISCP-LCR-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeSlot-ISCP-LCR-InfoItem
+
+UL-TimeSlot-ISCP-LCR-InfoItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unidirectional-DCH-Indicator ::= ENUMERATED {
+ downlink-DCH-only,
+ uplink-DCH-only
+}
+
+USCH-Information ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationItem
+
+USCH-InformationItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ cCTrCH-ID CCTrCH-ID, -- UL CCTrCH in which the USCH is mapped
+ transportFormatSet TransportFormatSet, -- For USCH
+ allocationRetentionPriority AllocationRetentionPriority,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+{ ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationResponseItem
+
+USCH-InformationResponseItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotISCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+UL-TimeslotISCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+USCH-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- V
+-- ==========================================
+
+-- ==========================================
+-- W
+-- ==========================================
+
+-- ==========================================
+-- X
+-- ==========================================
+
+-- ==========================================
+-- Y
+-- ==========================================
+
+-- ==========================================
+-- Z
+-- ==========================================
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
new file mode 100755
index 0000000000..9ecfa688a2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
@@ -0,0 +1,9234 @@
+-- **************************************************************
+--
+-- PDU definitions for NBAP.
+--
+-- **************************************************************
+
+NBAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Active-Pattern-Sequence-Information,
+ AddorDeleteIndicator,
+ AICH-Power,
+ AICH-TransmissionTiming,
+ AllocationRetentionPriority,
+ APPreambleSignature,
+ APSubChannelNumber,
+ AvailabilityStatus,
+ BCCH-ModificationTime,
+ BindingID,
+ BlockingPriorityIndicator,
+ SCTD-Indicator,
+ Cause,
+ CCTrCH-ID,
+ CDSubChannelNumbers,
+ CellParameterID,
+ CellSyncBurstCode,
+ CellSyncBurstCodeShift,
+ CellSyncBurstRepetitionPeriod,
+ CellSyncBurstSIR,
+ CellSyncBurstTiming,
+ CellSyncBurstTimingThreshold,
+ CFN,
+ Channel-Assignment-Indication,
+ ChipOffset,
+ C-ID,
+ Closedlooptimingadjustmentmode,
+ CommonChannelsCapacityConsumptionLaw,
+ Compressed-Mode-Deactivation-Flag,
+ CommonMeasurementAccuracy,
+ CommonMeasurementType,
+ CommonMeasurementValue,
+ CommonMeasurementValueInformation,
+ CommonPhysicalChannelID,
+ Common-PhysicalChannel-Status-Information,
+ Common-TransportChannel-Status-Information,
+ CommonTransportChannelID,
+ CommonTransportChannel-InformationResponse,
+ CommunicationControlPortID,
+ ConfigurationGenerationID,
+ ConstantValue,
+ CriticalityDiagnostics,
+ CPCH-Allowed-Total-Rate,
+ CPCHScramblingCodeNumber,
+ CPCH-UL-DPCCH-SlotFormat,
+ CRNC-CommunicationContextID,
+ CSBMeasurementID,
+ CSBTransmissionID,
+ DCH-FDD-Information,
+ DCH-InformationResponse,
+ DCH-ID,
+ FDD-DCHs-to-Modify,
+ TDD-DCHs-to-Modify,
+ DCH-TDD-Information,
+ DedicatedChannelsCapacityConsumptionLaw,
+ DedicatedMeasurementType,
+ DedicatedMeasurementValue,
+ DedicatedMeasurementValueInformation,
+ DelayedActivation,
+ DelayedActivationUpdate,
+ DiversityControlField,
+ DiversityMode,
+ DL-DPCH-SlotFormat,
+ DL-DPCH-TimingAdjustment,
+ DL-or-Global-CapacityCredit,
+ DL-Power,
+ DL-PowerBalancing-Information,
+ DL-PowerBalancing-ActivationIndicator,
+ DLPowerAveragingWindowSize,
+ DL-PowerBalancing-UpdatedIndicator,
+ DL-ScramblingCode,
+ DL-TimeslotISCP,
+ DL-Timeslot-Information,
+ DL-TimeslotLCR-Information,
+ DL-TimeslotISCPInfo,
+ DL-TimeslotISCPInfoLCR,
+ DL-TPC-Pattern01Count,
+ DPC-Mode,
+ DPCH-ID,
+ DSCH-ID,
+ DSCH-FDD-Common-Information,
+ DSCH-FDD-Information,
+ DSCH-InformationResponse,
+ DSCH-TDD-Information,
+ DwPCH-Power,
+ End-Of-Audit-Sequence-Indicator,
+ EnhancedDSCHPC,
+ EnhancedDSCHPCCounter,
+ EnhancedDSCHPCIndicator,
+ EnhancedDSCHPCWnd,
+ EnhancedDSCHPowerOffset,
+ FDD-DL-ChannelisationCodeNumber,
+ FDD-DL-CodeInformation,
+ FDD-S-CCPCH-Offset,
+ FDD-TPC-DownlinkStepSize,
+ FirstRLS-Indicator,
+ FNReportingIndicator,
+ FPACH-Power,
+ FrameAdjustmentValue,
+ FrameHandlingPriority,
+ FrameOffset,
+ HSDPA-Capability,
+ HS-PDSCH-FDD-Code-Information,
+ HS-SCCH-ID,
+ HS-SCCH-FDD-Code-Information,
+ HS-SICH-ID,
+ IB-OC-ID,
+ IB-SG-DATA,
+ IB-SG-POS,
+ IB-SG-REP,
+ IB-Type,
+ InformationExchangeID,
+ InformationReportCharacteristics,
+ InformationType,
+ InnerLoopDLPCStatus,
+ IPDL-FDD-Parameters,
+ IPDL-TDD-Parameters,
+ IPDL-Indicator,
+ IPDL-TDD-Parameters-LCR,
+ LimitedPowerIncrease,
+ Local-Cell-ID,
+ MaximumDL-PowerCapability,
+ Maximum-PDSCH-Power,
+ MaximumTransmissionPower,
+ Max-Number-of-PCPCHes,
+ MaxNrOfUL-DPDCHs,
+ MaxPRACH-MidambleShifts,
+ MeasurementFilterCoefficient,
+ MeasurementID,
+ MidambleAllocationMode,
+ MidambleShiftAndBurstType,
+ MidambleShiftLCR,
+ MinimumDL-PowerCapability,
+ MinSpreadingFactor,
+ MinUL-ChannelisationCodeLength,
+ MultiplexingPosition,
+ NEOT,
+ NCyclesPerSFNperiod,
+ NFmax,
+ NRepetitionsPerCyclePeriod,
+ N-INSYNC-IND,
+ N-OUTSYNC-IND,
+ NeighbouringCellMeasurementInformation,
+ NeighbouringFDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation,
+ NodeB-CommunicationContextID,
+ NumberOfReportedCellPortions,
+ NStartMessage,
+ NSubCyclesPerCyclePeriod,
+ PagingIndicatorLength,
+ PayloadCRC-PresenceIndicator,
+ PCCPCH-Power,
+ PCP-Length,
+ PDSCH-CodeMapping,
+ PDSCHSet-ID,
+ PDSCH-ID,
+ PICH-Mode,
+ PICH-Power,
+ PowerAdjustmentType,
+ PowerOffset,
+ PowerRaiseLimit,
+ PRACH-Midamble,
+ PreambleSignatures,
+ PreambleThreshold,
+ PredictedSFNSFNDeviationLimit,
+ PredictedTUTRANGPSDeviationLimit,
+ PrimaryCPICH-Power,
+ Primary-CPICH-Usage-for-Channel-Estimation,
+ PrimaryScramblingCode,
+ PropagationDelay,
+ SCH-TimeSlot,
+ PunctureLimit,
+ PUSCHSet-ID,
+ PUSCH-ID,
+ QE-Selector,
+ Qth-Parameter,
+ RACH-SlotFormat,
+ RACH-SubChannelNumbers,
+ ReferenceClockAvailability,
+ ReferenceSFNoffset,
+ RepetitionLength,
+ RepetitionPeriod,
+ ReportCharacteristics,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ ResourceOperationalState,
+ RL-Set-ID,
+ RL-ID,
+ RL-Specific-DCH-Info,
+ Received-total-wide-band-power-Value,
+ AdjustmentPeriod,
+ ScaledAdjustmentRatio,
+ MaxAdjustmentStep,
+ RNC-ID,
+ ScramblingCodeNumber,
+ Secondary-CPICH-Information-Change,
+ SecondaryCCPCH-SlotFormat,
+ Segment-Type,
+ S-FieldLength,
+ SFN,
+ SFNSFNChangeLimit,
+ SFNSFNDriftRate,
+ SFNSFNDriftRateQuality,
+ SFNSFNQuality,
+ ShutdownTimer,
+ SIB-Originator,
+ SpecialBurstScheduling,
+ SignallingBearerRequestIndicator,
+ SSDT-Cell-Identity,
+ SSDT-CellID-Length,
+ SSDT-Indication,
+ Start-Of-Audit-Sequence-Indicator,
+ STTD-Indicator,
+ SSDT-SupportIndicator,
+ SyncCase,
+ SYNCDlCodeId,
+ SyncFrameNumber,
+ SynchronisationReportCharacteristics,
+ SynchronisationReportType,
+ T-Cell,
+ T-RLFAILURE,
+ TDD-ChannelisationCode,
+ TDD-ChannelisationCodeLCR,
+ TDD-DL-Code-LCR-Information,
+ TDD-DPCHOffset,
+ TDD-TPC-DownlinkStepSize,
+ TDD-PhysicalChannelOffset,
+ TDD-UL-Code-LCR-Information,
+ TFCI2-BearerInformationResponse,
+ TFCI2BearerRequestIndicator,
+ TFCI-Coding,
+ TFCI-Presence,
+ TFCI-SignallingMode,
+ TFCS,
+ TimeSlot,
+ TimeSlotLCR,
+ TimeSlotDirection,
+ TimeSlotStatus,
+ TimingAdjustmentValue,
+ TimingAdvanceApplied,
+ TnlQos,
+ ToAWE,
+ ToAWS,
+ TransmissionDiversityApplied,
+ TransmitDiversityIndicator,
+ TransmissionGapPatternSequenceCodeInformation,
+ Transmission-Gap-Pattern-Sequence-Information,
+ TransportBearerRequestIndicator,
+ TransportFormatSet,
+ TransportLayerAddress,
+ TSTD-Indicator,
+ TUTRANGPS,
+ TUTRANGPSChangeLimit,
+ TUTRANGPSDriftRate,
+ TUTRANGPSDriftRateQuality,
+ TUTRANGPSQuality,
+ UARFCN,
+ UC-Id,
+ USCH-Information,
+ USCH-InformationResponse,
+ UL-CapacityCredit,
+ UL-DPCCH-SlotFormat,
+ UL-SIR,
+ UL-FP-Mode,
+ UL-PhysCH-SF-Variation,
+ UL-ScramblingCode,
+ UL-Timeslot-Information,
+ UL-TimeslotLCR-Information,
+ UL-TimeSlot-ISCP-Info,
+ UL-TimeSlot-ISCP-LCR-Info,
+ UL-TimeslotISCP-Value,
+ UL-TimeslotISCP-Value-IncrDecrThres,
+ USCH-ID,
+ HSDSCH-FDD-Information,
+ HSDSCH-FDD-Information-Response,
+ HSDSCH-Information-to-Modify,
+ HSDSCH-Information-to-Modify-Unsynchronised,
+ HSDSCH-MACdFlow-ID,
+ HSDSCH-MACdFlows-Information,
+ HSDSCH-MACdFlows-to-Delete,
+ HSDSCH-RNTI,
+ HSDSCH-TDD-Information,
+ HSDSCH-TDD-Information-Response,
+ PrimaryCCPCH-RSCP,
+ HSDSCH-FDD-Update-Information,
+ HSDSCH-TDD-Update-Information,
+ UL-Synchronisation-Parameters-LCR,
+ TDD-DL-DPCH-TimeSlotFormat-LCR,
+ TDD-UL-DPCH-TimeSlotFormat-LCR,
+ TDD-TPC-UplinkStepSize-LCR,
+ CellSyncBurstTimingLCR,
+ TimingAdjustmentValueLCR,
+ PrimaryCCPCH-RSCP-Delta
+FROM NBAP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ ProtocolIE-ContainerList{},
+ NBAP-PRIVATE-IES,
+ NBAP-PROTOCOL-IES,
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers
+
+ id-Active-Pattern-Sequence-Information,
+ id-AdjustmentRatio,
+ id-AICH-Information,
+ id-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-AP-AICH-Information,
+ id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-BCH-Information,
+ id-BCCH-ModificationTime,
+ id-bindingID,
+ id-BlockingPriorityIndicator,
+ id-Cause,
+ id-CauseLevel-PSCH-ReconfFailure,
+ id-CauseLevel-RL-AdditionFailureFDD,
+ id-CauseLevel-RL-AdditionFailureTDD,
+ id-CauseLevel-RL-ReconfFailure,
+ id-CauseLevel-RL-SetupFailureFDD,
+ id-CauseLevel-RL-SetupFailureTDD,
+ id-CauseLevel-SyncAdjustmntFailureTDD,
+ id-CCP-InformationItem-AuditRsp,
+ id-CCP-InformationList-AuditRsp,
+ id-CCP-InformationItem-ResourceStatusInd,
+ id-CCTrCH-InformationItem-RL-FailureInd,
+ id-CCTrCH-InformationItem-RL-RestoreInd,
+ id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD,
+ id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD,
+ id-CDCA-ICH-Information,
+ id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CellAdjustmentInfo-SyncAdjustmntRqstTDD,
+ id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD,
+ id-Cell-InformationItem-AuditRsp,
+ id-Cell-InformationItem-ResourceStatusInd,
+ id-Cell-InformationList-AuditRsp,
+ id-CellParameterID,
+ id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD,
+ id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD,
+ id-cellSyncBurstRepetitionPeriod,
+ id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncInfo-CellSyncReprtTDD,
+ id-CFN,
+ id-CFNReportingIndicator,
+ id-C-ID,
+ id-Closed-Loop-Timing-Adjustment-Mode,
+ id-CommonMeasurementAccuracy,
+ id-CommonMeasurementObjectType-CM-Rprt,
+ id-CommonMeasurementObjectType-CM-Rqst,
+ id-CommonMeasurementObjectType-CM-Rsp,
+ id-CommonMeasurementType,
+ id-CommonPhysicalChannelID,
+ id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstTDD,
+ id-CommunicationContextInfoItem-Reset,
+ id-CommunicationControlPortID,
+ id-CommunicationControlPortInfoItem-Reset,
+ id-Compressed-Mode-Deactivation-Flag,
+ id-ConfigurationGenerationID,
+ id-CPCH-Information,
+ id-CPCH-Parameters-CTCH-SetupRsp,
+ id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CRNC-CommunicationContextID,
+ id-CriticalityDiagnostics,
+ id-CSBTransmissionID,
+ id-CSBMeasurementID,
+ id-DCHs-to-Add-FDD,
+ id-DCHs-to-Add-TDD,
+ id-DCH-AddList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfPrepFDD,
+ id-DCH-DeleteList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfRqstFDD,
+ id-DCH-DeleteList-RL-ReconfRqstTDD,
+ id-DCH-FDD-Information,
+ id-DCH-TDD-Information,
+ id-DCH-InformationResponse,
+ id-DCH-RearrangeList-Bearer-RearrangeInd,
+ id-DSCH-RearrangeList-Bearer-RearrangeInd,
+ id-FDD-DCHs-to-Modify,
+ id-TDD-DCHs-to-Modify,
+ id-DedicatedMeasurementObjectType-DM-Rprt,
+ id-DedicatedMeasurementObjectType-DM-Rqst,
+ id-DedicatedMeasurementObjectType-DM-Rsp,
+ id-DedicatedMeasurementType,
+ id-DelayedActivation,
+ id-DelayedActivationList-RL-ActivationCmdFDD,
+ id-DelayedActivationList-RL-ActivationCmdTDD,
+ id-DelayedActivationInformation-RL-ActivationCmdFDD,
+ id-DelayedActivationInformation-RL-ActivationCmdTDD,
+ id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-DL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-Information-RL-ReconfPrepFDD,
+ id-DL-DPCH-Information-RL-ReconfRqstFDD,
+ id-DL-DPCH-Information-RL-SetupRqstFDD,
+ id-DL-DPCH-TimingAdjustment,
+ id-DL-PowerBalancing-Information,
+ id-DL-PowerBalancing-ActivationIndicator,
+ id-DL-ReferencePowerInformationItem-DL-PC-Rqst,
+ id-DL-PowerBalancing-UpdatedIndicator,
+ id-DLReferencePower,
+ id-DLReferencePowerList-DL-PC-Rqst,
+ id-DL-TPC-Pattern01Count,
+ id-DPC-Mode,
+ id-DPCHConstant,
+ id-DSCH-AddItem-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-FDD,
+ id-DSCH-DeleteItem-RL-ReconfPrepFDD,
+ id-DSCH-DeleteList-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-TDD,
+ id-DSCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-DSCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-DSCH-InformationResponse,
+ id-DSCH-FDD-Information,
+ id-DSCH-FDD-Common-Information,
+ id-DSCH-TDD-Information,
+ id-DSCH-ModifyItem-RL-ReconfPrepFDD,
+ id-DSCH-ModifyList-RL-ReconfPrepFDD,
+ id-End-Of-Audit-Sequence-Indicator,
+ id-EnhancedDSCHPC,
+ id-EnhancedDSCHPCIndicator,
+ id-FACH-Information,
+ id-FACH-ParametersList-CTCH-ReconfRqstTDD,
+ id-FACH-ParametersList-CTCH-SetupRsp,
+ id-FACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstTDD,
+ id-IndicationType-ResourceStatusInd,
+ id-InformationExchangeID,
+ id-InformationExchangeObjectType-InfEx-Rqst,
+ id-InformationExchangeObjectType-InfEx-Rsp,
+ id-InformationExchangeObjectType-InfEx-Rprt,
+ id-InformationReportCharacteristics,
+ id-InformationType,
+ id-InitDL-Power,
+ id-InnerLoopDLPCStatus,
+ id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstFDD,
+ id-IPDLParameter-Information-Cell-SetupRqstFDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstTDD,
+ id-IPDLParameter-Information-Cell-SetupRqstTDD,
+ id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD,
+ id-Limited-power-increase-information-Cell-SetupRqstFDD,
+ id-Local-Cell-ID,
+ id-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-Group-InformationList-AuditRsp,
+ id-Local-Cell-InformationItem-AuditRsp,
+ id-Local-Cell-InformationItem-ResourceStatusInd,
+ id-Local-Cell-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-InformationList-AuditRsp,
+ id-AdjustmentPeriod,
+ id-MaxAdjustmentStep,
+ id-MaximumTransmissionPower,
+ id-MeasurementFilterCoefficient,
+ id-MeasurementID,
+ id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst,
+ id-multipleRL-dl-DPCH-InformationList,
+ id-multipleRL-dl-DPCH-InformationModifyList,
+ id-multipleRL-ul-DPCH-InformationList,
+ id-multipleRL-ul-DPCH-InformationModifyList,
+ id-NCyclesPerSFNperiod,
+ id-NeighbouringCellMeasurementInformation,
+ id-NodeB-CommunicationContextID,
+ id-NRepetitionsPerCyclePeriod,
+ id-NumberOfReportedCellPortions,
+ id-P-CCPCH-Information,
+ id-P-CPICH-Information,
+ id-P-SCH-Information,
+ id-PCCPCH-Information-Cell-ReconfRqstTDD,
+ id-PCCPCH-Information-Cell-SetupRqstTDD,
+ id-PCH-Parameters-CTCH-ReconfRqstTDD,
+ id-PCH-Parameters-CTCH-SetupRsp,
+ id-PCH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PCH-Information,
+ id-PCPCH-Information,
+ id-PICH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PDSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-Information-Cell-SetupRqstFDD,
+ id-PDSCH-Information-Cell-ReconfRqstFDD,
+ id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PDSCH-RL-ID,
+ id-PDSCHSets-AddList-PSCH-ReconfRqst,
+ id-PDSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PDSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-PICH-Information,
+ id-PICH-Parameters-CTCH-ReconfRqstTDD,
+ id-PICH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PowerAdjustmentType,
+ id-Power-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList-AuditRsp,
+ id-Power-Local-Cell-Group-InformationList-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-ID,
+ id-PRACH-Information,
+ id-PRACHConstant,
+ id-PRACH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryCPICH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCPICH-Information-Cell-SetupRqstFDD,
+ id-Primary-CPICH-Usage-for-Channel-Estimation,
+ id-PrimarySCH-Information-Cell-ReconfRqstFDD,
+ id-PrimarySCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryScramblingCode,
+ id-SCH-Information-Cell-ReconfRqstTDD,
+ id-SCH-Information-Cell-SetupRqstTDD,
+ id-PUSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCHConstant,
+ id-PUSCHSets-AddList-PSCH-ReconfRqst,
+ id-PUSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PUSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-Qth-Parameter,
+ id-RACH-Information,
+ id-RACH-Parameters-CTCH-SetupRsp,
+ id-RACH-ParametersItem-CTCH-SetupRqstFDD,
+ id-RACH-ParameterItem-CTCH-SetupRqstTDD,
+ id-ReferenceClockAvailability,
+ id-ReferenceSFNoffset,
+ id-ReportCharacteristics,
+ id-Reporting-Object-RL-FailureInd,
+ id-Reporting-Object-RL-RestoreInd,
+ id-ResetIndicator,
+ id-RL-ID,
+ id-RL-InformationItem-DM-Rprt,
+ id-RL-InformationItem-DM-Rqst,
+ id-RL-InformationItem-DM-Rsp,
+ id-RL-InformationItem-RL-AdditionRqstFDD,
+ id-RL-informationItem-RL-DeletionRqst,
+ id-RL-InformationItem-RL-FailureInd,
+ id-RL-InformationItem-RL-PreemptRequiredInd,
+ id-RL-InformationItem-RL-ReconfPrepFDD,
+ id-RL-InformationItem-RL-ReconfRqstFDD,
+ id-RL-InformationItem-RL-RestoreInd,
+ id-RL-InformationItem-RL-SetupRqstFDD,
+ id-RL-InformationList-RL-AdditionRqstFDD,
+ id-RL-informationList-RL-DeletionRqst,
+ id-RL-InformationList-RL-PreemptRequiredInd,
+ id-RL-InformationList-RL-ReconfPrepFDD,
+ id-RL-InformationList-RL-ReconfRqstFDD,
+ id-RL-InformationList-RL-SetupRqstFDD,
+ id-RL-InformationResponseItem-RL-AdditionRspFDD,
+ id-RL-InformationResponseItem-RL-ReconfReady,
+ id-RL-InformationResponseItem-RL-ReconfRsp,
+ id-RL-InformationResponseItem-RL-SetupRspFDD,
+ id-RL-InformationResponseList-RL-AdditionRspFDD,
+ id-RL-InformationResponseList-RL-ReconfReady,
+ id-RL-InformationResponseList-RL-ReconfRsp,
+ id-RL-InformationResponseList-RL-SetupRspFDD,
+ id-RL-InformationResponse-RL-AdditionRspTDD,
+ id-RL-InformationResponse-RL-SetupRspTDD,
+ id-RL-Information-RL-AdditionRqstTDD,
+ id-RL-Information-RL-ReconfRqstTDD,
+ id-RL-Information-RL-ReconfPrepTDD,
+ id-RL-Information-RL-SetupRqstTDD,
+ id-RL-ReconfigurationFailureItem-RL-ReconfFailure,
+ id-RL-Set-InformationItem-DM-Rprt,
+ id-RL-Set-InformationItem-DM-Rsp,
+ id-RL-Set-InformationItem-RL-FailureInd,
+ id-RL-Set-InformationItem-RL-RestoreInd,
+ id-RL-Specific-DCH-Info,
+ id-S-CCPCH-Information,
+ id-S-CPICH-Information,
+ id-SCH-Information,
+ id-S-SCH-Information,
+ id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD,
+ id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD,
+ id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD,
+ id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD,
+ id-Secondary-CPICH-Information-Change,
+ id-SecondarySCH-Information-Cell-ReconfRqstFDD,
+ id-SecondarySCH-Information-Cell-SetupRqstFDD,
+ id-SegmentInformationListIE-SystemInfoUpdate,
+ id-SFN,
+ id-SFNReportingIndicator,
+ id-ShutdownTimer,
+ id-SignallingBearerRequestIndicator,
+ id-SSDT-CellIDforEDSCHPC,
+ id-Start-Of-Audit-Sequence-Indicator,
+ id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Successful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Synchronisation-Configuration-Cell-ReconfRqst,
+ id-Synchronisation-Configuration-Cell-SetupRqst,
+ id-SyncCase,
+ id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH,
+ id-SyncFrameNumber,
+ id-SynchronisationReportType,
+ id-SynchronisationReportCharacteristics,
+ id-SyncReportType-CellSyncReprtTDD,
+ id-T-Cell,
+ id-TargetCommunicationControlPortID,
+ id-TFCI2-Bearer-Information-RL-SetupRqstFDD,
+ id-TFCI2-BearerInformationResponse,
+ id-TFCI2BearerRequestIndicator,
+ id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD,
+ id-Transmission-Gap-Pattern-Sequence-Information,
+ id-TimeSlotConfigurationList-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-Cell-SetupRqstTDD,
+ id-timeslotInfo-CellSyncInitiationRqstTDD,
+ id-TimeslotISCPInfo,
+ id-TimingAdvanceApplied,
+ id-TnlQos,
+ id-TransmissionDiversityApplied,
+ id-transportlayeraddress,
+ id-UARFCNforNt,
+ id-UARFCNforNd,
+ id-UARFCNforNu,
+ id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-Information-RL-ReconfPrepFDD,
+ id-UL-DPCH-Information-RL-ReconfRqstFDD,
+ id-UL-DPCH-Information-RL-SetupRqstFDD,
+ id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD,
+ id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD,
+ id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD,
+ id-USCH-Information-Add,
+ id-USCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-USCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-USCH-InformationResponse,
+ id-USCH-Information,
+ id-USCH-RearrangeList-Bearer-RearrangeInd,
+ id-DL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DwPCH-LCR-Information ,
+ id-DwPCH-LCR-InformationList-AuditRsp,
+ id-DwPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-DwPCH-LCR-Information-Cell-ReconfRqstTDD,
+ id-DwPCH-LCR-Information-ResourceStatusInd,
+ id-maxFACH-Power-LCR-CTCH-SetupRqstTDD,
+ id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-FPACH-LCR-Information,
+ id-FPACH-LCR-Information-AuditRsp,
+ id-FPACH-LCR-InformationList-AuditRsp,
+ id-FPACH-LCR-InformationList-ResourceStatusInd,
+ id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD,
+ id-PCCPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-PICH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD,
+ id-RL-InformationResponse-LCR-RL-SetupRspTDD ,
+ id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD,
+ id-TimeSlot,
+ id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD,
+ id-TimeSlotLCR-CM-Rqst,
+ id-UL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD,
+ id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD,
+ id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD,
+ id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD,
+ id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-LCR-InformationModify-AddList,
+ id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD,
+ id-UL-SIRTarget,
+ id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-Info-DM-Rqst,
+ id-PUSCH-Info-DM-Rsp,
+ id-PUSCH-Info-DM-Rprt,
+ id-RL-InformationResponse-LCR-RL-AdditionRspTDD,
+ id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD,
+ id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD,
+ id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst,
+ id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst,
+ id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst,
+ id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD,
+ id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD,
+ id-DwPCH-Power,
+ id-AccumulatedClockupdate-CellSyncReprtTDD,
+ id-HSDPA-Capability,
+ id-HSDSCH-FDD-Information,
+ id-HSDSCH-FDD-Information-Response,
+ id-HSDSCH-Information-to-Modify,
+ id-HSDSCH-Information-to-Modify-Unsynchronised,
+ id-HSDSCH-MACdFlows-to-Add,
+ id-HSDSCH-MACdFlows-to-Delete,
+ id-HSDSCH-RearrangeList-Bearer-RearrangeInd,
+ id-HSDSCH-Resources-Information-AuditRsp,
+ id-HSDSCH-Resources-Information-ResourceStatusInd,
+ id-HSDSCH-RNTI,
+ id-HSDSCH-TDD-Information,
+ id-HSDSCH-TDD-Information-Response,
+ id-HSPDSCH-RL-ID,
+ id-HSSICH-Info-DM-Rprt,
+ id-HSSICH-Info-DM-Rqst,
+ id-HSSICH-Info-DM-Rsp,
+ id-PrimCCPCH-RSCP-DL-PC-RqstTDD,
+ id-HSDSCH-FDD-Update-Information,
+ id-HSDSCH-TDD-Update-Information,
+ id-UL-Synchronisation-Parameters-LCR,
+ id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD,
+ id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD,
+ id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD,
+ id-TimingAdjustmentValueLCR,
+ id-PrimaryCCPCH-RSCP-Delta,
+
+
+ maxNrOfCCTrCHs,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodes,
+ maxNrOfCPCHs,
+ maxNrOfDCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfDSCHs,
+ maxNrOfFACHs,
+ maxNrOfRLs,
+ maxNrOfRLs-1,
+ maxNrOfRLs-2,
+ maxNrOfRLSets,
+ maxNrOfPCPCHs,
+ maxNrOfPDSCHs,
+ maxNrOfPUSCHs,
+ maxNrOfPRACHLCRs,
+ maxNrOfPDSCHSets,
+ maxNrOfPUSCHSets,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfSCCPCHs,
+ maxNrOfSCCPCHLCRs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfUSCHs,
+ maxAPSigNum,
+ maxCPCHCell,
+ maxFACHCell,
+ maxFPACHCell,
+ maxNoofLen,
+ maxRACHCell,
+ maxPCPCHCell,
+ maxPRACHCell,
+ maxSCCPCHCell,
+ maxSCPICHCell,
+ maxCellinNodeB,
+ maxCCPinNodeB,
+ maxCommunicationContext,
+ maxLocalCellinNodeB,
+ maxNrOfSlotFormatsPRACH,
+ maxIB,
+ maxIBSEG,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSICHs,
+ maxNrOfHSPDSCHs,
+ maxNrOfSyncFramesLCR,
+ maxNrOfReceptionsperSyncFrameLCR,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfMACdFlows
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstFDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstFDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstFDD,
+ pCPCHes-parameters PCPCH-CTCH-SetupRqstFDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-S-CCPCH-Offset FDD-S-CCPCH-Offset,
+ dl-ScramblingCode DL-ScramblingCode OPTIONAL,
+ -- This IE shall be present if the PCH Parameters IE is not present
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ tFCS TFCS,
+ secondary-CCPCH-SlotFormat SecondaryCCPCH-SlotFormat,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the Secondary CCPCH Slot Format is set to any of the values from 8 to 17
+ multiplexingPosition MultiplexingPosition,
+ powerOffsetInformation PowerOffsetInformation-CTCH-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ fACH-Parameters FACH-ParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstFDD
+
+FACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ maxFACH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+{ ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstFDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pCH-Power DL-Power,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pICH-Power PICH-Power,
+ pICH-Mode PICH-Mode,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ scramblingCodeNumber ScramblingCodeNumber,
+ tFCS TFCS,
+ preambleSignatures PreambleSignatures,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-SetupRqstFDD,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers,
+ ul-punctureLimit PunctureLimit,
+ preambleThreshold PreambleThreshold,
+ rACH-Parameters RACH-Parameters-CTCH-SetupRqstFDD,
+ aICH-Parameters AICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ rACHSlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ RACH-ParametersIE-CTCH-SetupRqstFDD }}
+
+RACH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE RACH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+RACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-TransmissionTiming AICH-TransmissionTiming,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ cPCH-Parameters CPCH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ aPPreambleScramblingCode CPCHScramblingCodeNumber,
+ cDPreambleScramblingCode CPCHScramblingCodeNumber,
+ tFCS TFCS,
+ cDSignatures PreambleSignatures OPTIONAL,
+ cDSubChannelNumbers CDSubChannelNumbers OPTIONAL,
+ punctureLimit PunctureLimit,
+ cPCH-UL-DPCCH-SlotFormat CPCH-UL-DPCCH-SlotFormat,
+ uL-SIR UL-SIR,
+ initialDL-transmissionPower DL-Power,
+ maximumDLPower DL-Power,
+ minimumDLPower DL-Power,
+ pO2-ForTPC-Bits PowerOffset,
+ fDD-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ nStartMessage NStartMessage,
+ nEOT NEOT,
+ channel-Assignment-Indication Channel-Assignment-Indication,
+ cPCH-Allowed-Total-Rate CPCH-Allowed-Total-Rate,
+ pCPCHChannelInfomation PCPCHChannelInformationList-CTCH-SetupRqstFDD,
+ vCAMMapping-Information VCAMMapping-InformationList-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is set to "CA Active" --
+ aP-AICH-Parameters AP-AICH-Parameters-CTCH-SetupRqstFDD,
+ cDCA-ICH-Parameters CDCA-ICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCPCHChannelInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfPCPCHs)) OF PCPCHChannelInformationItem-CTCH-SetupRqstFDD
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cPCHScramblingCodeNumber CPCHScramblingCodeNumber,
+ dL-ScramblingCode DL-ScramblingCode,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pCP-Length PCP-Length,
+ uCSM-Information UCSM-Information-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is equal to "CA Inactive" --
+ iE-Extensions ProtocolExtensionContainer { { PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UCSM-Information-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ channelRequestParameters ChannelRequestParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChannelRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF ChannelRequestParametersItem-CTCH-SetupRqstFDD
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VCAMMapping-InformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNoofLen)) OF VCAMMapping-InformationItem-CTCH-SetupRqstFDD
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ max-Number-of-PCPCHes Max-Number-of-PCPCHes,
+ sFRequestParameters SFRequestParametersList-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF SFRequestParametersItem-CTCH-SetupRqstFDD
+
+SFRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION::= {
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aP-AICH-Power AICH-Power,
+ cSICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ cDCA-ICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstTDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstTDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstTDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstTDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ sCCPCH-CCTrCH-ID CCTrCH-ID, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCS TFCS, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ secondaryCCPCH-parameterList Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD,
+ fACH-ParametersList FACH-ParametersList-CTCH-SetupRqstTDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD }}
+
+Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeslot TimeSlot,
+ midambleShiftandBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstTDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstTDD
+
+FACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ fACH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet, -- For the DL.
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PICH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PICH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ second-TDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHLCRs)) OF Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ s-CCPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ pRACH-Parameters-CTCH-SetupRqstTDD PRACH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PRACH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PRACH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-LCR-ParametersList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ maxPRACH-MidambleShifts MaxPRACH-MidambleShifts,
+ pRACH-Midamble PRACH-Midamble,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameter-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ RACH-ParameterIE-CTCH-SetupRqstTDD }}
+
+RACH-ParameterIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParameterItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE RACH-ParameterItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-TransportFormatSet TransportFormatSet, -- For the UL
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfPRACHLCRs)) OF PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslotLCR TimeSlotLCR,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ fPACH-Power FPACH-Power,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersList-CTCH-SetupRsp CRITICALITY ignore TYPE FACH-CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-RACH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CPCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-CommonTransportChannel-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF CommonTransportChannel-InformationResponse
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CommonPhysicalChannelType-CTCH-ReconfRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-ReconfRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCHList-CTCH-ReconfRqstFDD,
+ pRACH-parameters PRACHList-CTCH-ReconfRqstFDD,
+ cPCH-parameters CPCHList-CTCH-ReconfRqstFDD,
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ fACH-ParametersList-CTCH-ReconfRqstFDD FACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ pCH-Parameters-CTCH-ReconfRqstFDD PCH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ pICH-Parameters-CTCH-ReconfRqstFDD PICH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxFACHCell)) OF FACH-ParametersItem-CTCH-ReconfRqstFDD
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ maxFACH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PCH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PICH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ pRACH-ParametersList-CTCH-ReconfRqstFDD PRACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aICH-ParametersList-CTCH-ReconfRqstFDD AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+PRACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PRACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PRACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF PRACH-ParametersItem-CTCH-ReconfRqstFDD
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ preambleSignatures PreambleSignatures OPTIONAL,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD OPTIONAL,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ rACH-SlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ cPCH-ParametersList-CTCH-ReconfRqstFDD CPCH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aP-AICH-ParametersList-CTCH-ReconfRqstFDD AP-AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ cDCA-ICH-ParametersList-CTCH-ReconfRqstFDD CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CPCH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CPCH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CPCH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CPCH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CPCH-ParametersItem-CTCH-ReconfRqstFDD
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-SIR UL-SIR OPTIONAL,
+ initialDL-transmissionPower DL-Power OPTIONAL,
+ maximumDLPower DL-Power OPTIONAL,
+ minimumDLPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AP-AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF AP-AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AP-AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aP-AICH-Power AICH-Power OPTIONAL,
+ cSICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD
+
+CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cDCA-ICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PICH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PICH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-FACH-ParametersList-CTCH-ReconfRqstTDD CRITICALITY reject TYPE FACH-ParametersList-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }, -- Mandatory For 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ secondaryCCPCHList Secondary-CCPCHList-CTCH-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD }}
+
+Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCHListIE-CTCH-ReconfRqstTDD PRESENCE mandatory }
+}
+
+Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCHItem-CTCH-ReconfRqstTDD
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCCPCH-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-ReconfRqstTDD
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ ... -- Applicable to 1.28Mcps TDD only
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ fPACHPower FPACH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION REQUEST
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory}|
+ { ID id-CommonPhysicalChannelID CRITICALITY reject TYPE CommonPhysicalChannelID PRESENCE mandatory}|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory},
+ ...
+}
+
+CommonTransportChannelDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE REQUEST
+--
+-- **************************************************************
+
+BlockResourceRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BlockingPriorityIndicator CRITICALITY reject TYPE BlockingPriorityIndicator PRESENCE mandatory }|
+ { ID id-ShutdownTimer CRITICALITY reject TYPE ShutdownTimer PRESENCE conditional },
+ -- The IE shall be present if the Blocking Priority Indicator IE indicates "Normal Priority"--
+ ...
+}
+
+BlockResourceRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE RESPONSE
+--
+-- **************************************************************
+
+BlockResourceResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+BlockResourceResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE FAILURE
+--
+-- **************************************************************
+
+BlockResourceFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+BlockResourceFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UNBLOCK RESOURCE INDICATION
+--
+-- **************************************************************
+
+UnblockResourceIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UnblockResourceIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UnblockResourceIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+UnblockResourceIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+UnblockResourceIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUIRED INDICATION
+--
+-- **************************************************************
+
+AuditRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ ...
+}
+
+AuditRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUEST
+--
+-- **************************************************************
+
+AuditRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Start-Of-Audit-Sequence-Indicator CRITICALITY reject TYPE Start-Of-Audit-Sequence-Indicator PRESENCE mandatory },
+ ...
+}
+
+AuditRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT RESPONSE
+--
+-- **************************************************************
+
+AuditResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-End-Of-Audit-Sequence-Indicator CRITICALITY ignore TYPE End-Of-Audit-Sequence-Indicator PRESENCE mandatory }|
+ { ID id-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CCP-InformationList-AuditRsp CRITICALITY ignore TYPE CCP-InformationList-AuditRsp PRESENCE optional }|
+ -- CCP (Communication Control Port) --
+ { ID id-Local-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-AuditRsp PRESENCE optional },
+ ...
+}
+
+Cell-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-AuditRsp}}
+
+Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Cell-InformationItem-AuditRsp PRESENCE optional }
+}
+
+Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ c-ID C-ID,
+ configurationGenerationID ConfigurationGenerationID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ local-Cell-ID Local-Cell-ID,
+ primary-SCH-Information P-SCH-Information-AuditRsp OPTIONAL,
+ secondary-SCH-Information S-SCH-Information-AuditRsp OPTIONAL,
+ primary-CPICH-Information P-CPICH-Information-AuditRsp OPTIONAL,
+ secondary-CPICH-InformationList S-CPICH-InformationList-AuditRsp OPTIONAL,
+ primary-CCPCH-Information P-CCPCH-Information-AuditRsp OPTIONAL,
+ bCH-Information BCH-Information-AuditRsp OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-AuditRsp OPTIONAL,
+ pCH-Information PCH-Information-AuditRsp OPTIONAL,
+ pICH-Information PICH-Information-AuditRsp OPTIONAL,
+ fACH-InformationList FACH-InformationList-AuditRsp OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-AuditRsp OPTIONAL,
+ rACH-InformationList RACH-InformationList-AuditRsp OPTIONAL,
+ aICH-InformationList AICH-InformationList-AuditRsp OPTIONAL,
+ pCPCH-InformationList PCPCH-InformationList-AuditRsp OPTIONAL,
+ cPCH-InformationList CPCH-InformationList-AuditRsp OPTIONAL,
+ aP-AICH-InformationList AP-AICH-InformationList-AuditRsp OPTIONAL,
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-AuditRsp OPTIONAL,
+ sCH-Information SCH-Information-AuditRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-AuditRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-AuditRsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-AuditRsp CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-AuditRsp PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-AuditRsp }}
+
+P-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-AuditRsp }}
+
+S-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-AuditRsp }}
+
+P-CPICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-AuditRsp }}
+
+S-CPICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-AuditRsp }}
+
+P-CCPCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ BCH-InformationIE-AuditRsp }}
+
+BCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-AuditRsp }}
+
+S-CCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+PCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PCH-InformationIE-AuditRsp }}
+
+PCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PICH-InformationIE-AuditRsp }}
+
+PICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-AuditRsp }}
+
+FACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-AuditRsp }}
+
+PRACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-AuditRsp }}
+
+RACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-AuditRsp }}
+
+AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-AuditRsp }}
+
+PCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-AuditRsp }}
+
+CPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-AuditRsp }}
+
+AP-AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CDCA-ICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-AuditRsp }}
+
+CDCA-ICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ SCH-InformationIE-AuditRsp }}
+
+SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CCP-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-AuditRsp }}
+
+CCP-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ {ID id-CCP-InformationItem-AuditRsp CRITICALITY ignore TYPE CCP-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+CCP-InformationItem-AuditRsp ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ CCP-InformationItem-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-AuditRsp }}
+
+FPACH-LCR-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information-AuditRsp CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-AuditRsp ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Local-Cell-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-AuditRsp }}
+
+Local-Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Power-Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer {{ Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT FAILURE
+--
+-- **************************************************************
+
+AuditFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rqst CRITICALITY reject TYPE CommonMeasurementObjectType-CM-Rqst PRESENCE mandatory }|
+ { ID id-CommonMeasurementType CRITICALITY reject TYPE CommonMeasurementType PRESENCE mandatory }|
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional }|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory }|
+ { ID id-SFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY reject EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rqst ::= CHOICE {
+ cell Cell-CM-Rqst,
+ rACH RACH-CM-Rqst,
+ cPCH CPCH-CM-Rqst,
+ ...
+}
+
+Cell-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ timeSlot TimeSlot OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotLCR-CM-Rqst CRITICALITY reject EXTENSION TimeSlotLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-NeighbouringCellMeasurementInformation CRITICALITY ignore EXTENSION NeighbouringCellMeasurementInformation PRESENCE optional },
+ ...
+}
+
+RACH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ spreadingfactor MinUL-ChannelisationCodeLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rsp CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rsp PRESENCE optional }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY ignore EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rsp ::= CHOICE {
+ cell Cell-CM-Rsp,
+ rACH RACH-CM-Rsp,
+ cPCH CPCH-CM-Rsp,
+ ...
+ }
+
+Cell-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT REPORT
+--
+-- **************************************************************
+
+CommonMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rprt CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rprt PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rprt ::= CHOICE {
+ cell Cell-CM-Rprt,
+ rACH RACH-CM-Rprt,
+ cPCH CPCH-CM-Rprt,
+ ...
+ }
+
+Cell-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RACH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ RACHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CPCHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory},
+ ...
+}
+
+CommonMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+CommonMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+CommonMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CellSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-T-Cell CRITICALITY reject TYPE T-Cell PRESENCE mandatory }|
+ { ID id-UARFCNforNu CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-UARFCNforNd CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-Closed-Loop-Timing-Adjustment-Mode CRITICALITY reject TYPE Closedlooptimingadjustmentmode PRESENCE optional }|
+ { ID id-PrimaryScramblingCode CRITICALITY reject TYPE PrimaryScramblingCode PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DL-TPC-Pattern01Count CRITICALITY reject TYPE DL-TPC-Pattern01Count PRESENCE mandatory }|
+ { ID id-PrimarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-PrimaryCPICH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-SetupRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Limited-power-increase-information-Cell-SetupRqstFDD CRITICALITY reject TYPE Limited-power-increase-information-Cell-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CellSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-SetupRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-SetupRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-SetupRqstFDD PRESENCE mandatory}
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ dl-ScramblingCode DL-ScramblingCode,
+ fDD-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ secondaryCPICH-Power DL-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ bCH-information BCH-Information-Cell-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD ::= SEQUENCE {
+ powerRaiseLimit PowerRaiseLimit,
+ dLPowerAveragingWindowSize DLPowerAveragingWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ maximum-PDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CellSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-UARFCNforNt CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-CellParameterID CRITICALITY reject TYPE CellParameterID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-TransmissionDiversityApplied CRITICALITY reject TYPE TransmissionDiversityApplied PRESENCE mandatory }|
+ { ID id-SyncCase CRITICALITY reject TYPE SyncCase PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE mandatory }|
+ { ID id-SCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-PCCPCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-TimeSlotConfigurationList-Cell-SetupRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-SetupRqstTDD PRESENCE optional }, -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ ...
+}
+
+CellSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PCCPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION PCCPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-ReferenceSFNoffset CRITICALITY ignore EXTENSION ReferenceSFNoffset PRESENCE optional }|
+ { ID id-IPDLParameter-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-SetupRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+SCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ syncCaseIndicator SyncCaseIndicator-Cell-SetupRqstTDD-PSCH,
+ sCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncCaseIndicator-Cell-SetupRqstTDD-PSCH ::= ProtocolIE-Single-Container {{ SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH }}
+
+SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH CRITICALITY reject TYPE SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH PRESENCE mandatory }
+}
+
+SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ::= CHOICE {
+ case1 Case1-Cell-SetupRqstTDD,
+ case2 Case2-Cell-SetupRqstTDD,
+ ...
+}
+
+Case1-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case1Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case1Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Case2-Cell-SetupRqstTDD ::= SEQUENCE {
+ sCH-TimeSlot SCH-TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case2Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case2Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PCCPCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ tSTD-Indicator TSTD-Indicator,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP RESPONSE
+--
+-- **************************************************************
+
+CellSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP FAILURE
+--
+-- **************************************************************
+
+CellSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-PrimarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCPICH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+CellReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD PRESENCE mandatory }
+}
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondaryCPICH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ bCH-information BCH-information-Cell-ReconfRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ maximumPDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE optional }|
+ { ID id-SCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only
+ { ID id-PCCPCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-TimeSlotConfigurationList-Cell-ReconfRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-ReconfRqstTDD PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+ ...
+}
+
+CellReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-IPDLParameter-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-ReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+SCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PSCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PSCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pCCPCH-Power PCCPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CellReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CellReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION REQUEST
+--
+-- **************************************************************
+
+CellDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+CellDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION RESPONSE
+--
+-- **************************************************************
+
+CellDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESOURCE STATUS INDICATION
+--
+-- **************************************************************
+
+ResourceStatusIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResourceStatusIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ResourceStatusIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-IndicationType-ResourceStatusInd CRITICALITY ignore TYPE IndicationType-ResourceStatusInd PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+ResourceStatusIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IndicationType-ResourceStatusInd ::= CHOICE {
+ no-Failure No-Failure-ResourceStatusInd,
+ serviceImpacting ServiceImpacting-ResourceStatusInd,
+ ...
+}
+
+No-Failure-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList-ResourceStatusInd,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { No-FailureItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-FailureItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ local-CellID Local-Cell-ID,
+ addorDeleteIndicator AddorDeleteIndicator,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add" and the Local Cell is related to a TDD cell
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServiceImpacting-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList2-ResourceStatusInd OPTIONAL,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList2-ResourceStatusInd OPTIONAL,
+ cCP-InformationList CCP-InformationList-ResourceStatusInd OPTIONAL,
+ cell-InformationList Cell-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ServiceImpactingItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServiceImpactingItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList2-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ maximum-DL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCP-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-ResourceStatusInd }}
+
+CCP-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCP-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE CCP-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+CCP-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { CCP-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-ResourceStatusInd }}
+
+Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ c-ID C-ID,
+ resourceOperationalState ResourceOperationalState OPTIONAL,
+ availabilityStatus AvailabilityStatus OPTIONAL,
+ primary-SCH-Information P-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-SCH-Information S-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CPICH-Information P-CPICH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-CPICH-Information S-CPICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CCPCH-Information P-CCPCH-Information-ResourceStatusInd OPTIONAL,
+ bCH-Information BCH-Information-ResourceStatusInd OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-ResourceStatusInd OPTIONAL,
+ pCH-Information PCH-Information-ResourceStatusInd OPTIONAL,
+ pICH-Information PICH-Information-ResourceStatusInd OPTIONAL,
+ fACH-InformationList FACH-InformationList-ResourceStatusInd OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-ResourceStatusInd OPTIONAL,
+ rACH-InformationList RACH-InformationList-ResourceStatusInd OPTIONAL,
+ aICH-InformationList AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ pCPCH-InformationList PCPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cPCH-InformationList CPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ aP-AICH-InformationList AP-AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ sCH-Information SCH-Information-ResourceStatusInd OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-Information-ResourceStatusInd CRITICALITY ignore EXTENSION DwPCH-LCR-Information-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-ResourceStatusInd CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-ResourceStatusInd }}
+
+P-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-ResourceStatusInd }}
+
+S-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-ResourceStatusInd }}
+
+P-CPICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-ResourceStatusInd }}
+
+S-CPICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-ResourceStatusInd }}
+
+P-CCPCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ BCH-InformationIE-ResourceStatusInd }}
+
+BCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-ResourceStatusInd }}
+
+S-CCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PCH-InformationIE-ResourceStatusInd }}
+
+PCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PICH-InformationIE-ResourceStatusInd }}
+
+PICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-ResourceStatusInd }}
+
+FACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-ResourceStatusInd }}
+
+PRACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-ResourceStatusInd }}
+
+RACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-ResourceStatusInd }}
+
+AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-ResourceStatusInd }}
+
+PCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-ResourceStatusInd }}
+
+CPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-ResourceStatusInd }}
+
+AP-AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CDCA-ICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-ResourceStatusInd }}
+
+CDCA-ICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ SCH-InformationIE-ResourceStatusInd }}
+
+SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FPACH-LCR-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-ResourceStatusInd }}
+
+FPACH-LCR-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+DwPCH-LCR-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ DwPCH-LCR-InformationIE-ResourceStatusInd }}
+
+DwPCH-LCR-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-DwPCH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE REQUEST
+--
+-- **************************************************************
+
+SystemInformationUpdateRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BCCH-ModificationTime CRITICALITY reject TYPE BCCH-ModificationTime PRESENCE optional }|
+ { ID id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst CRITICALITY reject TYPE MIB-SB-SIB-InformationList-SystemInfoUpdateRqst PRESENCE mandatory },
+ ...
+}
+
+SystemInformationUpdateRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ::= SEQUENCE (SIZE (1..maxIB)) OF MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst ::= SEQUENCE {
+ iB-Type IB-Type,
+ iB-OC-ID IB-OC-ID,
+ deletionIndicator DeletionIndicator-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DeletionIndicator-SystemInfoUpdate ::= CHOICE {
+ no-Deletion No-Deletion-SystemInfoUpdate,
+ yes-Deletion NULL
+
+}
+
+No-Deletion-SystemInfoUpdate ::= SEQUENCE {
+ sIB-Originator SIB-Originator OPTIONAL,
+ -- This IE shall be present if the IB-Type IE is set to "SIB"
+ iB-SG-REP IB-SG-REP OPTIONAL,
+ segmentInformationList SegmentInformationList-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { No-DeletionItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-DeletionItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SegmentInformationList-SystemInfoUpdate ::= ProtocolIE-Single-Container {{ SegmentInformationListIEs-SystemInfoUpdate }}
+
+SegmentInformationListIEs-SystemInfoUpdate NBAP-PROTOCOL-IES ::= {
+ { ID id-SegmentInformationListIE-SystemInfoUpdate CRITICALITY reject TYPE SegmentInformationListIE-SystemInfoUpdate PRESENCE mandatory }
+}
+
+SegmentInformationListIE-SystemInfoUpdate ::= SEQUENCE (SIZE (1..maxIBSEG)) OF SegmentInformationItem-SystemInfoUpdate
+
+SegmentInformationItem-SystemInfoUpdate ::= SEQUENCE {
+ iB-SG-POS IB-SG-POS OPTIONAL,
+ segment-Type Segment-Type OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iB-SG-DATA IB-SG-DATA OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iE-Extensions ProtocolExtensionContainer { { SegmentInformationItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SegmentInformationItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE RESPONSE
+--
+-- **************************************************************
+
+SystemInformationUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+SystemInformationUpdateResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE FAILURE
+--
+-- **************************************************************
+
+SystemInformationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SystemInformationUpdateFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DCH-FDD-Information CRITICALITY reject TYPE DCH-FDD-Information PRESENCE mandatory }|
+ { ID id-DSCH-FDD-Information CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional }|
+ { ID id-TFCI2-Bearer-Information-RL-SetupRqstFDD CRITICALITY ignore TYPE TFCI2-Bearer-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY reject TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-DL-PowerBalancing-Information CRITICALITY ignore EXTENSION DL-PowerBalancing-Information PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional },
+ -- The IE shall be present if HS-DSCH Information IE is present
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if Min UL Channelisation Code length IE is set to 4 --
+ ul-PunctureLimit PunctureLimit,
+ tFCS TFCS,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat,
+ ul-SIR-Target UL-SIR,
+ diversityMode DiversityMode,
+ sSDT-CellID-Length SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DPC-Mode CRITICALITY reject EXTENSION DPC-Mode PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ tFCS TFCS,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat,
+ tFCI-SignallingMode TFCI-SignallingMode,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- this IE shall be present if the DL DPCH slot format IE is set to any of the values from 12 to 16 --
+ multiplexingPosition MultiplexingPosition,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ powerOffsetInformation PowerOffsetInformation-RL-SetupRqstFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO2-ForTPC-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF
+ ProtocolIE-Single-Container{{ RL-InformationItemIE-RL-SetupRqstFDD }}
+
+RL-InformationItemIE-RL-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-SetupRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-SetupRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ firstRLS-indicator FirstRLS-Indicator,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ propagationDelay PropagationDelay OPTIONAL,
+ diversityControlField DiversityControlField OPTIONAL,
+ -- This IE shall be present if the RL is not the first one in the RL Information IE
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE in UL DPCH Information group is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DCH-TDD-Information CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-TDD-Information CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-USCH-Information CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-RL-Information-RL-SetupRqstTDD CRITICALITY reject TYPE RL-Information-RL-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE(1..maxNrOfCCTrCHs)) OF
+ ProtocolIE-Single-Container{{ UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ uL-DPCH-Information UL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION UL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ UL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+UL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container{{ DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ tdd-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize,
+ cCTrCH-TPCList CCTrCH-TPCList-RL-SetupRqstTDD OPTIONAL,
+ dL-DPCH-Information DL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION DL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+CCTrCH-TPCList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCItem-RL-SetupRqstTDD
+
+CCTrCH-TPCItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ DL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+DL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ tstdIndicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ specialBurstScheduling SpecialBurstScheduling,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory}|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory}|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory}|
+ { ID id-RL-InformationResponseList-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-SetupRspFDD PRESENCE mandatory}|
+ { ID id-TFCI2-BearerInformationResponse CRITICALITY ignore TYPE TFCI2-BearerInformationResponse PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+RadioLinkSetupResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional}, ...
+}
+
+RL-InformationResponseList-RL-SetupRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container{{ RL-InformationResponseItemIE-RL-SetupRspFDD }}
+
+RL-InformationResponseItemIE-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-SetupRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupRspFDD,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspFDD OPTIONAL,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupRspFDD ::= CHOICE {
+ combining Combining-RL-SetupRspFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupRspFDD
+}
+
+Combining-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Combining-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Combining-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-SetupRspFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspFDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-SetupRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-SetupRspTDD PRESENCE optional }|
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-SetupRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-SetupRspTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container{{ DCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory}
+ }
+
+DSCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+USCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-LCR-Info UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE conditional }|
+ -- This IE shall be present if at least one of the radio links has been successfully set up
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE optional }|
+ { ID id-CauseLevel-RL-SetupFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-SetupFailureFDD Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD,
+ successful-RL-InformationRespList-RL-SetupFailureFDD Successful-RL-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional},
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1.. maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupFailureFDD,
+ dSCH-InformationResponseList DSCH-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- There shall be only one TFCI2 bearer per Node B Communication Context.
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupFailureFDD ::= CHOICE {
+ combining Combining-RL-SetupFailureFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupFailureFDD
+}
+
+Combining-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationRespList-RL-SetupFailureFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationRespListIEs-RL-SetupFailureFDD }}
+
+DSCH-InformationRespListIEs-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-SetupFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-SetupFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Compressed-Mode-Deactivation-Flag CRITICALITY reject TYPE Compressed-Mode-Deactivation-Flag PRESENCE optional }|
+ { ID id-RL-InformationList-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-AdditionRqstFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-AdditionRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-AdditionRqstFDD}}
+
+RL-InformationItemIE-RL-AdditionRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-AdditionRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-AdditionRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ diversityControlField DiversityControlField,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-TransmissionPower DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ sSDT-CellIdentity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-AdditionRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-AdditionRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional}|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE UL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE DL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-AdditionRqstTDD CRITICALITY reject TYPE RL-Information-RL-AdditionRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ uL-DPCH-Information UL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84cps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28cps TDD only
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+-- Applicable to 1.28cps TDD only
+ ...
+}
+
+UL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+UL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE optional} -- For 3.84Mcps TDD only
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dL-DPCH-Information DL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+DL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE mandatory}
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-AdditionRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ diversityControlField DiversityControlField,
+ initial-DL-Transmission-Power DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-information-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-information-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-AdditionRspFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationResponseList-RL-AdditionRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-AdditionRspFDD }}
+
+RL-InformationResponseItemIE-RL-AdditionRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-AdditionRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionRspFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionRspFDD ::= CHOICE {
+ combining Combining-RL-AdditionRspFDD,
+ non-combining Non-Combining-RL-AdditionRspFDD
+}
+
+Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-AdditionRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-AdditionRspTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-AdditionRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-AdditionRspTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD ::= SEQUENCE {
+ diversityIndication DiversityIndication-RL-AdditionRspTDD,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Information-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiversityIndication-RL-AdditionRspTDD ::= CHOICE {
+ combining Combining-RL-AdditionRspTDD, -- Indicates whether the old Transport Bearer shall be reused or not
+ non-Combining Non-Combining-RL-AdditionRspTDD
+}
+
+Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID, -- Reference RL
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+USCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-InfoLCR UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD,
+ successful-RL-InformationRespList-RL-AdditionFailureFDD Successful-RL-InformationRespList-RL-AdditionFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-2)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionFailureFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionFailureFDD ::= CHOICE {
+ combining Combining-RL-AdditionFailureFDD,
+ non-Combining Non-Combining-RL-AdditionFailureFDD
+}
+
+Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional } |
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional } |
+ { ID id-DCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCH-ModifyList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCHs-to-Add-FDD CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional } |
+ { ID id-DSCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD CRITICALITY reject TYPE TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD
+ PRESENCE optional } |
+ { ID id-RL-InformationList-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfPrepFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength OPTIONAL,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if minUL-ChannelisationCodeLength Ie is set to 4
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ tFCS TFCS OPTIONAL,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat OPTIONAL,
+ diversityMode DiversityMode OPTIONAL,
+ sSDT-CellIDLength SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ tFCS TFCS OPTIONAL,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the DL DPCH Slot Format IE is set to any of the values from 12 to 16
+ multiplexingPosition MultiplexingPosition OPTIONAL,
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepFDD
+
+DCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-ModifyList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-ModifyItemIE-RL-ReconfPrepFDD }}
+
+DSCH-ModifyItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-ModifyItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-DeleteItemIE-RL-ReconfPrepFDD }}
+
+DSCH-DeleteItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-DeleteItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ::= CHOICE {
+ addOrModify AddOrModify-TFCI2-RL-ReconfPrepFDD,
+ delete NULL
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY reject EXTENSION TFCI2BearerRequestIndicator PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfPrepFDD }}
+
+RL-InformationItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ sSDT-Indication SSDT-Indication OPTIONAL,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ -- The IE shall be present if the SSDT Indication IE is set to "SSDT Active in the UE"
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE is present in UL DPCH Information IE and it is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DL-DPCH-TimingAdjustment CRITICALITY reject EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional }|
+ { ID id-Secondary-CPICH-Information-Change CRITICALITY ignore EXTENSION Secondary-CPICH-Information-Change PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCHs-to-Add-TDD CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-Add CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-USCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject TYPE RL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 1st RL IE repetition
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION MultipleRL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 2nd and beyond repetition of RL information,
+ ...
+}
+
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+-- This Information is the for the first RL repetition, TPCinformation for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional}|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link repetitions.
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationListLCR UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationModify-AddList CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+-- This Information is the for the first RL repetition, Step Size information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationAddListLCR UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ uL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 1.28Mcps TDD only
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ cCTrCH-TPCList CCTrCH-TPCAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This DL step size is the for the first RL repetition, DL step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationListLCR DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ cCTrCH-Initial-DL-Power DL-Power OPTIONAL,
+ tDD-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCAddItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ cCTrCH-TPCList CCTrCH-TPCModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This Step Size Information is the for the first RL repetition, step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-dl-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddListLCR DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ tDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCModifyItem-RL-ReconfPrepTDD
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+-- Applicable to 3.84Mcps TDD only
+
+DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ dL-Timeslot-InformationAddModify-ModifyList-RL-ReconfPrepTDD DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional },
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs)) OF DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepTDD
+
+DCH-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID OPTIONAL,
+ -- DL CCTrCH in which the DSCH is mapped
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DSCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ cCTrCH-ID CCTrCH-ID OPTIONAL, -- UL CCTrCH in which the USCH is mapped
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleRL-Information-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfPrepTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-InitDL-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION READY
+--
+-- **************************************************************
+
+RadioLinkReconfigurationReady ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationReady-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationReady-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationReady-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfReady PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationReady-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfReady ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-ReconfReady}}
+
+RL-InformationResponseItemIE-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfReady PRESENCE mandatory }
+}
+
+RL-InformationResponseItem-RL-ReconfReady ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfReady DCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ dSCH-InformationResponseList-RL-ReconfReady DSCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ uSCH-InformationResponseList-RL-ReconfReady USCH-InformationResponseList-RL-ReconfReady OPTIONAL, -- TDD only
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- FDD only. There shall be only one TFCI2 bearer per Node B Communication Context.
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfReady-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfReady-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional},
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DSCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-ReconfReady }}
+
+USCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CauseLevel-RL-ReconfFailure CRITICALITY ignore TYPE CauseLevel-RL-ReconfFailure PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-RL-ReconfFailure,
+ rLSpecificCause RLSpecificCauseList-RL-ReconfFailure,
+ ...
+}
+
+GeneralCauseList-RL-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GeneralCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-ReconfFailure ::= SEQUENCE {
+ rL-ReconfigurationFailureList-RL-ReconfFailure RL-ReconfigurationFailureList-RL-ReconfFailure OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RLSpecificCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-ReconfigurationFailureList-RL-ReconfFailure ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-ReconfigurationFailureItemIE-RL-ReconfFailure}}
+
+RL-ReconfigurationFailureItemIE-RL-ReconfFailure NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-ReconfigurationFailureItem-RL-ReconfFailure CRITICALITY ignore TYPE RL-ReconfigurationFailureItem-RL-ReconfFailure PRESENCE mandatory}
+}
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION COMMIT
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCommit ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCommit-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCommit-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCommit-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY ignore TYPE CFN PRESENCE mandatory }|
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+RadioLinkReconfigurationCommit-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION CANCEL
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCancel-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCancel-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCancel-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory },
+ ...
+}
+
+RadioLinkReconfigurationCancel-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-DL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+
+UL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ ul-TFCS TFCS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ dl-TFCS TFCS OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstFDD
+
+DCH-DeleteItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfRqstFDD}}
+
+RL-InformationItemIE-RL-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+-- The IE shall be present if the Transmission Gap Pattern Sequence Information IE is included and the indicated Downlink Compressed Mode method for at least one of the included Transmission Gap Pattern Sequence is set to "SF/2".
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject TYPE RL-Information-RL-ReconfRqstTDD PRESENCE optional },
+-- This RL-Information-RL-ReconfRqstTDD is the first RL information repetition in the RL-Information List. Repetition 2 and on, should be defined in Multiple-RL-Information-RL-ReconfRqstTDD,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject EXTENSION Multiple-RL-Information-RL-ReconfRqstTDD PRESENCE optional }|
+--Includes the 2nd through the max number of radio link information repetitions.
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE {
+ dL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ maxPowerLCR DL-Power OPTIONAL,
+ minPowerLCR DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstTDD
+
+DCH-DeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-RL-Information-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfRqstTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationResponseList-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfRsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfRsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationResponseItemIE-RL-ReconfRsp}}
+
+RL-InformationResponseItemIE-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfRsp PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-ReconfRsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfRsp DCH-InformationResponseList-RL-ReconfRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfRsp::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfRsp }}
+
+DCH-InformationResponseListIEs-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION REQUEST
+--
+-- **************************************************************
+
+RadioLinkDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-informationList-RL-DeletionRqst CRITICALITY notify TYPE RL-informationList-RL-DeletionRqst PRESENCE mandatory },
+ ...
+}
+
+RadioLinkDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-informationList-RL-DeletionRqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-informationItemIE-RL-DeletionRqst}}
+
+RL-informationItemIE-RL-DeletionRqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-informationItem-RL-DeletionRqst CRITICALITY notify TYPE RL-informationItem-RL-DeletionRqst PRESENCE mandatory}
+}
+
+RL-informationItem-RL-DeletionRqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-informationItem-RL-DeletionRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-informationItem-RL-DeletionRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DL POWER CONTROL REQUEST FDD
+--
+-- **************************************************************
+
+DL-PowerControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-PowerAdjustmentType CRITICALITY ignore TYPE PowerAdjustmentType PRESENCE mandatory} |
+ { ID id-DLReferencePower CRITICALITY ignore TYPE DL-Power PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common'
+ { ID id-InnerLoopDLPCStatus CRITICALITY ignore TYPE InnerLoopDLPCStatus PRESENCE optional } |
+ { ID id-DLReferencePowerList-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationList-DL-PC-Rqst PRESENCE conditional } |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Individual'
+ { ID id-MaxAdjustmentStep CRITICALITY ignore TYPE MaxAdjustmentStep PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentPeriod CRITICALITY ignore TYPE AdjustmentPeriod PRESENCE conditional }|
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentRatio CRITICALITY ignore TYPE ScaledAdjustmentRatio PRESENCE conditional },
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ ...
+}
+
+DL-PowerControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList-DL-PC-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{DL-ReferencePowerInformationItemIE-DL-PC-Rqst }}
+
+DL-ReferencePowerInformationItemIE-DL-PC-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-ReferencePowerInformationItem-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationItem-DL-PC-Rqst PRESENCE mandatory
+}
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-ReferencePower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DL POWER TIMESLOT CONTROL REQUEST TDD
+--
+-- **************************************************************
+
+DL-PowerTimeslotControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerTimeslotControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerTimeslotControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerTimeslotControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-TimeslotISCPInfo CRITICALITY ignore TYPE DL-TimeslotISCPInfo PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+ ...
+}
+
+DL-PowerTimeslotControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PrimCCPCH-RSCP-DL-PC-RqstTDD CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP PRESENCE optional }|
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rqst CRITICALITY reject TYPE DedicatedMeasurementObjectType-DM-Rqst PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementType CRITICALITY reject TYPE DedicatedMeasurementType PRESENCE mandatory } |
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional } |
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory } |
+ { ID id-CFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY reject TYPE CFN PRESENCE optional } ,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NumberOfReportedCellPortions CRITICALITY reject EXTENSION NumberOfReportedCellPortions PRESENCE conditional },
+ -- The IE shall be present if the Dedicated Measurement Type IE is set to "Best Cell Portions", FDD only.
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rqst ::= CHOICE {
+ rL RL-DM-Rqst,
+ rLS RL-Set-DM-Rqst, -- for FDD only
+ all-RL AllRL-DM-Rqst,
+ all-RLS AllRL-Set-DM-Rqst, -- for FDD only
+ ...
+}
+
+RL-DM-Rqst ::= SEQUENCE {
+ rL-InformationList RL-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rqst }}
+
+RL-InformationItemIE-DM-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rqst CRITICALITY reject TYPE RL-InformationItem-DM-Rqst PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PUSCH-Info-DM-Rqst CRITICALITY reject EXTENSION PUSCH-Info-DM-Rqst PRESENCE optional}|
+ -- TDD only
+ { ID id-HSSICH-Info-DM-Rqst CRITICALITY reject EXTENSION HSSICH-Info-DM-Rqst PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+HSSICH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID
+
+RL-Set-DM-Rqst ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rqst RL-Set-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rqst ::= SEQUENCE (SIZE(1..maxNrOfRLSets)) OF RL-Set-InformationItem-DM-Rqst
+
+RL-Set-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllRL-DM-Rqst ::= NULL
+
+
+AllRL-Set-DM-Rqst ::= NULL
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rsp CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rsp ::= CHOICE {
+ rL RL-DM-Rsp,
+ rLS RL-Set-DM-Rsp, -- for FDD only
+ all-RL RL-DM-Rsp,
+ all-RLS RL-Set-DM-Rsp, -- for FDD only
+ ...
+}
+
+RL-DM-Rsp ::= SEQUENCE {
+ rL-InformationList-DM-Rsp RL-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rsp }}
+
+RL-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-InformationItem-DM-Rsp PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rsp CRITICALITY reject EXTENSION PUSCH-Info-DM-Rsp PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rsp CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rsp ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rsp RL-Set-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rsp }}
+
+RL-Set-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rsp PRESENCE mandatory}
+}
+
+RL-Set-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT REPORT
+--
+-- **************************************************************
+
+DedicatedMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rprt CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rprt PRESENCE mandatory } ,
+ ...
+}
+
+DedicatedMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rprt ::= CHOICE {
+ rL RL-DM-Rprt,
+ rLS RL-Set-DM-Rprt, -- for FDD only
+ all-RL RL-DM-Rprt,
+ all-RLS RL-Set-DM-Rprt, -- for FDD only
+ ...
+}
+
+RL-DM-Rprt ::= SEQUENCE {
+ rL-InformationList-DM-Rprt RL-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rprt }}
+
+RL-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rprt CRITICALITY reject EXTENSION PUSCH-Info-DM-Rprt PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rprt CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rprt ::= SEQUENCE (SIZE (0..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rprt ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rprt RL-Set-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rprt }}
+
+RL-Set-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+DedicatedMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK FAILURE INDICATION
+--
+-- **************************************************************
+
+RadioLinkFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-FailureInd CRITICALITY ignore TYPE Reporting-Object-RL-FailureInd PRESENCE mandatory } ,
+ ...
+}
+
+RadioLinkFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-FailureInd ::= CHOICE {
+ rL RL-RL-FailureInd,
+ rL-Set RL-Set-RL-FailureInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-FailureInd --TDD only
+}
+
+RL-RL-FailureInd ::= SEQUENCE {
+ rL-InformationList-RL-FailureInd RL-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-FailureInd}}
+
+RL-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-FailureInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-FailureInd RL-Set-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-FailureInd }}
+
+RL-Set-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-FailureInd PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-FailureInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-FailureInd CCTrCH-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-FailureInd}}
+
+CCTrCH-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-FailureInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+CCTrCH-InformationItem-RL-FailureInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PREEMPTION REQUIRED INDICATION
+--
+-- **************************************************************
+
+RadioLinkPreemptionRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkPreemptionRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkPreemptionRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationList-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIE-RL-PreemptRequiredInd}}
+
+RL-InformationItemIE-RL-PreemptRequiredInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationItem-RL-PreemptRequiredInd PRESENCE mandatory },
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RESTORE INDICATION
+--
+-- **************************************************************
+
+RadioLinkRestoreIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkRestoreIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkRestoreIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkRestoreIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-RestoreInd CRITICALITY ignore TYPE Reporting-Object-RL-RestoreInd PRESENCE mandatory },
+ ...
+}
+
+RadioLinkRestoreIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-RestoreInd ::= CHOICE {
+ rL RL-RL-RestoreInd, --TDD only
+ rL-Set RL-Set-RL-RestoreInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-RestoreInd --TDD only
+}
+
+RL-RL-RestoreInd ::= SEQUENCE {
+ rL-InformationList-RL-RestoreInd RL-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationItemIE-RL-RestoreInd}}
+
+RL-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-InformationItem-RL-RestoreInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-RestoreInd RL-Set-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-RestoreInd }}
+
+RL-Set-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+RL-Set-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-RestoreInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-RestoreInd CCTrCH-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-RestoreInd}}
+
+CCTrCH-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMPRESSED MODE COMMAND FDD
+--
+-- **************************************************************
+
+CompressedModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CompressedModeCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CompressedModeCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+CompressedModeCommand-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE mandatory },
+ ...
+}
+
+CompressedModeCommand-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ErrorIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ErrorIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE optional } |
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs NBAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst CRITICALITY reject TYPE DL-ScramblingCode PRESENCE optional }|
+ { ID id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-PDSCH-FDD-Code-Information PRESENCE optional }|
+ { ID id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-SCCH-FDD-Code-Information PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-PDSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION HS-PDSCH-TDD-Information-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-ConfigurationGenerationID CRITICALITY reject EXTENSION ConfigurationGenerationID PRESENCE optional },
+ ...
+}
+
+PDSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-AddItem-PSCH-ReconfRqst
+
+PDSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL, -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PDSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+-- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+PDSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-PSCH-ReconfRqst DL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-PSCH-ReconfRqst DL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-LCR-PSCH-ReconfRqst DL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+
+}
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModifyList-PSCH-ReconfRqst DL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModifyList-PSCH-ReconfRqst DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-AddItem-PSCH-ReconfRqst
+
+PUSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL,
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PUSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-PSCH-ReconfRqst UL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-PSCH-ReconfRqst UL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfULTSLCRs)) OF UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-LCR-PSCH-ReconfRqst UL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+}
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-PSCH-ReconfRqst UL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModifyList-PSCH-ReconfRqst UL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-LCR-PSCH-ReconfRqst UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-LCR-InformationModifyList-PSCH-ReconfRqst UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ dL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst OPTIONAL,
+ dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ dl-HS-PDSCH-Codelist-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlotLCR,
+ midambleShiftAndBurstType MidambleShiftLCR,
+ dl-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-Information-PSCH-ReconfRqst HS-SCCH-Information-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-Information-LCR-PSCH-ReconfRqst HS-SCCH-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information HS-SICH-Information-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information-LCR HS-SICH-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-InformationModify-PSCH-ReconfRqst HS-SCCH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-InformationModify-LCR-PSCH-ReconfRqst HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information HS-SICH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information-LCR HS-SICH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-PSCH-ReconfFailure CRITICALITY ignore TYPE CauseLevel-PSCH-ReconfFailure PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-PSCH-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-PSCH-ReconfFailure,
+ setSpecificCause SetSpecificCauseList-PSCH-ReconfFailureTDD,
+ ...
+}
+
+GeneralCauseList-PSCH-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-PSCH-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-PSCH-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SetSpecificCauseList-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPDSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPUSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET REQUEST
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetRequest-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-ResetIndicator CRITICALITY ignore TYPE ResetIndicator PRESENCE mandatory},
+ ...
+}
+
+ResetRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetIndicator ::= CHOICE {
+ communicationContext CommunicationContextList-Reset,
+ communicationControlPort CommunicationControlPortList-Reset,
+ nodeB NULL,
+ ...
+}
+
+CommunicationContextList-Reset ::= SEQUENCE {
+ communicationContextInfoList-Reset CommunicationContextInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationContextItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCommunicationContext)) OF ProtocolIE-Single-Container {{ CommunicationContextInfoItemIE-Reset }}
+
+CommunicationContextInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationContextInfoItem-Reset CRITICALITY reject TYPE CommunicationContextInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationContextInfoItem-Reset ::= SEQUENCE {
+ communicationContextType-Reset CommunicationContextType-Reset,
+ iE-Extensions ProtocolExtensionContainer { { CommunicationContextInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextType-Reset ::= CHOICE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ nodeB-CommunicationContextID NodeB-CommunicationContextID,
+ ...
+}
+
+CommunicationControlPortList-Reset ::= SEQUENCE {
+ communicationControlPortInfoList-Reset CommunicationControlPortInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCCPinNodeB)) OF ProtocolIE-Single-Container {{CommunicationControlPortInfoItemIE-Reset }}
+
+CommunicationControlPortInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationControlPortInfoItem-Reset CRITICALITY reject TYPE CommunicationControlPortInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationControlPortInfoItem-Reset ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET RESPONSE
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetResponse-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ResetResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rqst CRITICALITY reject TYPE InformationExchangeObjectType-InfEx-Rqst PRESENCE mandatory }|
+ { ID id-InformationType CRITICALITY reject TYPE InformationType PRESENCE mandatory }|
+ { ID id-InformationReportCharacteristics CRITICALITY reject TYPE InformationReportCharacteristics PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rqst ::= CHOICE {
+ cell Cell-InfEx-Rqst,
+ ...
+}
+
+Cell-InfEx-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-InfEx-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION RESPONSE
+--
+-- **************************************************************
+
+InformationExchangeInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rsp CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rsp ::= CHOICE {
+ cell Cell-InfEx-Rsp,
+ ...
+ }
+
+Cell-InfEx-Rsp ::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-InfEx-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION FAILURE
+--
+-- **************************************************************
+
+InformationExchangeInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION REPORT
+--
+-- **************************************************************
+
+InformationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationReport-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rprt CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rprt PRESENCE mandatory },
+ ...
+}
+
+InformationReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rprt ::= CHOICE {
+ cell Cell-Inf-Rprt,
+ ...
+ }
+
+Cell-Inf-Rprt ::= SEQUENCE {
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-Inf-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-Inf-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE TERMINATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE FAILURE INDICATION
+--
+-- **************************************************************
+
+InformationExchangeFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+InformationExchangeFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-cellSyncBurstRepetitionPeriod CRITICALITY reject TYPE CellSyncBurstRepetitionPeriod PRESENCE mandatory }|
+ { ID id-timeslotInfo-CellSyncInitiationRqstTDD CRITICALITY reject TYPE TimeslotInfo-CellSyncInitiationRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+ { ID id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstTransInit-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ initialDLTransPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeslotInfo-CellSyncInitiationRqstTDD::= SEQUENCE (SIZE (1..15)) OF TimeSlot
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ synchronisationReportType SynchronisationReportType,
+ sfn SFN OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sfn SFN OPTIONAL,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ synchronisationReportType SynchronisationReportType,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION NSubCyclesPerCyclePeriod PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-TimeSlot CRITICALITY reject TYPE TimeSlot PRESENCE mandatory }|
+ -- Applicable to 3.84Mcps TDD only. For 1.28Mcps TDD, the CRNC should set this to 0 and the Node B shall ignore it.
+ { ID id-NCyclesPerSFNperiod CRITICALITY reject TYPE NCyclesPerSFNperiod PRESENCE mandatory }|
+ { ID id-NRepetitionsPerCyclePeriod CRITICALITY reject TYPE NRepetitionsPerCyclePeriod PRESENCE mandatory }|
+ { ID id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfo-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberToTransmit SyncFrameNumber,
+ cellSyncBurstCode CellSyncBurstCode OPTIONAL,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift OPTIONAL,
+ dlTransPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportTypeIE OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristicsIE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ::= ProtocolIE-Single-Container {{ CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD }}
+
+CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD PRESENCE mandatory }
+}
+
+SynchronisationReportTypeIE ::= ProtocolIE-Single-Container {{ SynchronisationReportTypeIEs }}
+
+SynchronisationReportTypeIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportType CRITICALITY reject TYPE SynchronisationReportType PRESENCE mandatory }
+}
+
+SynchronisationReportCharacteristicsIE ::= ProtocolIE-Single-Container {{ SynchronisationReportCharacteristicsIEs }}
+
+SynchronisationReportCharacteristicsIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportCharacteristics CRITICALITY reject TYPE SynchronisationReportCharacteristics PRESENCE mandatory }
+}
+
+
+CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ syncBurstInfo CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfoList-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSyncFramesLCR)) OF SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberforTransmit SyncFrameNumber,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId OPTIONAL,
+ dwPCH-Power DwPCH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD::= SEQUENCE {
+ sYNCDlCodeIdMeasInfoList SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportType OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD::= SEQUENCE (SIZE (1.. maxNrOfSyncDLCodesLCR)) OF SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ sYNCDlCodeIdInfoLCR SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfReceptionsperSyncFrameLCR)) OF SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sYNCDlCodeId SYNCDlCodeId,
+ uARFCN UARFCN,
+ propagationDelayCompensation TimingAdjustmentValueLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfo-SyncAdjustmntRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfo-SyncAdjustmentRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CellAdjustmentInfo-SyncAdjustmentRqstTDD::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD }}
+
+CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfoItem-SyncAdjustmentRqstTDD PRESENCE mandatory }
+}
+
+CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ::= SEQUENCE {
+ c-ID C-ID,
+ frameAdjustmentValue FrameAdjustmentValue OPTIONAL,
+ timingAdjustmentValue TimingAdjustmentValue OPTIONAL,
+ dLTransPower DL-Power OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ sfn SFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DwPCH-Power CRITICALITY ignore EXTENSION DwPCH-Power PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-TimingAdjustmentValueLCR CRITICALITY ignore EXTENSION TimingAdjustmentValueLCR PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE CauseLevel-SyncAdjustmntFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CauseLevel-SyncAdjustmntFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-SyncAdjustmntFailureTDD,
+ cellSpecificCause CellSpecificCauseList-SyncAdjustmntFailureTDD,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD ::= SEQUENCE {
+ unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD }}
+
+Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD PRESENCE mandatory},
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD::= SEQUENCE {
+ c-ID C-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION TERMINATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationTerminationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationTerminationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationTerminationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION FAILURE INDICATION TDD
+--
+-- **************************************************************
+
+CellSynchronisationFailureIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationFailureIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationFailureIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION REPORT TDD
+--
+-- **************************************************************
+
+CellSynchronisationReportTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReportTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReportTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReportTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReportTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncInfo-CellSyncReprtTDD CRITICALITY ignore TYPE CellSyncInfo-CellSyncReprtTDD PRESENCE mandatory },
+ ...
+}
+
+
+CellSyncInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF CellSyncInfoItemIE-CellSyncReprtTDD
+
+CellSyncInfoItemIE-CellSyncReprtTDD ::= SEQUENCE {
+ c-ID-CellSyncReprtTDD C-ID-IE-CellSyncReprtTDD,
+ syncReportType-CellSyncReprtTDD SyncReportTypeIE-CellSyncReprtTDD OPTIONAL,
+ ...
+}
+
+C-ID-IE-CellSyncReprtTDD ::= ProtocolIE-Single-Container {{ C-ID-IEs-CellSyncReprtTDD }}
+
+C-ID-IEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory}
+}
+
+SyncReportTypeIE-CellSyncReprtTDD::= ProtocolIE-Single-Container {{ SyncReportTypeIEs-CellSyncReprtTDD }}
+
+SyncReportTypeIEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncReportType-CellSyncReprtTDD CRITICALITY ignore TYPE SyncReportType-CellSyncReprtTDD PRESENCE mandatory}
+}
+
+
+SyncReportType-CellSyncReprtTDD ::= CHOICE {
+ intStdPhSyncInfo-CellSyncReprtTDD IntStdPhCellSyncInfo-CellSyncReprtTDD,
+ lateEntrantCell NULL,
+ frequencyAcquisition NULL,
+ ...
+}
+
+IntStdPhCellSyncInfo-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstMeasuredInfo CellSyncBurstMeasInfoList-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-AccumulatedClockupdate-CellSyncReprtTDD CRITICALITY ignore EXTENSION TimingAdjustmentValue PRESENCE optional }|
+ { ID id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD CRITICALITY ignore EXTENSION SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReprtTDD -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ cellSyncBurstInfo-CellSyncReprtTDD SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfo-CellSyncReprtTDD ::= CHOICE {
+ cellSyncBurstAvailable CellSyncBurstAvailable-CellSyncReprtTDD,
+ cellSyncBurstNotAvailable NULL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstTiming CellSyncBurstTiming,
+ cellSyncBurstSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD
+-- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ syncDLCodeIdInfo-CellSyncReprtTDD SyncDLCodeIdInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptionsperSyncFrameLCR)) OF SyncDLCodeIdItem-CellSyncReprtTDD
+
+SyncDLCodeIdItem-CellSyncReprtTDD ::= CHOICE {
+ syncDLCodeIdAvailable SyncDLCodeIdAvailable-CellSyncReprtTDD,
+ syncDLCodeIDNotAvailable NULL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ syncDLCodeIdTiming CellSyncBurstTimingLCR,
+ syncDLCodeIdSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER REARRANGEMENT INDICATION
+--
+-- **************************************************************
+
+BearerRearrangementIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BearerRearrangementIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BearerRearrangementIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+BearerRearrangementIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-SignallingBearerRequestIndicator CRITICALITY ignore TYPE SignallingBearerRequestIndicator PRESENCE optional } |
+ { ID id-DCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-DSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-USCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE USCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+-- TDD only.
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY ignore TYPE TFCI2BearerRequestIndicator PRESENCE optional }|
+ -- FDD only.
+ { ID id-HSDSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE HSDSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional },
+ ...
+}
+
+BearerRearrangementIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-RearrangeItem-Bearer-RearrangeInd
+
+DCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-RearrangeItem-Bearer-RearrangeInd
+
+DSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-RearrangeItem-Bearer-RearrangeInd
+
+USCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-RearrangeItem-Bearer-RearrangeInd
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND FDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdFDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdFDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND TDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdTDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdTDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION FDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-FDD-Update-Information CRITICALITY ignore TYPE HSDSCH-FDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION TDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-TDD-Update-Information CRITICALITY ignore TYPE HSDSCH-TDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
new file mode 100755
index 0000000000..b9be9934e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
@@ -0,0 +1,916 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+NBAP-PDU-Discriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureID,
+ MessageDiscriminator,
+ TransactionID
+FROM NBAP-CommonDataTypes
+
+ CommonTransportChannelSetupRequestFDD,
+ CommonTransportChannelSetupRequestTDD,
+ CommonTransportChannelSetupResponse,
+ CommonTransportChannelSetupFailure,
+ CommonTransportChannelReconfigurationRequestFDD,
+ CommonTransportChannelReconfigurationRequestTDD,
+ CommonTransportChannelReconfigurationResponse,
+ CommonTransportChannelReconfigurationFailure,
+ CommonTransportChannelDeletionRequest,
+ CommonTransportChannelDeletionResponse,
+ BlockResourceRequest,
+ BlockResourceResponse,
+ BlockResourceFailure,
+ UnblockResourceIndication,
+ AuditFailure,
+ AuditRequiredIndication,
+ AuditRequest,
+ AuditResponse,
+ CommonMeasurementInitiationRequest,
+ CommonMeasurementInitiationResponse,
+ CommonMeasurementInitiationFailure,
+ CommonMeasurementReport,
+ CommonMeasurementTerminationRequest,
+ CommonMeasurementFailureIndication,
+ CellSetupRequestFDD,
+ CellSetupRequestTDD,
+ CellSetupResponse,
+ CellSetupFailure,
+ CellReconfigurationRequestFDD,
+ CellReconfigurationRequestTDD,
+ CellReconfigurationResponse,
+ CellReconfigurationFailure,
+ CellDeletionRequest,
+ CellDeletionResponse,
+ InformationExchangeInitiationRequest,
+ InformationExchangeInitiationResponse,
+ InformationExchangeInitiationFailure,
+ InformationReport,
+ InformationExchangeTerminationRequest,
+ InformationExchangeFailureIndication,
+ BearerRearrangementIndication,
+ ResourceStatusIndication,
+ SystemInformationUpdateRequest,
+ SystemInformationUpdateResponse,
+ SystemInformationUpdateFailure,
+ ResetRequest,
+ ResetResponse,
+ RadioLinkActivationCommandFDD,
+ RadioLinkActivationCommandTDD,
+ RadioLinkPreemptionRequiredIndication,
+ RadioLinkSetupRequestFDD,
+ RadioLinkSetupRequestTDD,
+ RadioLinkSetupResponseFDD,
+ RadioLinkSetupResponseTDD,
+ RadioLinkSetupFailureFDD,
+ RadioLinkSetupFailureTDD,
+ RadioLinkAdditionRequestFDD,
+ RadioLinkAdditionRequestTDD,
+ RadioLinkAdditionResponseFDD,
+ RadioLinkAdditionResponseTDD,
+ RadioLinkAdditionFailureFDD,
+ RadioLinkAdditionFailureTDD,
+ RadioLinkParameterUpdateIndicationFDD,
+ RadioLinkParameterUpdateIndicationTDD,
+ RadioLinkReconfigurationPrepareFDD,
+ RadioLinkReconfigurationPrepareTDD,
+ RadioLinkReconfigurationReady,
+ RadioLinkReconfigurationFailure,
+ RadioLinkReconfigurationCommit,
+ RadioLinkReconfigurationCancel,
+ RadioLinkReconfigurationRequestFDD,
+ RadioLinkReconfigurationRequestTDD,
+ RadioLinkReconfigurationResponse,
+ RadioLinkDeletionRequest,
+ RadioLinkDeletionResponse,
+ DL-PowerControlRequest,
+ DL-PowerTimeslotControlRequest,
+ DedicatedMeasurementInitiationRequest,
+ DedicatedMeasurementInitiationResponse,
+ DedicatedMeasurementInitiationFailure,
+ DedicatedMeasurementReport,
+ DedicatedMeasurementTerminationRequest,
+ DedicatedMeasurementFailureIndication,
+ RadioLinkFailureIndication,
+ RadioLinkRestoreIndication,
+ CompressedModeCommand,
+ ErrorIndication,
+ PrivateMessage,
+ PhysicalSharedChannelReconfigurationRequestTDD,
+ PhysicalSharedChannelReconfigurationRequestFDD,
+ PhysicalSharedChannelReconfigurationResponse,
+ PhysicalSharedChannelReconfigurationFailure,
+ CellSynchronisationInitiationRequestTDD,
+ CellSynchronisationInitiationResponseTDD,
+ CellSynchronisationInitiationFailureTDD,
+ CellSynchronisationReconfigurationRequestTDD,
+ CellSynchronisationReconfigurationResponseTDD,
+ CellSynchronisationReconfigurationFailureTDD,
+ CellSynchronisationAdjustmentRequestTDD,
+ CellSynchronisationAdjustmentResponseTDD,
+ CellSynchronisationAdjustmentFailureTDD,
+ CellSynchronisationReportTDD,
+ CellSynchronisationTerminationRequestTDD,
+ CellSynchronisationFailureIndicationTDD
+FROM NBAP-PDU-Contents
+
+ id-audit,
+ id-auditRequired,
+ id-blockResource,
+ id-cellDeletion,
+ id-cellReconfiguration,
+ id-cellSetup,
+ id-cellSynchronisationInitiation,
+ id-cellSynchronisationReconfiguration,
+ id-cellSynchronisationReporting,
+ id-cellSynchronisationTermination,
+ id-cellSynchronisationFailure,
+ id-commonMeasurementFailure,
+ id-commonMeasurementInitiation,
+ id-commonMeasurementReport,
+ id-commonMeasurementTermination,
+ id-commonTransportChannelDelete,
+ id-commonTransportChannelReconfigure,
+ id-commonTransportChannelSetup,
+ id-compressedModeCommand,
+ id-dedicatedMeasurementFailure,
+ id-dedicatedMeasurementInitiation,
+ id-dedicatedMeasurementReport,
+ id-dedicatedMeasurementTermination,
+ id-downlinkPowerControl,
+ id-downlinkPowerTimeslotControl,
+ id-errorIndicationForDedicated,
+ id-errorIndicationForCommon,
+ id-informationExchangeFailure,
+ id-informationExchangeInitiation,
+ id-informationReporting,
+ id-informationExchangeTermination,
+ id-BearerRearrangement,
+ id-physicalSharedChannelReconfiguration,
+ id-privateMessageForDedicated,
+ id-privateMessageForCommon,
+ id-radioLinkActivation,
+ id-radioLinkAddition,
+ id-radioLinkDeletion,
+ id-radioLinkFailure,
+ id-radioLinkParameterUpdate,
+ id-radioLinkPreemption,
+ id-radioLinkRestoration,
+ id-radioLinkSetup,
+ id-reset,
+ id-resourceStatusIndication,
+ id-cellSynchronisationAdjustment,
+ id-synchronisedRadioLinkReconfigurationCancellation,
+ id-synchronisedRadioLinkReconfigurationCommit,
+ id-synchronisedRadioLinkReconfigurationPreparation,
+ id-systemInformationUpdate,
+ id-unblockResource,
+ id-unSynchronisedRadioLinkReconfiguration
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &messageDiscriminator MessageDiscriminator,
+ &procedureID ProcedureID UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ MESSAGE DISCRIMINATOR &messageDiscriminator
+ PROCEDURE ID &procedureID
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+NBAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ succesfulOutcome SuccessfulOutcome,
+ unsuccesfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+Outcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&Outcome ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURES NBAP-ELEMENTARY-PROCEDURE ::= {
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-1 NBAP-ELEMENTARY-PROCEDURE ::= {
+ cellSetupFDD |
+ cellSetupTDD |
+ cellReconfigurationFDD |
+ cellReconfigurationTDD |
+ cellDeletion |
+ commonTransportChannelSetupFDD |
+ commonTransportChannelSetupTDD |
+ commonTransportChannelReconfigureFDD |
+ commonTransportChannelReconfigureTDD |
+ commonTransportChannelDelete |
+ audit |
+ blockResource |
+ radioLinkSetupFDD |
+ radioLinkSetupTDD |
+ systemInformationUpdate |
+ commonMeasurementInitiation |
+ radioLinkAdditionFDD |
+ radioLinkAdditionTDD |
+ radioLinkDeletion |
+ reset |
+ synchronisedRadioLinkReconfigurationPreparationFDD |
+ synchronisedRadioLinkReconfigurationPreparationTDD |
+ unSynchronisedRadioLinkReconfigurationFDD |
+ unSynchronisedRadioLinkReconfigurationTDD |
+ dedicatedMeasurementInitiation |
+ physicalSharedChannelReconfigurationTDD ,
+ ...,
+ informationExchangeInitiation |
+ cellSynchronisationInitiationTDD |
+ cellSynchronisationReconfigurationTDD |
+ cellSynchronisationAdjustmentTDD |
+ physicalSharedChannelReconfigurationFDD
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-2 NBAP-ELEMENTARY-PROCEDURE ::= {
+ resourceStatusIndication |
+ auditRequired |
+ commonMeasurementReport |
+ commonMeasurementTermination |
+ commonMeasurementFailure |
+ synchronisedRadioLinkReconfigurationCommit |
+ synchronisedRadioLinkReconfigurationCancellation |
+ radioLinkFailure |
+ radioLinkPreemption |
+ radioLinkRestoration |
+ dedicatedMeasurementReport |
+ dedicatedMeasurementTermination |
+ dedicatedMeasurementFailure |
+ downlinkPowerControlFDD |
+ downlinkPowerTimeslotControl |
+ compressedModeCommand |
+ unblockResource |
+ errorIndicationForDedicated |
+ errorIndicationForCommon |
+ privateMessageForDedicated |
+ privateMessageForCommon ,
+ ...,
+ informationReporting |
+ informationExchangeTermination |
+ informationExchangeFailure |
+ cellSynchronisationReportingTDD |
+ cellSynchronisationTerminationTDD |
+ cellSynchronisationFailureTDD |
+ bearerRearrangement |
+ radioLinkActivationFDD |
+ radioLinkActivationTDD |
+ radioLinkParameterUpdateFDD |
+ radioLinkParameterUpdateTDD
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+-- Class 1
+
+-- *** CellSetup (FDD) ***
+cellSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestFDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellSetup (TDD) ***
+cellSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestTDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(FDD) ***
+cellReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(TDD) ***
+cellReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellDeletion ***
+cellDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellDeletionRequest
+ SUCCESSFUL OUTCOME CellDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (FDD) ***
+commonTransportChannelSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (TDD) ***
+commonTransportChannelSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (FDD) ***
+commonTransportChannelReconfigureFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (TDD) ***
+commonTransportChannelReconfigureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelDelete ***
+commonTransportChannelDelete NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelDeletionRequest
+ SUCCESSFUL OUTCOME CommonTransportChannelDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelDelete, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Audit ***
+audit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequest
+ SUCCESSFUL OUTCOME AuditResponse
+ UNSUCCESSFUL OUTCOME AuditFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-audit, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** BlockResourceRequest ***
+blockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BlockResourceRequest
+ SUCCESSFUL OUTCOME BlockResourceResponse
+ UNSUCCESSFUL OUTCOME BlockResourceFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-blockResource, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (FDD) ***
+radioLinkSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureFDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (TDD) ***
+radioLinkSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** SystemInformationUpdate ***
+systemInformationUpdate NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SystemInformationUpdateRequest
+ SUCCESSFUL OUTCOME SystemInformationUpdateResponse
+ UNSUCCESSFUL OUTCOME SystemInformationUpdateFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-systemInformationUpdate, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Reset ***
+reset NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-reset, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonMeasurementInitiation ***
+commonMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME CommonMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME CommonMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (FDD) ***
+radioLinkAdditionFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (TDD) ***
+radioLinkAdditionTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkDeletion ***
+radioLinkDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkDeletionRequest
+ SUCCESSFUL OUTCOME RadioLinkDeletionResponse
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (FDD) ***
+synchronisedRadioLinkReconfigurationPreparationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (TDD) ***
+synchronisedRadioLinkReconfigurationPreparationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (FDD) ***
+unSynchronisedRadioLinkReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (TDD) ***
+unSynchronisedRadioLinkReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** DedicatedMeasurementInitiation ***
+dedicatedMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME DedicatedMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME DedicatedMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (FDD) ***
+physicalSharedChannelReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (TDD) ***
+physicalSharedChannelReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** InformationExchangeInitiation ***
+informationExchangeInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeInitiationRequest
+ SUCCESSFUL OUTCOME InformationExchangeInitiationResponse
+ UNSUCCESSFUL OUTCOME InformationExchangeInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationInitiation (TDD only) ***
+cellSynchronisationInitiationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationInitiationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationInitiationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationInitiationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationInitiation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationReconfiguration (TDD only) ***
+cellSynchronisationReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationReconfigurationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationReconfigurationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationAdjustment (TDD only) ***
+cellSynchronisationAdjustmentTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationAdjustmentRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationAdjustmentResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationAdjustmentFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationAdjustment, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- Class 2
+
+-- *** ResourceStatusIndication ***
+resourceStatusIndication NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-resourceStatusIndication, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** AuditRequired ***
+auditRequired NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequiredIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-auditRequired, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementReport ***
+commonMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementTermination ***
+commonMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementFailure ***
+commonMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioLinkReconfigurationCommit ***
+synchronisedRadioLinkReconfigurationCommit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCommit
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCommit, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioReconfigurationCancellation ***
+synchronisedRadioLinkReconfigurationCancellation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCancel
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCancellation, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkFailure ***
+radioLinkFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkPreemption ***
+radioLinkPreemption NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkPreemptionRequiredIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkPreemption, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkRestoration ***
+radioLinkRestoration NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkRestoreIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkRestoration, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementReport ***
+dedicatedMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementReport
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementTermination ***
+dedicatedMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementFailure ***
+dedicatedMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerControl (FDD only) ***
+downlinkPowerControlFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerControl, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerTimeslotControl (TDD only) ***
+downlinkPowerTimeslotControl NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerTimeslotControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerTimeslotControl, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CompressedModeCommand (FDD only) ***
+compressedModeCommand NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CompressedModeCommand
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-compressedModeCommand, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** UnblockResourceIndication ***
+unblockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UnblockResourceIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-unblockResource, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Dedicated procedures ***
+errorIndicationForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-errorIndicationForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Common procedures ***
+errorIndicationForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-errorIndicationForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationReporting (TDD only) ***
+cellSynchronisationReportingTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReportTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReporting, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationTermination (TDD only) ***
+cellSynchronisationTerminationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationTerminationRequestTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationTermination, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationFailure (TDD only) ***
+cellSynchronisationFailureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationFailureIndicationTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationFailure, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Dedicated procedures ***
+privateMessageForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-privateMessageForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Common procedures ***
+privateMessageForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-privateMessageForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationReporting ***
+informationReporting NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeTermination ***
+informationExchangeTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeFailure ***
+informationExchangeFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** BearerRearrangement ***
+bearerRearrangement NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerRearrangementIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-BearerRearrangement, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (FDD) ***
+radioLinkActivationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (TDD) ***
+radioLinkActivationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (FDD) ***
+radioLinkParameterUpdateFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (TDD) ***
+radioLinkParameterUpdateTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode tdd }
+ CRITICALITY ignore
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/p_record.asn1config b/lib/asn1/test/asn1_bin_SUITE_data/p_record.asn1config
new file mode 100644
index 0000000000..a8eb00d43d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/p_record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'p_record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/p_record.set.asn b/lib/asn1/test/asn1_bin_SUITE_data/p_record.set.asn
new file mode 100644
index 0000000000..24d502d067
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/p_record.set.asn
@@ -0,0 +1 @@
+P-Record.py
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/subdir/MySO.asn b/lib/asn1/test/asn1_bin_SUITE_data/subdir/MySO.asn
new file mode 100644
index 0000000000..4c649da4c4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/subdir/MySO.asn
@@ -0,0 +1,14 @@
+MySO DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ T
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a T,
+ b INTEGER}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/subdir/subsubdir/.gitignore b/lib/asn1/test/asn1_bin_SUITE_data/subdir/subsubdir/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/subdir/subsubdir/.gitignore
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/DialoguePDUs.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/DialoguePDUs.asn
new file mode 100644
index 0000000000..541dc55f6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/DialoguePDUs.asn
@@ -0,0 +1,80 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module DialoguePDUs (Q.773:06/1997)
+DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS dialogue-as-id, DialoguePDU;
+
+-- abstract syntax name for structured dialogue APDUs
+dialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)}
+
+DialoguePDU ::= CHOICE {
+ dialogueRequest AARQ-apdu,
+ dialogueResponse AARE-apdu,
+ dialogueAbort ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRQ PDU is currently not used.
+-- It is included for completeness only.
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRE PDU is currently not used.
+-- It is included for completeness only
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+ dialogue-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2)},
+ dialogue-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+-- Release-request-reason is currently not used.
+-- It is included for completeness only.
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}
+
+-- Release-response-reason is currently not used.
+-- It is included for completeness only.
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}
+
+END -- DialoguePDUs
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000000..26367c8f39
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
@@ -0,0 +1,186 @@
+MAP-ApplicationContexts {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ApplicationContexts (2) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+
+-- EXPORTS everything
+
+
+IMPORTS
+ gsm-NetworkId,
+ ac-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+;
+
+-- application-context-names
+
+map-ac OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id}
+
+networkLocUpContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac networkLocUp(1) version3(3)}
+
+locationCancellationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationCancel(2) version3(3)}
+
+roamingNumberEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac roamingNbEnquiry(3) version3(3)}
+
+authenticationFailureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac authenticationFailureReport(39) version3(3)}
+
+locationInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locInfoRetrieval(5) version3(3)}
+
+resetContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac reset(10) version2(2)}
+
+handoverControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac handoverControl(11) version3(3)}
+
+equipmentMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac equipmentMngt(13) version3(3)}
+
+infoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac infoRetrieval(14) version3(3)}
+
+interVlrInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac interVlrInfoRetrieval(15) version3(3)}
+
+subscriberDataMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataMngt(16) version3(3)}
+
+tracingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac tracing(17) version3(3)}
+
+networkFunctionalSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkFunctionalSs(18) version2(2)}
+
+networkUnstructuredSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkUnstructuredSs(19) version2(2)}
+
+shortMsgGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgGateway(20) version3(3)}
+
+shortMsgMO-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMO-Relay(21) version3(3)}
+
+shortMsgAlertContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgAlert(23) version2(2)}
+
+mwdMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mwdMngt(24) version3(3)}
+
+shortMsgMT-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMT-Relay(25) version3(3)}
+
+imsiRetrievalContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac imsiRetrieval(26) version2(2)}
+
+msPurgingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac msPurging(27) version3(3)}
+
+subscriberInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberInfoEnquiry(28) version3(3)}
+
+anyTimeInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoEnquiry(29) version3(3)}
+
+callControlTransferContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac callControlTransfer(6) version4(4)}
+
+ss-InvocationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac ss-InvocationNotification(36) version3(3)}
+
+groupCallControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac groupCallControl(31) version3(3)}
+
+gprsLocationUpdateContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationUpdate(32) version3(3)}
+
+gprsLocationInfoRetrievalContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationInfoRetrieval(33) version4(4)}
+
+failureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac failureReport(34) version3(3)}
+
+gprsNotifyContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsNotify(35) version3(3)}
+
+reportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac reporting(7) version3(3)}
+
+callCompletionContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac callCompletion(8) version3(3)}
+
+istAlertingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac istAlerting(4) version3(3)}
+
+serviceTerminationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac immediateTermination(9) version3(3)}
+
+locationSvcGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcGateway(37) version3(3)}
+
+locationSvcEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcEnquiry(38) version3(3)}
+
+mm-EventReportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mm-EventReporting(42) version3(3)}
+
+anyTimeInfoHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoHandling(43) version3(3)}
+
+subscriberDataModificationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataModificationNotification(22) version3(3)}
+
+secureTransportHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac secureTransportHandling(40) version3(3)}
+
+-- The following Object Identifiers are reserved for application-contexts
+-- existing in previous versions of the protocol
+
+-- AC Name & Version Object Identifier
+--
+-- networkLocUpContext-v1 map-ac networkLocUp (1) version1 (1)
+-- networkLocUpContext-v2 map-ac networkLocUp (1) version2 (2)
+-- locationCancellationContext-v1 map-ac locationCancellation (2) version1 (1)
+-- locationCancellationContext-v2 map-ac locationCancellation (2) version2 (2)
+-- roamingNumberEnquiryContext-v1 map-ac roamingNumberEnquiry (3) version1 (1)
+-- roamingNumberEnquiryContext-v2 map-ac roamingNumberEnquiry (3) version2 (2)
+-- locationInfoRetrievalContext-v1 map-ac locationInfoRetrieval (5) version1 (1)
+-- locationInfoRetrievalContext-v2 map-ac locationInfoRetrieval (5) version2 (2)
+-- resetContext-v1 map-ac reset (10) version1 (1)
+-- handoverControlContext-v1 map-ac handoverControl (11) version1 (1)
+-- handoverControlContext-v2 map-ac handoverControl (11) version2 (2)
+-- sIWFSAllocationContext-v3 map-ac sIWFSAllocation (12) version3 (3)
+-- equipmentMngtContext-v1 map-ac equipmentMngt (13) version1 (1)
+-- equipmentMngtContext-v2 map-ac equipmentMngt (13) version2 (2)
+-- infoRetrievalContext-v1 map-ac infoRetrieval (14) version1 (1)
+-- infoRetrievalContext-v2 map-ac infoRetrieval (14) version2 (2)
+-- interVlrInfoRetrievalContext-v2 map-ac interVlrInfoRetrieval (15) version2 (2)
+-- subscriberDataMngtContext-v1 map-ac subscriberDataMngt (16) version1 (1)
+-- subscriberDataMngtContext-v2 map-ac subscriberDataMngt (16) version2 (2)
+-- tracingContext-v1 map-ac tracing (17) version1 (1)
+-- tracingContext-v2 map-ac tracing (17) version2 (2)
+-- networkFunctionalSsContext-v1 map-ac networkFunctionalSs (18) version1 (1)
+-- shortMsgGatewayContext-v1 map-ac shortMsgGateway (20) version1 (1)
+-- shortMsgGatewayContext-v2 map-ac shortMsgGateway (20) version2 (2)
+-- shortMsgRelayContext-v1 map-ac shortMsgRelay (21) version1 (1)
+-- shortMsgAlertContext-v1 map-ac shortMsgAlert (23) version1 (1)
+-- mwdMngtContext-v1 map-ac mwdMngt (24) version1 (1)
+-- mwdMngtContext-v2 map-ac mwdMngt (24) version2 (2)
+-- shortMsgMT-RelayContext-v2 map-ac shortMsgMT-Relay (25) version2 (2)
+-- msPurgingContext-v2 map-ac msPurging (27) version2 (2)
+-- callControlTransferContext-v3 map-ac callControlTransferContext (6) version3 (3)
+-- gprsLocationInfoRetrievalContext-v3 map-ac gprsLocationInfoRetrievalContext (33) version3 (3)
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-BS-Code.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-BS-Code.asn
new file mode 100644
index 0000000000..d12501098e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-BS-Code.asn
@@ -0,0 +1,126 @@
+MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS 3GPP TS 22.030:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000000..10e9d8ff98
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
@@ -0,0 +1,438 @@
+MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ NumberOfForwarding,
+ SuppressionOfAnnouncement,
+ CallReferenceNumber,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+IST-CommandRes
+;
+
+IMPORTS
+ SubscriberInfo,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ CUG-Interlock,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ IST-SupportIndicator,
+ IST-AlertTimerValue,
+ T-CSI,
+ NumberPortabilityStatus
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ForwardingOptions,
+ SS-List,
+ CCBS-Feature
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ AlertingPattern,
+ NAEA-PreferredCI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+CUG-CheckInfo ::= SEQUENCE {
+ cug-Interlock CUG-Interlock,
+ cug-OutgoingAccess NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfForwarding ::= INTEGER (1..5)
+
+SendRoutingInfoArg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ cug-CheckInfo [1] CUG-CheckInfo OPTIONAL,
+ numberOfForwarding [2] NumberOfForwarding OPTIONAL,
+ interrogationType [3] InterrogationType,
+ or-Interrogation [4] NULL OPTIONAL,
+ or-Capability [5] OR-Phase OPTIONAL,
+ gmsc-OrGsmSCF-Address [6] ISDN-AddressString,
+ callReferenceNumber [7] CallReferenceNumber OPTIONAL,
+ forwardingReason [8] ForwardingReason OPTIONAL,
+ basicServiceGroup [9] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo [10] ExternalSignalInfo OPTIONAL,
+ camelInfo [11] CamelInfo OPTIONAL,
+ suppressionOfAnnouncement [12] SuppressionOfAnnouncement OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ alertingPattern [14] AlertingPattern OPTIONAL,
+ ccbs-Call [15] NULL OPTIONAL,
+ supportedCCBS-Phase [16] SupportedCCBS-Phase OPTIONAL,
+ additionalSignalInfo [17] Ext-ExternalSignalInfo OPTIONAL,
+ istSupportIndicator [18] IST-SupportIndicator OPTIONAL,
+ pre-pagingSupported [19] NULL OPTIONAL,
+ callDiversionTreatmentIndicator [20] CallDiversionTreatmentIndicator OPTIONAL,
+ longFTN-Supported [21] NULL OPTIONAL,
+ suppress-VT-CSI [22] NULL OPTIONAL,
+ suppressIncomingCallBarring [23] NULL OPTIONAL,
+ gsmSCF-InitiatedCall [24] NULL OPTIONAL,
+ basicServiceGroup2 [25] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo2 [26] ExternalSignalInfo OPTIONAL
+ }
+
+SuppressionOfAnnouncement ::= NULL
+
+InterrogationType ::= ENUMERATED {
+ basicCall (0),
+ forwarding (1)}
+
+OR-Phase ::= INTEGER (1..127)
+
+CallReferenceNumber ::= OCTET STRING (SIZE (1..8))
+
+ForwardingReason ::= ENUMERATED {
+ notReachable (0),
+ busy (1),
+ noReply (2)}
+
+SupportedCCBS-Phase ::= INTEGER (1..127)
+-- exception handling:
+-- Only value 1 is used.
+-- Values in the ranges 2-127 are reserved for future use.
+-- If received values 2-127 shall be mapped on to value 1.
+
+CallDiversionTreatmentIndicator ::= OCTET STRING (SIZE(1))
+-- callDiversionAllowed (xxxx xx01)
+-- callDiversionNotAllowed (xxxx xx10)
+-- network default is call diversion allowed
+
+SendRoutingInfoRes ::= [3] SEQUENCE {
+ imsi [9] IMSI OPTIONAL,
+ -- IMSI must be present if SendRoutingInfoRes is not segmented.
+ -- If the TC-Result-NL segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendRoutingInfoRes.
+ extendedRoutingInfo ExtendedRoutingInfo OPTIONAL,
+ cug-CheckInfo [3] CUG-CheckInfo OPTIONAL,
+ cugSubscriptionFlag [6] NULL OPTIONAL,
+ subscriberInfo [7] SubscriberInfo OPTIONAL,
+ ss-List [1] SS-List OPTIONAL,
+ basicService [5] Ext-BasicServiceCode OPTIONAL,
+ forwardingInterrogationRequired [4] NULL OPTIONAL,
+ vmsc-Address [2] ISDN-AddressString OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [10] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ ccbs-Indicators [11] CCBS-Indicators OPTIONAL,
+ msisdn [12] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [13] NumberPortabilityStatus OPTIONAL,
+ istAlertTimer [14] IST-AlertTimerValue OPTIONAL,
+ supportedCamelPhasesInVMSC [15] SupportedCamelPhases OPTIONAL,
+ offeredCamel4CSIsInVMSC [16] OfferedCamel4CSIs OPTIONAL,
+ routingInfo2 [17] RoutingInfo OPTIONAL,
+ ss-List2 [18] SS-List OPTIONAL,
+ basicService2 [19] Ext-BasicServiceCode OPTIONAL,
+ allowedServices [20] AllowedServices OPTIONAL,
+ unavailabilityCause [21] UnavailabilityCause OPTIONAL
+ }
+
+AllowedServices ::= BIT STRING {
+ firstServiceAllowed (0),
+ secondServiceAllowed (1) } (SIZE (2..8))
+ -- firstService is the service indicated in the networkSignalInfo
+ -- secondService is the service indicated in the networkSignalInfo2
+ -- Other bits than listed above shall be discarded
+
+UnavailabilityCause ::= ENUMERATED {
+ bearerServiceNotProvisioned (1),
+ teleserviceNotProvisioned (2),
+ absentSubscriber (3),
+ busySubscriber (4),
+ callBarred (5),
+ cug-Reject (6),
+ ...}
+ -- exception handling:
+ -- Reception of other values than the ones listed shall result in the service
+ -- being unavailable for that call.
+
+CCBS-Indicators ::= SEQUENCE {
+ ccbs-Possible [0] NULL OPTIONAL,
+ keepCCBS-CallIndicator [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfo ::= CHOICE {
+ roamingNumber ISDN-AddressString,
+ forwardingData ForwardingData}
+
+ForwardingData ::= SEQUENCE {
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this datatype is sent from an HLR which supports CAMEL Phase 2
+ -- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the
+ -- format of the number
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [8] FTN-AddressString OPTIONAL}
+
+ProvideRoamingNumberArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msc-Number [1] ISDN-AddressString,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ gsm-BearerCapability [5] ExternalSignalInfo OPTIONAL,
+ networkSignalInfo [6] ExternalSignalInfo OPTIONAL,
+ suppressionOfAnnouncement [7] SuppressionOfAnnouncement OPTIONAL,
+ gmsc-Address [8] ISDN-AddressString OPTIONAL,
+ callReferenceNumber [9] CallReferenceNumber OPTIONAL,
+ or-Interrogation [10] NULL OPTIONAL,
+ extensionContainer [11] ExtensionContainer OPTIONAL,
+ ... ,
+ alertingPattern [12] AlertingPattern OPTIONAL,
+ ccbs-Call [13] NULL OPTIONAL,
+ supportedCamelPhasesInInterrogatingNode [15] SupportedCamelPhases OPTIONAL,
+ additionalSignalInfo [14] Ext-ExternalSignalInfo OPTIONAL,
+ orNotSupportedInGMSC [16] NULL OPTIONAL,
+ pre-pagingSupported [17] NULL OPTIONAL,
+ longFTN-Supported [18] NULL OPTIONAL,
+ suppress-VT-CSI [19] NULL OPTIONAL,
+ offeredCamel4CSIsInInterrogatingNode [20] OfferedCamel4CSIs OPTIONAL
+ }
+
+ProvideRoamingNumberRes ::= SEQUENCE {
+ roamingNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResumeCallHandlingArg ::= SEQUENCE {
+ callReferenceNumber [0] CallReferenceNumber OPTIONAL,
+ basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL,
+ forwardingData [2] ForwardingData OPTIONAL,
+ imsi [3] IMSI OPTIONAL,
+ cug-CheckInfo [4] CUG-CheckInfo OPTIONAL,
+ o-CSI [5] O-CSI OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ccbs-Possible [8] NULL OPTIONAL,
+ msisdn [9] ISDN-AddressString OPTIONAL,
+ uu-Data [10] UU-Data OPTIONAL,
+ allInformationSent [11] NULL OPTIONAL,
+ ...,
+ d-csi [12] D-CSI OPTIONAL,
+ o-BcsmCamelTDPCriteriaList [13] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ basicServiceGroup2 [14] Ext-BasicServiceCode OPTIONAL
+ }
+
+UU-Data ::= SEQUENCE {
+ uuIndicator [0] UUIndicator OPTIONAL,
+ uui [1] UUI OPTIONAL,
+ uusCFInteraction [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+UUIndicator ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to ETS 300 356
+
+UUI ::= OCTET STRING (SIZE (1..131))
+ -- Octets are coded according to ETS 300 356
+
+ResumeCallHandlingRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CamelInfo ::= SEQUENCE {
+ supportedCamelPhases SupportedCamelPhases,
+ suppress-T-CSI NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [0] OfferedCamel4CSIs OPTIONAL }
+
+ExtendedRoutingInfo ::= CHOICE {
+ routingInfo RoutingInfo,
+ camelRoutingInfo [8] CamelRoutingInfo}
+
+CamelRoutingInfo ::= SEQUENCE {
+ forwardingData ForwardingData OPTIONAL,
+ gmscCamelSubscriptionInfo [0] GmscCamelSubscriptionInfo,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+GmscCamelSubscriptionInfo ::= SEQUENCE {
+ t-CSI [0] T-CSI OPTIONAL,
+ o-CSI [1] O-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-CriteriaList [3] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-csi [5] D-CSI OPTIONAL}
+
+SetReportingStateArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ lmsi [1] LMSI OPTIONAL,
+ ccbs-Monitoring [2] ReportingState OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ReportingState ::= ENUMERATED {
+ stopMonitoring (0),
+ startMonitoring (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to 'stopMonitoring'
+ -- reception of values > 10 shall be mapped to 'startMonitoring'
+
+SetReportingStateRes ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CCBS-SubscriberStatus ::= ENUMERATED {
+ ccbsNotIdle (0),
+ ccbsIdle (1),
+ ccbsNotReachable (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'ccbsNotIdle'
+ -- reception of values 11-20 shall be mapped to 'ccbsIdle'
+ -- reception of values > 20 shall be mapped to 'ccbsNotReachable'
+
+StatusReportArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ eventReportData [1] EventReportData OPTIONAL,
+ callReportdata [2] CallReportData OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+EventReportData ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CallReportData ::= SEQUENCE{
+ monitoringMode [0] MonitoringMode OPTIONAL,
+ callOutcome [1] CallOutcome OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+MonitoringMode ::= ENUMERATED {
+ a-side (0),
+ b-side (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped 'a-side'
+ -- reception of values > 10 shall be mapped to 'b-side'
+
+CallOutcome ::= ENUMERATED {
+ success (0),
+ failure (1),
+ busy (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'success'
+ -- reception of values 11-20 shall be mapped to 'failure'
+ -- reception of values > 20 shall be mapped to 'busy'
+
+StatusReportRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ callInfo [1] ExternalSignalInfo,
+ ccbs-Feature [2] CCBS-Feature,
+ translatedB-Number [3] ISDN-AddressString,
+ replaceB-Number [4] NULL OPTIONAL,
+ alertingPattern [5] AlertingPattern OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeRes ::= SEQUENCE{
+ ruf-Outcome [0] RUF-Outcome,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+RUF-Outcome ::= ENUMERATED{
+ accepted (0),
+ rejected (1),
+ noResponseFromFreeMS (2), -- T4 Expiry
+ noResponseFromBusyMS (3), -- T10 Expiry
+ udubFromFreeMS (4),
+ udubFromBusyMS (5),
+ ...}
+ -- exception handling:
+ -- reception of values 6-20 shall be mapped to 'accepted'
+ -- reception of values 21-30 shall be mapped to 'rejected'
+ -- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS'
+ -- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS'
+ -- reception of values 51-60 shall be mapped to 'udubFromFreeMS'
+ -- reception of values > 60 shall be mapped to 'udubFromBusyMS'
+
+IST-AlertArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-AlertRes ::= SEQUENCE{
+ istAlertTimer [0] IST-AlertTimerValue OPTIONAL,
+ istInformationWithdraw [1] NULL OPTIONAL,
+ callTerminationIndicator [2] CallTerminationIndicator OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandRes ::= SEQUENCE{
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CallTerminationIndicator ::= ENUMERATED {
+ terminateCallActivityReferred (0),
+ terminateAllCallActivities (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred '
+ -- reception of values > 10 shall be mapped to ' terminateAllCallActivities '
+
+ -- In MSCs not supporting linkage of all call activities, any value received shall
+ -- be interpreted as ' terminateCallActivityReferred '
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000000..473e968247
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
@@ -0,0 +1,198 @@
+MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ or-NotAllowed,
+ unknownSubscriber,
+ numberChanged,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ noRoamingNumberAvailable,
+ absentSubscriber,
+ busySubscriber,
+ noSubscriberReply,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+ resourceLimitation,
+ incompatibleTerminal,
+ unidentifiedSubscriber
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+ IST-CommandRes
+FROM MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+;
+
+sendRoutingInfo OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the GMSC supports pre-paging.
+ ARGUMENT
+ SendRoutingInfoArg
+ RESULT
+ SendRoutingInfoRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ unknownSubscriber |
+ numberChanged |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ absentSubscriber |
+ busySubscriber |
+ noSubscriberReply |
+ callBarred |
+ cug-Reject |
+ forwardingViolation}
+ CODE local:22 }
+
+provideRoamingNumber OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the HLR supports pre-paging.
+ ARGUMENT
+ ProvideRoamingNumberArg
+ RESULT
+ ProvideRoamingNumberRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ absentSubscriber |
+ noRoamingNumberAvailable}
+ CODE local:4 }
+
+resumeCallHandling OPERATION ::= { --Timer m
+ ARGUMENT
+ ResumeCallHandlingArg
+ RESULT
+ ResumeCallHandlingRes
+ -- optional
+ ERRORS {
+ forwardingFailed |
+ or-NotAllowed |
+ unexpectedDataValue |
+ dataMissing }
+ CODE local:6 }
+
+setReportingState OPERATION ::= { --Timer m
+ ARGUMENT
+ SetReportingStateArg
+ RESULT
+ SetReportingStateRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unidentifiedSubscriber |
+ unexpectedDataValue |
+ dataMissing |
+ resourceLimitation |
+ facilityNotSupported}
+ CODE local:73 }
+
+statusReport OPERATION ::= { --Timer m
+ ARGUMENT
+ StatusReportArg
+ RESULT
+ StatusReportRes
+ -- optional
+ ERRORS {
+ unknownSubscriber |
+ systemFailure |
+ unexpectedDataValue |
+ dataMissing}
+ CODE local:74 }
+
+remoteUserFree OPERATION ::= { --Timer ml
+ ARGUMENT
+ RemoteUserFreeArg
+ RESULT
+ RemoteUserFreeRes
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ incompatibleTerminal |
+ absentSubscriber |
+ systemFailure |
+ busySubscriber}
+ CODE local:75 }
+
+ist-Alert OPERATION ::= { --Timer m
+ ARGUMENT
+ IST-AlertArg
+ RESULT
+ IST-AlertRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:87 }
+
+ist-Command OPERATION::= { --Timer m
+ ARGUMENT
+ IST-CommandArg
+ RESULT
+ IST-CommandRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:88 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..55d234e91f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
@@ -0,0 +1,612 @@
+MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+ TBCD-STRING,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ AdditionalNetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ LAIFixedLength,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+ -- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown;
+ -- if NAI = international the first digits represent the country code (CC)
+ -- and the network destination code (NDC) as for E.164.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see ITU-T Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in clause 7.6.9.1
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ ts3G-48006 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+ -- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35]
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+AdditionalNetworkResource ::= ENUMERATED {
+ sgsn (0),
+ ggsn (1),
+ gmlc (2),
+ gsmSCF (3),
+ nplr (4),
+ auc (5),
+ ...}
+ -- if unknown value is received in AdditionalNetworkResource
+ -- it shall be ignored.
+
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] ISDN-AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+LCSServiceTypeID ::= INTEGER (0..127)
+ -- the integer values 0-63 are reserved for Standard LCS service types
+ -- the integer values 64-127 are reserved for Non Standard LCS service types
+
+-- Standard LCS Service Types
+emergencyServices LCSServiceTypeID ::= 0
+emergencyAlertServices LCSServiceTypeID ::= 1
+personTracking LCSServiceTypeID ::= 2
+fleetManagement LCSServiceTypeID ::= 3
+assetManagement LCSServiceTypeID ::= 4
+trafficCongestionReporting LCSServiceTypeID ::= 5
+roadsideAssistance LCSServiceTypeID ::= 6
+routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7
+navigation LCSServiceTypeID ::= 8
+ --this service type is reserved for use in previous releases
+citySightseeing LCSServiceTypeID ::= 9
+localizedAdvertising LCSServiceTypeID ::= 10
+mobileYellowPages LCSServiceTypeID ::= 11
+trafficAndPublicTransportationInfo LCSServiceTypeID ::= 12
+weather LCSServiceTypeID ::= 13
+assetAndServiceFinding LCSServiceTypeID ::= 14
+gaming LCSServiceTypeID ::= 15
+findYourFriend LCSServiceTypeID ::= 16
+dating LCSServiceTypeID ::= 17
+chatting LCSServiceTypeID ::= 18
+routeFinding LCSServiceTypeID ::= 19
+whereAmI LCSServiceTypeID ::= 20
+
+-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.
+
+-- Non Standard LCS Service Types
+serv64 LCSServiceTypeID ::= 64
+serv65 LCSServiceTypeID ::= 65
+serv66 LCSServiceTypeID ::= 66
+serv67 LCSServiceTypeID ::= 67
+serv68 LCSServiceTypeID ::= 68
+serv69 LCSServiceTypeID ::= 69
+serv70 LCSServiceTypeID ::= 70
+serv71 LCSServiceTypeID ::= 71
+serv72 LCSServiceTypeID ::= 72
+serv73 LCSServiceTypeID ::= 73
+serv74 LCSServiceTypeID ::= 74
+serv75 LCSServiceTypeID ::= 75
+serv76 LCSServiceTypeID ::= 76
+serv77 LCSServiceTypeID ::= 77
+serv78 LCSServiceTypeID ::= 78
+serv79 LCSServiceTypeID ::= 79
+serv80 LCSServiceTypeID ::= 80
+serv81 LCSServiceTypeID ::= 81
+serv82 LCSServiceTypeID ::= 82
+serv83 LCSServiceTypeID ::= 83
+serv84 LCSServiceTypeID ::= 84
+serv85 LCSServiceTypeID ::= 85
+serv86 LCSServiceTypeID ::= 86
+serv87 LCSServiceTypeID ::= 87
+serv88 LCSServiceTypeID ::= 88
+serv89 LCSServiceTypeID ::= 89
+serv90 LCSServiceTypeID ::= 90
+serv91 LCSServiceTypeID ::= 91
+serv92 LCSServiceTypeID ::= 92
+serv93 LCSServiceTypeID ::= 93
+serv94 LCSServiceTypeID ::= 94
+serv95 LCSServiceTypeID ::= 95
+serv96 LCSServiceTypeID ::= 96
+serv97 LCSServiceTypeID ::= 97
+serv98 LCSServiceTypeID ::= 98
+serv99 LCSServiceTypeID ::= 99
+serv100 LCSServiceTypeID ::= 100
+serv101 LCSServiceTypeID ::= 101
+serv102 LCSServiceTypeID ::= 102
+serv103 LCSServiceTypeID ::= 103
+serv104 LCSServiceTypeID ::= 104
+serv105 LCSServiceTypeID ::= 105
+serv106 LCSServiceTypeID ::= 106
+serv107 LCSServiceTypeID ::= 107
+serv108 LCSServiceTypeID ::= 108
+serv109 LCSServiceTypeID ::= 109
+serv110 LCSServiceTypeID ::= 110
+serv111 LCSServiceTypeID ::= 111
+serv112 LCSServiceTypeID ::= 112
+serv113 LCSServiceTypeID ::= 113
+serv114 LCSServiceTypeID ::= 114
+serv115 LCSServiceTypeID ::= 115
+serv116 LCSServiceTypeID ::= 116
+serv117 LCSServiceTypeID ::= 117
+serv118 LCSServiceTypeID ::= 118
+serv119 LCSServiceTypeID ::= 119
+serv120 LCSServiceTypeID ::= 120
+serv121 LCSServiceTypeID ::= 121
+serv122 LCSServiceTypeID ::= 122
+serv123 LCSServiceTypeID ::= 123
+serv124 LCSServiceTypeID ::= 124
+serv125 LCSServiceTypeID ::= 125
+serv126 LCSServiceTypeID ::= 126
+serv127 LCSServiceTypeID ::= 127
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3GPP TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3GPP TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value "0" indicates that the MS is currently in contact with the
+-- network
+-- value "32767" indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-DialogueInformation.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
new file mode 100644
index 0000000000..5854cbe6b8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
@@ -0,0 +1,149 @@
+MAP-DialogueInformation {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-DialogueInformation (3) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ map-DialogueAS,
+ MAP-DialoguePDU,
+ map-ProtectedDialogueAS,
+ MAP-ProtectedDialoguePDU
+
+;
+
+IMPORTS
+ gsm-NetworkId,
+ as-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+
+ AddressString
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network(1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+;
+
+
+-- abstract syntax name for MAP-DialoguePDU
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+MAP-DialoguePDU ::= CHOICE {
+ map-open [0] MAP-OpenInfo,
+ map-accept [1] MAP-AcceptInfo,
+ map-close [2] MAP-CloseInfo,
+ map-refuse [3] MAP-RefuseInfo,
+ map-userAbort [4] MAP-UserAbortInfo,
+ map-providerAbort [5] MAP-ProviderAbortInfo}
+
+MAP-OpenInfo ::= SEQUENCE {
+ destinationReference [0] AddressString OPTIONAL,
+ originationReference [1] AddressString OPTIONAL,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-AcceptInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-CloseInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-RefuseInfo ::= SEQUENCE {
+ reason Reason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ alternativeApplicationContext OBJECT IDENTIFIER OPTIONAL
+ -- alternativeApplicationContext must not be used in version 2
+ }
+
+Reason ::= ENUMERATED {
+ noReasonGiven (0),
+ invalidDestinationReference (1),
+ invalidOriginatingReference (2),
+ encapsulatedAC-NotSupported (3) ,
+ transportProtectionNotAdequate (4)}
+ -- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in
+ -- dialogues with an AC different from secureTransportHandling
+
+MAP-UserAbortInfo ::= SEQUENCE {
+ map-UserAbortChoice MAP-UserAbortChoice,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-UserAbortChoice ::= CHOICE {
+ userSpecificReason [0] NULL,
+ userResourceLimitation [1] NULL,
+ resourceUnavailable [2] ResourceUnavailableReason,
+ applicationProcedureCancellation [3] ProcedureCancellationReason}
+
+ResourceUnavailableReason ::= ENUMERATED {
+ shortTermResourceLimitation (0),
+ longTermResourceLimitation (1)}
+
+ProcedureCancellationReason ::= ENUMERATED {
+ handoverCancellation (0),
+ radioChannelRelease (1),
+ networkPathRelease (2),
+ callRelease (3),
+ associatedProcedureFailure (4),
+ tandemDialogueRelease (5),
+ remoteOperationsFailure (6)}
+
+MAP-ProviderAbortInfo ::= SEQUENCE {
+ map-ProviderAbortReason MAP-ProviderAbortReason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-ProviderAbortReason ::= ENUMERATED {
+ abnormalDialogue (0),
+ invalidPDU (1)}
+
+-- abstract syntax name for MAP-ProtectedDialoguePDU
+
+map-ProtectedDialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-ProtectedDialoguePDU (3) version1 (1)}
+
+MAP-ProtectedDialoguePDU ::= SEQUENCE {
+ encapsulatedAC OBJECT IDENTIFIER,
+ securityHeader SecurityHeader OPTIONAL,
+ protectedPayload ProtectedPayload OPTIONAL,
+ ...}
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported
+ -- MAP-DialoguePDU
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000000..b66702cb61
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
@@ -0,0 +1,405 @@
+MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ CallBarredParam,
+ CUG-RejectParam,
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ OR-NotAllowedParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ AbsentSubscriberDiagnosticSM,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ SecureTransportErrorParam,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param
+
+;
+
+IMPORTS
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SignalInfo,
+ BasicServiceCode,
+ NetworkResource,
+ AdditionalNetworkResource
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+CallBarredParam ::= CHOICE {
+ callBarringCause CallBarringCause,
+ -- call BarringCause must not be used in version 3 and higher
+ extensibleCallBarredParam ExtensibleCallBarredParam
+ -- extensibleCallBarredParam must not be used in version <3
+ }
+
+CallBarringCause ::= ENUMERATED {
+ barringServiceActive (0),
+ operatorBarring (1)}
+
+ExtensibleCallBarredParam ::= SEQUENCE {
+ callBarringCause CallBarringCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ unauthorisedMessageOriginator [1] NULL OPTIONAL }
+
+CUG-RejectParam ::= SEQUENCE {
+ cug-RejectCause CUG-RejectCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-RejectCause ::= ENUMERATED {
+ incomingCallsBarredWithinCUG (0),
+ subscriberNotMemberOfCUG (1),
+ requestedBasicServiceViolatesCUG-Constraints (5),
+ calledPartySS-InteractionViolation (7)}
+
+SS-IncompatibilityCause ::= SEQUENCE {
+ ss-Code [1] SS-Code OPTIONAL,
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+PW-RegistrationFailureCause ::= ENUMERATED {
+ undetermined (0),
+ invalidFormat (1),
+ newPasswordsMismatch (2)}
+
+SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ equipmentProtocolError (1),
+ equipmentNotSM-Equipped (2),
+ unknownServiceCentre (3),
+ sc-Congestion (4),
+ invalidSME-Address (5),
+ subscriberNotSC-Subscriber (6)}
+
+SM-DeliveryFailureCause ::= SEQUENCE {
+ sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause,
+ diagnosticInfo SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberSM-Param ::= SEQUENCE {
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ -- AbsentSubscriberDiagnosticSM can be either for non-GPRS
+ -- or for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- if received, additionalAbsentSubscriberDiagnosticSM
+ -- is for GPRS and absentSubscriberDiagnosticSM is
+ -- for non-GPRS
+
+AbsentSubscriberDiagnosticSM ::= INTEGER (0..255)
+ -- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalNetworkResource [0] AdditionalNetworkResource OPTIONAL }
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FacilityNotSupParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL,
+ neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL }
+
+OR-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...,
+ npdbMismatch (2)}
+ -- if unknown values are received in
+ -- UnknownSubscriberDiagnostic they shall be discarded
+
+NumberChangedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalEquipmentParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+BearerServNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TeleservNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TracingBufferFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoRoamingNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL}
+
+AbsentSubscriberReason ::= ENUMERATED {
+ imsiDetach (0),
+ restrictedArea (1),
+ noPageResponse (2),
+ ... ,
+ purgedMS (3)}
+-- exception handling: at reception of other values than the ones listed the
+-- AbsentSubscriberReason shall be ignored.
+-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature
+-- (see TS 23.116). If this value is received in a Provide Roaming Number response
+-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing
+-- Information response
+
+BusySubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ccbs-Possible [0] NULL OPTIONAL,
+ ccbs-Busy [1] NULL OPTIONAL}
+
+NoSubscriberReplyParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingFailedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATSI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATM-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSS-OperationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-NotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-SubscriptionViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InformationNotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubBusyForMT-SMS-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ gprsConnectionSuspended NULL OPTIONAL }
+ -- If GprsConnectionSuspended is not understood it shall
+ -- be discarded
+
+MessageWaitListFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResourceLimitationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoGroupCallNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IncompatibleTerminalParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ShortTermDenialParam ::= SEQUENCE {
+ ...}
+
+LongTermDenialParam ::= SEQUENCE {
+ ...}
+
+UnauthorizedRequestingNetwork-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnauthorizedLCSClient-Param ::= SEQUENCE {
+ unauthorizedLCSClient-Diagnostic [0] UnauthorizedLCSClient-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {
+ noAdditionalInformation (0),
+ clientNotInMSPrivacyExceptionList (1),
+ callToClientNotSetup (2),
+ privacyOverrideNotApplicable (3),
+ disallowedByLocalRegulatoryRequirements (4),
+ ...,
+ unauthorizedPrivacyClass (5),
+ unauthorizedCallSessionUnrelatedExternalClient (6),
+ unauthorizedCallSessionRelatedExternalClient (7) }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+PositionMethodFailure-Param ::= SEQUENCE {
+ positionMethodFailure-Diagnostic [0] PositionMethodFailure-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+PositionMethodFailure-Diagnostic ::= ENUMERATED {
+ congestion (0),
+ insufficientResources (1),
+ insufficientMeasurementData (2),
+ inconsistentMeasurementData (3),
+ locationProcedureNotCompleted (4),
+ locationProcedureNotSupportedByTargetMS (5),
+ qoSNotAttainable (6),
+ positionMethodNotAvailableInNetwork (7),
+ positionMethodNotAvailableInLocationArea (8),
+ ... }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MM-EventNotSupported-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TargetCellOutsideGCA-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SecureTransportErrorParam ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported error
+ -- parameter
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Errors.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Errors.asn
new file mode 100644
index 0000000000..f0aa2b0a3a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Errors.asn
@@ -0,0 +1,507 @@
+MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- generic errors
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ incompatibleTerminal,
+ resourceLimitation,
+
+ -- identification and numbering errors
+ unknownSubscriber,
+ numberChanged,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+
+ -- subscription errors
+ roamingNotAllowed,
+ illegalSubscriber,
+ illegalEquipment,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+
+ -- handover errors
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ targetCellOutsideGroupCallArea,
+
+ -- operation and maintenance errors
+ tracingBufferFull,
+
+ -- call handling errors
+ or-NotAllowed,
+ noRoamingNumberAvailable,
+ busySubscriber,
+ noSubscriberReply,
+ absentSubscriber,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+
+ -- any time interrogation errors
+ ati-NotAllowed,
+
+ -- any time information handling errors
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ informationNotAvailable,
+
+ -- supplementary service errors
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ unknownAlphabet,
+ ussd-Busy,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ shortTermDenial,
+ longTermDenial,
+
+ -- short message service errors
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM,
+
+ -- Group Call errors
+ noGroupCallNumberAvailable,
+
+ -- location service errors
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ unknownOrUnreachableLCSClient,
+
+ -- Mobility Management errors
+ mm-EventNotSupported,
+
+ -- Secure transport errors
+ secureTransportError
+
+;
+
+IMPORTS
+ ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0) }
+
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ RoamingNotAllowedParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ OR-NotAllowedParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ CallBarredParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ CUG-RejectParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param,
+ SecureTransportErrorParam
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+;
+
+-- generic errors
+
+systemFailure ERROR ::= {
+ PARAMETER
+ SystemFailureParam
+ -- optional
+ CODE local:34 }
+
+dataMissing ERROR ::= {
+ PARAMETER
+ DataMissingParam
+ -- optional
+ -- DataMissingParam must not be used in version <3
+ CODE local:35 }
+
+unexpectedDataValue ERROR ::= {
+ PARAMETER
+ UnexpectedDataParam
+ -- optional
+ -- UnexpectedDataParam must not be used in version <3
+ CODE local:36 }
+
+facilityNotSupported ERROR ::= {
+ PARAMETER
+ FacilityNotSupParam
+ -- optional
+ -- FacilityNotSupParam must not be used in version <3
+ CODE local:21 }
+
+incompatibleTerminal ERROR ::= {
+ PARAMETER
+ IncompatibleTerminalParam
+ -- optional
+ CODE local:28 }
+
+resourceLimitation ERROR ::= {
+ PARAMETER
+ ResourceLimitationParam
+ -- optional
+ CODE local:51 }
+
+-- identification and numbering errors
+
+unknownSubscriber ERROR ::= {
+ PARAMETER
+ UnknownSubscriberParam
+ -- optional
+ -- UnknownSubscriberParam must not be used in version <3
+ CODE local:1 }
+
+numberChanged ERROR ::= {
+ PARAMETER
+ NumberChangedParam
+ -- optional
+ CODE local:44 }
+
+unknownMSC ERROR ::= {
+ CODE local:3 }
+
+unidentifiedSubscriber ERROR ::= {
+ PARAMETER
+ UnidentifiedSubParam
+ -- optional
+ -- UunidentifiedSubParam must not be used in version <3
+ CODE local:5 }
+
+unknownEquipment ERROR ::= {
+ CODE local:7 }
+
+-- subscription errors
+
+roamingNotAllowed ERROR ::= {
+ PARAMETER
+ RoamingNotAllowedParam
+ CODE local:8 }
+
+illegalSubscriber ERROR ::= {
+ PARAMETER
+ IllegalSubscriberParam
+ -- optional
+ -- IllegalSubscriberParam must not be used in version <3
+ CODE local:9 }
+
+illegalEquipment ERROR ::= {
+ PARAMETER
+ IllegalEquipmentParam
+ -- optional
+ -- IllegalEquipmentParam must not be used in version <3
+ CODE local:12 }
+
+bearerServiceNotProvisioned ERROR ::= {
+ PARAMETER
+ BearerServNotProvParam
+ -- optional
+ -- BearerServNotProvParam must not be used in version <3
+ CODE local:10 }
+
+teleserviceNotProvisioned ERROR ::= {
+ PARAMETER
+ TeleservNotProvParam
+ -- optional
+ -- TeleservNotProvParam must not be used in version <3
+ CODE local:11 }
+
+-- handover errors
+
+noHandoverNumberAvailable ERROR ::= {
+ CODE local:25 }
+
+subsequentHandoverFailure ERROR ::= {
+ CODE local:26 }
+
+targetCellOutsideGroupCallArea ERROR ::= {
+ PARAMETER
+ TargetCellOutsideGCA-Param
+ -- optional
+ CODE local:42 }
+
+-- operation and maintenance errors
+
+tracingBufferFull ERROR ::= {
+ PARAMETER
+ TracingBufferFullParam
+ -- optional
+ CODE local: 40 }
+
+-- call handling errors
+
+noRoamingNumberAvailable ERROR ::= {
+ PARAMETER
+ NoRoamingNbParam
+ -- optional
+ CODE local:39 }
+
+absentSubscriber ERROR ::= {
+ PARAMETER
+ AbsentSubscriberParam
+ -- optional
+ -- AbsentSubscriberParam must not be used in version <3
+ CODE local:27 }
+
+busySubscriber ERROR ::= {
+ PARAMETER
+ BusySubscriberParam
+ -- optional
+ CODE local:45 }
+
+noSubscriberReply ERROR ::= {
+ PARAMETER
+ NoSubscriberReplyParam
+ -- optional
+ CODE local:46 }
+
+callBarred ERROR ::= {
+ PARAMETER
+ CallBarredParam
+ -- optional
+ CODE local:13 }
+
+forwardingViolation ERROR ::= {
+ PARAMETER
+ ForwardingViolationParam
+ -- optional
+ CODE local:14 }
+
+forwardingFailed ERROR ::= {
+ PARAMETER
+ ForwardingFailedParam
+ -- optional
+ CODE local:47 }
+
+cug-Reject ERROR ::= {
+ PARAMETER
+ CUG-RejectParam
+ -- optional
+ CODE local:15 }
+
+or-NotAllowed ERROR ::= {
+ PARAMETER
+ OR-NotAllowedParam
+ -- optional
+ CODE local:48 }
+
+-- any time interrogation errors
+ati-NotAllowed ERROR ::= {
+ PARAMETER
+ ATI-NotAllowedParam
+ -- optional
+ CODE local:49 }
+
+-- any time information handling errors
+atsi-NotAllowed ERROR ::= {
+ PARAMETER
+ ATSI-NotAllowedParam
+ -- optional
+ CODE local:60 }
+
+atm-NotAllowed ERROR ::= {
+ PARAMETER
+ ATM-NotAllowedParam
+ -- optional
+ CODE local:61 }
+
+informationNotAvailable ERROR ::= {
+ PARAMETER
+ InformationNotAvailableParam
+ -- optional
+ CODE local:62 }
+
+-- supplementary service errors
+
+illegalSS-Operation ERROR ::= {
+ PARAMETER
+ IllegalSS-OperationParam
+ -- optional
+ -- IllegalSS-OperationParam must not be used in version <3
+ CODE local:16 }
+
+ss-ErrorStatus ERROR ::= {
+ PARAMETER
+ SS-Status
+ -- optional
+ CODE local:17 }
+
+ss-NotAvailable ERROR ::= {
+ PARAMETER
+ SS-NotAvailableParam
+ -- optional
+ -- SS-NotAvailableParam must not be used in version <3
+ CODE local:18 }
+
+ss-SubscriptionViolation ERROR ::= {
+ PARAMETER
+ SS-SubscriptionViolationParam
+ -- optional
+ -- SS-SubscriptionViolationParam must not be used in version <3
+ CODE local:19 }
+
+ss-Incompatibility ERROR ::= {
+ PARAMETER
+ SS-IncompatibilityCause
+ -- optional
+ CODE local:20 }
+
+unknownAlphabet ERROR ::= {
+ CODE local:71 }
+
+ussd-Busy ERROR ::= {
+ CODE local:72 }
+
+pw-RegistrationFailure ERROR ::= {
+ PARAMETER
+ PW-RegistrationFailureCause
+ CODE local:37 }
+
+negativePW-Check ERROR ::= {
+ CODE local:38 }
+
+numberOfPW-AttemptsViolation ERROR ::= {
+ CODE local:43 }
+
+shortTermDenial ERROR ::= {
+ PARAMETER
+ ShortTermDenialParam
+ -- optional
+ CODE local:29 }
+
+longTermDenial ERROR ::= {
+ PARAMETER
+ LongTermDenialParam
+ -- optional
+ CODE local:30 }
+
+-- short message service errors
+
+subscriberBusyForMT-SMS ERROR ::= {
+ PARAMETER
+ SubBusyForMT-SMS-Param
+ -- optional
+ CODE local:31 }
+
+sm-DeliveryFailure ERROR ::= {
+ PARAMETER
+ SM-DeliveryFailureCause
+ CODE local:32 }
+
+messageWaitingListFull ERROR ::= {
+ PARAMETER
+ MessageWaitListFullParam
+ -- optional
+ CODE local:33 }
+
+absentSubscriberSM ERROR ::= {
+ PARAMETER
+ AbsentSubscriberSM-Param
+ -- optional
+ CODE local:6 }
+
+-- Group Call errors
+
+noGroupCallNumberAvailable ERROR ::= {
+ PARAMETER
+ NoGroupCallNbParam
+ -- optional
+ CODE local:50 }
+
+-- location service errors
+
+unauthorizedRequestingNetwork ERROR ::= {
+ PARAMETER
+ UnauthorizedRequestingNetwork-Param
+ -- optional
+ CODE local:52 }
+
+unauthorizedLCSClient ERROR ::= {
+ PARAMETER
+ UnauthorizedLCSClient-Param
+ -- optional
+ CODE local:53 }
+
+positionMethodFailure ERROR ::= {
+ PARAMETER
+ PositionMethodFailure-Param
+ -- optional
+ CODE local:54 }
+
+unknownOrUnreachableLCSClient ERROR ::= {
+ PARAMETER
+ UnknownOrUnreachableLCSClient-Param
+ -- optional
+ CODE local:58 }
+
+mm-EventNotSupported ERROR ::= {
+ PARAMETER
+ MM-EventNotSupported-Param
+ -- optional
+ CODE local:59 }
+
+ -- Secure transport errors
+
+secureTransportError ERROR ::= {
+ PARAMETER
+ SecureTransportErrorParam
+ CODE local:4 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..ab4cb9c3b1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,65 @@
+MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ PrivateExtension,
+ ExtensionContainer,
+ SLR-ArgExtensionContainer;
+
+
+-- IOC for private MAP extensions
+
+
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+
+-- data types
+
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+
+SLR-ArgExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
+ ...}
+
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+
+PCS-Extensions ::= SEQUENCE {
+ ...}
+
+SLR-Arg-PCS-Extensions ::= SEQUENCE {
+ ...,
+ na-ESRK-Request [0] NULL OPTIONAL }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000000..8ceeea183b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
@@ -0,0 +1,122 @@
+MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+;
+
+IMPORTS
+ ISDN-AddressString,
+ IMSI,
+ EMLPP-Priority,
+ ASCI-CallReference
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ Kc
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+PrepareGroupCallArg ::= SEQUENCE {
+ teleservice Ext-TeleserviceCode,
+ asciCallReference ASCI-CallReference,
+ codec-Info CODEC-Info,
+ cipheringAlgorithm CipheringAlgorithm,
+ groupKeyNumber [0] GroupKeyNumber OPTIONAL,
+ groupKey [1] Kc OPTIONAL,
+ priority [2] EMLPP-Priority OPTIONAL,
+ uplinkFree [3] NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareGroupCallRes ::= SEQUENCE {
+ groupCallNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardGroupCallSignallingArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ uplinkRequestAck [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ uplinkRejectCommand [2] NULL OPTIONAL,
+ uplinkSeizedCommand [3] NULL OPTIONAL,
+ uplinkReleaseCommand [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ stateAttributes [5] StateAttributes OPTIONAL }
+
+ProcessGroupCallSignallingArg ::= SEQUENCE {
+ uplinkRequest [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ releaseGroupCall [2] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupKeyNumber ::= INTEGER (0..15)
+
+CODEC-Info ::= OCTET STRING (SIZE (5..10))
+ -- Refers to channel type
+ -- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length
+
+CipheringAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Refers to 'permitted algorithms' in 'encryption information'
+ -- coded according to 3GPP TS 48.008 [49]:
+
+ -- Bits 8-1
+ -- 8765 4321
+ -- 0000 0001 No encryption
+ -- 0000 0010 GSM A5/1
+ -- 0000 0100 GSM A5/2
+ -- 0000 1000 GSM A5/3
+ -- 0001 0000 GSM A5/4
+ -- 0010 0000 GSM A5/5
+ -- 0100 0000 GSM A5/6
+ -- 1000 0000 GSM A5/7
+
+StateAttributes ::= SEQUENCE {
+ downlinkAttached [5] NULL OPTIONAL,
+ uplinkAttached [6] NULL OPTIONAL,
+ dualCommunication [7] NULL OPTIONAL,
+ callOriginator [8] NULL OPTIONAL }
+
+ -- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields.
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000000..55777fec68
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
@@ -0,0 +1,72 @@
+MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ prepareGroupCall,
+ sendGroupCallEndSignal,
+ forwardGroupCallSignalling,
+ processGroupCallSignalling
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ unexpectedDataValue,
+ noGroupCallNumberAvailable
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+FROM MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+;
+
+prepareGroupCall OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareGroupCallArg
+ RESULT
+ PrepareGroupCallRes
+ ERRORS {
+ systemFailure |
+ noGroupCallNumberAvailable |
+ unexpectedDataValue}
+ CODE local:39 }
+
+sendGroupCallEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendGroupCallEndSignalArg
+ RESULT
+ SendGroupCallEndSignalRes
+ CODE local:40 }
+
+processGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessGroupCallSignallingArg
+ CODE local:41 }
+
+forwardGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardGroupCallSignallingArg
+ CODE local:42 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000000..08962d6874
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
@@ -0,0 +1,533 @@
+MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res,
+ LocationType,
+ DeferredLocationEventType,
+ LCSClientName,
+ LCS-QoS,
+ Horizontal-Accuracy,
+ ResponseTime,
+ Ext-GeographicalInformation,
+ SupportedGADShapes,
+ Add-GeographicalInformation,
+ LCSRequestorID,
+ LCS-ReferenceNumber,
+ LCSCodeword,
+ AreaEventInfo
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ IMEI,
+ IMSI,
+ LMSI,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID,
+ CellGlobalIdOrServiceAreaIdOrLAI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ USSD-DataCodingScheme,
+ USSD-String
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version9 (9)}
+
+ APN,
+ GSN-Address,
+ SupportedLCS-CapabilitySets
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ Additional-Number
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+;
+
+
+RoutingInfoForLCS-Arg ::= SEQUENCE {
+ mlcNumber [0] ISDN-AddressString,
+ targetMS [1] SubscriberIdentity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfoForLCS-Res ::= SEQUENCE {
+ targetMS [0] SubscriberIdentity,
+ lcsLocationInfo [1] LCSLocationInfo,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ h-gmlc-Address [4] GSN-Address OPTIONAL,
+ ppr-Address [5] GSN-Address OPTIONAL,
+ additional-v-gmlc-Address [6] GSN-Address OPTIONAL }
+
+LCSLocationInfo ::= SEQUENCE {
+ networkNode-Number ISDN-AddressString,
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ lmsi [0] LMSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsNodeIndicator [2] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
+ additional-Number [3] Additional-Number OPTIONAL,
+ supportedLCS-CapabilitySets [4] SupportedLCS-CapabilitySets OPTIONAL,
+ additional-LCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL
+ }
+
+ProvideSubscriberLocation-Arg ::= SEQUENCE {
+ locationType LocationType,
+ mlc-Number ISDN-AddressString,
+ lcs-ClientID [0] LCS-ClientID OPTIONAL,
+ privacyOverride [1] NULL OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ msisdn [3] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ lcs-Priority [6] LCS-Priority OPTIONAL,
+ lcs-QoS [7] LCS-QoS OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ supportedGADShapes [9] SupportedGADShapes OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
+ lcsCodeword [12] LCSCodeword OPTIONAL,
+ lcs-PrivacyCheck [13] LCS-PrivacyCheck OPTIONAL,
+ areaEventInfo [14] AreaEventInfo OPTIONAL,
+ h-gmlc-Address [15] GSN-Address OPTIONAL }
+
+ -- one of imsi or msisdn is mandatory
+ -- If a location estimate type indicates activate deferred location or cancel deferred
+ -- location, a lcs-Reference number shall be included.
+
+LocationType ::= SEQUENCE {
+ locationEstimateType [0] LocationEstimateType,
+ ...,
+ deferredLocationEventType [1] DeferredLocationEventType OPTIONAL }
+
+LocationEstimateType ::= ENUMERATED {
+ currentLocation (0),
+ currentOrLastKnownLocation (1),
+ initialLocation (2),
+ ...,
+ activateDeferredLocation (3),
+ cancelDeferredLocation (4) }
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+DeferredLocationEventType ::= BIT STRING {
+ msAvailable (0) ,
+ enteringIntoArea (1),
+ leavingFromArea (2),
+ beingInsideArea (3) } (SIZE (1..16))
+-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value
+-- of occurrenceInfo inside areaEventInfo.
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing other values than listed above in
+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+
+LCS-ClientID ::= SEQUENCE {
+ lcsClientType [0] LCSClientType,
+ lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [2] AddressString OPTIONAL,
+ lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
+ lcsClientName [4] LCSClientName OPTIONAL,
+ ...,
+ lcsAPN [5] APN OPTIONAL,
+ lcsRequestorID [6] LCSRequestorID OPTIONAL }
+
+LCSClientType ::= ENUMERATED {
+ emergencyServices (0),
+ valueAddedServices (1),
+ plmnOperatorServices (2),
+ lawfulInterceptServices (3),
+ ... }
+ -- exception handling:
+ -- unrecognized values may be ignored if the LCS client uses the privacy override
+ -- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
+ -- a return error shall then be returned if received in a MAP invoke
+
+LCSClientName ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ nameString [2] NameString,
+ ...,
+ lcs-FormatIndicator [3] LCS-FormatIndicator OPTIONAL }
+
+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
+-- following encoding
+-- bit 7 6 5 4 3 2 1 0
+-- 0 0 0 0 1 1 1 1
+
+NameString ::= USSD-String (SIZE (1..maxNameStringLength))
+
+maxNameStringLength INTEGER ::= 63
+
+LCSRequestorID ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ requestorIDString [1] RequestorIDString,
+ ...,
+ lcs-FormatIndicator [2] LCS-FormatIndicator OPTIONAL }
+
+RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))
+
+maxRequestorIDStringLength INTEGER ::= 63
+
+LCS-FormatIndicator ::= ENUMERATED {
+ logicalName (0),
+ e-mailAddress (1),
+ msisdn (2),
+ url (3),
+ sipUrl (4),
+ ... }
+
+LCS-Priority ::= OCTET STRING (SIZE (1))
+ -- 0 = highest priority
+ -- 1 = normal priority
+ -- all other values treated as 1
+
+LCS-QoS ::= SEQUENCE {
+ horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
+ verticalCoordinateRequest [1] NULL OPTIONAL,
+ vertical-accuracy [2] Vertical-Accuracy OPTIONAL, responseTime [3] ResponseTime OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+Horizontal-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
+ -- error should be less than the error indicated by the uncertainty code with 67%
+ -- confidence.
+
+Vertical-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
+ -- The vertical location error should be less than the error indicated
+ -- by the uncertainty code with 67% confidence.
+
+ResponseTime ::= SEQUENCE {
+ responseTimeCategory ResponseTimeCategory,
+ ...}
+-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
+
+ResponseTimeCategory ::= ENUMERATED {
+ lowdelay (0),
+ delaytolerant (1),
+ ... }
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
+
+SupportedGADShapes ::= BIT STRING {
+ ellipsoidPoint (0),
+ ellipsoidPointWithUncertaintyCircle (1),
+ ellipsoidPointWithUncertaintyEllipse (2),
+ polygon (3),
+ ellipsoidPointWithAltitude (4),
+ ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),
+ ellipsoidArc (6) } (SIZE (7..16))
+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
+-- exception handling: bits 7 to 15 shall be ignored if received.
+
+LCS-ReferenceNumber::= OCTET STRING (SIZE(1))
+
+LCSCodeword ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lcsCodewordString [1] LCSCodewordString,
+ ...}
+
+LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))
+
+maxLCSCodewordStringLength INTEGER ::= 20
+
+LCS-PrivacyCheck ::= SEQUENCE {
+ callSessionUnrelated [0] PrivacyCheckRelatedAction,
+ callSessionRelated [1] PrivacyCheckRelatedAction OPTIONAL,
+ ...}
+
+PrivacyCheckRelatedAction ::= ENUMERATED {
+ allowedWithoutNotification (0),
+ allowedWithNotification (1),
+ allowedIfNoResponse (2),
+ restrictedIfNoResponse (3),
+ notAllowed (4),
+ ...}
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+AreaEventInfo ::= SEQUENCE {
+ areaDefinition [0] AreaDefinition,
+ occurrenceInfo [1] OccurrenceInfo OPTIONAL,
+ intervalTime [2] IntervalTime OPTIONAL,
+ ...}
+
+AreaDefinition ::= SEQUENCE {
+ areaList [0] AreaList,
+ ...}
+
+AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area
+
+maxNumOfAreas INTEGER ::= 10
+
+Area ::= SEQUENCE {
+ areaType [0] AreaType,
+ areaIdentification [1] AreaIdentification,
+ ...}
+
+AreaType ::= ENUMERATED {
+ countryCode (0),
+ plmnId (1),
+ locationAreaId (2),
+ routingAreaId (3),
+ cellGlobalId (4),
+ ...}
+
+AreaIdentification ::= OCTET STRING (SIZE (2..7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included
+ -- or filler (1111)
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code (LAC)
+ -- octet 6 Routing Area Code (RAC) for Routing Area Id
+ -- octets 6 and 7 Cell Identity (CI) for Cell Global Id
+
+OccurrenceInfo ::= ENUMERATED {
+ oneTimeEvent (0),
+ multipleTimeEvent (1),
+ ...}
+
+IntervalTime ::= INTEGER (1..32767)
+ -- minimum interval time between area reports in seconds
+
+ProvideSubscriberLocation-Res ::= SEQUENCE {
+ locationEstimate Ext-GeographicalInformation,
+ ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrResponseIndicator [3] NULL OPTIONAL,
+ geranPositioningData [4] PositioningDataInformation OPTIONAL,
+ utranPositioningData [5] UtranPositioningDataInfo OPTIONAL,
+ cellIdOrSai [6] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ sai-Present [7] NULL OPTIONAL }
+
+-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.
+
+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the
+-- geographic shapes supported in the ProvideSubscriberLocation-Arg
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported.
+-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:
+ -- (a) Ellipsoid point with uncertainty circle
+ -- (b) Ellipsoid point with uncertainty ellipse
+ -- (c) Ellipsoid point with altitude and uncertainty ellipsoid
+ -- (d) Ellipsoid Arc
+ -- (e) Ellipsoid Point
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty code 1 octet
+ -- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse:
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Altitude 2 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Uncertainty altitude 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 13 for case (d) - Ellipsoid Arc
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Inner radius 2 octets
+ -- Uncertainty radius 1 octet
+ -- Offset angle 1 octet
+ -- Included angle 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 7 for case (e) - Ellipsoid Point
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+
+ --
+ -- An Ext-GeographicalInformation parameter comprising more than one octet and
+ -- containing any other shape or an incorrect number of octets or coding according
+ -- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be discarded
+ -- by the receiver if an Add-GeographicalInformation parameter is received
+ -- in the same message.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be treated as
+ -- invalid data by the receiver if an Add-GeographicalInformation parameter is not
+ -- received in the same message.
+
+maxExt-GeographicalInformation INTEGER ::= 20
+ -- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later
+ -- versions of 3GPP TS 29.002
+
+PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation))
+ -- Refers to the Positioning Data defined in 3GPP TS 49.031.
+ -- This is composed of 2 or more octets with an internal structure according to
+ -- 3GPP TS 49.031.
+
+maxPositioningDataInformation INTEGER ::= 10
+ --
+
+UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the positioningDataDiscriminator and the positioningDataSet
+ -- included in positionData as defined in 3GPP TS 25.413.
+
+maxUtranPositioningDataInfo INTEGER ::= 11
+ --
+
+Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:
+ -- Octets 2 to n (where n is the total number of octets necessary to encode the shape
+ -- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the
+ -- encoding defined in 3GPP TS 23.032
+ --
+ -- An Add-GeographicalInformation parameter, whether valid or invalid, received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message
+ -- shall be discarded.
+ --
+ -- An Add-GeographicalInformation parameter containing any shape not defined in
+ -- 3GPP TS 23.032 or an incorrect number of octets or coding according to
+ -- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message.
+
+maxAdd-GeographicalInformation INTEGER ::= 91
+ -- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032
+
+SubscriberLocationReport-Arg ::= SEQUENCE {
+ lcs-Event LCS-Event,
+ lcs-ClientID LCS-ClientID,
+ lcsLocationInfo LCSLocationInfo,
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ imei [2] IMEI OPTIONAL,
+ na-ESRD [3] ISDN-AddressString OPTIONAL,
+ na-ESRK [4] ISDN-AddressString OPTIONAL,
+ locationEstimate [5] Ext-GeographicalInformation OPTIONAL,
+ ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrData [9] Deferredmt-lrData OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ geranPositioningData [11] PositioningDataInformation OPTIONAL,
+ utranPositioningData [12] UtranPositioningDataInfo OPTIONAL,
+ na-ESRK-Request [16] NULL OPTIONAL,
+ cellIdOrSai [13] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ h-gmlc-Address [14] GSN-Address OPTIONAL,
+ lcsServiceTypeID [15] LCSServiceTypeID OPTIONAL,
+ sai-Present [17] NULL OPTIONAL }
+
+ -- one of msisdn or imsi is mandatory
+ -- a location estimate that is valid for the locationEstimate parameter should
+ -- be transferred in this parameter in preference to the add-LocationEstimate.
+ -- the deferredmt-lrData parameter shall be included if and only if the lcs-Event
+ -- indicates a deferredmt-lrResponse.
+ -- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate
+ -- and the add-locationEstimate parameters shall not be sent if the
+ -- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg
+ -- and the shape encoded in locationEstimate or add-LocationEstimate was not marked
+ -- as supported in supportedGADShapes. In such a case terminationCause
+ -- in deferredmt-lrData shall be present with value
+ -- shapeOfLocationEstimateNotSupported.
+ -- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be
+ -- included.
+ -- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Deferredmt-lrData ::= SEQUENCE {
+ deferredLocationEventType DeferredLocationEventType,
+ terminationCause [0] TerminationCause OPTIONAL,
+ lcsLocationInfo [1] LCSLocationInfo OPTIONAL,
+ ...}
+ -- lcsLocationInfo may be included only if a terminationCause is present
+ -- indicating mt-lrRestart.
+
+LCS-Event ::= ENUMERATED {
+ emergencyCallOrigination (0),
+ emergencyCallRelease (1),
+ mo-lr (2),
+ ...,
+ deferredmt-lrResponse (3) }
+ -- exception handling:
+ -- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event
+ -- shall be rejected by a receiver with a return error cause of unexpected data value
+
+TerminationCause ::= ENUMERATED {
+ normal (0),
+ errorundefined (1),
+ internalTimeout (2),
+ congestion (3),
+ mt-lrRestart (4),
+ privacyViolation (5),
+ ...,
+ shapeOfLocationEstimateNotSupported (6) }
+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure,
+-- either because the sending node knows that the terminal has moved under coverage
+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber
+-- has been deregistered due to a Cancel Location received from HLR.
+--
+-- exception handling
+-- an unrecognized value shall be treated the same as value 1 (errorundefined)
+
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ na-ESRK [0] ISDN-AddressString OPTIONAL }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000000..c28ac884ce
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
@@ -0,0 +1,103 @@
+MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ provideSubscriberLocation,
+sendRoutingInfoForLCS,
+subscriberLocationReport
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ absentSubscriber,
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ resourceLimitation,
+ unknownOrUnreachableLCSClient,
+ unidentifiedSubscriber,
+ illegalEquipment,
+ illegalSubscriber
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res
+FROM MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+;
+
+sendRoutingInfoForLCS OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForLCS-Arg
+ RESULT
+ RoutingInfoForLCS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ absentSubscriber |
+ unauthorizedRequestingNetwork }
+ CODE local:85 }
+
+provideSubscriberLocation OPERATION ::= { --Timer ml
+ ARGUMENT
+ ProvideSubscriberLocation-Arg
+ RESULT
+ ProvideSubscriberLocation-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ absentSubscriber |
+ unauthorizedRequestingNetwork |
+ unauthorizedLCSClient |
+ positionMethodFailure }
+ CODE local:83 }
+
+subscriberLocationReport OPERATION ::= { --Timer m
+ ARGUMENT
+ SubscriberLocationReport-Arg
+ RESULT
+ SubscriberLocationReport-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ resourceLimitation |
+ unexpectedDataValue |
+ unknownSubscriber |
+ unauthorizedRequestingNetwork |
+ unknownOrUnreachableLCSClient}
+ CODE local:86 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000000..e905c44077
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
@@ -0,0 +1,2458 @@
+MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+ SupportedLCS-CapabilitySets,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ Kc,
+
+ -- equipment management types
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ OfferedCamel4Functionalities,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Info,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ QoS-Subscribed,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+ APN,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+ GeographicalInformation,
+ MS-Classmark2,
+ GPRSMSClass,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ LocationInformationGPRS,
+ RAIdentity,
+ SubscriberState,
+ GPRSChargingID,
+ MNPInfoRes,
+ RouteingNumber,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+ NoteMM-EventArg,
+ NoteMM-EventRes,
+ NumberPortabilityStatus
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ IMEI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status,
+ LCSServiceTypeID,
+ ASCI-CallReference,
+ TBCD-STRING
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+;
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL,
+ informPreviousNetworkEntity [11] NULL OPTIONAL,
+ cs-LCS-NotSupportedByUE [12] NULL OPTIONAL,
+ v-gmlc-Address [2] GSN-Address OPTIONAL,
+ add-info [13] ADD-Info OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+SupportedLCS-CapabilitySets ::= BIT STRING {
+ lcsCapabilitySet1 (0),
+ lcsCapabilitySet2 (1),
+ lcsCapabilitySet3 (2),
+ lcsCapabilitySet4 (3) } (SIZE (2..16))
+-- Core network signalling capability set1 indicates LCS Release98 or Release99 version.
+-- Core network signalling capability set2 indicates LCS Release4.
+-- Core network signalling capability set3 indicates LCS Release5.
+-- Core network signalling capability set4 indicates LCS Release6 or later version.
+-- A node shall mark in the BIT STRING all LCS capability sets it supports.
+-- If no bit is set then the sending node does not support LCS.
+-- If the parameter is not sent by an VLR then the VLR may support at most capability set1.
+-- If the parameter is not sent by an SGSN then no support for LCS is assumed.
+-- An SGSN is not allowed to indicate support of capability set1.
+-- Other bits than listed above shall be discarded.
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+ADD-Info ::= SEQUENCE {
+ imeisv [0] IMEI,
+ skipSubscriberDataUpdate [1] NULL OPTIONAL,
+ ...}
+
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- within a dialogue numberOfRequestedVectors shall be present in
+ -- the first service request and shall not be present in subsequent service requests.
+ -- If received in a subsequent service request it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ msc-Number ISDN-AddressString OPTIONAL }
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI shall be present in the first (or only) service response of a dialogue.
+ -- If multiple service requests are present in a dialogue then IMSI
+ -- shall not be present in any service response other than the first one.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ re-attempt BOOLEAN OPTIONAL,
+ accessType AccessType OPTIONAL,
+ rand RAND OPTIONAL,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL }
+
+AccessType ::= ENUMERATED {
+ call (0),
+ emergencyCall (1),
+ locationUpdating (2),
+ supplementaryService (3),
+ shortMessage (4),
+ gprsAttach (5),
+ routingAreaUpdating (6),
+ serviceRequest (7),
+ pdpContextActivation (8),
+ pdpContextDeactivation (9),
+ ...,
+ gprsDetach (10)}
+ -- exception handling:
+ -- received values greater than 10 shall be ignored.
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL,
+ informPreviousNetworkEntity [1] NULL OPTIONAL,
+ ps-LCS-NotSupportedByUE [2] NULL OPTIONAL,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ add-info [4] ADD-Info OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL,
+ smsCallBarringSupportIndicator [7] NULL OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ allowedGSM-Algorithms [4] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [5] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceInformation [6] RadioResourceInformation OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ radioResourceList [7] RadioResourceList OPTIONAL,
+ bssmap-ServiceHandover [9] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [8] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [10] BSSMAP-ServiceHandoverList OPTIONAL,
+ currentlyUsedCodec [11] Codec OPTIONAL,
+ iuSupportedCodecsList [12] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [13] NULL OPTIONAL,
+ iuSelectedCodec [14] Codec OPTIONAL }
+
+AllowedGSM-Algorithms ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from
+ -- Permitted Algorithms defined in 3GPP TS 48.008
+ -- A node shall mark all GSM algorithms that are allowed in MSC-B
+
+AllowedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithms [0] PermittedIntegrityProtectionAlgorithms OPTIONAL,
+ encryptionAlgorithms [1] PermittedEncryptionAlgorithms OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+PermittedIntegrityProtectionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength))
+ -- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413.
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= 9
+
+PermittedEncryptionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedEncryptionAlgorithmsLength))
+ -- Octets contain a complete PermittedEncryptionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedEncryptionAlgorithmsLength INTEGER ::= 9
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ allowedGSM-Algorithms [9] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [10] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceList [11] RadioResourceList OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ rab-Id [12] RAB-Id OPTIONAL,
+ bssmap-ServiceHandover [13] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [14] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [15] BSSMAP-ServiceHandoverList OPTIONAL,
+ asciCallReference [20] ASCI-CallReference OPTIONAL,
+ geran-classmark [16] GERAN-Classmark OPTIONAL,
+ iuCurrentlyUsedCodec [17] Codec OPTIONAL,
+ iuSupportedCodecsList [18] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [19] NULL OPTIONAL,
+ uesbi-Iu [21] UESBI-Iu OPTIONAL }
+
+BSSMAP-ServiceHandoverList ::= SEQUENCE SIZE (1.. maxNumOfServiceHandovers) OF
+ BSSMAP-ServiceHandoverInfo
+
+BSSMAP-ServiceHandoverInfo ::= SEQUENCE {
+ bssmap-ServiceHandover BSSMAP-ServiceHandover,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the service handovers with the radio access bearers.
+ ...}
+
+maxNumOfServiceHandovers INTEGER ::= 7
+
+BSSMAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Service Handover information element in
+ -- 3GPP TS 48.008.
+
+RANAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete Service-Handover data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+
+RadioResourceList ::= SEQUENCE SIZE (1.. maxNumOfRadioResources) OF
+ RadioResource
+
+RadioResource ::= SEQUENCE {
+ radioResourceInformation RadioResourceInformation,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the radio resources with the radio access bearers.
+ ...}
+
+maxNumOfRadioResources INTEGER ::= 7
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ selectedUMTS-Algorithms [5] SelectedUMTS-Algorithms OPTIONAL,
+ chosenRadioResourceInformation [6] ChosenRadioResourceInformation OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ iuSelectedCodec [7] Codec OPTIONAL,
+ iuAvailableCodecsList [8] CodecList OPTIONAL }
+
+SelectedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithm [0] ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ encryptionAlgorithm [1] ChosenEncryptionAlgorithm OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ChosenIntegrityProtectionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete IntegrityProtectionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenEncryptionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete EncryptionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenRadioResourceInformation ::= SEQUENCE {
+ chosenChannelInfo [0] ChosenChannelInfo OPTIONAL,
+ chosenSpeechVersion [1] ChosenSpeechVersion OPTIONAL,
+ ...}
+
+ChosenChannelInfo ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008
+
+ChosenSpeechVersion ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Speech Version (chosen) information element in 3GPP TS
+ -- 48.008
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ geran-classmark [6] GERAN-Classmark OPTIONAL,
+ rab-ConfigurationIndicator [7] NULL OPTIONAL }
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ selectedUMTS-Algorithms [1] SelectedUMTS-Algorithms OPTIONAL,
+ selectedGSM-Algorithm [2] SelectedGSM-Algorithm OPTIONAL,
+ chosenRadioResourceInformation [3] ChosenRadioResourceInformation OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ iUSelectedCodec [5] Codec OPTIONAL,
+ iuAvailableCodecsList [6] CodecList OPTIONAL }
+
+SupportedCodecsList ::= SEQUENCE {
+ utranCodecList [0] CodecList OPTIONAL,
+ geranCodecList [1] CodecList OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+CodecList ::= SEQUENCE {
+ codec1 [1] Codec,
+ codec2 [2] Codec OPTIONAL,
+ codec3 [3] Codec OPTIONAL,
+ codec4 [4] Codec OPTIONAL,
+ codec5 [5] Codec OPTIONAL,
+ codec6 [6] Codec OPTIONAL,
+ codec7 [7] Codec OPTIONAL,
+ codec8 [8] Codec OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+ -- Codecs are sent in priority order where codec1 has highest priority
+
+Codec ::= OCTET STRING (SIZE (1..4))
+
+ -- The internal structure is defined as follows:
+ -- octet 1 Coded as Codec Identification code in 3GPP TS 26.103
+ -- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS
+ -- 26.103, if available, length depending on the codec
+
+GERAN-Classmark ::= OCTET STRING (SIZE (2..87))
+ -- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008
+
+SelectedGSM-Algorithm ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from Chosen Encryption
+ -- Algorithm defined in 3GPP TS 48.008
+ -- A node shall mark only the selected GSM algorithm
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 RNC Id value according to 3GPP TS 25.413
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (3..13))
+ -- Octets are coded according the Channel Type information element in 3GPP TS 48.008
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (18..maxNumOfIntegrityInfo))
+ -- Octets contain a complete IntegrityProtectionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (18..maxNumOfEncryptionInfo))
+ -- Octets contain a complete EncryptionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ requestingNodeType [3] RequestingNodeType OPTIONAL,
+ requestingPLMN-Id [4] PLMN-Id OPTIONAL }
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RequestingNodeType ::= ENUMERATED {
+ vlr (0),
+ sgsn (1),
+ ...}
+ -- exception handling:
+ -- received values in the range 2-15 shall be treated as "vlr"
+ -- received values greater than 15 shall be treated as "sgsn"
+
+-- equipment management types
+
+CheckIMEI-Arg ::= SEQUENCE {
+ imei IMEI,
+ requestedEquipmentInfo RequestedEquipmentInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CheckIMEI-Res ::= SEQUENCE {
+ equipmentStatus EquipmentStatus OPTIONAL,
+ bmuef UESBI-Iu OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedEquipmentInfo::= BIT STRING {
+ equipmentStatus (0),
+ bmuef (1)} (SIZE (2..8))
+ -- exception handling: reception of unknown bit assignments in the
+ -- RequestedEquipmentInfo data type shall be discarded by the receiver
+
+UESBI-Iu ::= SEQUENCE {
+ uesbi-IuA [0] UESBI-IuA OPTIONAL,
+ uesbi-IuB [1] UESBI-IuB OPTIONAL,
+ ...}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL,
+ accessRestrictionData [19] AccessRestrictionData OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+AccessRestrictionData ::= BIT STRING {
+ utranNotAllowed (0),
+ geranNotAllowed (1) } (SIZE (2..8))
+ -- exception handling:
+ -- bits 2 to 7 shall be ignored if received and not understood
+
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...,
+ add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL }
+ -- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is
+ -- present and contains four instances of LCS-PrivacyClass. If the mentioned condition
+ -- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList.
+ -- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in
+ -- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected
+ -- data value shall be returned.
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL,
+ ext2-QoS-Subscribed [2] Ext2-QoS-Subscribed OPTIONAL
+ -- ext2-QoS-Subscribed may be present only if ext-QoS-Subscribed is present.
+ }
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ mt-sms-CSI [3] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [4] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [5] MG-CSI OPTIONAL
+ }
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 3-5.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 6-13.
+
+Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))
+ -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.
+ -- If Quality of Service information is structured with 14 octet length, then
+ -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3GPP TS 32.215.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS 3GPP TS 48.008 [49]
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in ITU-T Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14),
+ allPacketOrientedServicesBarred (15),
+ roamerAccessToHPLMN-AP-Barred (16),
+ roamerAccessToVPLMN-AP-Barred (17),
+ roamingOutsidePLMNOG-CallsBarred (18),
+ allIC-CallsBarred (19),
+ roamingOutsidePLMNIC-CallsBarred (20),
+ roamingOutsidePLMNICountryIC-CallsBarred (21),
+ roamingOutsidePLMN-Barred (22),
+ roamingOutsidePLMN-CountryBarred (23),
+ registrationAllCF-Barred (24),
+ registrationCFNotToHPLMN-Barred (25),
+ registrationInterzonalCF-Barred (26),
+ registrationInterzonalCFNotToHPLMN-Barred (27),
+ registrationInternationalCF-Barred (28)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+ -- When the ODB-GeneralData type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+ -- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser may be sent only for SS-codes callSessionRelated
+ -- and callSessionUnrelated. If not received for SS-codes callSessionRelated
+ -- and callSessionUnrelated,
+ -- the default values according to 3GPP TS 23.271 shall be assumed.
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList may be sent only for SS-code callSessionUnrelated to a
+ -- visited node that does not support LCS Release 4 or later versions.
+ -- externalClientList may be sent only for SS-codes callSessionUnrelated and
+ -- callSessionRelated to a visited node that supports LCS Release 4 or later versions.
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList may be sent only for SS-code plmnoperator.
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ ext-externalClientList [4] Ext-ExternalClientList OPTIONAL,
+ -- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or
+ -- later versions, the user did specify more than 5 clients, and White Book SCCP is used.
+ serviceTypeList [5] ServiceTypeList OPTIONAL
+ -- serviceTypeList may be sent only for SS-code serviceType and if the visited node
+ -- supports LCS Release 5 or later versions.
+ --
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+Ext-ExternalClientList ::= SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF
+ ExternalClient
+
+maxNumOfExt-ExternalClient INTEGER ::= 35
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ...,
+ locationNotAllowed (3) }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF
+ ServiceType
+
+maxNumOfServiceType INTEGER ::= 32
+
+ServiceType ::= SEQUENCE {
+ serviceTypeIdentity LCSServiceTypeID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS 3GPP TS 23.003 [17]
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [8] OfferedCamel4CSIs OPTIONAL }
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ mo-sms-csi (5),
+ m-csi (6),
+ gprs-csi (7),
+ t-csi (8),
+ mt-sms-csi (9),
+ mg-csi (10),
+ o-IM-CSI (11),
+ d-IM-CSI (12),
+ vt-IM-CSI (13) } (SIZE(8..32))
+-- exception handling:
+-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity.
+-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity.
+-- bits 11-13 are only applicable in an IP Multimedia Core Network.
+-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation.
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ mo-sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL,
+ mt-sms-CSI [10] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [11] MT-smsCAMELTDP-CriteriaList OPTIONAL
+ }
+
+MT-smsCAMELTDP-CriteriaList ::= SEQUENCE SIZE (1.. maxNumOfCamelTDPData) OF
+ MT-smsCAMELTDP-Criteria
+
+MT-smsCAMELTDP-Criteria ::= SEQUENCE {
+ sms-TriggerDetectionPoint SMS-TriggerDetectionPoint,
+ tpdu-TypeCriterion [0] TPDU-TypeCriterion OPTIONAL,
+ ... }
+
+TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF
+ MT-SMS-TPDU-Type
+
+
+maxNumOfTPDUTypes INTEGER ::= 5
+
+MT-SMS-TPDU-Type ::= ENUMERATED {
+ sms-DELIVER (0),
+ sms-SUBMIT-REPORT (1),
+ sms-STATUS-REPORT (2),
+ ... }
+
+-- exception handling:
+-- For TPDU-TypeCriterion sequences containing this parameter with any
+-- other value than the ones listed above the receiver shall ignore
+-- the whole TPDU-TypeCriterion sequence.
+-- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion
+-- sequence containing sms-SUBMIT-REPORT shall be wholly ignored.
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, then the first segment shall contain dp-AnalysedInfoCriteriaList
+-- and camelCapabilityHandling. Subsequent segments shall not contain
+-- camelCapabilityHandling, but may contain dp-AnalysedInfoCriteriaList.
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- O-CSI shall not be segmented.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3,
+ -- value 4 = CAMEL phase 4:
+ -- reception of values greater than 4 shall be treated as CAMEL phase 4.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1),
+ phase3 (2),
+ phase4 (3)} (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4CSIs ::= BIT STRING {
+ o-csi (0),
+ d-csi (1),
+ vt-csi (2),
+ t-csi (3),
+ mt-sms-csi (4),
+ mg-csi (5),
+ psi-enhancements (6)
+} (SIZE (7..16))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs
+-- it offers.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4Functionalities ::= BIT STRING {
+ initiateCallAttempt (0),
+ splitLeg (1),
+ moveLeg (2),
+ disconnectLeg (3),
+ entityReleased (4),
+ dfc-WithArgument (5),
+ playTone (6),
+ dtmf-MidCall (7),
+ chargingIndicator (8),
+ alertingDP (9),
+ locationAtAlerting (10),
+ changeOfPositionDP (11),
+ or-Interactions (12),
+ warningToneEnhancements (13),
+ cf-Enhancements (14),
+ subscribedEnhancedDialledServices (15),
+ servingNetworkEnhancedDialledServices (16),
+ criteriaForChangeOfPositionDP (17),
+ serviceChangeDP (18)
+} (SIZE (15..64))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all CAMEL4
+-- functionalities it offers.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present
+-- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ...,
+ sms-DeliveryRequest (2)
+ }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this
+-- parameter with any other value than the ones listed the receiver shall ignore
+-- the whole sequence.
+--
+-- If this parameter is received with any other value than sms-CollectedInfo
+-- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall
+-- ignore the whole MT-smsCAMELTDP-Criteria sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MG-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following MM-Code values are defined in CAMEL Phase 4:
+--
+-- CS domain MM events:
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- PS domain MM events:
+-- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B
+-- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN
+-- MM-Code ::= '10000001'B
+-- Routeing-Area-update-to-other-SGSN-disconnect-by-detach
+-- MM-Code ::= '10000010'B
+-- GPRS-Attach MM-Code ::= '10000011'B
+-- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B
+-- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B
+-- Network-initiated-transfer-to-MS-not-reachable-for-paging
+-- MM-Code ::= '10000110'B
+--
+-- If the MSC receives any other MM-code than the ones listed above for the
+-- CS domain, then the MSC shall ignore that MM-code.
+-- If the SGSN receives any other MM-code than the ones listed above for the
+-- PS domain, then the SGSN shall ignore that MM-code.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- T-CSI shall not be segmented.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP's are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+-- gprs location information retrieval types
+
+SendRoutingInfoForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ ggsn-Number [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+SendRoutingInfoForGprsRes ::= SEQUENCE {
+ sgsn-Address [0] GSN-Address,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ mobileNotReachableReason [2] AbsentSubscriberDiagnosticSM OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= TBCD-STRING (SIZE (3))
+ -- When Group-Id is less than six characters in length, the TBCD filler (1111)
+ -- is used to fill unused half octets.
+ -- Refers to the Group Identification as specified in 3GPP TS 23.003
+ -- and 3GPP TS 43.068/ 43.069
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... ,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ ps-SubscriberState [4] PS-SubscriberState OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ ms-Classmark2 [6] MS-Classmark2 OPTIONAL,
+ gprs-MS-Class [7] GPRSMSClass OPTIONAL,
+ mnpInfoRes [8] MNPInfoRes OPTIONAL }
+
+-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN
+-- it shall discard them.
+-- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from
+-- a VLR it shall discard them.
+-- If the HLR receives parameters which it has not requested, it shall discard them.
+
+MNPInfoRes ::= SEQUENCE {
+ routeingNumber [0] RouteingNumber OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [3] NumberPortabilityStatus OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... }
+-- The IMSI parameter contains a generic IMSI, i.e. it is not tied necessarily to the
+-- Subscriber. MCC and MNC values in this IMSI shall point to the Subscription Network of
+-- the Subscriber. See 3GPP TS 23.066 [108].
+
+RouteingNumber ::= TBCD-STRING (SIZE (1..5))
+
+
+NumberPortabilityStatus ::= ENUMERATED {
+ notKnownToBePorted (0),
+ ownNumberPortedOut (1),
+ foreignNumberPortedToForeignNetwork (2),
+ ...,
+ ownNumberNotPortedOut (4),
+ foreignNumberPortedIn (5)
+ }
+ -- exception handling:
+ -- reception of other values than the ones listed the receiver shall ignore the
+ -- whole NumberPortabilityStatus;
+ -- ownNumberNotPortedOut or foreignNumberPortedIn may only be included in Any Time
+ -- Interrogation message.
+
+MS-Classmark2 ::= OCTET STRING (SIZE (3))
+ -- This parameter carries the value part of the MS Classmark 2 IE defined in
+ -- 3GPP TS 24.008 [35].
+
+GPRSMSClass ::= SEQUENCE {
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL
+ }
+
+MSNetworkCapability ::= OCTET STRING (SIZE (1..8))
+ -- This parameter carries the value part of the MS Network Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50))
+ -- This parameter carries the value part of the MS Radio Access Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL,
+ requestedDomain [4] DomainType OPTIONAL,
+ imei [6] NULL OPTIONAL,
+ ms-classmark [5] NULL OPTIONAL,
+ mnpRequestedInfo [7] NULL OPTIONAL }
+
+-- currentLocation shall be absent if locationInformation is absent
+
+DomainType ::= ENUMERATED {
+ cs-Domain (0),
+ ps-Domain (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to 'cs-Domain'
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+LocationInformationGPRS ::= SEQUENCE {
+ cellGlobalIdOrServiceAreaIdOrLAI [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ routeingAreaIdentity [1] RAIdentity OPTIONAL,
+ geographicalInformation [2] GeographicalInformation OPTIONAL,
+ sgsn-Number [3] ISDN-AddressString OPTIONAL,
+ selectedLSAIdentity [4] LSAIdentity OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ sai-Present [6] NULL OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present if the location information
+-- was retrieved after successful paging.
+
+RAIdentity ::= OCTET STRING (SIZE (6))
+-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105].
+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060
+-- type identifier octet shall not be included.
+
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in 3GPP TS 23.032 is allowed to be used
+-- The internal structure according to 3GPP TS 23.032 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in ITU-T Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+PS-SubscriberState ::= CHOICE {
+ notProvidedFromSGSN [0] NULL,
+ ps-Detached [1] NULL,
+ ps-AttachedNotReachableForPaging [2] NULL,
+ ps-AttachedReachableForPaging [3] NULL,
+ ps-PDP-ActiveNotReachableForPaging [4] PDP-ContextInfoList,
+ ps-PDP-ActiveReachableForPaging [5] PDP-ContextInfoList,
+ netDetNotReachable NotReachableReason }
+
+PDP-ContextInfoList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-ContextInfo
+
+PDP-ContextInfo ::= SEQUENCE {
+ pdp-ContextIdentifier [0] ContextId,
+ pdp-ContextActive [1] NULL OPTIONAL,
+ pdp-Type [2] PDP-Type,
+ pdp-Address [3] PDP-Address OPTIONAL,
+ apn-Subscribed [4] APN OPTIONAL,
+ apn-InUse [5] APN OPTIONAL,
+ nsapi [6] NSAPI OPTIONAL,
+ transactionId [7] TransactionId OPTIONAL,
+ teid-ForGnAndGp [8] TEID OPTIONAL,
+ teid-ForIu [9] TEID OPTIONAL,
+ ggsn-Address [10] GSN-Address OPTIONAL,
+ qos-Subscribed [11] Ext-QoS-Subscribed OPTIONAL,
+ qos-Requested [12] Ext-QoS-Subscribed OPTIONAL,
+ qos-Negotiated [13] Ext-QoS-Subscribed OPTIONAL,
+ chargingId [14] GPRSChargingID OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics OPTIONAL,
+ rnc-Address [16] GSN-Address OPTIONAL,
+ extensionContainer [17] ExtensionContainer OPTIONAL,
+ ...,
+ qos2-Subscribed [18] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Subscribed may be present only if qos-Subscribed is present.
+ qos2-Requested [19] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Requested may be present only if qos-Requested is present.
+ qos2-Negotiated [20] Ext2-QoS-Subscribed OPTIONAL
+ -- qos2-Negotiated may be present only if qos-Negotiated is present.
+ }
+
+NSAPI ::= INTEGER (0..15)
+-- This type is used to indicate the Network layer Service Access Point
+
+TransactionId ::= OCTET STRING (SIZE (1..2))
+-- This type carries the value part of the transaction identifier which is used in the
+-- session management messages on the access interface. The encoding is defined in
+-- 3GPP TS 24.008
+
+TEID ::= OCTET STRING (SIZE (4))
+-- This type carries the value part of the Tunnel Endpoint Identifier which is used to
+-- distinguish between different tunnels between the same pair of entities which communicate
+-- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060.
+
+GPRSChargingID ::= OCTET STRING (SIZE (4))
+-- The Charging ID is a unique four octet value generated by the GGSN when
+-- a PDP Context is activated. A Charging ID is generated for each activated context.
+-- The encoding is defined in 3GPP TS 29.060.
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIsInVLR [8] OfferedCamel4CSIs OPTIONAL,
+ offeredCamel4CSIsInSGSN [9] OfferedCamel4CSIs OPTIONAL }
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [7] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ mo-sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ mt-sms-CSI (0),
+ mg-csi (1),
+ o-IM-CSI (2),
+ d-IM-CSI (3),
+ vt-IM-CSI (4),
+ ...}
+-- exception handling: unknown values shall be discarded by the receiver.
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password OPTIONAL,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ specificCSIDeletedList [14] SpecificCSI-Withdraw OPTIONAL,
+ mt-sms-CSI [15] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [16] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [17] MG-CSI OPTIONAL,
+ o-IM-CSI [18] O-CSI OPTIONAL,
+ o-IM-BcsmCamelTDP-CriteriaList [19] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-IM-CSI [20] D-CSI OPTIONAL,
+ vt-IM-CSI [21] T-CSI OPTIONAL,
+ vt-IM-BCSM-CAMEL-TDP-CriteriaList [22] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL
+ }
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...,
+ modificationRequestFor-ODB-data [7] ModificationRequestFor-ODB-data OPTIONAL }
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ odb-Info [3] ODB-Info OPTIONAL }
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-ODB-data ::= SEQUENCE {
+ odb-data [0] ODB-Data OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [4] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+-- requestedCamel-SubscriptionInfo shall be discarded if
+-- additionalRequestedCAMEL-SubscriptionInfo is received
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ locationInformationGPRS [7] LocationInformationGPRS OPTIONAL,
+ offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL
+}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE [4] NULL OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000000..b91eac7cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
@@ -0,0 +1,506 @@
+MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration operations
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+
+ -- gprs location registration operations
+ updateGprsLocation,
+
+ -- subscriber information enquiry operations
+ provideSubscriberInfo,
+
+ -- any time information enquiry operations
+ anyTimeInterrogation,
+
+ -- any time information handling operations
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+
+ -- subscriber data modification notification operations
+ noteSubscriberDataModified,
+
+
+ -- handover operations
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+
+ -- authentication management operations
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+
+ -- IMEI management operations
+ checkIMEI,
+
+ -- subscriber management operations
+ insertSubscriberData,
+ deleteSubscriberData,
+
+ -- fault recovery operations
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+
+-- gprs location information retrieval operations
+ sendRoutingInfoForGprs,
+
+ -- failure reporting operations
+ failureReport,
+
+ -- gprs notification operations
+ noteMsPresentForGprs,
+
+-- Mobility Management operations
+ noteMM-Event
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+ roamingNotAllowed,
+ ati-NotAllowed,
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ absentSubscriber,
+ mm-EventNotSupported,
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-Incompatibility,
+ ss-SubscriptionViolation,
+ informationNotAvailable,
+ targetCellOutsideGroupCallArea
+
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ForwardAccessSignalling-Arg,
+ProcessAccessSignalling-Arg,
+SendEndSignal-Arg,
+SendEndSignal-Res,
+PrepareSubsequentHO-Res,
+ PrepareSubsequentHO-Arg,
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+ FailureReportArg,
+ FailureReportRes,
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+ NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+;
+
+
+-- location registration operations
+
+updateLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateLocationArg
+ RESULT
+ UpdateLocationRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:2 }
+
+cancelLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ CancelLocationArg
+ RESULT
+ CancelLocationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:3 }
+
+purgeMS OPERATION ::= { --Timer m
+ ARGUMENT
+ PurgeMS-Arg
+ RESULT
+ PurgeMS-Res
+ -- optional
+ ERRORS{
+ dataMissing |
+ unexpectedDataValue|
+ unknownSubscriber}
+ CODE local:67 }
+
+sendIdentification OPERATION ::= { --Timer s
+ ARGUMENT
+ SendIdentificationArg
+ RESULT
+ SendIdentificationRes
+ ERRORS {
+ dataMissing |
+ unidentifiedSubscriber}
+ CODE local:55 }
+
+-- gprs location registration operations
+
+updateGprsLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateGprsLocationArg
+ RESULT
+ UpdateGprsLocationRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:23 }
+
+-- subscriber information enquiry operations
+
+provideSubscriberInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ ProvideSubscriberInfoArg
+ RESULT
+ ProvideSubscriberInfoRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:70 }
+
+-- any time information enquiry operations
+
+anyTimeInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeInterrogationArg
+ RESULT
+ AnyTimeInterrogationRes
+ ERRORS {
+ systemFailure |
+ ati-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:71 }
+
+-- any time information handling operations
+
+anyTimeSubscriptionInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeSubscriptionInterrogationArg
+ RESULT
+ AnyTimeSubscriptionInterrogationRes
+ ERRORS {
+ atsi-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable |
+ informationNotAvailable}
+ CODE local:62 }
+
+anyTimeModification OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeModificationArg
+ RESULT
+ AnyTimeModificationRes
+ ERRORS {
+ atm-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-SubscriptionViolation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ informationNotAvailable}
+ CODE local:65 }
+
+-- subscriber data modification notification operations
+
+noteSubscriberDataModified OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteSubscriberDataModifiedArg
+ RESULT
+ NoteSubscriberDataModifiedRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:5 }
+
+-- handover operations
+
+prepareHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareHO-Arg
+ RESULT
+ PrepareHO-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ noHandoverNumberAvailable |
+ targetCellOutsideGroupCallArea }
+ CODE local:68 }
+
+sendEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendEndSignal-Arg
+ RESULT
+ SendEndSignal-Res
+ CODE local:29 }
+
+processAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessAccessSignalling-Arg
+ CODE local:33 }
+
+forwardAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardAccessSignalling-Arg
+ CODE local:34 }
+
+prepareSubsequentHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareSubsequentHO-Arg
+ RESULT
+ PrepareSubsequentHO-Res
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ unknownMSC |
+ subsequentHandoverFailure}
+ CODE local:69 }
+
+-- authentication management operations
+
+sendAuthenticationInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ SendAuthenticationInfoArg
+ -- optional
+ -- within a dialogue sendAuthenticationInfoArg shall not be present in
+ -- subsequent invoke components. If received in a subsequent invoke component
+ -- it shall be discarded.
+
+ RESULT
+ SendAuthenticationInfoRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:56 }
+
+authenticationFailureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ AuthenticationFailureReportArg
+ RESULT
+ AuthenticationFailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:15 }
+
+-- IMEI management operations
+
+checkIMEI OPERATION ::= { --Timer m
+ ARGUMENT
+ CheckIMEI-Arg
+ RESULT
+ CheckIMEI-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unknownEquipment}
+ CODE local:43 }
+
+-- subscriber management operations
+
+insertSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ InsertSubscriberDataArg
+ RESULT
+ InsertSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:7 }
+
+deleteSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ DeleteSubscriberDataArg
+ RESULT
+ DeleteSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:8 }
+
+-- fault recovery operations
+
+reset OPERATION ::= { --Timer m
+ ARGUMENT
+ ResetArg
+ CODE local:37 }
+
+forwardCheckSS-Indication OPERATION ::= { --Timer s
+ CODE local:38 }
+
+restoreData OPERATION ::= { --Timer m
+ ARGUMENT
+ RestoreDataArg
+ RESULT
+ RestoreDataRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:57 }
+
+-- gprs location information retrieval operations
+
+sendRoutingInfoForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ SendRoutingInfoForGprsArg
+ RESULT
+ SendRoutingInfoForGprsRes
+ ERRORS {
+ absentSubscriber |
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ callBarred }
+ CODE local:24 }
+
+-- failure reporting operations
+
+failureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ FailureReportArg
+ RESULT
+ FailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:25 }
+
+-- gprs notification operations
+
+noteMsPresentForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMsPresentForGprsArg
+ RESULT
+ NoteMsPresentForGprsRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:26 }
+
+noteMM-Event OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMM-EventArg
+ RESULT
+ NoteMM-EventRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ mm-EventNotSupported}
+ CODE local:89 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000000..3866b1e6e5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
@@ -0,0 +1,62 @@
+MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+;
+
+IMPORTS
+ AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+;
+
+ActivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ traceType [2] TraceType,
+ omc-Id [3] AddressString OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+TraceReference ::= OCTET STRING (SIZE (1..2))
+
+TraceType ::= INTEGER
+ (0..255)
+ -- Trace types are fully defined in TS GSM 12.08.
+
+ActivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000000..adc50bd436
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,91 @@
+MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ tracingBufferFull
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+FROM MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+ ISDN-AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+
+activateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ ActivateTraceModeArg
+ RESULT
+ ActivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ tracingBufferFull}
+ CODE local:50 }
+
+deactivateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ DeactivateTraceModeArg
+ RESULT
+ DeactivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber}
+ CODE local:51 }
+
+sendIMSI OPERATION ::= { --Timer m
+ ARGUMENT
+ ISDN-AddressString
+ RESULT
+ IMSI
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:58 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Protocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Protocol.asn
new file mode 100644
index 0000000000..68dfb986c8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-Protocol.asn
@@ -0,0 +1,176 @@
+MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+ updateGprsLocation,
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+ checkIMEI,
+ insertSubscriberData,
+ deleteSubscriberData,
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+ provideSubscriberInfo,
+ anyTimeInterrogation,
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+ sendRoutingInfoForGprs,
+ failureReport,
+ noteMsPresentForGprs,
+ noteMM-Event,
+ noteSubscriberDataModified
+
+
+FROM MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+FROM MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+FROM MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+FROM MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+ prepareGroupCall,
+ processGroupCallSignalling,
+ forwardGroupCallSignalling,
+ sendGroupCallEndSignal
+FROM MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+ provideSubscriberLocation,
+ sendRoutingInfoForLCS,
+ subscriberLocationReport
+FROM MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+secureTransportClass1,
+secureTransportClass2,
+secureTransportClass3,
+secureTransportClass4
+
+FROM MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+;
+Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | purgeMS |
+sendIdentification | updateGprsLocation | prepareHandover | sendEndSignal |
+processAccessSignalling | forwardAccessSignalling | prepareSubsequentHandover |
+sendAuthenticationInfo | authenticationFailureReport | checkIMEI | insertSubscriberData |
+deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | provideSubscriberInfo |
+anyTimeInterrogation | anyTimeSubscriptionInterrogation | anyTimeModification |
+sendRoutingInfoForGprs | failureReport |noteMsPresentForGprs | noteMM-Event |
+noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | sendIMSI |
+sendRoutingInfo | provideRoamingNumber | resumeCallHandling | setReportingState | statusReport | remoteUserFree | ist-Alert |
+ist-Command | registerSS | eraseSS | activateSS | deactivateSS | interrogateSS |
+processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify |
+registerPassword | getPassword | ss-InvocationNotification | registerCC-Entry | eraseCC-Entry |
+sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus |
+alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall |
+processGroupCallSignalling | forwardGroupCallSignalling | sendGroupCallEndSignal |
+provideSubscriberLocation | sendRoutingInfoForLCS | subscriberLocationReport |
+secureTransportClass1 |secureTransportClass2 | secureTransportClass3 | secureTransportClass4}
+
+
+
+-- The following operation codes are reserved for operations
+-- existing in previous versions of the protocol
+
+-- Operation Name AC used Oper. Code
+--
+-- sendParameters map-ac infoRetrieval (14) version1 (1) local:9
+-- processUnstructuredSS-Data map-ac networkFunctionalSs (18) version1 (1) local:19
+-- performHandover map-ac handoverControl (11) version1 (1) local:28
+-- performSubsequentHandover map-ac handoverControl (11) version1 (1) local:30
+-- provideSIWFSNumber map-ac sIWFSAllocation (12) version3 (3) local:31
+-- siwfs-SignallingModify map-ac sIWFSAllocation (12) version3 (3) local:32
+-- noteInternalHandover map-ac handoverControl (11) version1 (1) local:35
+-- noteSubscriberPresent map-ac mwdMngt (24) version1 (1) local:48
+-- alertServiceCentreWithoutResult map-ac shortMsgAlert (23) version1 (1) local:49
+-- traceSubscriberActivity map-ac handoverControl (11) version1 (1) local:52
+-- beginSubscriberActivity map-ac networkFunctionalSs (18) version1 (1) local:54
+
+-- The following error codes are reserved for errors
+-- existing in previous versions of the protocol
+
+-- Error Name AC used Error Code
+--
+-- unknownBaseStation map-ac handoverControl (11) version1 (1) local:2
+-- invalidTargetBaseStation map-ac handoverControl (11) version1 (1) local:23
+-- noRadioResourceAvailable map-ac handoverControl (11) version1 (1) local:24
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000000..664baa1b41
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
@@ -0,0 +1,217 @@
+MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res,
+ SM-DeliveryOutcome,
+ AlertReason,
+ Additional-Number
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ SignalInfo,
+ IMSI,
+ LMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+RoutingInfoForSM-Arg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ sm-RP-PRI [1] BOOLEAN,
+ serviceCentreAddress [2] AddressString,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsSupportIndicator [7] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- receiving of two numbers from the HLR
+ sm-RP-MTI [8] SM-RP-MTI OPTIONAL,
+ sm-RP-SMEA [9] SM-RP-SMEA OPTIONAL }
+
+SM-RP-MTI ::= INTEGER (0..10)
+ -- 0 SMS Deliver
+ -- 1 SMS Status Report
+ -- other values are reserved for future use and shall be discarded if
+ -- received
+
+SM-RP-SMEA ::= OCTET STRING (SIZE (1..12))
+ -- this parameter contains an address field which is encoded
+ -- as defined in 3GPP TS 23.040. An address field contains 3 elements :
+ -- address-length
+ -- type-of-address
+ -- address-value
+
+RoutingInfoForSM-Res ::= SEQUENCE {
+ imsi IMSI,
+ locationInfoWithLMSI [0] LocationInfoWithLMSI,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+LocationInfoWithLMSI ::= SEQUENCE {
+ networkNode-Number [1] ISDN-AddressString,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ gprsNodeIndicator [5] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the
+ -- Network Node Number
+ additional-Number [6] Additional-Number OPTIONAL
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ }
+
+Additional-Number ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString}
+ -- additional-number can be either msc-number or sgsn-number
+ -- if received networkNode-number is msc-number then the
+ -- additional number is sgsn-number
+ -- if received networkNode-number is sgsn-number then the
+ -- additional number is msc-number
+
+MO-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ imsi IMSI OPTIONAL }
+
+MO-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ moreMessagesToSend NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SM-RP-DA ::= CHOICE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI,
+ serviceCentreAddressDA [4] AddressString,
+ noSM-RP-DA [5] NULL}
+
+SM-RP-OA ::= CHOICE {
+ msisdn [2] ISDN-AddressString,
+ serviceCentreAddressOA [4] AddressString,
+ noSM-RP-OA [5] NULL}
+
+ReportSM-DeliveryStatusArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ sm-DeliveryOutcome SM-DeliveryOutcome,
+ absentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM
+ OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSupportIndicator [2] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- handling of two delivery outcomes
+ deliveryOutcomeIndicator [3] NULL OPTIONAL,
+ -- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome
+ -- is for GPRS
+ additionalSM-DeliveryOutcome [4] SM-DeliveryOutcome OPTIONAL,
+ -- If received, additionalSM-DeliveryOutcome is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent
+ additionalAbsentSubscriberDiagnosticSM [5] AbsentSubscriberDiagnosticSM OPTIONAL
+ -- If received additionalAbsentSubscriberDiagnosticSM is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM
+ -- shall be absent
+ }
+
+SM-DeliveryOutcome ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ absentSubscriber (1),
+ successfulTransfer (2)}
+
+ReportSM-DeliveryStatusRes ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertServiceCentreArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ ...}
+
+InformServiceCentreArg ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ mw-Status MW-Status OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- additionalAbsentSubscriberDiagnosticSM may be present only if
+ -- absentSubscriberDiagnosticSM is present.
+ -- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and
+ -- absentSubscriberDiagnosticSM is for non-GPRS
+
+MW-Status ::= BIT STRING {
+ sc-AddressNotIncluded (0),
+ mnrf-Set (1),
+ mcef-Set (2) ,
+ mnrg-Set (3)} (SIZE (6..16))
+ -- exception handling:
+ -- bits 4 to 15 shall be ignored if received and not understood
+
+ReadyForSM-Arg ::= SEQUENCE {
+ imsi [0] IMSI,
+ alertReason AlertReason,
+ alertReasonIndicator NULL OPTIONAL,
+ -- alertReasonIndicator is set only when the alertReason
+ -- sent to HLR is for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ReadyForSM-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertReason ::= ENUMERATED {
+ ms-Present (0),
+ memoryAvailable (1)}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-Code.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-Code.asn
new file mode 100644
index 0000000000..d3f0957648
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-Code.asn
@@ -0,0 +1,183 @@
+MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN Country
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callSessionRelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call/session
+ -- is established from the target MS
+callSessionUnrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+serviceType SS-Code ::= '10110101'B
+ -- allow location by LCS clients of a designated LCS service type
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000000..5cf9178353
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
@@ -0,0 +1,337 @@
+MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS 3GPP TS 23.038 [25]
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
new file mode 100644
index 0000000000..2eac16551d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
@@ -0,0 +1,98 @@
+MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ SecureTransportArg,
+ SecureTransportRes,
+ SecurityHeader,
+ ProtectedPayload
+;
+
+IMPORTS
+ IMSI
+
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+SecureTransportArg ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
+ -- transported operation
+
+SecureTransportRes ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the result of the securely
+ -- transported operation
+
+SecurityHeader ::= SEQUENCE {
+ securityParametersIndex SecurityParametersIndex,
+ originalComponentIdentifier OriginalComponentIdentifier,
+ initialisationVector InitialisationVector OPTIONAL,
+ ...}
+
+ProtectedPayload ::= OCTET STRING(SIZE(1.. 3438))
+ -- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
+ -- syntax value of the component parameter identified by the
+ -- originalComponentIdentifier.
+ -- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
+ -- the transfer syntax value of the component
+ -- parameter identified by the originalComponentIdentifier, followed by
+ -- the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the transfer syntax value of the component parameter.
+ -- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
+ -- payload carries the encrypted transfer syntax
+ -- value of the component parameter identified by the
+ -- originalComponentIdentifier, followed by the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the encrypted transfer syntax value of the component parameter.
+ -- See 33.200.
+ -- The length of the protectedPayload is adjusted according to the capabilities of
+ -- the lower protocol layers
+
+SecurityParametersIndex ::= OCTET STRING (SIZE(4))
+
+InitialisationVector ::= OCTET STRING (SIZE(14))
+ -- the internal structure is defined as follows:
+ -- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
+ -- and indicates the number of intervals of 100 milliseconds
+ -- elapsed since 1st January 2002, 0:00:00 UTC
+ -- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
+ -- within the PLMN. It is the entity's E.164 number without CC and
+ -- NDC. It is TBCD-coded, padded with zeros.
+ -- Octets 11 to 14: PROP. This 32 bit value is used to make the
+ -- InitialisationVector unique within the same TVP period.
+ -- The content is not standardized.
+
+
+OriginalComponentIdentifier ::= CHOICE {
+ operationCode [0] OperationCode,
+ errorCode [1] ErrorCode,
+ userInfo [2] NULL}
+
+OperationCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+ErrorCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
new file mode 100644
index 0000000000..dfb830cddd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
@@ -0,0 +1,78 @@
+MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ secureTransportClass1,
+ secureTransportClass2,
+ secureTransportClass3,
+ secureTransportClass4
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ dataMissing,
+ secureTransportError,
+ unexpectedDataValue
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ SecureTransportArg,
+ SecureTransportRes
+
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+;
+
+secureTransportClass1 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:78 }
+
+secureTransportClass2 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:79 }
+
+secureTransportClass3 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ CODE local:80 }
+
+secureTransportClass4 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ CODE local:81 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000000..0cca86ceac
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,155 @@
+-- asn1ct:compile("MAP-ShortMessageServiceOperations",[ber_bin, {outdir, "../compiled/umts_map"}]).
+
+MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ teleserviceNotProvisioned,
+ callBarred,
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+;
+
+sendRoutingInfoForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForSM-Arg
+ RESULT
+ RoutingInfoForSM-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ teleserviceNotProvisioned |
+ callBarred |
+ absentSubscriberSM}
+ CODE local:45 }
+
+mo-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MO-ForwardSM-Arg
+ RESULT
+ MO-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ facilityNotSupported |
+ sm-DeliveryFailure}
+ CODE local:46 }
+
+mt-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MT-ForwardSM-Arg
+ RESULT
+ MT-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ subscriberBusyForMT-SMS |
+ sm-DeliveryFailure |
+ absentSubscriberSM}
+ CODE local:44 }
+
+reportSM-DeliveryStatus OPERATION ::= { --Timer s
+ ARGUMENT
+ ReportSM-DeliveryStatusArg
+ RESULT
+ ReportSM-DeliveryStatusRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ messageWaitingListFull}
+ CODE local:47 }
+
+alertServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ AlertServiceCentreArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:64 }
+
+informServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ InformServiceCentreArg
+ CODE local:63 }
+
+readyForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ ReadyForSM-Arg
+ RESULT
+ ReadyForSM-Res
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber}
+ CODE local:66 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000000..7c89273c8b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,295 @@
+MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ unknownAlphabet,
+ ussd-Busy,
+ absentSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ shortTermDenial,
+ longTermDenial,
+ facilityNotSupported
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RegisterSS-Arg,
+ SS-Info,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ Password,
+ GuidanceInfo,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+-- supplementary service handling operations
+
+registerSS OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterSS-Arg
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility}
+ CODE local:10 }
+
+eraseSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus
+ }
+ CODE local:11 }
+
+activateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ ss-Incompatibility |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:12 }
+
+deactivateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:13 }
+
+interrogateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ InterrogateSS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable}
+ CODE local:14 }
+
+processUnstructuredSS-Request OPERATION ::= { --Timer 10 minutes
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownAlphabet |
+ callBarred}
+ CODE local:59 }
+
+unstructuredSS-Request OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:60 }
+
+unstructuredSS-Notify OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:61 }
+
+registerPassword OPERATION ::= { --Timer ml
+ ARGUMENT
+ SS-Code
+ RESULT
+ Password
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ ss-SubscriptionViolation |
+ pw-RegistrationFailure |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ LINKED {
+ getPassword}
+ CODE local:17 }
+
+getPassword OPERATION ::= { --Timer m
+ ARGUMENT
+ GuidanceInfo
+ RESULT
+ Password
+ CODE local:18 }
+
+ss-InvocationNotification OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-InvocationNotificationArg
+ RESULT
+ SS-InvocationNotificationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:72 }
+
+registerCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterCC-EntryArg
+ RESULT
+ RegisterCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ shortTermDenial |
+ longTermDenial |
+ facilityNotSupported}
+ CODE local:76 }
+
+eraseCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ EraseCC-EntryArg
+ RESULT
+ EraseCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus}
+ CODE local:77 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-TS-Code.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-TS-Code.asn
new file mode 100644
index 0000000000..eface38b31
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MAP-TS-Code.asn
@@ -0,0 +1,87 @@
+MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS 3GPP TS 22.030:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MobileDomainDefinitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
new file mode 100644
index 0000000000..30e7143882
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
@@ -0,0 +1,38 @@
+MobileDomainDefinitions {itu-t (0) identified-organization (4) etsi (0)
+ mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+-- Mobile DomainId
+mobileDomainId OBJECT IDENTIFIER ::=
+ {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)}
+
+-- Mobile Subdomains
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+gsm-AccessId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Access (2)}
+
+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Operation-Maintenance (3)}
+
+gsm-MessagingId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Messaging (4)}
+
+-- Common Component Ids for structuring Mobile Subdomains
+CommonComponentId ::= INTEGER (0..9)
+
+ac-Id CommonComponentId ::= 0
+
+as-Id CommonComponentId ::= 1
+
+ase-Id CommonComponentId ::= 2
+
+moduleId CommonComponentId ::= 3
+
+er-Id CommonComponentId ::= 4
+
+END -- MobileDomainDefinitions \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..d4d2eecea1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,167 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..74be149bb0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,127 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..714b96b5c3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,99 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TC-Notation-Extensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
new file mode 100644
index 0000000000..89bfd105ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
@@ -0,0 +1,87 @@
+-- Module TC-Notation-Extensions (Q.775:06/1997)
+
+TC-Notation-Extensions {itu-t recommendation q 775 modules(2)
+ notation-extension(4) version1(1)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ TCMessage{}
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+ Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}, combine{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ CONTRACT, OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ UniDialoguePDU, uniDialogue-as-id
+ FROM UnidialoguePDUs {itu-t recommendation q 773 modules(2)
+ unidialoguePDUs(3) version1(1)}
+ DialoguePDU, dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &dialogueMode DialogueMode,
+ &termination Termination OPTIONAL,
+ &componentGrouping BOOLEAN DEFAULT TRUE,
+ &dialogueAndComponentGrouping BOOLEAN DEFAULT TRUE,
+ &AdditionalASEs OBJECT IDENTIFIER OPTIONAL,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ DIALOGUE MODE &dialogueMode
+ [TERMINATION &termination]
+ [COMPONENT GROUPING ALLOWED &componentGrouping]
+ [DIALOGUE WITH COMPONENTS ALLOWED &dialogueAndComponentGrouping]
+ [ADDITIONAL ASES &AdditionalASEs]
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+DialogueMode ::= ENUMERATED {structured(1), unstructured(2)}
+
+Termination ::= ENUMERATED {basic(1), prearranged(2)}
+
+dialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ DialoguePDU
+ IDENTIFIED BY dialogue-as-id
+}
+
+uniDialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ UniDialoguePDU
+ IDENTIFIED BY uniDialogue-as-id
+}
+
+TCSingleAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{AllOperations {package}}, {AllOperations {package}}}
+
+TCConsumerAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{ConsumerPerforms {package}}, {ConsumerPerforms {package}}}
+
+TCSupplierAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{SupplierPerforms {package}}, {SupplierPerforms {package}}}
+
+AllPackagesAS{APPLICATION-CONTEXT:ac} ::=
+ TCSingleAS
+ {combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&InitiatorSupplierOf},
+ {...}, --was illegaly empty, needs to be changed
+ { -- Information Object of class OPERATION-PACKAGE to be defined --}}}
+
+ConnectionAS{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Examples.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Examples.asn
new file mode 100644
index 0000000000..17667af920
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Examples.asn
@@ -0,0 +1,72 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Examples {itu-t recommendation q 775 modules(2) examples(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+provideRoutingInformation OPERATION ::= {
+ ARGUMENT RequestArgument
+ RESULT RoutingInformation
+ ERRORS
+ {invalidCalledNumber | subscriberNotReachable | calledBarred |
+ processingFailure}
+ LINKED {getCallingPartyAddress}
+}
+
+-- timer T-pi = 10 s
+getCallingPartyAddress OPERATION ::= {
+ RESULT CallingPartyAddress
+ ERRORS {callingPartyAddressNotAvailable | processingFailure}
+}
+
+-- timer T-gp = 5 s
+invalidCalledNumber ERROR ::= {CODE local:1
+}
+
+subscriberNotReachable ERROR ::= {CODE local:2
+}
+
+calledBarred ERROR ::= {CODE local:3
+}
+
+callingPartyAddressNotAvailable ERROR ::= {CODE local:4
+}
+
+processingFailure ERROR ::= {CODE local:5
+}
+
+-- data types
+RequestArgument ::= SEQUENCE {
+ calledNumber IsdnNumber,
+ basicService BasicServiceIndicator OPTIONAL
+}
+
+RoutingInformation ::= CHOICE {
+ reroutingNumber [0] IMPLICIT IsdnNumber,
+ forwardedToNumber [1] IMPLICIT IsdnNumber
+}
+
+BasicServiceIndicator ::= ENUMERATED {speech(0), unrestrictedDigital(1)}
+
+CallingPartyAddress ::= IsdnNumber
+
+IsdnNumber ::= SEQUENCE {
+ typeOfAddress TypeOfAddress,
+ digits TelephonyString
+}
+
+TypeOfAddress ::= ENUMERATED {national(0), international(1), private(2)}
+
+TelephonyString ::=
+ IA5String
+ (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" |
+ "#"))(SIZE (1..15))
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Tools.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Tools.asn
new file mode 100644
index 0000000000..09ea9d936f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAP-Tools.asn
@@ -0,0 +1,47 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Tools {itu-t recommendation q 775 modules(2) tools(1) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ cancel,
+ cancelFailed,
+ cancelled
+;
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+
+ TCInvokeIdSet
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+;
+
+cancel OPERATION ::= {
+ ARGUMENT present < TCInvokeIdSet
+ -- a TC-user may redefine this type to include
+ -- an empty result so that it becomes a Class 1 operation
+ ERRORS {cancelFailed}
+}
+
+-- timer = 15 s
+cancelFailed ERROR ::= {
+ PARAMETER
+ SET {problem [0] CancelProblem,
+ invokeId [1] present < TCInvokeIdSet}
+}
+
+CancelProblem ::= ENUMERATED {
+ unknownInvocation(0), tooLate(1), notCancellable(2)}
+
+-- a TC-user may redefine this type to include application-specific problems
+cancelled ERROR ::=
+ {}
+
+-- an error of this type should be included in the error list of cancellable operations
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAPMessages.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAPMessages.asn
new file mode 100644
index 0000000000..906cac23c8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/TCAPMessages.asn
@@ -0,0 +1,149 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module TCAPMessages (Q.773:06/1997)
+-- asn1ct:compile("TCAPMessages",[ber_bin]).
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- Start - Added by Eranga
+ dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)}
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+ FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+ gsm-MessagingId
+ FROM MobileDomainDefinitions {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- End - Added by Eranga
+;
+
+-- Start - Added by Eranga
+
+mapSpecificAS ABSTRACT-SYNTAX ::= {
+ MapSpecificPDUs
+ IDENTIFIED BY gsm-MessagingId
+}
+
+MapSpecificPDUs ::=
+ TCMessage{{MAPOperations-Invokable}, {MAPOperations-Returnable}}
+
+
+MAPOperations-Invokable OPERATION ::=
+ {sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM}
+MAPOperations-Returnable OPERATION ::=
+ {reportSM-DeliveryStatus | alertServiceCentre | informServiceCentre | readyForSM}
+
+-- End - Added by Eranga
+
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/UnidialoguePDUs.asn b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/UnidialoguePDUs.asn
new file mode 100644
index 0000000000..4244cc8e65
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/tcapsystem/UnidialoguePDUs.asn
@@ -0,0 +1,26 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module UnidialoguePDUs (Q.773:06/1997)
+UnidialoguePDUs {itu-t recommendation q 773 modules(2) unidialoguePDUs(3)
+ version1(1)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS uniDialogue-as-id, UniDialoguePDU;
+
+-- Abstract syntax name for unstructured dialogue APDUs
+uniDialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)}
+
+UniDialoguePDU ::= CHOICE {unidialoguePDU AUDT-apdu
+}
+
+AUDT-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+END -- UNIDialoguePDU
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/test_records.erl b/lib/asn1/test/asn1_bin_SUITE_data/test_records.erl
new file mode 100644
index 0000000000..b2c9797fdc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/test_records.erl
@@ -0,0 +1,87 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(test_records).
+
+-export(['check_record_names_OTP-5812'/1]).
+
+%-include("test_server.hrl").
+%-include_lib("test_server/include/test_server.hrl").
+
+-define(line,put(test_server_loc,{?MODULE,?LINE}),).
+
+-include("NBAP-PDU-Discriptions.hrl").
+-include("NBAP-PDU-Contents.hrl").
+-include("NBAP-Containers.hrl").
+-include("NBAP-CommonDataTypes.hrl").
+-include("NBAP-IEs.hrl").
+
+
+
+
+'check_record_names_OTP-5812'(Msg) ->
+ io:format("Msg: ~n~p~n",[Msg]),
+ check_record_names(Msg).
+
+check_record_names({initiatingMessage,
+ #'InitiatingMessage'{procedureID = ProcedureID,
+ criticality = _Criticality,
+ messageDiscriminator = _MessageDisc,
+ transactionID = _TransactionID,
+ value = Value}}) ->
+
+ ?line ok = check_record_ProcedureID(ProcedureID),
+ ?line ok = check_record_Value(Value).
+
+check_record_ProcedureID(#'ProcedureID'{}) ->
+ ok;
+check_record_ProcedureID(_) -> false.
+
+check_record_Value(#'ResourceStatusIndication'{protocolIEs = ProtocolIEs}) ->
+ ?line ok = check_record_ProtocolIEs(ProtocolIEs);
+check_record_Value(_) -> false.
+
+check_record_ProtocolIEs([#'ProtocolIE-Field'{value =IndicationType}|_]) ->
+ ?line ok = check_record_NFResourceStatusInd(IndicationType);
+check_record_ProtocolIEs(_) -> false.
+
+check_record_NFResourceStatusInd({'no-Failure',#'No-Failure-ResourceStatusInd'{'local-Cell-InformationList'=[LCIPF]}}) ->
+ 'check_record_NFResourceStatusInd_ProtocolIE-Field'(LCIPF);
+check_record_NFResourceStatusInd(_) -> false.
+
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(#'ProtocolIE-Field'{value=LCI}) ->
+ ?line ok = check_record_LCInfoResourceStatusInd(LCI);
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(_) -> false.
+
+check_record_LCInfoResourceStatusInd(#'Local-Cell-InformationItem-ResourceStatusInd'{commonChannelsCapacityConsumptionLaw=[CCCCL],dedicatedChannelsCapacityConsumptionLaw=[DCCCL],'iE-Extensions' = [LCIRE]}) ->
+ ?line ok = check_record_CCCCL(CCCCL),
+ ?line ok = check_record_DCCCL(DCCCL),
+ ?line ok = check_record_LCIRE(LCIRE).
+
+check_record_CCCCL(#'CommonChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_CCCCL(_) -> false.
+
+check_record_DCCCL(#'DedicatedChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_DCCCL(_) -> false.
+check_record_LCIRE(#'ProtocolExtensionField'{}) ->
+ ok;
+check_record_LCIRE(_) -> false.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/testobj.erl b/lib/asn1/test/asn1_bin_SUITE_data/testobj.erl
new file mode 100644
index 0000000000..be7ceee7d1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/testobj.erl
@@ -0,0 +1,1443 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testobj).
+
+-include("RANAP.hrl").
+
+-compile(export_all).
+
+-define(ranap, 'RANAP').
+
+
+%% These are possible Reason-values for sccp_disconnect_req in RANPM
+%%
+%% 0,0,0,0,0,1,0,0, % Message-type
+%% 0,0,0,0,0,0,0,0, % Dest local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,0,1,
+%% 0,0,0,0,0,0,0,0, % Source local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,1,0,
+
+run() ->
+ ok = run_com_id(),
+ ok = run_dir_tsf_2cn(),
+ ok = run_dir_tsf_2rnc(),
+ ok = run_init_ue(),
+ ok = run_iu_rel_cmd(),
+ ok = run_iu_rel_cmp(),
+ ok = run_rab_ass_rsp_delete(),
+ ok = run_rab_ass_rsp_setup(),
+ ok = run_rab_create(),
+ ok = run_rab_rel(),
+ ok = run_reset(),
+ ok = run_reset_res(),
+ ok = run_sm_cmd(),
+ ok = run_sm_cmp(),
+ ok = run_sm_rej().
+
+
+ranap_pdu_contents(Enc,Type) ->
+ {initiatingMessage, #'InitiatingMessage'{
+ procedureCode = Type,
+ criticality = ignore, %{'Criticality', ignore}, %XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_outcome(Enc,Type) ->
+ {outcome, #'Outcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_suc(Enc,Type) ->
+ {successfulOutcome, #'SuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_unsuc(Enc,Type) ->
+ {unsuccessfulOutcome, #'UnsuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+
+
+run_rab_rel() ->
+ RAS = rab_release_request(),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecRel}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecRel])
+ end,
+ case DecRel of
+ [[{_ProtIEField1,_Code1,_Crit1,DecRelList}]] ->
+ io:format("~w~n~n", [DecRelList])
+ end,
+ ok.
+
+run_rab_create() ->
+ RabID = [0,1,0,1,0,1,0,1],
+ Teid = [0,13,83,211],
+ SgsnIP = [0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0],
+ RAS = rab_create_request(RabID, Teid, SgsnIP),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecSetOrMod}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{'ProtocolIE-FieldPair',_Code1,_Crit1,DecSetOrModFirst,_Crit2,DecSetOrModSecond}]] ->
+ io:format("~w~n~n", [DecSetOrModFirst]),
+ io:format("~w~n~n", [DecSetOrModSecond])
+ end,
+ ok.
+
+decode_initiating_ras(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentRequest',Val)
+ end.
+
+
+run_rab_ass_rsp_setup() ->
+ RAR = rab_assignment_response_setup(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField,52,_Crit,DecSetOrMod}], _ASN1novalue} ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{_ProtIEField1,51,_Crit1,DecSetOrModFirst}]] ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrModFirst])
+ end,
+ ok.
+
+run_rab_ass_rsp_delete() ->
+ RAR = rab_assignment_response_delete(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField2,43,_Crit2,DecRelsd}], _ASN1novalue} ->
+ io:format("Released: ~w~n~n", [DecRelsd])
+ end,
+ case DecRelsd of
+ [[{_ProtIEField3,_Code3,_Crit3,DecRelsdItem}]] ->
+ io:format("Released: ~w~n~n", [DecRelsdItem])
+ end,
+ ok.
+
+decode_initiating_rar(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentResponse',Val)
+ end.
+
+
+
+run_init_ue() ->
+ INI = initial_ue(),
+ io:format("~w~n~n", [INI]),
+ RanapINI = ranap_pdu_contents(INI, 19), % 19 = InitialUE-Message
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapINI),
+ EncRanapINI = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapINI]),
+
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapINI),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'InitialUE-Message',[{_ProtIEField,Code,_Crit,DecCN},
+ {_ProtIEField1,Code1,_Crit1,
+ {_LAI,LaiPlmnid,LaiLac,_ASN1novalue}},
+ {_ProtIEField2,Code2,_Crit2,DecRAC},
+ {_ProtIEField3,Code3,_Crit3,
+ {_SAI,SaiPlmnid,SaiLac,SaiSac,_ASN1novalue}},
+ {_ProtIEField4,Code4,_Crit4,DecNASPDU},
+ {_ProtIEField5,Code5,_Crit5,DecIUSCID},
+ {_ProtIEField6,Code6,_Crit6,
+ {_GRI,GlPlmnid,GlRNCID}}],_ASN1novalue} ->
+ io:format("CN Dom Ind: ~w~n", [DecCN]),
+ io:format("Code: ~w~n~n", [Code]),
+ io:format("LaiPlmnid: ~w~n", [LaiPlmnid]),
+ io:format("LaiLac: ~w~n", [LaiLac]),
+ io:format("Code: ~w~n~n", [Code1]),
+ io:format("RAC: ~w~n", [DecRAC]),
+ io:format("Code: ~w~n~n", [Code2]),
+ io:format("SaiPlmnid: ~w~n", [SaiPlmnid]),
+ io:format("SaiLac: ~w~n", [SaiLac]),
+ io:format("SaiSac: ~w~n", [SaiSac]),
+ io:format("Code: ~w~n~n", [Code3]),
+ io:format("NAS-PDU: ~w~n", [DecNASPDU]),
+ io:format("Code: ~w~n~n", [Code4]),
+ io:format("Iu Sign Con Id: ~w~n", [DecIUSCID]),
+ io:format("Code: ~w~n~n", [Code5]),
+ io:format("GlPlmnid: ~w~n", [GlPlmnid]),
+ io:format("GlRNCID: ~w~n", [GlRNCID]),
+ io:format("Code: ~w~n~n", [Code6])
+ end,
+ ok.
+
+% NasPdu = extract_ie({init_ue},'InitUE-MessageIEsNAS-PDU',ListsinLists),
+% io:format("Tebax~n~w~n~n", [NasPdu]),
+% ok.
+
+decode_initiating_ini(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 19 -> % InitialUE-Message
+ wrapper_decode(?ranap, 'InitialUE-Message',Val)
+ end.
+
+
+run_dir_tsf_2cn() ->
+ DIR = direct_transfer_cn(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecLAI},
+ {_ProtIEField3,_Code3,_Crit3,DecRAC}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("LAI: ~w~n~n", [DecLAI]),
+ io:format("RAC: ~w~n~n", [DecRAC])
+ end,
+ ok.
+
+run_dir_tsf_2rnc() ->
+ DIR = direct_transfer_rnc(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecSAPI}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("SAPI: m~w~n~n", [DecSAPI])
+ end,
+ ok.
+
+decode_initiating_dir(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 20 -> % DirectTransfer
+ wrapper_decode(?ranap, 'DirectTransfer',Val)
+ end.
+
+% List = tuple2list(Dec),
+% io:format("~w~n~n", [List]),
+% NasPdu = extract_ie({dir_trans},'DirTransIEs-NAS-PDU',List),
+% io:format("~w~n~n", [NasPdu]),
+% ok.
+
+
+run_iu_rel_cmd() ->
+ IUR = iu_release_command(),
+ io:format("~w~n~n", [IUR]),
+ RanapIUR = ranap_pdu_contents(IUR, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUR),
+ EncRanapIUR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUR),
+ io:format("General: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'Iu-ReleaseCommand',[{_ProtIEField,_Code,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause])
+ end.
+
+run_iu_rel_cmp() ->
+ IUP = iu_release_complete(),
+ io:format("~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents_suc(IUP, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUP]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("~w~n~n", [DecGeneral]).
+
+% run_iu_rel_req() ->
+% IUP = iu_release_request(),
+% io:format("~w~n~n", [IUP]),
+% {ok, Tmp} = wrapper_encode(?ranap, 'Iu-ReleaseRequest', IUP),
+% EncIUP = lists:flatten(Tmp),
+% RanapIUP = ranap_pdu_contents(EncIUP, 1), % 1 = Iu-Release
+% {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+% EncRanapIUP = lists:flatten(Tmp2),
+% io:format("~w~n~n", [EncRanapIUP]),
+% case wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP) of
+% {ok,{initiatingMessage,
+% #'InitiatingMessage'{procedureCode=ProcedureCode,
+% criticality=Criticality,
+% value=Value}}} ->
+% DecGeneral = decode_initiating_iu(ProcedureCode,Criticality,Value)
+% end,
+% io:format("~w~n~n", [DecGeneral]).
+
+decode_initiating_iu(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 1 -> % Iu-Release
+ wrapper_decode(?ranap, 'Iu-ReleaseComplete',Val)
+ end.
+
+
+
+
+
+run_com_id() ->
+ COM = common_id(),
+ io:format("~w~n~n", [COM]),
+ RanapCOM = ranap_pdu_contents(COM, 15), % 15 = CommonID
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapCOM),
+ EncRanapCOM = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapCOM]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapCOM),
+ io:format("DecGeneral: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'CommonID',[{_ProtIEField,23,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause]);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+decode_common_id(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 15 -> % Common ID
+ wrapper_decode(?ranap, 'CommonID',Val);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+
+
+run_sm_cmd() ->
+ DIR = security_mode_cmd(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeCommand',
+ [{_ProtIEField1,12,_Crit1,DecIPI},
+ {_ProtIEField2,11,_Crit2,DecEI},
+ {_ProtIEField3,75,_Crit3,DecKS}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPI]),
+ io:format("Encryption Information: ~w~n~n", [DecEI]),
+ io:format("Key Status: ~w~n~n", [DecKS])
+ end,
+ ok.
+
+run_sm_cmp() ->
+ DIR = security_mode_cmp(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_suc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeComplete',
+ [{_ProtIEField1,6,_Crit1,DecIPA},
+ {_ProtIEField2,5,_Crit2,DecEI}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+ io:format("Encryption Information: ~w~n~n", [DecEI])
+ end,
+ ok.
+
+run_sm_rej() ->
+ DIR = security_mode_rej(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_unsuc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{unsuccessfulOutcome,
+ #'UnsuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'SecurityModeReject',
+% [{_ProtIEField1,6,_Crit1,Value1},
+% {_ProtIEField2,5,_Crit2,Value2}],
+% _ASN1novalue}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'IntegrityProtectionAlgorithm', Value1),
+% {ok,DecEI} = wrapper_decode(?ranap, 'EncryptionAlgorithm', Value2),
+% io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+% io:format("Encryption Information: ~w~n~n", [DecEI])
+% end,
+ ok.
+
+decode_initiating_sm(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeCommand',Val)
+ end.
+
+decode_suc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeComplete',Value)
+ end.
+
+decode_unsuc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeReject',Value)
+ end.
+
+
+
+
+
+
+
+run_reset() ->
+ IUP = reset(),
+ io:format("Reset: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 9), % 9 = Reset
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset: ~w~n~n", [DecGeneral]),
+
+ IUP1 = reset_ack(),
+ io:format("Reset Ack:~w~n~n", [IUP1]),
+ RanapIUP1 = ranap_pdu_contents_suc(IUP1, 9), % 9 = Reset
+ {ok, Tmp21} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP1),
+ EncRanapIUP1 = lists:flatten(Tmp21),
+ io:format("Coded Reset Ack: ~w~n~n", [EncRanapIUP1]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP1),
+ io:format("Decoded Reset Ack: ~w~n~n", [DecGeneral1]).
+
+% decode_init_reset(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'Reset',Val)
+% end.
+
+% decode_init_reset_ack(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'ResetAcknowledge',Val)
+% end.
+
+
+
+
+
+
+
+
+
+run_reset_res() ->
+ IUP = reset_res([12,13,14,15,16,17,18,19,20]),
+ io:format("Reset Rsource: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 27), % 27 = Reset Res
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset Resource: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset Resource: ~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'ResetResource',
+% [{'ProtocolIE-Field',3,ignore,Value1},
+% {'ProtocolIE-Field',4,ignore,Value2},
+% {'ProtocolIE-Field',77,ignore,Value3},
+% {'ProtocolIE-Field',86,ignore,Value4}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% io:format("Value3: ~w~n~n", [Value3]),
+% io:format("Value4: ~w~n~n", [Value4]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value1),
+% {ok,{_Radio,DecEI}} = wrapper_decode(?ranap, 'Cause', Value2),
+% {ok,DecRR} = wrapper_decode(?ranap, 'ResetResourceList', Value3),
+% DecRRI = case DecRR of
+% [[{'ProtocolIE-Field',78,ignore,Value5}]] ->
+% {ok,{_apa,DecRI,_asn1novalue}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value5),
+% DecRI
+% end,
+% {ok,{_Gl_id,PLMN_ID,RNC_ID}} = wrapper_decode(?ranap, 'GlobalRNC-ID', Value4),
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA]),
+% io:format("Cause: ~w~n~n", [DecEI]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI]),
+% io:format("GlobalRNC-ID: PLMN_ID: ~w, RNC_ID: ~w~n~n", [PLMN_ID,RNC_ID])
+% end,
+
+ RSA = reset_res_ack([12,13,14,15,16,17,18,19,20]),
+ io:format("~n~nReset Resource Ack:~w~n~n", [RSA]),
+ RanapRSA = ranap_pdu_contents_suc(RSA, 27), % 27 = Reset Res
+ {ok, Tmp12} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRSA),
+ EncRanapRSA = lists:flatten(Tmp12),
+ io:format("Coded Reset Resource Ack: ~w~n~n", [EncRanapRSA]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRSA),
+ io:format("Decoded Reset Resource Ack: ~w~n~n", [DecGeneral1]).
+% case DecGeneral1 of
+% {ok,{'ResetResourceAcknowledge',
+% [{'ProtocolIE-Field',3,ignore,Value12},
+% {'ProtocolIE-Field',77,ignore,Value32}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value12]),
+% io:format("Value3: ~w~n~n", [Value32]),
+% {ok,DecIPA2} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value12),
+% {ok,DecRR2} = wrapper_decode(?ranap, 'ResetResourceList', Value32),
+% DecRRI2 = case DecRR2 of
+% [[{'ProtocolIE-Field',78,ignore,Value52}]] ->
+% {ok,{_apa2,DecRI2,_asn1novalue2}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value52),
+% DecRI2
+% end,
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA2]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR2]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI2])
+% end.
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Kod f�r att s�tta ihop RANAP-meddelanden
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+rab_release_request() ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs = rab_assign_request_release_ies()
+ }.
+
+rab_assign_request_release_ies() ->
+ [rab_assign_release_rab_release_list()].
+
+rab_assign_release_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 41, % 41 = id-RAB-ReleaseList
+ criticality = ignore,%XXX
+ value = rab_release_list()
+ }.
+
+rab_release_list() ->
+ [release_lists()].
+
+release_lists() ->
+ [rab_release_item_ies()].
+
+rab_release_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 40, % 40 = id-RAB-ReleaseItem
+ criticality = ignore,%XXX
+ value = rab_release_item()}.
+
+rab_release_item() ->
+ #'RAB-ReleaseItem'{'rAB-ID' = rab_id(),
+ cause = cause_nas()}.
+
+cause_nas() ->
+ {nAS, 'normal-release'}.
+
+
+
+
+
+
+rab_create_request(Rabid, Teid, SgsnIP) ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs =
+ rab_assign_create_request_ies(Rabid, Teid, SgsnIP)
+ }.
+
+rab_assign_create_request_ies(Rabid, Teid, SgsnIP) ->
+ [rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP)].
+
+rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-Field'{
+ id = 54, %id-RAB-SetupOrModifyList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modify_list(Rabid, Teid, SgsnIP)
+ }.
+
+rab_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ [setup_or_modify_lists(Rabid, Teid, SgsnIP)].
+
+setup_or_modify_lists(Rabid, Teid, SgsnIP) ->
+ [rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP)].
+
+rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-FieldPair'{
+ id = 53,
+ firstCriticality = reject, %{'Criticality',reject},
+ firstValue = rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP),
+ secondCriticality = ignore, %{'Criticality', ignore}
+ secondValue = rab_setup_or_modify_item_second()
+ }.
+
+rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP) ->
+ #'RAB-SetupOrModifyItemFirst'{
+ 'rAB-ID' = Rabid, %ras_rab_id(Rabid),
+ 'rAB-Parameters' = rab_parameters(),
+ userPlaneInformation = user_plane_information(),
+ transportLayerAddress = SgsnIP,
+ iuTransportAssociation = ras_iu_transport_association(Teid)
+ }.
+
+ras_iu_transport_association(Teid) ->
+ {'gTP-TEI', Teid}.
+
+rab_id() ->
+ [0,1,0,1,0,1,0,1].
+
+rab_parameters() ->
+ #'RAB-Parameters'{
+ trafficClass = background,
+ 'rAB-AsymmetryIndicator' = 'symmetric-bidirectional',
+ maxBitrate = [200000],
+ deliveryOrder = 'delivery-order-not-requested',
+ 'maxSDU-Size' = 11,
+ 'sDU-Parameters' = sdu_parameters(),
+ trafficHandlingPriority = 14 %{'TrafficHandlingPriority', 14} %14=lowest
+ }.
+
+user_plane_information() ->
+ #'UserPlaneInformation'{
+ userPlaneMode = 'support-mode-for-predefined-SDU-sizes',
+ 'uP-ModeVersions' = 2#1010101010101010
+ }.
+
+transport_layer_address() ->
+ [1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1,1,1].
+% 1 2 3 4
+
+iu_transport_association() ->
+ {'gTP-TEI', [31,32,33,34]}.
+
+sdu_parameters() ->
+ [#'SDU-Parameters_SEQOF'{
+ 'sDU-ErrorRatio' = sdu_error_ratio(),
+ residualBitErrorRatio = residual_bit_error_ratio(),
+ deliveryOfErroneousSDU = no
+ }].
+
+sdu_error_ratio() ->
+ #'SDU-ErrorRatio'{
+ mantissa = 9,
+ exponent = 4
+ }.
+
+residual_bit_error_ratio() ->
+ #'ResidualBitErrorRatio'{
+ mantissa = 9,
+ exponent = 5
+ }.
+
+%allocationOrRetentionPriority() ->
+% #'AllocationOrRetentionPriority'{
+% priorityLevel = lowest,
+% 'pre-emptionCapability' = {'Pre-emptionCapability','can-trigger-pre-emption'},
+% 'pre-emptionVulnerability' = {'Pre-emptionVulnerability','not-vulnerable-to-pre-emption'},
+% queuingAllowed = {'QueuingAllowed','queueing-allowed'}
+% }.
+
+rab_setup_or_modify_item_second() -> % returns OpenType value
+ #'RAB-SetupOrModifyItemSecond'{
+ 'pDP-TypeInformation' = ['ipv4'],
+ dataVolumeReportingIndication = 'do-not-report',
+ 'dl-GTP-PDU-SequenceNumber' = 1,
+ 'ul-GTP-PDU-SequenceNumber' = 2,
+ 'dl-N-PDU-SequenceNumber' = 0,
+ 'ul-N-PDU-SequenceNumber' = 0
+ }.
+
+
+
+
+rab_assignment_response_setup() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_setup()
+ }.
+
+rab_assignement_response_ies_setup() ->
+ [rab_ass_rsp_setup_or_modified_list()].
+
+rab_ass_rsp_setup_or_modified_list() ->
+ #'ProtocolIE-Field'{
+ id = 52, % 52=RAB-AssignRABSetupOrModifiedList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modified_list()
+ }.
+
+rab_setup_or_modified_list() ->
+ [rab_setup_or_modified_item_list()].
+
+rab_setup_or_modified_item_list() ->
+ [rab_setup_or_modified_item_ies()].
+
+rab_setup_or_modified_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 51, % 51 = RAB-SetupOrModifiedItemIEs
+ criticality = reject, %{'Criticality', reject},
+ value = rab_setup_or_modified_item()
+ }.
+
+rab_setup_or_modified_item() ->
+ #'RAB-SetupOrModifiedItem'{
+ 'rAB-ID' = rab_id(),
+ transportLayerAddress = transport_layer_address(),
+ iuTransportAssociation = iu_transport_association()
+ }.
+
+
+
+
+
+
+rab_assignment_response_delete() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_delete()
+ }.
+
+rab_assignement_response_ies_delete() ->
+ [rab_ass_rsp_rab_release_list()].
+
+rab_ass_rsp_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 43, % 41 = RAB-AssignRABReleasedList
+ criticality = ignore,%XXX
+ value = rab_released_list()
+ }.
+
+rab_released_list() ->
+ [released_lists()].
+
+released_lists() ->
+ [rab_released_item_ies()]. % 'ReleasedLists'
+
+rab_released_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 42, % 42 = RAB-ReleaseItemIEs
+ criticality = ignore,%XXX
+ value = rab_released_item()
+ }.
+
+rab_released_item() ->
+ #'RAB-ReleasedItem'{
+ 'rAB-ID' = rab_id()
+ }.
+
+
+
+initial_ue() ->
+ #'InitialUE-Message'{
+ protocolIEs = initial_ue_ies()
+ }.
+
+initial_ue_ies() ->
+ [cn_domain_ind(),
+ init_lai(),
+ init_rac(),
+ init_sai(),
+ init_nas_pdu(),
+ init_iu_sign_con_id(),
+ init_global_rnc_id_initial_ue()].
+
+
+cn_domain_indicator() ->
+ {'CN-DomainIndicator', 'ps-domain'}.
+
+init_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+lai() ->
+ #'LAI'{'pLMN-ID' = [25,26,27],
+ lAC = [25,26]}.
+
+init_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+rac() ->
+ [25].
+
+init_sai() ->
+ #'ProtocolIE-Field'{
+ id = 58, % 58 = SAI
+ criticality = ignore,%XXX
+ value = sai()
+ }.
+
+sai() ->
+ #'SAI'{'pLMN-ID' = [28,29,30], %KOLLA!!!!
+ lAC = [30,31],
+ sAC = [32,33]}.
+
+init_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_ar()
+ }.
+
+pdu_ac()->
+ [16#08,
+ 16#03].
+
+pdu_ar() ->
+ [16#08, % Skip indicator | Protocol discriminator
+ 16#01, % Attach Request
+ 16#01,16#b7, % MsNetworkCapability
+ 16#21, % Cksn | AttachType
+ 16#55,16#06, % DrxParameter
+ 16#05,16#61,16#86,16#14,16#09,16#f7, % MsId
+ 16#21,16#63,16#54,16#ac,16#dc,16#d5, % OldRai
+ 16#0a,16#f0,16#f1,16#f2,16#f3,16#f4, % MsRaCap
+ 16#f5,16#f6,16#f7,16#f8,16#f9 % MsRaCap continues
+ %%16#19,16#ab,16#cd,16#ef, % P-TMSI signature
+ %%16#17,16#5b, % Requested READY timer
+ %%16#91 % TMSI status
+ ].
+
+pdu_pdp() ->
+ [2#01001010, % Transaction_id | Protocol_disc
+ 2#01000001, % Message_type
+ 2#00001001, % Nsapi
+ 1, % Llc_sapi (dummie_value)
+ 1,1,1,1, % QoS dummie_value=1 (19 octets)
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 7, % PDP_Address (Ltot=7),
+ 2#00000001, % ietf/etsi organisation
+ 2#00100001, % IPv4
+ 198, % IP address MSD
+ 124,
+ 56,
+ 124, % IP address LSD
+ 1, % APN optional (octet1=IEI)
+ 25, % APN total length
+ 4, % length lable1
+ 116,101,115,116, % lable1 = test
+ 4, % length lable2
+ 116,101,115,116, % lable2 = test
+ 4, % lenght lable3
+ 116,101,115,116, % lable3 = test
+ 4, % length lable3
+ 116,101,115,116, % lable4 = test
+ 4, % length label5
+ 103,112,114,115
+ ].
+
+pdu_auth_rsp() ->
+ [8,16#13,0,1,2,3,16#21,2,0,1].
+
+pdu_auth_fail() ->
+ [8,16#1C,1,16#22,2,0,1].
+
+init_iu_sign_con_id() ->
+ #'ProtocolIE-Field'{
+ id = 79, % 79 = id-IuSigConId
+ criticality = ignore,%XXX
+ value = iu_sign_con_id()
+ }.
+
+iu_sign_con_id() ->
+ 53245.
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,1]
+
+init_global_rnc_id_initial_ue() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+global_rnc_id() ->
+ #'GlobalRNC-ID'{'pLMN-ID' = [10,11,12], 'rNC-ID' = 2048}.
+
+direct_transfer_cn() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_cn_ies()
+ }.
+
+direct_transfer_cn_ies() ->
+ [dir_cn_nas_pdu(),
+ dir_lai(),
+ dir_rac()].
+
+dir_cn_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_fail()
+ }.
+
+dir_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = id-LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+dir_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = id-RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+
+
+
+
+
+direct_transfer_rnc() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_rnc_ies()
+ }.
+
+direct_transfer_rnc_ies() ->
+ [dir_rnc_nas_pdu(),
+ dir_sapi()].
+
+dir_rnc_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_rsp()
+ }.
+
+dir_sapi() ->
+ #'ProtocolIE-Field'{
+ id = 59, % 59 = id-SAPI
+ criticality = ignore,%XXX
+ value = sapi()
+ }.
+
+sapi() ->
+ 'normal-priority'.
+
+
+
+
+
+iu_release_command() ->
+ #'Iu-ReleaseCommand'{
+ protocolIEs = iu_rel_command_ies()
+ }.
+
+iu_rel_command_ies() ->
+ [iu_relcomcause_nas()].
+
+iu_relcomcause_nas() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause()
+ }.
+
+cause() ->
+ cause_nas().
+
+% cause() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'CauseNAS',
+% {'CauseNAS', 'normal-release'}),
+% Bytes.
+
+
+
+
+
+
+iu_release_complete() ->
+ #'Iu-ReleaseComplete'{
+ protocolIEs = iu_rel_comp_ies()
+ }.
+
+iu_rel_comp_ies() ->
+ [].
+% 'iu-RelCompRABDataVolumeReportList' = asn1_NOVALUE,
+% 'iu-RelCompRABReleasedListIuRelComp' = asn1_NOVALUE,
+% 'iu-RelCompCriticalityDiagnostics' = asn1_NOVALUE
+% }.
+
+
+
+
+
+
+
+
+common_id() ->
+ #'CommonID'{
+ protocolIEs = common_id_ies()
+ }.
+
+common_id_ies() ->
+ [common_id_imsi()].
+
+common_id_imsi() ->
+ #'ProtocolIE-Field'{
+ id = 23, % 23 = Perm. NAS ID (IMSI)
+ criticality = ignore, %ignore,%XXX %XXX
+ value = imsi()
+ }.
+
+imsi() ->
+ {iMSI, [1,2,3,4,5,6,7,8]}.
+
+
+
+
+
+
+
+
+
+
+security_mode_cmd() ->
+ #'SecurityModeCommand'{
+ protocolIEs = security_mode_cmd_ies()
+ }.
+
+security_mode_cmd_ies() ->
+ [security_mode_cmd_integ(),
+ security_mode_cmd_encr(),
+ security_mode_cmd_keystat()
+ ].
+
+security_mode_cmd_integ() ->
+ #'ProtocolIE-Field'{
+ id = 12, % 12 = Integ info
+ criticality = ignore,%{'Criticality', ignore},
+ value = integ_info()
+ }.
+
+integ_info() ->
+ #'IntegrityProtectionInformation'{
+ permittedAlgorithms = perm_integ_algs(),
+ key = key() }.
+
+perm_integ_algs() ->
+ [integ_prot_alg()].
+
+integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+key() ->
+ [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0].
+
+
+
+security_mode_cmd_encr() ->
+ #'ProtocolIE-Field'{
+ id = 11, % 11 = Encr info
+ criticality = ignore,%{'Criticality', ignore},
+ value = encr_info()
+ }.
+
+encr_info() ->
+ #'EncryptionInformation'{
+ permittedAlgorithms = perm_encr_algs(),
+ key = key() }.
+
+perm_encr_algs() ->
+ [encr_prot_alg()].
+
+encr_prot_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+security_mode_cmd_keystat() ->
+ #'ProtocolIE-Field'{
+ id = 75, % 75 = id-KeyStatus
+ criticality = ignore,%{'Criticality', ignore},
+ value = key_status()
+ }.
+
+key_status() ->
+ new.
+
+
+
+
+
+security_mode_cmp() ->
+ #'SecurityModeComplete'{
+ protocolIEs = security_mode_cmp_ies()
+ }.
+
+security_mode_cmp_ies() ->
+ [security_mode_cmp_ch_integ_prot_alg(),
+ security_mode_cmp_ch_encr_alg()
+ ].
+
+security_mode_cmp_ch_integ_prot_alg() ->
+ #'ProtocolIE-Field'{
+ id = 6, % 6 = Chosen Integ prot alg
+ criticality = ignore,%XXX
+ value = ch_integ_prot_alg()
+ }.
+
+ch_integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+
+security_mode_cmp_ch_encr_alg() ->
+ #'ProtocolIE-Field'{
+ id = 5, % 5 = Chosen Encr alg
+ criticality = ignore,%XXX
+ value = ch_encr_alg()
+ }.
+
+ch_encr_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+
+
+
+security_mode_rej() ->
+ #'SecurityModeReject'{
+ protocolIEs = security_mode_rej_ies()
+ }.
+
+security_mode_rej_ies() ->
+ [security_mode_rej_cause()].
+
+
+security_mode_rej_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio() % Se Reset
+ }.
+
+
+
+
+
+
+
+
+reset() ->
+ #'Reset'{
+ protocolIEs = reset_ies()
+ }.
+reset_ies() ->
+ {'Reset_protocolIEs', % this identifier is very unneccesary here
+ [reset_cause(),
+ cn_domain_ind(), % Se initial Ue
+ init_global_rnc_id() % ---- " ----
+ ]}.
+init_global_rnc_id() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio()
+ }.
+%cause_open() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'Cause', cause_radio()),
+% Bytes.
+cause_radio() ->
+ {radioNetwork, 'release-due-to-utran-generated-reason'}.
+
+
+cn_domain_ind(IEs) when atom(IEs)->
+ setelement(1,cn_domain_ind(),IEs).
+
+cn_domain_ind() ->
+ #'ProtocolIE-Field'{
+ id = 3, % 3 = InitUE-MessageIEsCN-DomainIndicator
+ criticality = ignore,%XXX
+ value = cn_domain_indicator()
+ }.
+
+
+
+
+reset_ack() ->
+ #'ResetAcknowledge'{
+ protocolIEs = reset_ack_ies()
+ }.
+reset_ack_ies() ->
+ {'ResetAcknowledge_protocolIEs', % very unneccesary
+ [cn_domain_ind()]}. % Se initial Ue
+
+
+
+
+
+reset_res(IuSCId) ->
+ #'ResetResource'{
+ protocolIEs = reset_res_ies(IuSCId)
+ }.
+
+reset_res_ies(IuSCId) ->
+ {'ResetResource_protocolIEs', % very unneccesary
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_cause() % Se reset
+ ,reset_res_list(IuSCId)
+ ,init_global_rnc_id_reset_res() % ---- " ----
+ ]}.
+
+init_global_rnc_id_reset_res() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_res_list(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 77, % 77 = id-IuSigConIdList
+ criticality = ignore,%XXX
+ value = res_list(IuSCId)
+ }.
+
+res_list(IuSCId) ->
+ iu_Sig_Con_Id_list(IuSCId,[]).
+
+iu_Sig_Con_Id_list([],List) ->
+ List;
+
+iu_Sig_Con_Id_list([IuSCId|T],List) ->
+ Ie = [iu_Sig_Con_Id_ie(IuSCId)],
+ iu_Sig_Con_Id_list(T,[Ie|List]).
+
+iu_Sig_Con_Id_ie(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 78, % 78 = id-IuSigConIdItem
+ criticality = ignore,%XXX
+ value = iu_Sig_Con_Id_item(IuSCId)}.
+
+iu_Sig_Con_Id_item(IuSCId) ->
+ #'ResetResourceItem'{
+ iuSigConId = IuSCId
+% 53432
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0]
+ }.
+
+
+reset_res_ack(IuSCId) ->
+ #'ResetResourceAcknowledge'{
+ protocolIEs = reset_res_ack_ies(IuSCId)
+ }.
+reset_res_ack_ies(IuSCId) ->
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_res_list(IuSCId) % Se Reset Ressource
+ ].
+
+
+int2bin(Int) ->
+ EmptyList = [],
+ BitList_b1 = [Int band 2#1 | EmptyList],
+ BitList_b2 = [(Int bsr 1) band 2#1 | BitList_b1],
+ BitList_b3 = [(Int bsr 2) band 2#1 | BitList_b2],
+ BitList_b4 = [(Int bsr 3) band 2#1 | BitList_b3],
+ BitList_b5 = [(Int bsr 4) band 2#1 | BitList_b4],
+ BitList_b6 = [(Int bsr 5) band 2#1 | BitList_b5],
+ BitList_b7 = [(Int bsr 6) band 2#1 | BitList_b6],
+ BitList = [(Int bsr 7) band 2#1 | BitList_b7],
+ io:format("~n~w~n", [BitList]).
+
+
+%%%%%%%%%%%%%%%%% wrappers %%%%%%%%%%%%%%%%%%%%%%%%
+
+wrapper_encode(Module,Type,Value) ->
+ case asn1rt:encode(Module,Type,Value) of
+ {ok,X} when binary(X) ->
+ {ok, binary_to_list(X)};
+ {ok,X} ->
+ {ok, binary_to_list(list_to_binary(X))};
+ Error ->
+ Error
+ end.
+
+wrapper_decode(Module,Type,Bytes) ->
+ case Module:encoding_rule() of
+ ber ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ ber_bin_v2 when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin_v2 ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ per ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ uper_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes))
+ end.
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ACSE-1.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ACSE-1.asn
new file mode 100644
index 0000000000..3f1385323a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ACSE-1.asn
@@ -0,0 +1,253 @@
+-- Module ACSE-1 (X.237:04/1995)
+ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)}
+-- ACSE-1 refers to ACSE version 1
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ acse-as-id, ACSE-apdu, aCSE-id, Application-context-name, AP-title,
+ AE-qualifier, AE-title, AP-invocation-identifier, AE-invocation-identifier,
+ Mechanism-name, Authentication-value, ACSE-requirements, ObjectSet;
+
+IMPORTS
+ Name, RelativeDistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- The data types Name and RelativeDistinguishedName are imported from ISO/IEC 9594-2.
+-- object identifier assignments
+acse-as-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+
+-- may be used to reference the abstract syntax of the ACSE APDUs
+aCSE-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}
+
+-- may be used to identify the Association Control ASE.
+-- top level CHOICE
+ACSE-apdu ::= CHOICE {
+ aarq AARQ-apdu,
+ aare AARE-apdu,
+ rlrq RLRQ-apdu,
+ rlre RLRE-apdu,
+ abrt ABRT-apdu,
+ ...
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ called-AP-title [2] AP-title OPTIONAL,
+ called-AE-qualifier [3] AE-qualifier OPTIONAL,
+ called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL,
+ called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL,
+ calling-AP-title [6] AP-title OPTIONAL,
+ calling-AE-qualifier [7] AE-qualifier OPTIONAL,
+ calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL,
+ calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [13] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ responding-AP-title [4] AP-title OPTIONAL,
+ responding-AE-qualifier [5] AE-qualifier OPTIONAL,
+ responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL,
+ responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL,
+ -- This following field shall only be present if the Authentication functional unit is selected.
+ responding-authentication-value
+ [10] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [11] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information
+ [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ abort-diagnostic [1] IMPLICIT ABRT-diagnostic OPTIONAL,
+ -- This field shall not be present if only the Kernel is used.
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-diagnostic ::= ENUMERATED {
+ no-reason-given(1), protocol-error(2),
+ authentication-mechanism-name-not-recognized(3),
+ authentication-mechanism-name-required(4), authentication-failure(5),
+ authentication-required(6), ...
+ }
+
+ABRT-source ::= INTEGER {acse-service-user(0), acse-service-provider(1)
+}(0..1, ...)
+
+ACSE-requirements ::= BIT STRING {
+ authentication(0), application-context-negotiation(1)}
+
+Application-context-name-list ::= SEQUENCE OF Application-context-name
+
+Application-context-name ::= OBJECT IDENTIFIER
+
+-- Application-entity title productions follow (not in alphabetical order)
+AP-title ::= CHOICE {
+ ap-title-form1 AP-title-form1,
+ ap-title-form2 AP-title-form2,
+ ...
+}
+
+AE-qualifier ::= CHOICE {
+ ae-qualifier-form1 AE-qualifier-form1,
+ ae-qualifier-form2 AE-qualifier-form2,
+ ...
+}
+
+-- When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must
+-- have the same form to allow the construction of an AE-title as discussed in CCITT Rec. X.665 |
+-- ISO/IEC 9834-6.
+AP-title-form1 ::=
+ Name
+
+-- The value assigned to AP-title-form1 is The Directory Name of an application-process title.
+AE-qualifier-form1 ::=
+ RelativeDistinguishedName
+
+-- The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular
+-- application-entity of the application-process identified by AP-title-form1.
+AP-title-form2 ::= OBJECT IDENTIFIER
+
+AE-qualifier-form2 ::= INTEGER
+
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in CCITT Rec. X.650 | ISO 7498-3, an application-entity title is composed of an application-
+-- process title and an application-entity qualifier. The ACSE protocol provides for the transfer of an
+-- application-entity title value by the transfer of its component values. However, the following data type
+-- is provided for International Standards that reference a single syntactic structure for AE titles.
+AE-title-form1 ::=
+ Name
+
+-- For access to The Directory (ITU-T Rec. X.500-Series | ISO/IEC 9594), an AE title has AE-title-form1.
+-- This value can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an
+-- AARQ or AARE APDU. A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier-
+-- form1 may be found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-title-form2 ::= OBJECT IDENTIFIER
+
+-- A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be
+-- found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-invocation-identifier ::= INTEGER
+
+AP-invocation-identifier ::= INTEGER
+
+-- End of Application-entity title productions
+Associate-result ::= INTEGER {
+ accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)
+
+Associate-source-diagnostic ::= CHOICE {
+ acse-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2),
+ calling-AP-title-not-recognized(3),
+ calling-AP-invocation-identifier-not-recognized(4),
+ calling-AE-qualifier-not-recognized(5),
+ calling-AE-invocation-identifier-not-recognized(6),
+ called-AP-title-not-recognized(7),
+ called-AP-invocation-identifier-not-recognized(8),
+ called-AE-qualifier-not-recognized(9),
+ called-AE-invocation-identifier-not-recognized(10),
+ authentication-mechanism-name-not-recognized(11),
+ authentication-mechanism-name-required(12),
+ authentication-failure(13), authentication-required(14)}
+ (0..14, ...),
+ acse-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
+ (0..2, ...)
+}
+
+Association-information ::= SEQUENCE SIZE (1, ..., 0 | 2..MAX) OF EXTERNAL
+
+Authentication-value ::= CHOICE {
+ charstring [0] IMPLICIT GraphicString,
+ bitstring [1] IMPLICIT BIT STRING,
+ external [2] IMPLICIT EXTERNAL,
+ other
+ [3] IMPLICIT SEQUENCE {other-mechanism-name
+ MECHANISM-NAME.&id({ObjectSet}),
+ other-mechanism-value
+ MECHANISM-NAME.&Type
+ ({ObjectSet}{@.other-mechanism-name})}
+}
+
+-- The abstract syntax of (calling/responding) authentication-value is determined by the authentication
+-- mechanism used during association establishment. The authentication mechanism is either explicitly
+-- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism belonging to the class
+-- MECHANISM-NAME, or it is known implicitly by
+-- prior agreement between the communicating partners. If the "other" component is chosen, then
+-- the "mechanism-name" component must be present in accordance with
+-- ITU-T Rec. X.680 | ISO/IEC 8824. If the value "mechanism-name" occurs in the AARQ-apdu or the
+-- AARE-apdu, then that value must be the same as the value for "other-mechanism-name"
+Implementation-data ::= GraphicString
+
+Mechanism-name ::= OBJECT IDENTIFIER
+
+MECHANISM-NAME ::= TYPE-IDENTIFIER
+
+ObjectSet MECHANISM-NAME ::=
+ {...}
+
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}(0 | 1 | 30, ...)
+
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}(0 | 1 | 30, ...)
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/BasicAccessControl.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/CertificateExtensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Coding-Attributes.asn
new file mode 100644
index 0000000000..04060cf060
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Coding-Attributes.asn
@@ -0,0 +1,17 @@
+-- Module Character-Coding-Attributes (T.416:03/1993)
+
+Character-Coding-Attributes {2 8 1 6 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Character-Coding-Attributes;
+
+Character-Coding-Attributes ::= SET {
+}
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Presentation-Attributes.asn
new file mode 100644
index 0000000000..aed48ac26b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Presentation-Attributes.asn
@@ -0,0 +1,125 @@
+-- Module Character-Presentation-Attributes (T.416:03/1993)
+
+Character-Presentation-Attributes {2 8 1 6 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning;
+
+Character-Attributes ::= SET {
+ character-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ character-spacing [6] IMPLICIT INTEGER OPTIONAL,
+ line-spacing [7] IMPLICIT INTEGER OPTIONAL,
+ alignment [8] IMPLICIT Alignment OPTIONAL,
+ line-layout-table [9] IMPLICIT Layout-Table OPTIONAL,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition OPTIONAL,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator OPTIONAL,
+ character-fonts [12] IMPLICIT Character-Fonts OPTIONAL,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER OPTIONAL,
+ itemization [14] IMPLICIT Itemization OPTIONAL,
+ widow-size [15] IMPLICIT INTEGER OPTIONAL,
+ orphan-size [16] IMPLICIT INTEGER OPTIONAL,
+ graphic-character-sets [17] IMPLICIT OCTET STRING OPTIONAL,
+ indentation [19] IMPLICIT INTEGER OPTIONAL,
+ kerning-offset [20] IMPLICIT Kerning-Offset OPTIONAL,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing OPTIONAL,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning OPTIONAL,
+ first-line-offset [23] IMPLICIT INTEGER OPTIONAL,
+ code-extension-announcers [24] IMPLICIT OCTET STRING OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [1] IMPLICIT INTEGER
+}
+
+Alignment ::= INTEGER {
+ start-aligned(0), end-aligned(1), centred(2), justified(3)}
+
+Layout-Table ::= SET OF Tabulation-Stop
+
+Tabulation-Stop ::= SET {
+ tabulation-reference [0] IMPLICIT NumericString,
+ tabulation-position [1] IMPLICIT INTEGER,
+ alignment
+ [2] IMPLICIT INTEGER {start-aligned(0), end-aligned(1), centred(2),
+ aligned-around(3)},
+ alignment-character-string [3] IMPLICIT OCTET STRING OPTIONAL
+}
+
+-- string of graphic characters
+-- from the set of graphic elements
+-- specified by the presentation
+-- attributes "graphic character
+-- sets" and "graphic character
+-- subrepertoire"
+Graphic-Rendition ::= SET OF Graphic-Rendition-Aspect
+
+Character-Fonts ::= SET {
+ primary-font [0] IMPLICIT Font-Type OPTIONAL,
+ first-alternative-font [1] IMPLICIT Font-Type OPTIONAL,
+ second-alternative-font [2] IMPLICIT Font-Type OPTIONAL,
+ third-alternative-font [3] IMPLICIT Font-Type OPTIONAL,
+ fourth-alternative-font [4] IMPLICIT Font-Type OPTIONAL,
+ fifth-alternative-font [5] IMPLICIT Font-Type OPTIONAL,
+ sixth-alternative-font [6] IMPLICIT Font-Type OPTIONAL,
+ seventh-alternative-font [7] IMPLICIT Font-Type OPTIONAL,
+ eighth-alternative-font [8] IMPLICIT Font-Type OPTIONAL,
+ ninth-alternative-font [9] IMPLICIT Font-Type OPTIONAL
+}
+
+Font-Type ::= SET {
+ font-size [0] IMPLICIT INTEGER,
+ font-identifier [1] IMPLICIT INTEGER
+}
+
+Graphic-Rendition-Aspect ::= INTEGER {
+ cancel(0), increased-intensity(1), decreased-intensity(2), italicized(3),
+ underlined(4), slowly-blinking(5), rapidly-blinking(6), negative-image(7),
+ crossed-out(9), primary-font(10), first-alternative-font(11),
+ second-alternative-font(12), third-alternative-font(13),
+ fourth-alternative-font(14), fifth-alternative-font(15),
+ sixth-alternative-font(16), seventh-alternative-font(17),
+ eighth-alternative-font(18), ninth-alternative-font(19),
+ doubly-underlined(21), normal-intensity(22), not-italicized(23),
+ not-underlined(24), steady(25), variable-spacing(26), positive-image(27),
+ not-crossed-out(29), black-foreground(30), red-foreground(31),
+ green-foreground(32), yellow-foreground(33), blue-foreground(34),
+ magenta-foreground(35), cyan-foreground(36), white-foreground(37),
+ select-char-foreground-colour(38), black-background(40), red-background(41),
+ green-background(42), yellow-background(43), blue-background(44),
+ magenta-background(45), cyan-background(46), white-background(47),
+ select-char-background-colour(48), not-variable-spacing(50)}
+
+Formatting-Indicator ::= INTEGER {no(0), yes(1)}
+
+Itemization ::= SET {
+ identifier-alignment
+ [0] IMPLICIT INTEGER {no-itemization(0), start-aligned(1), end-aligned(2)},
+ identifier-start-offset [1] IMPLICIT INTEGER OPTIONAL,
+ identifier-end-offset [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Kerning-Offset ::= SET {
+ start-offset [0] IMPLICIT INTEGER,
+ end-offset [1] IMPLICIT INTEGER
+}
+
+Proportional-Line-Spacing ::= INTEGER {no(0), yes(1)}
+
+Pairwise-Kerning ::= INTEGER {no(0), yes(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Profile-Attributes.asn
new file mode 100644
index 0000000000..7ba5bf194a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Character-Profile-Attributes.asn
@@ -0,0 +1,54 @@
+-- Module Character-Profile-Attributes (T.416:03/1993)
+
+Character-Profile-Attributes {2 8 1 6 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Presentation-Feature, Character-Coding-Attribute,
+ Character-Content-Defaults;
+
+IMPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning
+ FROM Character-Presentation-Attributes;
+
+-- see 11.2
+Character-Presentation-Feature ::= CHOICE {
+ character-path [0] IMPLICIT One-Of-Four-Angles,
+ line-progression [1] IMPLICIT One-Of-Two-Angles,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles,
+ initial-offset [3] IMPLICIT Measure-Pair,
+ character-spacing [6] IMPLICIT INTEGER,
+ line-spacing [7] IMPLICIT INTEGER,
+ alignment [8] IMPLICIT Alignment,
+ line-layout-table [9] IMPLICIT Layout-Table,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator,
+ character-fonts [12] IMPLICIT Character-Fonts,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER,
+ itemization [14] IMPLICIT Itemization,
+ widow-size [15] IMPLICIT INTEGER,
+ orphan-size [16] IMPLICIT INTEGER,
+ graphic-character-sets [17] IMPLICIT OCTET STRING,
+ indentation [19] IMPLICIT INTEGER,
+ kerning-offset [20] IMPLICIT Kerning-Offset,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning,
+ first-line-offset [23] IMPLICIT INTEGER,
+ code-extension-announcers [24] IMPLICIT OCTET STRING
+}
+
+Character-Coding-Attribute ::= NULL
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+Character-Content-Defaults ::=
+ Character-Attributes
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Colour-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Colour-Attributes.asn
new file mode 100644
index 0000000000..24c7fafc38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Colour-Attributes.asn
@@ -0,0 +1,192 @@
+-- Module Colour-Attributes (T.415:03/1993)
+
+Colour-Attributes {2 8 1 5 14} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Colour-Expression, Colour-Table, Colour-Spaces-List, Colour-Characteristics;
+
+IMPORTS Character-Data
+ FROM Document-Profile-Descriptor; -- see 7.7
+
+Real-Or-Int ::= CHOICE {a REAL,
+ b INTEGER
+}
+
+Colour-Expression ::= SEQUENCE {
+ colour-access-mode [0] IMPLICIT INTEGER {direct(0), indexed(1)},
+ a
+ [1] CHOICE {direct-colour [0] IMPLICIT Direct-Colour,
+ indexed-colour [1] IMPLICIT Indexed-Colour}
+}
+
+Direct-Colour ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER OPTIONAL,
+ colour-specification [1] Colour-Specification OPTIONAL,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+}
+
+Colour-Specification ::= CHOICE {
+ cmyk-colour [0] IMPLICIT CMYK-Colour,
+ rgb-colour [1] IMPLICIT RGB-Colour,
+ cie-colour [2] IMPLICIT CIE-Colour
+}
+
+CMYK-Colour ::= SET {
+ c-value [0] Real-Or-Int,
+ m-value [1] Real-Or-Int,
+ y-value [2] Real-Or-Int,
+ k-value [3] Real-Or-Int OPTIONAL
+}
+
+RGB-Colour ::= SET {
+ r-value [0] Real-Or-Int,
+ g-value [1] Real-Or-Int,
+ b-value [2] Real-Or-Int
+}
+
+CIE-Colour ::= SET {
+ x-value [0] Real-Or-Int,
+ y-value [1] Real-Or-Int,
+ z-value [2] Real-Or-Int
+}
+
+Colour-Tolerance ::= CHOICE {
+ unspecified-tolerance [0] IMPLICIT NULL,
+ specified-tolerance [1] IMPLICIT Specified-Tolerance
+}
+
+Specified-Tolerance ::= SET {
+ tolerance-value [0] Real-Or-Int,
+ tolerance-space [1] IMPLICIT INTEGER {cieluv(3), cielab(4)}
+}
+
+Indexed-Colour ::= SET {index [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Table ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-table-entries
+ [1] IMPLICIT SET OF
+ SET {index [0] IMPLICIT INTEGER,
+ colour-coordinates [1] Colour-Specification,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+ }
+}
+
+Colour-Characteristics ::= SET {
+ colour-spaces-present
+ [0] IMPLICIT SEQUENCE OF
+ SET {colour-space-type [0] IMPLICIT Colour-Space-Type,
+ colour-calibration-type
+ [1] IMPLICIT Colour-Space-Calibration-Type},
+ colour-modes-present [1] IMPLICIT Colour-Modes-Present,
+ minimum-colour-tolerance [2] Colour-Tolerance OPTIONAL,
+ maximum-colour-table-length [3] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of colour table entries"
+ maximum-rgb-lut-length [4] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of look-up table entries"
+ maximum-cmy-k-grid-size [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Space-Type ::= INTEGER {rgb(0), cmyk(1), cmy(2), cieluv(3), cielab(4)}
+
+Colour-Space-Calibration-Type ::= INTEGER {
+ no-calibration(0), matrices(1), lookup-tables(2),
+ matrices-and-lookup-tables(3)}
+
+Colour-Modes-Present ::= INTEGER {direct(0), indexed(1), both(2)}
+
+Colour-Spaces-List ::= SET OF Colour-Space
+
+Colour-Space ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-space-type [1] IMPLICIT Colour-Space-Type,
+ colour-space-name [2] IMPLICIT Character-Data OPTIONAL,
+ colour-data-scaling [3] Colour-Data-Scaling OPTIONAL,
+ calibration-data [4] Calibration-Data OPTIONAL
+}
+
+Colour-Data-Scaling ::= SET {
+ first-component [0] IMPLICIT Scale-And-Offset,
+ second-component [1] IMPLICIT Scale-And-Offset,
+ third-component [2] IMPLICIT Scale-And-Offset,
+ fourth-component [3] IMPLICIT Scale-And-Offset OPTIONAL
+}
+
+Scale-And-Offset ::= SET {
+ colour-scale [0] Real-Or-Int,
+ colour-offset [1] Real-Or-Int
+}
+
+Calibration-Data ::= CHOICE {
+ rgb [0] IMPLICIT RGB-Calibration,
+ cmyk [1] IMPLICIT CMY-K-Calibration,
+ cmy [2] IMPLICIT CMY-K-Calibration,
+ cieluv [3] IMPLICIT CIE-Calibration,
+ cielab [4] IMPLICIT CIE-Calibration
+}
+
+CIE-Calibration ::= SET {reference-white [0] IMPLICIT CIE-Ref
+}
+
+RGB-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ matrix1 [1] IMPLICIT Three-by-Three-Matrix OPTIONAL,
+ lookup-table [3] IMPLICIT Colour-Lookup-Table OPTIONAL,
+ matrix2 [2] IMPLICIT Three-by-Three-Matrix OPTIONAL
+}
+
+Three-by-Three-Matrix ::= SEQUENCE {
+ row-1 Three-Nums,
+ row-2 Three-Nums,
+ row-3 Three-Nums
+}
+
+Three-Nums ::= SEQUENCE {
+ column-1 Real-Or-Int,
+ column-2 Real-Or-Int,
+ column-3 Real-Or-Int
+}
+
+Colour-Lookup-Table ::= SET {
+ number-of-entries [0] IMPLICIT INTEGER,
+ m [1] IMPLICIT INTEGER,
+ n [2] IMPLICIT INTEGER,
+ colour-table [3] IMPLICIT SET OF Colour-Table-Entry
+}
+
+Colour-Table-Entry ::= SET {
+ index [3] IMPLICIT INTEGER,
+ r [0] Real-Or-Int,
+ g [1] Real-Or-Int,
+ b [2] Real-Or-Int
+}
+
+CMY-K-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ comment [1] IMPLICIT Character-Data OPTIONAL,
+ cmyk-lut [2] IMPLICIT Grid-Specification
+}
+
+Grid-Specification ::=
+ SET OF
+ SET {grid-location [0] IMPLICIT CMYK-Colour,
+ grid-value [1] IMPLICIT Grid-Value}
+
+Grid-Value ::= SET {
+ x-value [0] IMPLICIT REAL,
+ y-value [1] IMPLICIT REAL,
+ z-value [2] IMPLICIT REAL
+}
+
+CIE-Ref ::= SET {
+ xn-value [0] Real-Or-Int,
+ yn-value [1] Real-Or-Int,
+ zn-value [2] Real-Or-Int
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DOR-definition.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DOR-definition.asn
new file mode 100644
index 0000000000..cd3330dc56
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DOR-definition.asn
@@ -0,0 +1,134 @@
+-- Module DOR-definition (ISO|IEC 10031-2:1991)
+DOR-definition {joint-iso-itu-t dor(4) reference-definition(0)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ AE-Identifier, Altered-value, DOR, dor-abstract-syntax, dor-syntax-asn1,
+ dorx, Extend-QoS, Local-reference, Locational-identifier, Produce-QoS,
+ QoS-level, Quality-of-Service, Requested-QoS-level,
+ Single-use-of-reference, Token;
+
+IMPORTS
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ PresentationAddress
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3};
+
+-- Defined Object Identifiers
+dorx OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t dor(11)}
+
+-- Object identifier for abstract syntax of DOR
+dor-abstract-syntax OBJECT IDENTIFIER ::=
+ {dorx reference-abstract-syntax(1)}
+
+-- Object identifier for abstract syntax of DOR with basic ASN.1 encodings in
+-- EXTERNAL
+dor-syntax-asn1 OBJECT IDENTIFIER ::=
+ {dorx reference-syntax(2) asn1(0)}
+
+-- Definition of DOR type
+DOR ::= SEQUENCE {
+ ae-identifier [0] AE-Identifier OPTIONAL,
+ -- mandatory in case of produce-operations and consume-operations
+ local-reference [1] Local-reference,
+ data-object-type OBJECT IDENTIFIER,
+ -- identifying the abstract syntax and the transfer syntax of the
+ -- referenced data value
+ quality-of-service [2] Quality-of-Service DEFAULT {},
+ token [3] Token OPTIONAL
+}
+
+AE-Identifier ::= SEQUENCE { -- at least one component shall be present
+ locational-identifier [0] Locational-identifier OPTIONAL,
+ direct-logical-identifier [1] DistinguishedName OPTIONAL,
+ indirect-logical-identifier [2] DistinguishedName OPTIONAL
+}
+
+Locational-identifier ::= SEQUENCE {
+ presentation-address [0] PresentationAddress,
+ ae-title [1] AE-title OPTIONAL,
+ -- as defined in ISO 8650:1988/Cor.1:1990
+ application-contexts SET OF OBJECT IDENTIFIER
+}
+
+Local-reference ::= SEQUENCE {
+ application [0] OCTET STRING OPTIONAL,
+ specific-reference [1] OCTET STRING
+}
+
+Quality-of-Service ::= SEQUENCE {
+ qoS-level [0] QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT GeneralizedTime,
+ -- specifying the produce time
+ level-3
+ [3] IMPLICIT SEQUENCE {produce-time GeneralizedTime,
+ fidelity-time GeneralizedTime}
+}
+
+Single-use-of-reference ::= BOOLEAN
+
+Token ::= CHOICE {
+ simpletoken OCTET STRING,
+ -- used to validate an access which use this DOR
+ externaltoken EXTERNAL -- for future proxy mechanism
+}
+
+-- Data types for produce-operations
+Produce-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+Requested-QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT NULL,
+ level-3 [3] IMPLICIT GeneralizedTime
+ -- specifying the requested fidelity-time
+}
+
+-- Data types for extending a specific QoS
+Extend-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level OPTIONAL,
+ -- if omitted, no change required
+ usage-of-reference Single-use-of-reference OPTIONAL
+ -- if omitted, no change required
+}
+
+-- Data types for requesting / indicating value alteration in produce-operation
+-- or access-operation
+Altered-value ::= ENUMERATED {
+ value-not-altered(1), value-altered(2), undefined(3)}
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END -- of DOR-definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DSAOperationalAttributeTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DSAOperationalAttributeTypes.asn
new file mode 100644
index 0000000000..df5e8489ea
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DSAOperationalAttributeTypes.asn
@@ -0,0 +1,186 @@
+-- Module DSAOperationalAttributeTypes (X.501:08/1997)
+DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-doa, id-kmr, informationFramework, distributedOperations,
+ opBindingManagement, selectedAttributeTypes
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, MATCHING-RULE, Name
+ FROM InformationFramework informationFramework
+ OperationalBindingID
+ FROM OperationalBindingManagement opBindingManagement
+ AccessPoint, MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ bitStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- data types
+DSEType ::= BIT STRING {
+ root(0), -- root DSE
+ glue(1), -- represents knowledge of a name only
+ cp(2), -- context prefix
+ entry(3), -- object entry
+ alias(4), -- alias entry
+ subr(5), -- subordinate reference
+ nssr(6), -- non-specific subordinate reference
+ supr(7), -- superior reference
+ xr(8), -- cross reference
+ admPoint(9), -- administrative point
+ subentry(10), -- subentry
+ shadow(11), -- shadow copy
+ immSupr(13), -- immediate superior reference
+ rhob(14), -- rhob information
+ sa(15), -- subordinate reference to alias entry
+ dsSubentry(16), -- DSA Specific subentry
+ familyMember(17)} -- family member
+
+SupplierOrConsumer ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier or consumer
+ agreementID [4] OperationalBindingID
+}
+
+SupplierInformation ::= SET {
+ COMPONENTS OF SupplierOrConsumer, -- supplier
+ supplier-is-master [5] BOOLEAN DEFAULT TRUE,
+ non-supplying-master [6] AccessPoint OPTIONAL
+}
+
+ConsumerInformation ::= SupplierOrConsumer -- consumer
+
+SupplierAndConsumers ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier
+ consumers [4] SET OF AccessPoint
+}
+
+-- attribute types
+dseType ATTRIBUTE ::= {
+ WITH SYNTAX DSEType
+ EQUALITY MATCHING RULE bitStringMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-dseType
+}
+
+myAccessPoint ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-myAccessPoint
+}
+
+superiorKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-superiorKnowledge
+}
+
+specificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-specificKnowledge
+}
+
+nonSpecificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-nonSpecificKnowledge
+}
+
+supplierKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX SupplierInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-supplierKnowledge
+}
+
+consumerKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX ConsumerInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-consumerKnowledge
+}
+
+secondaryShadows ATTRIBUTE ::= {
+ WITH SYNTAX SupplierAndConsumers
+ EQUALITY MATCHING RULE supplierAndConsumersMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-secondaryShadows
+}
+
+-- matching rules
+accessPointMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-accessPointMatch
+}
+
+masterAndShadowAccessPointsMatch MATCHING-RULE ::= {
+ SYNTAX SET OF Name
+ ID id-kmr-masterShadowMatch
+}
+
+supplierOrConsumerInformationMatch MATCHING-RULE ::= {
+ SYNTAX
+ SET {ae-title [0] Name,
+ agreement-identifier [2] INTEGER}
+ ID id-kmr-supplierConsumerMatch
+}
+
+supplierAndConsumersMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-supplierConsumersMatch
+}
+
+-- object identifier assignments
+-- dsa operational attributes
+id-doa-dseType OBJECT IDENTIFIER ::=
+ {id-doa 0}
+
+id-doa-myAccessPoint OBJECT IDENTIFIER ::= {id-doa 1}
+
+id-doa-superiorKnowledge OBJECT IDENTIFIER ::= {id-doa 2}
+
+id-doa-specificKnowledge OBJECT IDENTIFIER ::= {id-doa 3}
+
+id-doa-nonSpecificKnowledge OBJECT IDENTIFIER ::= {id-doa 4}
+
+id-doa-supplierKnowledge OBJECT IDENTIFIER ::= {id-doa 5}
+
+id-doa-consumerKnowledge OBJECT IDENTIFIER ::= {id-doa 6}
+
+id-doa-secondaryShadows OBJECT IDENTIFIER ::= {id-doa 7}
+
+-- knowledge matching rules
+id-kmr-accessPointMatch OBJECT IDENTIFIER ::=
+ {id-kmr 0}
+
+id-kmr-masterShadowMatch OBJECT IDENTIFIER ::= {id-kmr 1}
+
+id-kmr-supplierConsumerMatch OBJECT IDENTIFIER ::= {id-kmr 2}
+
+id-kmr-supplierConsumersMatch OBJECT IDENTIFIER ::= {id-kmr 3}
+
+END -- DSAOperationalAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Default-Value-Lists.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Default-Value-Lists.asn
new file mode 100644
index 0000000000..ef1187ba8c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Default-Value-Lists.asn
@@ -0,0 +1,143 @@
+-- Module Default-Value-Lists (T.415:03/1993)
+
+Default-Value-Lists {2 8 1 5 11} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Default-Value-Lists-Logical, Default-Value-Lists-Layout;
+
+IMPORTS
+ Style-Identifier, Category-Name
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, One-Of-Four-Angles, Medium-Type, Dimension-Pair, Transparency,
+ Colour, Border, Content-Background-Colour, Content-Foreground-Colour,
+ Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes; -- see 7.14
+
+Default-Value-Lists-Layout ::= SET {
+ page-set-attributes [1] IMPLICIT Page-Set-Attributes OPTIONAL,
+ page-attributes [2] IMPLICIT Page-Attributes OPTIONAL,
+ frame-attributes [3] IMPLICIT Frame-Attributes OPTIONAL,
+ block-attributes [4] IMPLICIT Block-Attributes OPTIONAL
+}
+
+Default-Value-Lists-Logical ::= SET {
+ composite-logical-attributes
+ [5] IMPLICIT Composite-Logical-Attributes OPTIONAL,
+ basic-logical-attributes [6] IMPLICIT Basic-Logical-Attributes OPTIONAL
+}
+
+Page-Set-Attributes ::= SET {
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL
+}
+
+Page-Attributes ::= SET {
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ page-position page-position < Attribute OPTIONAL,
+ medium-type medium-type < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Frame-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ layout-path layout-path < Attribute OPTIONAL,
+ permitted-categories permitted-categories < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Block-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colou colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Composite-Logical-Attributes ::= SET {
+ protection protection < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Basic-Logical-Attributes ::= SET {
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ protection protection < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Attribute ::= CHOICE {
+ position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Dimension-Pair,
+ transparency [2] IMPLICIT Transparency,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes,
+ layout-path [4] IMPLICIT One-Of-Four-Angles,
+ page-position [5] IMPLICIT Measure-Pair,
+ medium-type [6] IMPLICIT Medium-Type,
+ permitted-categories [7] IMPLICIT SET OF Category-Name,
+ layout-stream-categories [19] IMPLICIT SET OF Category-Name,
+ layout-stream-sub-categories [20] IMPLICIT SET OF Category-Name,
+ protection [8] IMPLICIT Protection,
+ presentation-style [9] IMPLICIT Style-Identifier,
+ layout-style [10] IMPLICIT Style-Identifier,
+ colour [11] IMPLICIT Colour,
+ colour-of-layout-object [14] Colour-Expression,
+ object-colour-table [15] IMPLICIT Colour-Table,
+ content-background-colour [16] Content-Background-Colour,
+ content-foreground-colour [17] Content-Foreground-Colour,
+ content-colour-table [18] IMPLICIT Colour-Table,
+ border [12] IMPLICIT Border,
+ sealed [13] IMPLICIT Sealed
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAbstractService.asn
new file mode 100644
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAccessProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAccessProtocol.asn
new file mode 100644
index 0000000000..10d6979f6d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryAccessProtocol.asn
@@ -0,0 +1,162 @@
+-- Module DirectoryAccessProtocol (X.519 TC2:08/1997)
+
+DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryAccessAC, id-rosObject-dua, id-rosObject-directory,
+ id-rosObject-dapDSA, id-contract-dap, id-package-dapConnection,
+ id-package-read, id-package-search, id-package-modify,
+ id-as-directoryAccessAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- application contexts
+directoryAccessAC APPLICATION-CONTEXT ::= {
+ CONTRACT dapContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryAccessAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryAccessAC
+}
+
+-- ROS objects
+dua ROS-OBJECT-CLASS ::= {INITIATES {dapContract}
+ ID id-rosObject-dua
+}
+
+directory ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-directory
+}
+
+dap-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-dapDSA
+}
+
+-- contracts
+dapContract CONTRACT ::= {
+ CONNECTION dapConnectionPackage
+ INITIATOR CONSUMER OF {readPackage | searchPackage | modifyPackage}
+ ID id-contract-dap
+}
+
+-- connection package
+dapConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND directoryBind
+ UNBIND directoryUnbind
+ ID id-package-dapConnection
+}
+
+-- read package
+readPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {read | compare | abandon}
+ ID id-package-read
+}
+
+-- search package
+searchPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {list | search}
+ ID id-package-search
+}
+
+-- modify Package
+modifyPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {addEntry | removeEntry | modifyEntry | modifyDN}
+ ID id-package-modify
+}
+
+-- abstract syntaxes
+directoryAccessAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DAP-PDUs
+ IDENTIFIED BY id-as-directoryAccessAS
+}
+
+DAP-PDUs ::= CHOICE {
+ basicRos ROS{{DAP-InvokeIDSet}, {DAP-Invokable}, {DAP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DAP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DAP-Invokable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+DAP-Returnable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+-- remote operation codes
+id-opcode-read Code ::= local:1
+
+id-opcode-compare Code ::= local:2
+
+id-opcode-abandon Code ::= local:3
+
+id-opcode-list Code ::= local:4
+
+id-opcode-search Code ::= local:5
+
+id-opcode-addEntry Code ::= local:6
+
+id-opcode-removeEntry Code ::= local:7
+
+id-opcode-modifyEntry Code ::= local:8
+
+id-opcode-modifyDN Code ::= local:9
+
+-- remote error codes
+id-errcode-attributeError Code ::= local:1
+
+id-errcode-nameError Code ::= local:2
+
+id-errcode-serviceError Code ::= local:3
+
+id-errcode-referral Code ::= local:4
+
+id-errcode-abandoned Code ::= local:5
+
+id-errcode-securityError Code ::= local:6
+
+id-errcode-abandonFailed Code ::= local:7
+
+id-errcode-updateError Code ::= local:8
+
+-- remote error code for DSP
+id-errcode-dsaReferral Code ::= local:9
+
+END -- DirectoryAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryInformationShadowProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
new file mode 100644
index 0000000000..91c0a865f7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
@@ -0,0 +1,246 @@
+-- Module DirectoryInformationShadowProtocol (X.519 TC2:08/1997)
+
+DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1) disp(16) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData, association-by-RTSE, transfer-by-RTSE
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-shadowSupplierInitiatedAC, id-ac-shadowSupplierInitiatedAsynchronousAC,
+ id-ac-shadowConsumerInitiatedAC,
+ id-ac-shadowConsumerInitiatedAsynchronousAC,
+ id-ac-reliableShadowSupplierInitiatedAC,
+ id-ac-reliableShadowConsumerInitiatedAC,
+ id-rosObject-initiatingConsumerDSA, id-rosObject-respondingSupplierDSA,
+ id-rosObject-initiatingSupplierDSA, id-rosObject-respondingConsumerDSA,
+ id-contract-shadowConsumer, id-contract-shadowSupplier,
+ id-package-dispConnection, id-package-shadowConsumer,
+ id-package-shadowSupplier, id-as-directoryShadowAS,
+ id-as-directoryReliableShadowAS, id-as-reliableShadowBindingAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSAShadowBind, dSAShadowUnbind, requestShadowUpdate, updateShadow,
+ coordinateShadowUpdate
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- application contexts
+shadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAC
+}
+
+shadowSupplierInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAsynchronousAC
+}
+
+shadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAC
+}
+
+shadowConsumerInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAsynchronousAC
+}
+
+reliableShadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowSupplierInitiatedAC
+}
+
+reliableShadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowConsumerInitiatedAC
+}
+
+-- ROS objects
+initiating-consumer-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowConsumerContract}
+ ID id-rosObject-initiatingConsumerDSA
+}
+
+responding-supplier-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowConsumerContract}
+ ID id-rosObject-respondingSupplierDSA
+}
+
+initiating-supplier-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowSupplierContract}
+ ID id-rosObject-initiatingSupplierDSA
+}
+
+responding-consumer-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowSupplierContract}
+ ID id-rosObject-respondingConsumerDSA
+}
+
+-- contracts
+shadowConsumerContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ INITIATOR CONSUMER OF {shadowConsumerPackage}
+ ID id-contract-shadowConsumer
+}
+
+shadowSupplierContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ RESPONDER CONSUMER OF {shadowSupplierPackage}
+ ID id-contract-shadowSupplier
+}
+
+-- connection package
+dispConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAShadowBind
+ UNBIND dSAShadowUnbind
+ ID id-package-dispConnection
+}
+
+-- packages
+shadowConsumerPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {requestShadowUpdate}
+ SUPPLIER INVOKES {updateShadow}
+ ID id-package-shadowConsumer
+}
+
+shadowSupplierPackage OPERATION-PACKAGE ::= {
+ SUPPLIER INVOKES {coordinateShadowUpdate | updateShadow}
+ ID id-package-shadowSupplier
+}
+
+-- abstract syntaxes
+directoryShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DISP-PDUs
+ IDENTIFIED BY id-as-directoryShadowAS
+}
+
+directoryReliableShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ Reliable-DISP-PDUs
+ IDENTIFIED BY id-as-directoryReliableShadowAS
+}
+
+reliableShadowBindingAbstractSyntax ABSTRACT-SYNTAX ::= {
+ ReliableShadowBinding-PDUs
+ IDENTIFIED BY id-as-reliableShadowBindingAS
+}
+
+DISP-PDUs ::= CHOICE {
+ basicROS ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}},
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+Reliable-DISP-PDUs ::=
+ ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}}
+
+ReliableShadowBinding-PDUs ::= CHOICE {
+ rTS [0] RTSE-apdus,
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+DISP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DISP-Invokable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+DISP-Returnable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+-- remote operation codes
+id-opcode-requestShadowUpdate Code ::= local:1
+
+id-opcode-updateShadow Code ::= local:2
+
+id-opcode-coordinateShadowUpdate Code ::= local:3
+
+-- remote error codes
+id-errcode-shadowError Code ::= local:1
+
+END -- DirectoryInformationShadowProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
new file mode 100644
index 0000000000..e3e1f95621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
@@ -0,0 +1,117 @@
+-- Module DirectoryOperationalBindingManagementProtocol (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingManagementProtocol {joint-iso-itu-t ds(5)
+ module(1) dop(17) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ protocolObjectIdentifiers, directoryAbstractService, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ directoryBind, directoryUnbind
+ FROM DirectoryAbstractService directoryAbstractService
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryOperationalBindingManagementAC, id-rosObject-dopDSA,
+ id-contract-dop, id-package-dopConnection,
+ id-package-operationalBindingManagement,
+ id-as-directoryOperationalBindingManagementAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ establishOperationalBinding, modifyOperationalBinding,
+ terminateOperationalBinding, dSAOperationalBindingManagementBind,
+ dSAOperationalBindingManagementUnbind
+ FROM OperationalBindingManagement opBindingManagement;
+
+-- application contexts
+directoryOperationalBindingManagementAC APPLICATION-CONTEXT ::= {
+ CONTRACT dopContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax |
+ directoryOperationalBindingManagementAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryOperationalBindingManagementAC
+}
+
+-- ROS objects
+dop-dsa ROS-OBJECT-CLASS ::= {BOTH {dopContract}
+ ID id-rosObject-dopDSA
+}
+
+-- contracts
+dopContract CONTRACT ::= {
+ CONNECTION dopConnectionPackage
+ OPERATIONS OF {dopPackage}
+ ID id-contract-dop
+}
+
+-- connection package
+dopConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAOperationalBindingManagementBind
+ UNBIND dSAOperationalBindingManagementUnbind
+ ID id-package-dopConnection
+}
+
+-- packages
+dopPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+ ID id-package-operationalBindingManagement
+}
+
+-- abstract syntaxes
+directoryOperationalBindingManagementAbstractSyntax ABSTRACT-SYNTAX ::=
+{DOP-PDUs
+ IDENTIFIED BY id-as-directoryOperationalBindingManagementAS
+}
+
+DOP-PDUs ::= CHOICE {
+ basicRos ROS{{DOP-InvokeIDSet}, {DOP-Invokable}, {DOP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DOP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DOP-Invokable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+DOP-Returnable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+-- remote operation codes
+id-op-establishOperationalBinding Code ::= local:100
+
+id-op-modifyOperationalBinding Code ::= local:102
+
+id-op-terminateOperationalBinding Code ::= local:101
+
+-- remote error codes
+id-err-operationalBindingError Code ::= local:100
+
+END -- DirectoryOperationalBindingManagementProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
new file mode 100644
index 0000000000..9df5d2783a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
@@ -0,0 +1,26 @@
+-- Module DirectoryOperationalBindingTypes (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-ob
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+id-op-binding-shadow OBJECT IDENTIFIER ::= {id-ob 1}
+
+id-op-binding-hierarchical OBJECT IDENTIFIER ::= {id-ob 2}
+
+id-op-binding-non-specific-hierarchical OBJECT IDENTIFIER ::= {id-ob 3}
+
+END -- DirectoryOperationalBindingTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryProtectionMappings.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryProtectionMappings.asn
new file mode 100644
index 0000000000..37c6cac261
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryProtectionMappings.asn
@@ -0,0 +1,70 @@
+-- Module DirectoryProtectionMappings (X.830:04/1995)
+
+DirectoryProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ dirProtectionMappings(4)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings generate bit-compatible encodings
+-- to the parameterized types in the Directory Authentication
+-- Framework
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, dirSignedTransformation,
+ dirSignatureTransformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **************************************
+-- Directory encrypted Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, encrypted}
+-- to replace the notation
+-- ENCRYPTED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: confidentiality
+encrypted PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+}
+
+-- ***********************************
+-- Directory signed Protection Mapping
+-- ***********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signed}
+-- to replace the notation
+-- SIGNED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignedTransformation}
+}
+
+-- **************************************
+-- Directory signature Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signature}
+-- to provide a functionally-equivalent replacement of the notation
+-- SIGNATURE BaseType
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignatureTransformation}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryShadowAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryShadowAbstractService.asn
new file mode 100644
index 0000000000..acbb692b6f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectoryShadowAbstractService.asn
@@ -0,0 +1,324 @@
+-- Module DirectoryShadowAbstractService (X.525:08/1997)
+DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryShadowAbstractService(15) 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the directory service.
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, directoryOperationalBindingTypes,
+ informationFramework, disp, distributedOperations,
+ dsaOperationalAttributeTypes, enhancedSecurity, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, AttributeType, CONTEXT, DistinguishedName,
+ RelativeDistinguishedName, SubtreeSpecification
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ OPERATIONAL-BINDING, OperationalBindingID
+ FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3}
+ DSEType, SupplierAndConsumers
+ FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3}
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 1}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ CommonResultsSeq, ContextSelection, directoryBind, directoryUnbind,
+ EntryModification, SecurityParameters
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 3}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-op-binding-shadow
+ FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3}
+ id-errcode-shadowError, id-opcode-coordinateShadowUpdate,
+ id-opcode-requestShadowUpdate, id-opcode-updateShadow,
+ reliableShadowSupplierInitiatedAC, reliableShadowConsumerInitiatedAC,
+ shadowConsumerInitiatedAC, shadowSupplierInitiatedAC
+ FROM DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1)
+ disp(16) 3}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ ERROR, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- bind and unbind operations
+dSAShadowBind OPERATION ::= directoryBind
+
+dSAShadowUnbind OPERATION ::= directoryUnbind
+
+-- shadow operational binding
+shadowOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT ShadowingAgreementInfo
+ APPLICATION CONTEXTS
+ {{shadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {shadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}} |
+ {reliableShadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {reliableShadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}}}
+ ASYMMETRIC ROLE-A
+ { -- shadow supplier roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- shadow consumer roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER ModificationParameter
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-shadow
+}
+
+-- types
+ModificationParameter ::= SEQUENCE {
+ secondaryShadows SET OF SupplierAndConsumers
+}
+
+AgreementID ::= OperationalBindingID
+
+ShadowingAgreementInfo ::= SEQUENCE {
+ shadowSubject UnitOfReplication,
+ updateMode UpdateMode DEFAULT supplierInitiated:onChange:TRUE,
+ master AccessPoint OPTIONAL,
+ secondaryShadows [2] BOOLEAN DEFAULT FALSE
+}
+
+UnitOfReplication ::= SEQUENCE {
+ area AreaSpecification,
+ attributes AttributeSelection,
+ knowledge Knowledge OPTIONAL,
+ subordinates BOOLEAN DEFAULT FALSE,
+ contextSelection ContextSelection OPTIONAL,
+ supplyContexts
+ [0] CHOICE {allContexts NULL,
+ selectedContexts SET SIZE (1..MAX) OF CONTEXT.&id} OPTIONAL
+}
+
+AreaSpecification ::= SEQUENCE {
+ contextPrefix DistinguishedName,
+ replicationArea SubtreeSpecification
+}
+
+Knowledge ::= SEQUENCE {
+ knowledgeType ENUMERATED {master(0), shadow(1), both(2)},
+ extendedKnowledge BOOLEAN DEFAULT FALSE
+}
+
+AttributeSelection ::= SET OF ClassAttributeSelection
+
+ClassAttributeSelection ::= SEQUENCE {
+ class OBJECT IDENTIFIER OPTIONAL,
+ classAttributes ClassAttributes DEFAULT allAttributes:NULL
+}
+
+ClassAttributes ::= CHOICE {
+ allAttributes NULL,
+ include [0] AttributeTypes,
+ exclude [1] AttributeTypes
+}
+
+AttributeTypes ::= SET OF AttributeType
+
+UpdateMode ::= CHOICE {
+ supplierInitiated [0] SupplierUpdateMode,
+ consumerInitiated [1] ConsumerUpdateMode
+}
+
+SupplierUpdateMode ::= CHOICE {
+ onChange BOOLEAN,
+ scheduled SchedulingParameters
+}
+
+ConsumerUpdateMode ::= SchedulingParameters
+
+SchedulingParameters ::= SEQUENCE {
+ periodic PeriodicStrategy OPTIONAL, -- must be present if othertimes is set to FALSE
+ othertimes BOOLEAN DEFAULT FALSE
+}
+
+PeriodicStrategy ::= SEQUENCE {
+ beginTime Time OPTIONAL,
+ windowSize INTEGER,
+ updateInterval INTEGER
+}
+
+Time ::= GeneralizedTime
+
+-- as per 34.2 b) and c) of CCITT Rec. X.208 and ISO/IEC 8824
+-- shadow operations, arguments, and results
+All-operations-consumer-initiated OPERATION ::=
+ {requestShadowUpdate | updateShadow}
+
+All-operations-supplier-initiated OPERATION ::=
+ {coordinateShadowUpdate | updateShadow}
+
+coordinateShadowUpdate OPERATION ::= {
+ ARGUMENT CoordinateShadowUpdateArgument
+ RESULT CoordinateShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-coordinateShadowUpdate
+}
+
+CoordinateShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ updateStrategy
+ CHOICE {standard
+ ENUMERATED {noChanges(0), incremental(1),
+ total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+CoordinateShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {greementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+requestShadowUpdate OPERATION ::= {
+ ARGUMENT RequestShadowUpdateArgument
+ RESULT RequestShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-requestShadowUpdate
+}
+
+RequestShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ requestedStrategy
+ CHOICE {standard ENUMERATED {incremental(1), total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+RequestShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+updateShadow OPERATION ::= {
+ ARGUMENT UpdateShadowArgument
+ RESULT UpdateShadowResult
+ ERRORS {shadowError}
+ CODE id-opcode-updateShadow
+}
+
+UpdateShadowArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ updateTime Time,
+ updateWindow UpdateWindow OPTIONAL,
+ updatedInfo RefreshInformation,
+ securityParameters SecurityParameters OPTIONAL}}
+
+UpdateShadowResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+UpdateWindow ::= SEQUENCE {start Time,
+ stop Time
+}
+
+RefreshInformation ::= CHOICE {
+ noRefresh NULL,
+ total [0] TotalRefresh,
+ incremental [1] IncrementalRefresh,
+ otherStrategy EXTERNAL
+}
+
+TotalRefresh ::= SEQUENCE {
+ sDSE SDSEContent OPTIONAL,
+ subtree SET SIZE (1..MAX) OF Subtree OPTIONAL
+}
+
+SDSEContent ::= SEQUENCE {
+ sDSEType SDSEType,
+ subComplete [0] BOOLEAN DEFAULT FALSE,
+ attComplete [1] BOOLEAN OPTIONAL,
+ attributes SET OF Attribute,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SDSEType ::= DSEType
+
+Subtree ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ COMPONENTS OF TotalRefresh
+}
+
+IncrementalRefresh ::= SEQUENCE OF IncrementalStepRefresh
+
+IncrementalStepRefresh ::= SEQUENCE {
+ sDSEChanges
+ CHOICE {add [0] SDSEContent,
+ remove NULL,
+ modify [1] ContentChange} OPTIONAL,
+ subordinateUpdates SEQUENCE SIZE (1..MAX) OF SubordinateChanges OPTIONAL
+}
+
+ContentChange ::= SEQUENCE {
+ rename
+ CHOICE {newRDN RelativeDistinguishedName,
+ newDN DistinguishedName} OPTIONAL,
+ attributeChanges
+ CHOICE {replace [0] SET SIZE (1..MAX) OF Attribute,
+ changes [1] SEQUENCE SIZE (1..MAX) OF EntryModification
+ } OPTIONAL,
+ sDSEType SDSEType,
+ subComplete [2] BOOLEAN DEFAULT FALSE,
+ attComplete [3] BOOLEAN OPTIONAL,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SubordinateChanges ::= SEQUENCE {
+ subordinate RelativeDistinguishedName,
+ changes IncrementalStepRefresh
+}
+
+-- errors and parameters
+shadowError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {problem ShadowProblem,
+ lastUpdate Time OPTIONAL,
+ updateWindow UpdateWindow OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+ CODE id-errcode-shadowError
+}
+
+ShadowProblem ::= INTEGER {
+ invalidAgreementID(1), inactiveAgreement(2), invalidInformationReceived(3),
+ unsupportedStrategy(4), missedPrevious(5), fullUpdateRequired(6),
+ unwillingToPerform(7), unsuitableTiming(8), updateAlreadyReceived(9),
+ invalidSequencing(10), insufficientResources(11)}
+
+END -- DirectoryShadowAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectorySystemProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectorySystemProtocol.asn
new file mode 100644
index 0000000000..cace79d109
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DirectorySystemProtocol.asn
@@ -0,0 +1,118 @@
+-- Module DirectorySystemProtocol (X.519 TC2:08/1997)
+
+DirectorySystemProtocol {joint-iso-itu-t ds(5) module(1) dsp(12) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ distributedOperations, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directorySystemAC, id-rosObject-dspDSA, id-contract-dsp,
+ id-package-dspConnection, id-package-chainedRead, id-package-chainedSearch,
+ id-package-chainedModify, id-as-directorySystemAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSABind, dSAUnbind, chainedRead, chainedCompare, chainedAbandon, chainedList,
+ chainedSearch, chainedAddEntry, chainedRemoveEntry, chainedModifyEntry,
+ chainedModifyDN
+ FROM DistributedOperations distributedOperations;
+
+-- application contexts
+directorySystemAC APPLICATION-CONTEXT ::= {
+ CONTRACT dspContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directorySystemAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directorySystemAC
+}
+
+-- ROS objects
+dsp-dsa ROS-OBJECT-CLASS ::= {BOTH {dspContract}
+ ID id-rosObject-dspDSA
+}
+
+-- contracts
+dspContract CONTRACT ::= {
+ CONNECTION dspConnectionPackage
+ OPERATIONS OF
+ {chainedReadPackage | chainedSearchPackage | chainedModifyPackage}
+ ID id-contract-dsp
+}
+
+-- connection package
+dspConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSABind
+ UNBIND dSAUnbind
+ ID id-package-dspConnection
+}
+
+-- chained read package
+chainedReadPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedRead | chainedCompare | chainedAbandon}
+ ID id-package-chainedRead
+}
+
+-- chained search package
+chainedSearchPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedList | chainedSearch}
+ ID id-package-chainedSearch
+}
+
+-- chained modify package
+chainedModifyPackage OPERATION-PACKAGE ::= {
+ OPERATIONS
+ {chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+ ID id-package-chainedModify
+}
+
+-- abstract syntaxes
+directorySystemAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DSP-PDUs
+ IDENTIFIED BY id-as-directorySystemAS
+}
+
+DSP-PDUs ::= CHOICE {
+ basicRos ROS{{DSP-InvokeIDSet}, {DSP-Invokable}, {DSP-Returnable}},
+ bind Bind{dSABind},
+ unbind Unbind{dSAUnbind}
+}
+
+DSP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DSP-Invokable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+DSP-Returnable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+END -- DirectorySystemProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/DistributedOperations.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/DistributedOperations.asn
new file mode 100644
index 0000000000..72e791f10c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/DistributedOperations.asn
@@ -0,0 +1,181 @@
+-- Module DistributedOperations (X.518 TC2:08/1997)
+
+DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, directoryAbstractService, distributedOperations,
+ selectedAttributeTypes, basicAccessControl, dap, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ DistinguishedName, Name, RDNSequence, SearchRuleId, MRMapping
+ FROM InformationFramework informationFramework
+ PresentationAddress, ProtocolInformation, UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN, referral, SecurityParameters,
+ CommonResults
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-errcode-dsaReferral
+ FROM DirectoryAccessProtocol dap;
+
+-- parameterized type for deriving chained operations
+chained{OPERATION:operation} OPERATION ::= {
+ ARGUMENT OPTIONALLY-PROTECTED
+ {SET {chainedArgument ChainingArguments,
+ argument [0] operation.&ArgumentType}}
+ RESULT OPTIONALLY-PROTECTED
+ {SET {chainedResult ChainingResults,
+ result [0] operation.&ResultType}}
+ ERRORS
+ {operation.&Errors EXCEPT referral | dsaReferral}
+ CODE operation.&operationCode
+}
+
+-- bind and unbind operations
+dSABind OPERATION ::= directoryBind
+
+dSAUnbind OPERATION ::= directoryUnbind
+
+-- chained operations
+chainedRead OPERATION ::= chained{read}
+
+chainedCompare OPERATION ::= chained{compare}
+
+chainedAbandon OPERATION ::= abandon
+
+chainedList OPERATION ::= chained{list}
+
+chainedSearch OPERATION ::= chained{search}
+
+chainedAddEntry OPERATION ::= chained{addEntry}
+
+chainedRemoveEntry OPERATION ::= chained{removeEntry}
+
+chainedModifyEntry OPERATION ::= chained{modifyEntry}
+
+chainedModifyDN OPERATION ::= chained{modifyDN}
+
+-- errors and parameters
+dsaReferral ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {reference [0] ContinuationReference,
+ contextPrefix [1] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-dsaReferral
+}
+
+-- common arguments and results
+ChainingArguments ::= SET {
+ originator [0] DistinguishedName OPTIONAL,
+ targetObject [1] DistinguishedName OPTIONAL,
+ operationProgress
+ [2] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ traceInformation [3] TraceInformation,
+ aliasDereferenced [4] BOOLEAN DEFAULT FALSE,
+ aliasedRDNs [5] INTEGER OPTIONAL,
+ -- only present in 1988 systems
+ returnCrossRefs [6] BOOLEAN DEFAULT FALSE,
+ referenceType [7] ReferenceType DEFAULT superior,
+ info [8] DomainInfo OPTIONAL,
+ timeLimit [9] Time OPTIONAL,
+ securityParameters [10] SecurityParameters DEFAULT {},
+ entryOnly [11] BOOLEAN DEFAULT FALSE,
+ uniqueIdentifier [12] UniqueIdentifier OPTIONAL,
+ authenticationLevel [13] AuthenticationLevel OPTIONAL,
+ exclusions [14] Exclusions OPTIONAL,
+ excludeShadows [15] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [16] BOOLEAN DEFAULT FALSE,
+ operationIdentifier [17] INTEGER OPTIONAL,
+ searchRuleId [18] SearchRuleId OPTIONAL,
+ chainedRelaxation [19] MRMapping OPTIONAL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ChainingResults ::= SET {
+ info [0] DomainInfo OPTIONAL,
+ crossReferences [1] SEQUENCE (SIZE (1..MAX)) OF CrossReference OPTIONAL,
+ securityParameters [2] SecurityParameters DEFAULT {},
+ alreadySearched [3] Exclusions OPTIONAL
+}
+
+CrossReference ::= SET {
+ contextPrefix [0] DistinguishedName,
+ accessPoint [1] AccessPointInformation,
+ chainingRequired [2] BOOLEAN DEFAULT FALSE
+}
+
+ReferenceType ::= ENUMERATED {
+ superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
+ supplier(5), master(6), immediateSuperior(7), self(8)}
+
+TraceInformation ::= SEQUENCE OF TraceItem
+
+TraceItem ::= SET {
+ dsa [0] Name,
+ targetObject [1] Name OPTIONAL,
+ operationProgress [2] OperationProgress
+}
+
+OperationProgress ::= SET {
+ nameResolutionPhase
+ [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)},
+ nextRDNToBeResolved [1] INTEGER OPTIONAL
+}
+
+DomainInfo ::= ABSTRACT-SYNTAX.&Type
+
+ContinuationReference ::= SET {
+ targetObject [0] Name,
+ aliasedRDNs [1] INTEGER OPTIONAL, -- only present in 1988 systems
+ operationProgress [2] OperationProgress,
+ rdnsResolved [3] INTEGER OPTIONAL,
+ referenceType [4] ReferenceType,
+ accessPoints [5] SET OF AccessPointInformation,
+ entryOnly [6] BOOLEAN DEFAULT FALSE,
+ exclusions [7] Exclusions OPTIONAL,
+ returnToDUA [8] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [9] BOOLEAN DEFAULT FALSE
+}
+
+AccessPoint ::= SET {
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET OF ProtocolInformation OPTIONAL,
+ chainingRequired [3] BOOLEAN DEFAULT FALSE
+}
+
+AccessPointInformation ::= SET {
+ COMPONENTS OF MasterOrShadowAccessPoint,
+ additionalPoints [5] MasterAndShadowAccessPoints OPTIONAL
+}
+
+MasterOrShadowAccessPoint ::= SET {
+ COMPONENTS OF AccessPoint,
+ category [4] ENUMERATED {master(0), shadow(1)} DEFAULT master
+}
+
+MasterAndShadowAccessPoints ::= SET OF MasterOrShadowAccessPoint
+
+Exclusions ::= SET OF RDNSequence
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Document-Profile-Descriptor.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Document-Profile-Descriptor.asn
new file mode 100644
index 0000000000..d8c15b7afa
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Document-Profile-Descriptor.asn
@@ -0,0 +1,464 @@
+-- Module Document-Profile-Descriptor (T.415:03/1993)
+
+Document-Profile-Descriptor {2 8 1 5 6} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Document-Profile-Descriptor, Character-Data, Document-Reference,
+ Date-and-Time, Dates-and-Times, Personal-Name, Originators,
+ Other-User-Information, Local-File-References, Security-Information,
+ Document-Description,
+ External-References ,
+ Sealed-Doc-Bodyparts, ODA-Version;
+
+IMPORTS
+ Resource-Name, Object-or-Class-Identifier, Protected-Part-Identifier,
+ Style-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, Transparency, Colour, Dimension-Pair, One-Of-Four-Angles,
+ Border, Medium-Type, Comment-String, Content-Background-Colour,
+ Content-Foreground-Colour
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Content-Architecture-Class, Content-Type, Block-Alignment, Fill-Order
+ FROM Style-Descriptors -- see 7.11
+
+ Type-Of-Coding
+ FROM Text-Units -- see 7.13
+
+ Colour-Characteristics, Colour-Spaces-List, Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Content-Defaults, Character-Presentation-Feature,
+ Character-Coding-Attribute
+ FROM Character-Profile-Attributes {2 8 1 6 4
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Content-Defaults, Ra-Gr-Presentation-Feature,
+ Ra-Gr-Coding-Attribute
+ FROM Raster-Gr-Profile-Attributes {2 8 1 7 4
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Content-Defaults, Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute
+ FROM Geo-Gr-Profile-Attributes {2 8 1 8 4
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Font-Attribute-Set
+ FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2
+ } -- see ISO/IEC 9541-2
+ Document-Presentation-Time, Time-Scaling
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Document-Profile-Descriptor ::= SET {
+ generic-layout-structure [0] IMPLICIT NumericString OPTIONAL,
+ specific-layout-structure [1] IMPLICIT NumericString OPTIONAL,
+ generic-logical-structure [4] IMPLICIT NumericString OPTIONAL,
+ specific-logical-structure [5] IMPLICIT NumericString OPTIONAL,
+ presentation-styles [6] IMPLICIT NumericString OPTIONAL,
+ layout-styles [7] IMPLICIT NumericString OPTIONAL,
+ sealed-profiles [12] IMPLICIT NumericString OPTIONAL,
+ enciphered-profiles [13] IMPLICIT NumericString OPTIONAL,
+ preenciphered-bodyparts [14] IMPLICIT NumericString OPTIONAL,
+ postenciphered-bodyparts [15] IMPLICIT NumericString OPTIONAL,
+ -- for the generic structures,
+ -- 'partial-generator-set' is represented by "0", 'complete-generator-set'
+ -- is represented by "1", 'factor-set' is represented by "2";
+ -- for the other cases, the numeric string has the value 'present'
+ -- represented by "1"
+ external-document-class [9] Document-Reference OPTIONAL,
+ resource-document [10] Document-Reference OPTIONAL,
+ resources
+ [11] IMPLICIT SET OF
+ SET {resource-identifier Resource-Name,
+ object-class-identifier Object-or-Class-Identifier
+ } OPTIONAL,
+ document-characteristics [2] IMPLICIT Document-Characteristics,
+ document-management-attributes
+ [3] IMPLICIT Document-Management-Attributes OPTIONAL,
+ document-security-attributes
+ [16] IMPLICIT Document-Security-Attributes OPTIONAL,
+ links [17] IMPLICIT NumericString OPTIONAL,
+ link-classes [18] IMPLICIT NumericString OPTIONAL,
+ enciphered-links [19] IMPLICIT NumericString OPTIONAL,
+ temporal-relations [20] IMPLICIT NumericString OPTIONAL
+}
+
+Document-Characteristics ::= SET {
+ document-application-profile
+ CHOICE {a [0] IMPLICIT INTEGER {group-4-facsimile(2)},
+ b [4] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ doc-appl-profile-defaults
+ [10] IMPLICIT Doc-Appl-Profile-Defaults OPTIONAL,
+ document-architecture-class
+ [1] IMPLICIT INTEGER {formatted(0), processable(1),
+ formatted-processable(2)},
+ content-architecture-classes [5] IMPLICIT SET OF OBJECT IDENTIFIER,
+ interchange-format-class [6] IMPLICIT INTEGER {if-a(0), if-b(1)},
+ oda-version [8] IMPLICIT ODA-Version,
+ alternative-feature-sets
+ [11] IMPLICIT SET OF SET OF OBJECT IDENTIFIER OPTIONAL,
+ non-basic-doc-characteristics
+ [2] IMPLICIT Non-Basic-Doc-Characteristics OPTIONAL,
+ non-basic-struc-characteristics
+ [3] IMPLICIT Non-Basic-Struc-Characteristics OPTIONAL,
+ additional-doc-characteristics
+ [9] IMPLICIT Additional-Doc-Characteristics OPTIONAL
+}
+
+ODA-Version ::= SEQUENCE {
+ standard-or-recommendation Character-Data,
+ publication-date Date-and-Time
+}
+
+Doc-Appl-Profile-Defaults ::= SET {
+ document-architecture-defaults
+ [0] IMPLICIT Document-Architecture-Defaults OPTIONAL,
+ character-content-defaults
+ [1] IMPLICIT Character-Content-Defaults OPTIONAL,
+ raster-gr-content-defaults
+ [2] IMPLICIT Raster-Gr-Content-Defaults OPTIONAL,
+ geo-gr-content-defaults
+ [3] IMPLICIT Geo-Gr-Content-Defaults OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of content defaults:
+ -- [4] videotex, for use in conjunction with CCITT Recommendations
+ -- [5] audio
+ -- [6] dynamic-graphics
+ external-content-architecture-defaults
+ [7] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Document-Architecture-Defaults ::= SET {
+ content-architecture-class
+ CHOICE {a [0] IMPLICIT Content-Architecture-Class,
+ b [1] IMPLICIT Content-Type} OPTIONAL,
+ page-dimensions [2] IMPLICIT Measure-Pair OPTIONAL,
+ transparency [3] IMPLICIT Transparency OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [11] Colour-Expression OPTIONAL,
+ object-colour-table [12] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [13] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [14] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [15] IMPLICIT Colour-Table OPTIONAL,
+ layout-path [5] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ medium-type [6] IMPLICIT Medium-Type OPTIONAL,
+ block-alignment [7] IMPLICIT Block-Alignment OPTIONAL,
+ border [8] IMPLICIT Border OPTIONAL,
+ page-position [9] IMPLICIT Measure-Pair OPTIONAL,
+ type-of-coding [10] Type-Of-Coding OPTIONAL
+}
+
+Non-Basic-Doc-Characteristics ::= SET {
+ profile-character-sets [5] IMPLICIT OCTET STRING OPTIONAL,
+ comments-character-sets [1] IMPLICIT OCTET STRING OPTIONAL,
+ alternative-repr-char-sets [6] IMPLICIT OCTET STRING OPTIONAL,
+ -- each of these octet strings represents a string of escape sequences
+ page-dimensions [2] IMPLICIT SET OF Dimension-Pair OPTIONAL,
+ medium-types [8] IMPLICIT SET OF Medium-Type OPTIONAL,
+ layout-paths
+ [21] IMPLICIT SET OF One-Of-Four-Angles OPTIONAL,
+ transparencies [22] IMPLICIT SET OF Transparency OPTIONAL,
+ protections [23] IMPLICIT SET OF Protection OPTIONAL,
+ block-alignments
+ [24] IMPLICIT SET OF Block-Alignment OPTIONAL,
+ fill-orders [25] IMPLICIT SET OF Fill-Order OPTIONAL,
+ colours [26] IMPLICIT SET OF Colour OPTIONAL,
+ colours-of-layout-object
+ [30] IMPLICIT SET OF Colour-Expression OPTIONAL,
+ object-colour-tables [31] IMPLICIT SET OF Colour-Table OPTIONAL,
+ content-background-colours
+ [32] IMPLICIT SET OF Content-Background-Colour OPTIONAL,
+ content-foreground-colours
+ [33] IMPLICIT SET OF Content-Foreground-Colour OPTIONAL,
+ content-colour-tables [34] IMPLICIT SET OF Colour-Table OPTIONAL,
+ borders [27] IMPLICIT SET OF Border OPTIONAL,
+ page-positions [28] IMPLICIT SET OF Measure-Pair OPTIONAL,
+ types-of-coding [29] IMPLICIT SET OF Type-Of-Coding OPTIONAL,
+ character-presentation-features
+ [9] IMPLICIT SET OF Character-Presentation-Feature OPTIONAL,
+ ra-gr-presentation-features
+ [4] IMPLICIT SET OF Ra-Gr-Presentation-Feature OPTIONAL,
+ geo-gr-presentation-features
+ [12] IMPLICIT SET OF Geo-Gr-Presentation-Feature OPTIONAL,
+ character-coding-attributes
+ [16] IMPLICIT SET OF Character-Coding-Attribute OPTIONAL,
+ ra-gr-coding-attributes
+ [3] IMPLICIT SET OF Ra-Gr-Coding-Attribute OPTIONAL,
+ geo-gr-coding-attributes
+ [17] IMPLICIT SET OF Geo-Gr-Coding-Attribute OPTIONAL,
+ ext-non-basic-pres-features [10] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL,
+ ext-non-basic-coding-attributes [11] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Non-Basic-Struc-Characteristics ::= SET {
+ number-of-objects-per-page [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Additional-Doc-Characteristics ::= SET {
+ unit-scaling [3] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER} OPTIONAL,
+ fonts-list [2] IMPLICIT Fonts-List OPTIONAL,
+ colour-characteristics [0] IMPLICIT Colour-Characteristics OPTIONAL,
+ colour-spaces-list [1] IMPLICIT Colour-Spaces-List OPTIONAL,
+ assured-reproduction-areas [5] IMPLICIT Assured-Reproduction-Areas OPTIONAL,
+ time-scaling [6] IMPLICIT Time-Scaling OPTIONAL,
+ document-presentation-time [7] IMPLICIT Document-Presentation-Time OPTIONAL
+}
+
+Fonts-List ::=
+ SET OF SET {font-identifier INTEGER,
+ font-reference Font-Reference}
+
+Font-Reference ::= SET {
+ user-visible-name [0] IMPLICIT Comment-String OPTIONAL,
+ user-readable-comment [1] IMPLICIT Comment-String OPTIONAL,
+ reference-properties
+ [2] IMPLICIT SET OF
+ SET {precedence-number [0] IMPLICIT INTEGER OPTIONAL,
+ properties [1] IMPLICIT Font-Attribute-Set,
+ user-readable-comment
+ [2] IMPLICIT Comment-String OPTIONAL}
+}
+
+Assured-Reproduction-Areas ::=
+ SET OF
+ SET {nominal-page-size [0] IMPLICIT Measure-Pair,
+ assured-reproduction-area
+ [1] SET {position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Measure-Pair}}
+
+Document-Management-Attributes ::= SET {
+ document-description [7] IMPLICIT Document-Description OPTIONAL,
+ dates-and-times [0] IMPLICIT Dates-and-Times OPTIONAL,
+ originators [1] IMPLICIT Originators OPTIONAL,
+ other-user-information [2] IMPLICIT Other-User-Information OPTIONAL,
+ external-references [3] IMPLICIT External-References OPTIONAL,
+ local-file-references [4] IMPLICIT Local-File-References OPTIONAL,
+ content-attributes [5] IMPLICIT Content-Attributes OPTIONAL,
+ security-information [6] IMPLICIT Security-Information OPTIONAL
+}
+
+Document-Description ::= SET {
+ title [0] IMPLICIT Character-Data OPTIONAL,
+ subject [1] IMPLICIT Character-Data OPTIONAL,
+ document-type [2] IMPLICIT Character-Data OPTIONAL,
+ abstract [3] IMPLICIT Character-Data OPTIONAL,
+ keywords [4] IMPLICIT SET OF Character-Data OPTIONAL,
+ document-reference [5] Document-Reference OPTIONAL
+}
+
+Character-Data ::= [APPLICATION 3] IMPLICIT OCTET STRING
+
+-- string of characters from the sets designated by the attribute
+-- "profile character sets", plus space, carriage return and line feed
+Document-Reference ::= CHOICE {
+ unique-reference OBJECT IDENTIFIER,
+ descriptive-reference Character-Data
+}
+
+Dates-and-Times ::= SET {
+ document-date-and-time [0] IMPLICIT Date-and-Time OPTIONAL,
+ creation-date-and-time [1] IMPLICIT Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] IMPLICIT SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] IMPLICIT Date-and-Time OPTIONAL,
+ start-date-and-time [4] IMPLICIT Date-and-Time OPTIONAL,
+ purge-date-and-time [5] IMPLICIT Date-and-Time OPTIONAL,
+ release-date-and-time [6] IMPLICIT Date-and-Time OPTIONAL,
+ revision-history
+ [7] IMPLICIT SEQUENCE OF
+ SET {revision-date-and-time
+ [0] IMPLICIT Date-and-Time OPTIONAL,
+ version-identifier
+ [1] IMPLICIT Character-Data OPTIONAL,
+ revisers
+ [2] IMPLICIT SET OF
+ SET {names
+ [0] IMPLICIT SET OF
+ Personal-Name
+ OPTIONAL,
+ position
+ [1] IMPLICIT Character-Data
+ OPTIONAL,
+ organization
+ [2] IMPLICIT Character-Data
+ OPTIONAL} OPTIONAL,
+ version-reference
+ [3] Document-Reference OPTIONAL,
+ user-comments
+ [4] IMPLICIT Character-Data OPTIONAL} OPTIONAL
+}
+
+Date-and-Time ::= [APPLICATION 4] IMPLICIT PrintableString
+
+Originators ::= SET {
+ organizations [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ preparers
+ [1] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ owners
+ [2] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ authors
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL
+}
+
+Personal-Name ::= [APPLICATION 6] IMPLICIT SET {
+ surname [0] IMPLICIT Character-Data,
+ givenname [1] IMPLICIT Character-Data OPTIONAL,
+ initials [2] IMPLICIT Character-Data OPTIONAL,
+ generation-qualifier [3] IMPLICIT Character-Data OPTIONAL
+}
+
+Other-User-Information ::= SET {
+ copyright
+ [0] IMPLICIT SET OF
+ SET {copyright-information
+ [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ copyright-dates
+ [1] IMPLICIT SET OF Date-and-Time OPTIONAL} OPTIONAL,
+ status [1] IMPLICIT Character-Data OPTIONAL,
+ user-specific-codes [2] IMPLICIT SET OF Character-Data OPTIONAL,
+ distribution-list
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ additional-information [5] TYPE-IDENTIFIER.&Type OPTIONAL
+}
+
+External-References ::=
+ SET {
+ references-to-other-documents
+ [0] IMPLICIT SET OF Document-Reference OPTIONAL,
+ superseded-documents
+ [1] IMPLICIT SET OF Document-Reference OPTIONAL
+}
+
+Local-File-References ::=
+ SET OF
+ SET {file-name [0] IMPLICIT Character-Data OPTIONAL,
+ location [1] IMPLICIT Character-Data OPTIONAL,
+ user-comments [2] IMPLICIT Character-Data OPTIONAL}
+
+Content-Attributes ::= SET {
+ document-size [1] IMPLICIT INTEGER OPTIONAL,
+ number-of-pages [2] IMPLICIT INTEGER OPTIONAL,
+ languages [4] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Security-Information ::= SET {
+ authorization
+ CHOICE {person [0] IMPLICIT Personal-Name,
+ organization [4] IMPLICIT Character-Data} OPTIONAL,
+ security-classification [1] IMPLICIT Character-Data OPTIONAL,
+ access-rights [2] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Document-Security-Attributes ::= SET {
+ sealed-info-encoding [7] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ oda-security-label [0] IMPLICIT Oda-Security-Label OPTIONAL,
+ sealed-doc-profiles [1] IMPLICIT Sealed-Doc-Profiles OPTIONAL,
+ presealed-doc-bodyparts [2] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ postsealed-doc-bodyparts [3] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ enciphered-doc-profiles [4] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ preenciphered-doc-bodyparts [5] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ postenciphered-doc-bodyparts [6] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ sealed-links [8] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL
+}
+
+Oda-Security-Label ::= SEQUENCE {
+ oda-label-text [0] IMPLICIT Character-Data OPTIONAL,
+ oda-label-data [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Seal-Data ::= SEQUENCE {
+ seal-method [0] IMPLICIT Seal-Method OPTIONAL,
+ sealed-information [1] IMPLICIT Sealed-Information OPTIONAL,
+ seal [2] IMPLICIT OCTET STRING
+}
+
+Seal-Method ::= SEQUENCE {
+ fingerprint-method [0] IMPLICIT Method-Information OPTIONAL,
+ fingerprint-key-information [1] IMPLICIT Key-Information OPTIONAL,
+ sealing-method [2] IMPLICIT Method-Information OPTIONAL,
+ sealing-key-information [3] IMPLICIT Key-Information OPTIONAL
+}
+
+Sealed-Information ::= SEQUENCE {
+ fingerprint [0] IMPLICIT OCTET STRING OPTIONAL,
+ time [1] IMPLICIT Date-and-Time OPTIONAL,
+ sealing-orig-id [2] IMPLICIT Personal-Name OPTIONAL,
+ location [3] IMPLICIT Location OPTIONAL
+}
+
+Method-Information ::= SEQUENCE {
+ unique-method-info [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-method-info [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Key-Information ::= SEQUENCE {
+ method-information [0] IMPLICIT Method-Information OPTIONAL,
+ additional-information [1] IMPLICIT Additional-Information OPTIONAL
+}
+
+Additional-Information ::= SEQUENCE {
+ descriptive-information [0] IMPLICIT Character-Data OPTIONAL,
+ octet-string [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Location ::= SEQUENCE {
+ unique-location [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-location [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Sealed-Doc-Profiles ::=
+ SET OF
+ SEQUENCE {sealed-doc-prof-descriptor-id
+ [0] IMPLICIT Protected-Part-Identifier,
+ privileged-recipients
+ [1] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-prof-seal [2] IMPLICIT Seal-Data}
+
+Sealed-Doc-Bodyparts ::=
+ SET OF
+ SEQUENCE {seal-id [0] IMPLICIT INTEGER,
+ sealed-constituents [1] IMPLICIT Sealed-Constituents,
+ privileged-recipients [2] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-bodypart-seal [3] IMPLICIT Seal-Data}
+
+Sealed-Constituents ::= SEQUENCE {
+ object-class-identifiers
+ [0] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ presentation-style-identifiers
+ [1] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ layout-style-identifiers
+ [2] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ object-identifiers
+ [3] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL
+}
+
+Protected-Doc-Parts ::=
+ SET OF
+ SEQUENCE {protected-doc-part-id [0] IMPLICIT Protected-Part-Identifier,
+ priv-recipients-info [1] IMPLICIT SET OF Priv-Recipients-Info
+ }
+
+Priv-Recipients-Info ::= SEQUENCE {
+ privileged-recipients [0] IMPLICIT SET OF Personal-Name OPTIONAL,
+ encipherment-method-info [1] IMPLICIT Method-Information OPTIONAL,
+ encipherment-key-info [2] IMPLICIT Key-Information OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/EnhancedSecurity.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/EnhancedSecurity.asn
new file mode 100644
index 0000000000..9991a59454
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/EnhancedSecurity.asn
@@ -0,0 +1,363 @@
+-- Module EnhancedSecurity (X.501:08/1997)
+EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 1}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ authenticationFramework, basicAccessControl, certificateExtensions,
+ id-at, id-avc, id-mr, informationFramework, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, AttributeType, Context, CONTEXT, MATCHING-RULE,
+ Name, objectIdentifierMatch, SupportedAttributes
+ FROM InformationFramework informationFramework
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ AlgorithmIdentifier, CertificateSerialNumber, ENCRYPTED{}, HASH{},
+ SIGNED{}
+ FROM AuthenticationFramework authenticationFramework
+ GeneralName, KeyIdentifier
+ FROM CertificateExtensions certificateExtensions
+ ub-privacy-mark-length
+ FROM UpperBounds upperBounds;
+
+-- from GULS
+-- SECURITY-TRANSFORMATION, PROTECTION-MAPPING, PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+--dirSignedTransformation, KEY-INFORMATION
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- gulsSecurityTransformations (3) }
+-- signed
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- dirProtectionMappings (4) };
+-- The "signed" Protection Mapping and associated "dirSignedTransformations" imported
+-- from the Generic Upper Layers Security specification (ITU-T Rec. X.830 | ISO/IEC 11586-1)
+-- results in identical encoding as the same data type used with the SIGNED as defined in
+-- ITU-T REC. X.509 | ISO/IEC 9594-8
+-- The three statements below are provided temporarily to allow signed operations to be supported as in edition 3.
+OPTIONALLY-PROTECTED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+OPTIONALLY-PROTECTED-SEQ{Type} ::= CHOICE {
+ unsigned Type,
+ signed [0] SIGNED{Type}
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- genEncryptedTransform {KEY-INFORMATION: SupportedKIClasses } SECURITY-TRANSFORMATION ::=
+-- {
+-- IDENTIFIER { enhancedSecurity gen-encrypted(2) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1(1) ber(1) }
+-- This default for initial encoding rules may be overridden
+-- using a static protected parameter (initEncRules).
+-- XFORMED-DATA-TYPE SEQUENCE {
+-- initEncRules OBJECT IDENTIFIER DEFAULT { joint-iso-itu-t asn1(1) ber(1) },
+-- encAlgorithm AlgorithmIdentifier OPTIONAL, -- -- Identifies the encryption algorithm,
+-- keyInformation SEQUENCE {
+-- kiClass KEY-INFORMATION.&kiClass ({SupportedKIClasses}),
+-- keyInfo KEY-INFORMATION.&KiType ({SupportedKIClasses} {@kiClass})
+-- } OPTIONAL,
+-- Key information may assume various formats, governed by supported members
+-- of the KEY-INFORMATION information object class (defined in ITU-T
+-- Rec. X.830 | ISO/IEC 11586-1)
+-- encData BIT STRING ( CONSTRAINED BY {
+-- the encData value must be generated following
+-- the procedure specified in 17.3.1-- -- })
+-- }
+-- }
+-- encrypted PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { genEncryptedTransform } }
+-- signedAndEncrypt PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { signedAndEncryptedTransform } }
+-- signedAndEncryptedTransform {KEY-INFORMATION: SupportedKIClasses}
+-- SECURITY-TRANSFORMATION ::= {
+-- IDENTIFIER { enhancedSecurity dir-encrypt-sign (1) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1 (1) ber-derived (2) distinguished-encoding (1) }
+-- XFORMED-DATA-TYPE
+-- PROTECTED
+-- {
+-- PROTECTED
+-- {
+-- ABSTRACT-SYNTAX.&Type,
+-- signed
+-- },
+-- encrypted
+-- }
+-- }
+-- OPTIONALLY-PROTECTED {ToBeProtected, PROTECTION-MAPPING:generalProtection} ::=
+-- CHOICE {
+-- toBeProtected ToBeProtected,
+--no DIRQOP specified for operation
+-- signed PROTECTED {ToBeProtected, signed},
+--DIRQOP is Signed
+-- protected [APPLICATION 0]
+-- PROTECTED { ToBeProtected, generalProtection } }
+--DIRQOP is other than Signed
+-- defaultDirQop ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- USAGE directoryOperation
+-- ID id-at-defaultDirQop }
+-- DIRQOP ::= CLASS
+-- This information object class is used to define the quality of protection
+-- required throughout directory operation.
+-- The Quality Of Protection can be signed, encrypted, signedAndEncrypt
+-- {
+-- &dirqop-Id OBJECT IDENTIFIER UNIQUE,
+-- &dirBindError-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dirErrors-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dspChainedOp-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispShadowAgreeInfo-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindRes-QOP PROTECTION-MAPPING:protectionReqd
+-- }
+-- WITH SYNTAX
+-- {
+-- DIRQOP-ID &dirqop-Id
+-- DIRECTORYBINDERROR-QOP &dirBindError-QOP
+-- DIRERRORS-QOP &dirErrors-QOP
+-- DAPREADARG-QOP &dapReadArg-QOP
+-- DAPREADRES-QOP &dapReadRes-QOP
+-- DAPCOMPAREARG-QOP &dapCompareArg-QOP
+-- DAPCOMPARERES-QOP &dapCompareRes-QOP
+-- DAPLISTARG-QOP &dapListArg-QOP
+-- DAPLISTRES-QOP &dapListRes-QOP
+-- DAPSEARCHARG-QOP &dapSearchArg-QOP
+-- DAPSEARCHRES-QOP &dapSearchRes-QOP
+-- DAPABANDONARG-QOP &dapAbandonArg-QOP
+-- DAPABANDONRES-QOP &dapAbandonRes-QOP
+-- DAPADDENTRYARG-QOP &dapAddEntryArg-QOP
+-- DAPADDENTRYRES-QOP &dapAddEntryRes-QOP
+-- DAPREMOVEENTRYARG-QOP &dapRemoveEntryArg-QOP
+-- DAPREMOVEENTRYRES-QOP &dapRemoveEntryRes-QOP
+-- DAPMODIFYENTRYARG-QOP &dapModifyEntryArg-QOP
+-- DAPMODIFYENTRYRES-QOP &dapModifyEntryRes-QOP
+-- DAPMODIFYDNARG-QOP &dapModifyDNArg-QOP
+-- DAPMODIFYDNRES-QOP &dapModifyDNRes-QOP
+-- DSPCHAINEDOP-QOP &dspChainedOp-QOP
+-- DISPSHADOWAGREEINFO-QOP &dispShadowAgreeInfo-QOP
+-- DISPCOORSHADOWARG-QOP &dispCoorShadowArg-QOP
+-- DISPCOORSHADOWRES-QOP &dispCoorShadowRes-QOP
+-- DISPUPDATESHADOWARG-QOP &dispUpdateShadowArg-QOP
+-- DISPUPDATESHADOWRES-QOP &dispUpdateShadowRes-QOP
+-- DISPREQUESTSHADOWUPDATEARG-QOP &dispRequestShadowUpdateArg-QOP
+-- DISPREQUESTSHADOWUPDATERES-QOP &dispRequestShadowUpdateRes-QOP
+-- DOPESTABLISHOPBINDARG-QOP &dopEstablishOpBindArg-QOP
+-- DOPESTABLISHOPBINDRES-QOP &dopEstablishOpBindRes-QOP
+-- DOPMODIFYOPBINDARG-QOP &dopModifyOpBindArg-QOP
+-- DOPMODIFYOPBINDRES-QOP &dopModifyOpBindRes-QOP
+-- DOPTERMINATEOPBINDARG-QOP &dopTermOpBindArg-QOP
+-- DOPTERMINATEOPBINDRES-QOP &dopTermOpBindRes-QOP
+-- }
+attributeValueSecurityLabelContext CONTEXT ::= {
+ WITH SYNTAX
+ SignedSecurityLabel -- At most one security label context can be assigned to an
+ -- attribute value
+ ID id-avc-attributeValueSecurityLabelContext
+}
+
+SignedSecurityLabel ::=
+ SIGNED
+ {SEQUENCE {attHash HASH{AttributeTypeAndValue},
+ issuer Name OPTIONAL, -- name of labelling authority
+ keyIdentifier KeyIdentifier OPTIONAL,
+ securityLabel SecurityLabel}}
+
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}(ALL EXCEPT ({ --none, at least one component shall be presen--}))
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..MAX) OF SecurityCategory
+
+clearance ATTRIBUTE ::= {WITH SYNTAX Clearance
+ ID id-at-clearance
+}
+
+Clearance ::= SEQUENCE {
+ policyId OBJECT IDENTIFIER,
+ classList ClassList DEFAULT {unclassified},
+ securityCategories SET SIZE (1..MAX) OF SecurityCategory OPTIONAL
+}
+
+ClassList ::= BIT STRING {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ topSecret(5)}
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] EXPLICIT SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+attributeIntegrityInfo ATTRIBUTE ::= {
+ WITH SYNTAX AttributeIntegrityInfo
+ ID id-at-attributeIntegrityInfo
+}
+
+AttributeIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {scope Scope, -- Identifies the attributes protected
+ signer Signer OPTIONAL, -- Authority or data originators name
+ attribsHash AttribsHash}} -- Hash value of protected attributes
+
+Signer ::= CHOICE {
+ thisEntry [0] EXPLICIT ThisEntry,
+ thirdParty [1] SpecificallyIdentified
+}
+
+ThisEntry ::= CHOICE {onlyOne NULL,
+ specific IssuerAndSerialNumber
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serial CertificateSerialNumber
+}
+
+SpecificallyIdentified ::= SEQUENCE {
+ name GeneralName,
+ issuer GeneralName OPTIONAL,
+ serial CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ issuer PRESENT,
+ serial PRESENT
+ } | (WITH COMPONENTS {
+ ...,
+ issuer ABSENT,
+ serial ABSENT
+ }))
+
+Scope ::= CHOICE {
+ wholeEntry [0] NULL, -- Signature protects all attribute values in this entry
+ selectedTypes [1] SelectedTypes
+ -- Signature protects all attribute values of the selected attribute types
+}
+
+SelectedTypes ::= SEQUENCE SIZE (1..MAX) OF AttributeType
+
+AttribsHash ::= HASH{SEQUENCE SIZE (1..MAX) OF Attribute}
+
+-- Attribute type and values with associated context values for the selected Scope
+attributeValueIntegrityInfoContext CONTEXT ::= {
+ WITH SYNTAX AttributeValueIntegrityInfo
+ ID id-avc-attributeValueIntegrityInfoContext
+}
+
+AttributeValueIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {signer Signer OPTIONAL, -- Authority or data originators name
+ aVIHash AVIHash}} -- Hash value of protected attribute
+
+AVIHash ::= HASH{AttributeTypeValueContexts}
+
+-- Attribute type and value with associated context values
+AttributeTypeValueContexts ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context OPTIONAL
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- EncryptedAttributeSyntax {AttributeSyntax} ::= SEQUENCE {
+-- keyInfo SEQUENCE OF KeyIdOrProtectedKey,
+-- encAlg AlgorithmIdentifier,
+-- encValue ENCRYPTED { AttributeSyntax } }
+-- KeyIdOrProtectedKey ::= SEQUENCE {
+-- keyIdentifier [0] KeyIdentifier OPTIONAL,
+-- protectedKeys [1] ProtectedKey OPTIONAL }
+-- At least one key identifier or protected key must be present
+-- ProtectedKey ::= SEQUENCE {
+-- authReaders AuthReaders,-- -- if absent, use attribute in authorized reader entry
+-- keyEncAlg AlgorithmIdentifier OPTIONAL, -- -- algorithm to encrypt encAttrKey
+-- encAttKey EncAttKey }
+-- confidentiality key protected with authorized user's
+-- protection mechanism
+-- AuthReaders ::= SEQUENCE OF Name
+-- EncAttKey ::= PROTECTED {SymmetricKey, keyProtection}
+-- SymmetricKey ::= BIT STRING
+-- keyProtection PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION {genEncryption} }
+-- confKeyInfo ATTRIBUTE ::= {
+-- WITH SYNTAX ConfKeyInfo
+-- EQUALITY MATCHING RULE readerAndKeyIDMatch
+-- ID id-at-confKeyInfo }
+-- ConfKeyInfo ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- protectedKey ProtectedKey }
+-- readerAndKeyIDMatch MATCHING-RULE ::= {
+-- SYNTAX ReaderAndKeyIDAssertion
+-- ID id-mr-readerAndKeyIDMatch }
+-- ReaderAndKeyIDAssertion ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- authReaders AuthReaders OPTIONAL }
+-- Object identifier assignments
+-- attributes
+id-at-clearance OBJECT IDENTIFIER ::=
+ {id-at 55}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+-- matching rules
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+-- contexts
+id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::=
+ {id-avc 3}
+
+id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+
+END -- EnhancedSecurity
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/External-References.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/External-References.asn
new file mode 100644
index 0000000000..9a7d4936a6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/External-References.asn
@@ -0,0 +1,49 @@
+-- Module External-References (T.422:08/1995)
+
+External-References {2 8 1 12 1} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS External-References-List, Reference-Name;
+
+IMPORTS
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see 7.4
+ DOR
+ FROM DOR-definition {2 4 0}
+ -- see ISO/IEC 10031-2
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- see ITU-T Rec. X.501 � ISO/IEC 9594-2
+External-References-List ::=
+ SET OF
+ SET {reference-name [1] Reference-Name,
+ external-entity [2] External-Entity,
+ location-rule [3] Location-Expression OPTIONAL}
+
+Reference-Name ::= PrintableString
+
+External-Entity ::= CHOICE {
+ external-info [0] External-Information-Name,
+ object-id [1] OBJECT IDENTIFIER,
+ dor [2] DOR,
+ distinguished [3] DistinguishedName,
+ associated-info [4] Associated-Information-Name
+}
+
+External-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+Associated-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/GULSProtectionMappings.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/GULSProtectionMappings.asn
new file mode 100644
index 0000000000..9b6a426ca2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/GULSProtectionMappings.asn
@@ -0,0 +1,71 @@
+-- Module GULSProtectionMappings (X.830:04/1995)
+
+GULSProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ gulsProtectionMappings(5)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings are more versatile that the
+-- preceding protection mappings which were specifically designed
+-- to generate identical bit-encodings as the Directory
+-- Authentication Framework parameterized types.
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, gulsSignedTransformation{},
+ gulsSignatureTransformation, symmetricKeyInformation,
+ asymmetricKeyInformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **********************************
+-- confidentiality Protection Mapping
+-- **********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, confidentiality}
+-- to map to either dirEncryptedTransformation or to no transformation
+-- at the choice of the encoding system, dependent upon local security
+-- policy and other local environment considerations.
+-- Security Service: confidentiality
+confidentiality PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+ BYPASS-PERMITTED TRUE
+}
+
+-- ******************************
+-- GULS signed Protection Mapping
+-- ******************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signed}
+-- to map to the gulsSignedTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignedTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+-- *********************************
+-- GULS signature Protection Mapping
+-- *********************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signature}
+-- to map to the gulsSignatureTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignatureTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/GenericProtectingTransferSyntax.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/GenericProtectingTransferSyntax.asn
new file mode 100644
index 0000000000..c59451dcdb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/GenericProtectingTransferSyntax.asn
@@ -0,0 +1,66 @@
+-- Module GenericProtectingTransferSyntax (X.833:04/1995)
+
+GenericProtectingTransferSyntax {joint-iso-itu-t genericULS(20) modules(1)
+ genericProtectingTransferSyntax(7)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SyntaxStructure{};
+
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, ExternalSAID
+ FROM Notation notation;
+
+SyntaxStructure{SECURITY-TRANSFORMATION:ValidSTs} ::= CHOICE {
+ firstPdvExplicit FirstPdvExplicit{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of a presentation-context-bound or
+ -- single-item-bound security association.
+ firstPdvExternal FirstPdvExternal{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of an externally established
+ -- security association.
+ subsequentPdv SubsequentPdv{{ValidSTs}}
+ -- To be used on a subsequent PDV in a protecting
+ -- presentation context.
+}
+
+FirstPdvExplicit{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ transformationId SECURITY-TRANSFORMATION.&sT-Identifier({ValidSTs}),
+ staticUnprotParm
+ SECURITY-TRANSFORMATION.&StaticUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ xformedData
+ SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}{@transformationId})
+}
+
+FirstPdvExternal{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ externalSAID ExternalSAID,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+}
+
+SubsequentPdv{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is implied
+ -- by presentation context
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..60acbb3b5c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
@@ -0,0 +1,16 @@
+-- Module Geo-Gr-Coding-Attributes (T.418:03/1993)
+
+Geo-Gr-Coding-Attributes {2 8 1 8 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Geo-Gr-Coding-Attributes;
+
+Geo-Gr-Coding-Attributes ::= SET {
+}
+
+-- no geometric graphics coding attributes are defined
+-- in this Specification
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..84c1ee9851
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
@@ -0,0 +1,265 @@
+-- Module Geo-Gr-Presentation-Attributes (T.418:03/1993)
+
+Geo-Gr-Presentation-Attributes {2 8 1 8 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geometric-Graphics-Attributes, Line-Rendition, Marker-Rendition,
+ Text-Rendition, Filled-Area-Rendition, Edge-Rendition,
+ Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles;
+
+Geometric-Graphics-Attributes ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+ASF-Type ::= ENUMERATED {bundled(0), individual(1)}
+
+Colour ::= CHOICE {indexed [0] INTEGER,
+ direct [1] RGB
+}
+
+RGB ::= SEQUENCE {red REAL,
+ green REAL,
+ blue REAL
+}
+
+SpecificationMode ::= ENUMERATED {absolute(0), scaled(1)}
+
+Line-Rendition ::= SEQUENCE {
+ line-width-specification-mode [0] SpecificationMode OPTIONAL,
+ line-bundle-index [1] INTEGER OPTIONAL,
+ line-type [2] INTEGER OPTIONAL,
+ line-width [3] Scaled-or-Absolute OPTIONAL,
+ line-colour [4] Colour OPTIONAL,
+ line-aspect-source-flags
+ [5] SEQUENCE {line-type-asf ASF-Type,
+ line-width-asf ASF-Type,
+ line-colour-asf ASF-Type} OPTIONAL,
+ line-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {line-bundle-index INTEGER,
+ line-bundle-representation
+ SEQUENCE {line-type INTEGER,
+ line-width Scaled-or-Absolute,
+ line-colour Colour}} OPTIONAL
+}
+
+Scaled-or-Absolute ::= CHOICE {
+ absolute
+ [0] CHOICE { -- absolute--vdc-int [0] INTEGER, -- for VDC Type INTEGER--
+ vdc-real [1] REAL}, -- for VDC Type REAL
+ scaled [1] REAL
+} -- scaled
+
+Marker-Rendition ::= SEQUENCE {
+ marker-size-specification-mode [0] SpecificationMode OPTIONAL,
+ marker-bundle-index [1] INTEGER OPTIONAL,
+ marker-type [2] INTEGER OPTIONAL,
+ marker-size [3] Scaled-or-Absolute OPTIONAL,
+ marker-colour [4] Colour OPTIONAL,
+ marker-aspect-source-flags
+ [5] SEQUENCE {marker-type-asf ASF-Type,
+ marker-size-asf ASF-Type,
+ marker-colour-asf ASF-Type} OPTIONAL,
+ marker-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {marker-bundle-index INTEGER,
+ marker-bundle-representation
+ SEQUENCE {marker-type INTEGER,
+ marker-size Scaled-or-Absolute,
+ marker-colour Colour}} OPTIONAL
+}
+
+Text-Rendition ::= SEQUENCE {
+ font-list [0] SEQUENCE OF GeneralString OPTIONAL,
+ character-set-list
+ [1] SEQUENCE {character-set-type
+ ENUMERATED {n94-char-sets(0), n96-char-sets(1),
+ n94-char-multibyte-sets(2),
+ n96-char-multibyte-sets(3), comp-code(4)},
+ designation-sequence-tail GeneralString} OPTIONAL,
+ character-coding-announcer
+ [2] ENUMERATED {basic-7-bit(0), basic-8-bit(1), extended-7-bit(2),
+ extended-8-bit(3)} OPTIONAL,
+ text-bundle-index [3] INTEGER OPTIONAL,
+ text-font-index [4] INTEGER OPTIONAL,
+ text-precision
+ [5] ENUMERATED {string(0), character(1), stroke(2)} OPTIONAL,
+ character-expansion-factor [6] REAL OPTIONAL,
+ character-spacing [7] REAL OPTIONAL,
+ text-colour [8] Colour OPTIONAL,
+ character-height [9] VDC-Value OPTIONAL,
+ character-orientation [10] SEQUENCE {a VDC-Pair,
+ b VDC-Pair} OPTIONAL,
+ text-path
+ [11] ENUMERATED {right(0), left(1), up(2), down(3)} OPTIONAL,
+ text-alignment
+ [12] SEQUENCE {horizontal-alignment
+ ENUMERATED {normal-horizontal(0), left(1), centre(2),
+ right(3), continuous-horizontal(4)},
+ vertical-alignment
+ ENUMERATED {normal-vertical(0), top(1), cap(2),
+ half(3), base(4), bottom(5),
+ continuous-vertical(6)},
+ continuous-horizontal-alignment [0] REAL OPTIONAL,
+ continuous-vertical-alignment [1] REAL OPTIONAL
+ } OPTIONAL,
+ character-set-index [13] INTEGER OPTIONAL,
+ alternate-character-set-index [14] INTEGER OPTIONAL,
+ text-aspect-source-flags
+ [15] SEQUENCE {text-font-asf ASF-Type,
+ text-precision-asf ASF-Type,
+ character-expansion-factor-asf ASF-Type,
+ character-spacing-asf ASF-Type,
+ text-colour-asf ASF-Type} OPTIONAL,
+ text-bundle-specifications
+ [16] SEQUENCE OF
+ SEQUENCE {text-bundle-index INTEGER,
+ text-bundle-representation
+ SEQUENCE {text-font-index INTEGER,
+ text-precision
+ ENUMERATED {string(0), character(1),
+ stroke(2)},
+ character-expansion-factor REAL,
+ character-spacing REAL,
+ text-colour Colour}
+ } OPTIONAL
+}
+
+VDC-Value ::= CHOICE {a INTEGER,
+ b REAL
+}
+
+VDC-Pair ::= SEQUENCE {x VDC-Value,
+ y VDC-Value
+}
+
+Filled-Area-Rendition ::= SEQUENCE {
+ fill-bundle-index [1] INTEGER OPTIONAL,
+ interior-style
+ [2] ENUMERATED {hollow(0), solid(1), pattern(2), hatch(3), empty(4)}
+ OPTIONAL,
+ fill-colour [3] Colour OPTIONAL,
+ hatch-index [4] INTEGER OPTIONAL,
+ pattern-index [5] INTEGER OPTIONAL,
+ fill-reference-point [6] VDC-Pair OPTIONAL,
+ pattern-size
+ [7] SEQUENCE {height-x-component VDC-Value,
+ height-y-component VDC-Value,
+ width-x-component VDC-Value,
+ width-y-component VDC-Value} OPTIONAL,
+ pattern-table-specifications [8] SEQUENCE OF PatternTableElement OPTIONAL,
+ fill-aspect-source-flags
+ [9] SEQUENCE {interior-style-asf ASF-Type,
+ fill-colour-asf ASF-Type,
+ hatch-index-asf ASF-Type,
+ pattern-index-asf ASF-Type} OPTIONAL,
+ fill-bundle-specifications
+ [10] SEQUENCE {fill-bundle-index INTEGER,
+ fill-bundle-representation
+ SEQUENCE {interior-style
+ ENUMERATED {hollow(0), solid(1), pattern(2),
+ hatch(3), empty(4)},
+ fill-colour Colour,
+ hatch-index INTEGER,
+ patttern-index INTEGER}} OPTIONAL
+}
+
+PatternTableElement ::= SEQUENCE {
+ pattern-table-index INTEGER,
+ nx INTEGER,
+ ny INTEGER,
+ local-colour-precision INTEGER,
+ colour SEQUENCE OF Colour
+}
+
+Edge-Rendition ::= SEQUENCE {
+ edge-width-spec-mode [0] SpecificationMode OPTIONAL,
+ edge-visibility [1] On-or-Off OPTIONAL,
+ edge-bundle-index [2] INTEGER OPTIONAL,
+ edge-type [3] INTEGER OPTIONAL,
+ edge-width [4] Scaled-or-Absolute OPTIONAL,
+ edge-colour [5] Colour OPTIONAL,
+ edge-aspect-source-flags
+ [6] SEQUENCE {edge-type-asf ASF-Type,
+ edge-width-asf ASF-Type,
+ edge-colour-asf ASF-Type} OPTIONAL,
+ edge-bundle-specifications
+ [7] SEQUENCE OF
+ SEQUENCE {edge-bundle-index INTEGER,
+ edge-bundle-representation
+ SEQUENCE {edge-type INTEGER,
+ edge-width Scaled-or-Absolute,
+ edge-colour Colour}} OPTIONAL
+}
+
+On-or-Off ::= ENUMERATED {off(0), on(1)}
+
+Colour-Representations ::= SEQUENCE {
+ background-colour [0] RGB OPTIONAL,
+ colour-table-specification
+ [1] SEQUENCE OF
+ SEQUENCE {starting-index INTEGER,
+ colour-list SEQUENCE OF RGB} OPTIONAL
+}
+
+Transparency-Specification ::= SEQUENCE {
+ transparency [0] On-or-Off OPTIONAL,
+ auxiliary-colour [1] Colour OPTIONAL
+}
+
+Transformation-Specification ::= SEQUENCE {
+ vdc-extent [0] Rectangle OPTIONAL,
+ clip-rectangle [1] Rectangle OPTIONAL,
+ clip-indicator [2] On-or-Off OPTIONAL
+}
+
+Rectangle ::= SEQUENCE {first-corner VDC-Pair,
+ second-corner VDC-Pair
+}
+
+Region-Of-Interest-Specification ::= CHOICE {
+ automatic [0] NULL,
+ rectangle [1] SEQUENCE {a VDC-Pair,
+ b VDC-Pair}
+}
+
+Picture-Orientation ::= One-Of-Four-Angles
+
+One-Of-Four-Angles ::= ENUMERATED {d0(0), d90(1), d180(2), d270(3)}
+
+Picture-Dimensions ::= CHOICE {
+ width-controlled
+ [0] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER},
+ height-controlled
+ [1] SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag ENUMERATED {fixed(0), variable(1)}
+ },
+ automatic [3] NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..28daa467e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
@@ -0,0 +1,44 @@
+-- Module Geo-Gr-Profile-Attributes (T.418:03/1993)
+
+Geo-Gr-Profile-Attributes {2 8 1 8 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute, Geo-Gr-Content-Defaults;
+
+IMPORTS
+ Line-Rendition, Marker-Rendition, Text-Rendition, Filled-Area-Rendition,
+ Edge-Rendition, Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see 10.2
+
+Geo-Gr-Presentation-Feature ::= CHOICE {
+ null NULL,
+ text-rendition [3] Text-Rendition
+}
+
+Geo-Gr-Coding-Attribute ::= NULL
+
+-- no non-basic values are defined for the
+-- geometric graphics coding attributes in this Specification
+Geo-Gr-Content-Defaults ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityExchanges.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityExchanges.asn
new file mode 100644
index 0000000000..336b824174
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityExchanges.asn
@@ -0,0 +1,79 @@
+-- Module GulsSecurityExchanges (X.830:04/1995)
+
+GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityExchanges, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-EXCHANGE, SEC-EXCHG-ITEM, SE-ERROR
+ FROM Notation notation
+ Credentials, SecurityProblem
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3};
+
+-- *******************************************
+-- Directory Authentication Exchange (One-way)
+-- *******************************************
+dirAuthenticationOneWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {credentials}
+ IDENTIFIER global:{securityExchanges dir-authent-one-way(1)}
+}
+
+credentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+}
+
+-- *******************************************
+-- Directory Authentication Exchange (Two-way)
+-- *******************************************
+dirAuthenticationTwoWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {initiatorCredentials | responderCredentials}
+ IDENTIFIER global:{securityExchanges dir-authent-two-way(2)}
+}
+
+initiatorCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+ ERRORS {authenticationFailure}
+}
+
+responderCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 2
+}
+
+authenticationFailure SE-ERROR ::= {
+ PARAMETER DirectoryAbstractService.SecurityProblem
+ ERROR-CODE local:1
+}
+
+-- ***************************
+-- Simple Negotiation Exchange
+-- ***************************
+simpleNegotiationSE SECURITY-EXCHANGE ::= {
+ SE-ITEMS {offeredIds | acceptedIds}
+ IDENTIFIER global:{securityExchanges simple-negotiation-se(3)}
+}
+
+offeredIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 1
+}
+
+acceptedIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 2
+}
+
+Negotiation-SEI ::= SEQUENCE OF OBJECT IDENTIFIER
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityTransformations.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityTransformations.asn
new file mode 100644
index 0000000000..db2725c37d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/GulsSecurityTransformations.asn
@@ -0,0 +1,212 @@
+-- Module GulsSecurityTransformations (X.830:04/1995)
+
+GulsSecurityTransformations {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityTransformations(3)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityTransformations, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, SecurityIdentity
+ FROM Notation notation
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- ***************************************
+-- Notation for specifying key information
+-- ***************************************
+KEY-INFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying key information relating to particular classes
+ -- of protection mechanisms (e.g. symmetric, asymmetric).
+ -- It may be useful in defining various security transformations.
+ {
+ &kiClass CHOICE {local INTEGER,
+ -- local objects can only be defined within this
+ -- ASN.1 module.
+ global OBJECT IDENTIFIER
+ -- global objects are defined elsewhere
+ } UNIQUE,
+ &KiType
+}WITH SYNTAX {KEY-INFO-CLASS &kiClass
+ KEY-INFO-TYPE &KiType
+}
+
+symmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:0
+ KEY-INFO-TYPE
+ SEQUENCE {entityId SecurityIdentity,
+ keyIdentifier INTEGER}
+}
+
+asymmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:1
+ KEY-INFO-TYPE
+ SEQUENCE {issuerCAName SecurityIdentity OPTIONAL,
+ certSerialNumber INTEGER OPTIONAL,
+ signerName SecurityIdentity OPTIONAL,
+ keyIdentifier BIT STRING OPTIONAL}
+}
+
+-- *******************************************
+-- Directory ENCRYPTED Security Transformation
+-- *******************************************
+dirEncryptedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-encrypted(1)}
+ -- This transformation transforms a string of octets to a
+ -- new bit string using an encipherment process.
+ INITIAL-ENCODING-RULES {joint-iso-itu-t asn1(1) ber(1)}
+ XFORMED-DATA-TYPE BIT STRING
+}
+
+-- ****************************************
+-- Directory SIGNED Security Transformation
+-- ****************************************
+dirSignedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signed(2)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {toBeSigned
+ ABSTRACT-SYNTAX.&Type
+ (CONSTRAINED BY {
+
+ -- this type is constrained to being the to-be-signed type -- }),
+ algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- *******************************************
+-- Directory SIGNATURE Security Transformation
+-- *******************************************
+dirSignatureTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signature(3)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- ***********************************
+-- GULS SIGNED Security Transformation
+-- ***********************************
+gulsSignedTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signed(4)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {intermediateValue
+ EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ -- The transfer syntax to be used is that
+ -- indicated by the initEncRules value within
+ -- the intermediate value -- })PRESENT
+ }),
+ data-value (CONTAINING IntermediateType{{SupportedKIClasses}})
+
+ -- The data value encoded is a value of type
+ -- IntermediateType
+ }),
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.4 of DIS 11586-1 -- })
+ }
+}
+
+IntermediateType{KEY-INFORMATION:SupportedKIClasses} ::= SEQUENCE {
+ unprotectedItem ABSTRACT-SYNTAX.&Type-- this type is constrained to being
+ -- the type of the unprotected item, or
+ -- BIT STRING if the unprotected item is
+ -- not derived from an ASN.1 abstract
+ -- syntax --,
+ initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm
+ -- parameters.
+ keyInformation
+ SEQUENCE {kiClass KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo KEY-INFORMATION.&KiType({SupportedKIClasses}{@.kiClass})
+ } OPTIONAL
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+}
+
+-- **************************************
+-- GULS SIGNATURE Security Transformation
+-- **************************************
+gulsSignatureTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signature(5)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT
+ {joint-iso-itu-t asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm parameters.
+ keyInformation
+ SEQUENCE {kiClass
+ KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo
+ KEY-INFORMATION.&KiType
+ ({SupportedKIClasses}{@.kiClass})} OPTIONAL,
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.5 of DIS 11586-1 -- })
+ }
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/HierarchicalOperationalBindings.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/HierarchicalOperationalBindings.asn
new file mode 100644
index 0000000000..4e0084b079
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/HierarchicalOperationalBindings.asn
@@ -0,0 +1,123 @@
+-- Module HierarchicalOperationalBindings (X.518 TC2:08/1997)
+
+HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1)
+ hierarchicalOperationalBindings(20) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations,
+ directoryOperationalBindingTypes, opBindingManagement, dsp
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, RelativeDistinguishedName, DistinguishedName
+ FROM InformationFramework informationFramework
+ MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ directorySystemAC
+ FROM DirectorySystemProtocol dsp
+ OPERATIONAL-BINDING
+ FROM OperationalBindingManagement opBindingManagement
+ id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical
+ FROM DirectoryOperationalBindingTypes directoryOperationalBindingTypes;
+
+-- types
+HierarchicalAgreement ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ immediateSuperior [1] DistinguishedName
+}
+
+NonSpecificHierarchicalAgreement ::= SEQUENCE {
+ immediateSuperior [1] DistinguishedName
+}
+
+SuperiorToSubordinate ::= SEQUENCE {
+ contextPrefixInfo [0] DITcontext,
+ entryInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ immediateSuperiorInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL
+}
+
+DITcontext ::= SEQUENCE OF Vertex
+
+Vertex ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ admPointInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [2] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL,
+ accessPoints [3] MasterAndShadowAccessPoints OPTIONAL
+}
+
+SubentryInfo ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ info [1] SET OF Attribute
+}
+
+SubordinateToSuperior ::= SEQUENCE {
+ accessPoints [0] MasterAndShadowAccessPoints OPTIONAL,
+ alias [1] BOOLEAN DEFAULT FALSE,
+ entryInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+SuperiorToSubordinateModification ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSuperiorToSubordinate ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSubordinateToSuperior ::= SEQUENCE {
+ accessPoint [0] MasterAndShadowAccessPoints OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+-- operational binding information objects
+hierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT HierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SuperiorToSubordinateModification
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-hierarchical
+}
+
+nonSpecificHierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT NonSpecificHierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSuperiorToSubordinate
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-non-specific-hierarchical
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAbstractService.asn
new file mode 100644
index 0000000000..3fec8ae64a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAbstractService.asn
@@ -0,0 +1,148 @@
+-- Module IPMSAbstractService (X.420:06/1999)
+IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AutoForwardComment, Heading, InformationObject, IPM, NRN, ON, RN
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-pt-management, id-pt-origination, id-pt-reception
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, MessageDeliveryEnvelope,
+ MessageSubmissionEnvelope, MessageSubmissionIdentifier,
+ MessageSubmissionTime, ORName, PORT, ProbeSubmissionEnvelope,
+ ProbeSubmissionIdentifier, ProbeSubmissionTime,
+ recipient-improperly-specified, ReportDeliveryEnvelope,
+ SupplementaryInformation
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Ports
+origination PORT ::= {
+ CONSUMER INVOKES
+ {originate-probe | originate-ipm | originate-rn | originate-on}
+ ID id-pt-origination
+}
+
+reception PORT ::= {
+ SUPPLIER INVOKES
+ {receive-report | receive-ipm | receive-rn | receive-nrn | receive-on}
+ ID id-pt-reception
+}
+
+management PORT ::= {
+ CONSUMER INVOKES
+ {change-auto-discard | change-auto-acknowledgment | change-auto-forwarding}
+ ID id-pt-management
+}
+
+-- Origination abstract operations
+originate-probe ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] ProbeSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] ProbeSubmissionIdentifier,
+ submission-time [1] ProbeSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] RN}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] ON}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Reception abstract operations
+receive-report ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {envelope [0] ReportDeliveryEnvelope,
+ undelivered-object [1] InformationObject OPTIONAL}
+}
+
+receive-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] IPM}
+}
+
+receive-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] RN}
+}
+
+receive-nrn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] NRN}
+}
+
+receive-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] ON}
+}
+
+-- Management abstract operations
+change-auto-discard ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-discard-expired-IPMs [0] BOOLEAN,
+ auto-discard-obsolete-IPMs [1] BOOLEAN}
+}
+
+change-auto-acknowledgment ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-acknowledge-IPMs [0] BOOLEAN,
+ auto-acknowledge-suppl-receipt-info
+ [1] SupplementaryInformation OPTIONAL}
+ ERRORS {subscription-error}
+}
+
+change-auto-forwarding ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-forward-IPMs [0] BOOLEAN,
+ auto-forward-recipients [1] SEQUENCE OF ORName OPTIONAL,
+ auto-forward-heading [2] Heading OPTIONAL,
+ auto-forward-comment [3] AutoForwardComment OPTIONAL}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Abstract errors
+subscription-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] SubscriptionProblem}
+}
+
+SubscriptionProblem ::= ENUMERATED {
+ ipms-eos-not-subscribed(0), mts-eos-not-subscribed(1)}
+
+END -- of IPMSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAutoActionTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAutoActionTypes.asn
new file mode 100644
index 0000000000..8c0c8138e2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSAutoActionTypes.asn
@@ -0,0 +1,234 @@
+-- Module IPMSAutoActionTypes (X.420:06/1999)
+IPMSAutoActionTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) auto-actions(13)
+ version-1999(1)} DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AdviceNotifications, AutoForwardComment, BodyPart, Heading, IA5TextBodyPart,
+ IPMSExtension, SupplReceiptInfoField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Upper Bounds
+ ub-ipm-identifier-suffix
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-aa-ipm-auto-acknowledgement, id-aa-ipm-auto-advise,
+ id-aa-ipm-auto-correlate, id-aa-ipm-auto-discard,
+ id-aae-auto-discard-error, id-aae-auto-forwarding-loop,
+ id-aae-duplicate-ipn
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Auto-action information object class
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS Abstract Service data-types and abstract-errors
+ Filter, EntryInformationSelection, ms-extension-error, MSSubmissionOptions,
+ service-error
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS object identifier
+ id-act-ipm-auto-forward
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service data-types and abstract-errors
+ ContentIdentifier, DeferredDeliveryTime, element-of-service-not-subscribed,
+ ExplicitConversion, ExtensionField{}, inconsistent-request,
+ MessageSubmissionEnvelope, originator-invalid, OriginatorName,
+ OriginatorReportRequest, PerMessageIndicators,
+ PerMessageSubmissionExtensions, PerRecipientMessageSubmissionExtensions,
+ Priority, recipient-improperly-specified, RecipientName, remote-bind-error,
+ security-error, submission-control-violated, unsupported-critical-function
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS upper bounds
+ ub-recipients
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- IPM auto-actions information object set
+IPMAutoActions AUTO-ACTION ::=
+ {ipm-auto-forward, ... -- 1994 extension additions --,
+ ipm-auto-acknowledgement | ipm-auto-correlate | ipm-auto-discard |
+ ipm-auto-advise}
+
+-- Auto-actions
+ipm-auto-forward AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS
+ CHOICE {ipm-auto-forward-registration-parameter
+ IPMAutoForwardRegistrationParameter-- used in 1994 Application Contexts only -- ,
+ auto-forward-registration-parameter-88
+ AutoForwardRegistrationParameter88
+ } -- used in 1988 Application Contexts only
+ ERRORS
+ {auto-forwarding-loop | element-of-service-not-subscribed |
+ inconsistent-request | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated |
+ unsupported-critical-function, ...}
+ IDENTIFIED BY id-act-ipm-auto-forward
+}
+
+-- Auto-forward 1994
+IPMAutoForwardRegistrationParameter ::= SEQUENCE {
+ filter [0] Filter OPTIONAL,
+ forwarding-envelope [1] MessageSubmissionEnvelope,
+ forwarding-heading [2] Heading,
+ forwarding-cover-note [3] BodyPart OPTIONAL,
+ submission-options [4] MSSubmissionOptions OPTIONAL,
+ nrn-comment [5] AutoForwardComment OPTIONAL,
+ ipm-auto-forward-options [6] IPMAutoForwardOptions DEFAULT {}
+}
+
+IPMAutoForwardOptions ::= BIT STRING {
+ forward-all-object-types(0), -- forward-all-object-types 'one', forward IPMs only 'zero'
+ include-returned-content(1), -- include-returned-content 'one', exclude 'zero'
+ include-returned-ipm(2), -- include-returned-ipm 'one', exclude 'zero'
+ forwarded-content-prohibited(3), -- forwarded-content-prohibited 'one', allowed'zero'
+ preserve-retrieval-status(4), -- preserve-retrieval-status 'one', change 'zero'
+ delete-delivered-object(5)
+} -- delete-delivered-object 'one', no deletion 'zero'
+
+-- Auto-forward 1988
+AutoForwardRegistrationParameter88 ::= SET {
+ filter [0] Filter OPTIONAL,
+ auto-forward-arguments [1] AutoForwardArguments,
+ delete-after-auto-forwarding [2] BOOLEAN DEFAULT FALSE,
+ forwarding-information [3] EncodedForwardingInformation
+}
+
+AutoForwardArguments ::= SET {
+ COMPONENTS OF PerMessageAutoForwardFields,
+ per-recipient-fields
+ [1] IMPLICIT SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientAutoForwardFields
+}
+
+PerMessageAutoForwardFields ::= SET {
+ originator-name OriginatorName,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority OPTIONAL,
+ per-message-indicators PerMessageIndicators OPTIONAL,
+ deferred-delivery-time [0] IMPLICIT DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF ExtensionField{{PerMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientAutoForwardFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] IMPLICIT OriginatorReportRequest,
+ explicit-conversion [1] IMPLICIT ExplicitConversion OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF
+ ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+EncodedForwardingInformation ::=
+ OCTET STRING -- contains ForwardingInformation1988
+
+ForwardingInformation1988 ::= SET {
+ auto-forwarding-comment [0] IMPLICIT AutoForwardComment OPTIONAL,
+ ia5-cover-note [1] IMPLICIT IA5TextBodyPart OPTIONAL,
+ this-ipm-prefix
+ [2] IMPLICIT PrintableString(SIZE (1..ub-ipm-identifier-suffix)) OPTIONAL
+}
+
+--
+ipm-auto-acknowledgement AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAcknowledgementRegistrationParameter
+ ERRORS
+ {originator-invalid | submission-control-violated |
+ element-of-service-not-subscribed | recipient-improperly-specified |
+ remote-bind-error | inconsistent-request | security-error |
+ unsupported-critical-function | duplicate-ipn}
+ IDENTIFIED BY id-aa-ipm-auto-acknowledgement
+}
+
+IPMAutoAcknowledgementRegistrationParameter ::= SET {
+ auto-acknowledge-suppl-receipt-info [0] SupplReceiptInfoField OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL
+}
+
+--
+ipm-auto-correlate AUTO-ACTION ::= {IDENTIFIED BY id-aa-ipm-auto-correlate
+}
+
+--
+ipm-auto-discard AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoDiscardRegistrationParameter
+ ERRORS
+ {submission-control-violated | ipm-auto-discard-error | originator-invalid
+ | recipient-improperly-specified | inconsistent-request | security-error
+ | unsupported-critical-function | remote-bind-error |
+ element-of-service-not-subscribed}
+ IDENTIFIED BY id-aa-ipm-auto-discard
+}
+
+IPMAutoDiscardRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL,
+ auto-discard-expired-ipms [2] BOOLEAN,
+ auto-discard-obsoleted-ipms [3] BOOLEAN,
+ restrict-obsoleting-to-originator [4] BOOLEAN
+}
+
+--
+ipm-auto-advise AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAdviseRegistrationParameter
+ ERRORS
+ {inconsistent-request | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified | remote-bind-error |
+ security-error | submission-control-violated |
+ unsupported-critical-function}
+ IDENTIFIED BY id-aa-ipm-auto-advise
+}
+
+IPMAutoAdviseRegistrationParameter ::= SET {
+ enabled [0] BOOLEAN DEFAULT TRUE,
+ filter [1] Filter OPTIONAL,
+ advice-notifications
+ [2] SET OF IPMSExtension{{AdviceNotifications}},
+ suppress-subsequent-notifications [3] BOOLEAN DEFAULT TRUE,
+ use-ipm-if-an-not-supported [4] BOOLEAN DEFAULT FALSE,
+ submission-options [5] MSSubmissionOptions OPTIONAL
+}
+
+-- IPM auto-action-error-table information object set
+IPMAutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {... -- 1994 extension additions --, auto-forwarding-loop | duplicate-ipn |
+ element-of-service-not-subscribed | inconsistent-request |
+ ipm-auto-discard-error | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated | unsupported-critical-function}
+
+-- Auto-action-error-types
+auto-forwarding-loop AUTO-ACTION-ERROR ::= {
+ CODE global:id-aae-auto-forwarding-loop
+}
+
+duplicate-ipn AUTO-ACTION-ERROR ::= {CODE global:id-aae-duplicate-ipn
+}
+
+ipm-auto-discard-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SET {problem [0] AutoDiscardProblem}
+ CODE global:id-aae-auto-discard-error
+}
+
+AutoDiscardProblem ::= INTEGER {not-obsoleted-by-originator(0)}
+
+END -- of IPMSAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
new file mode 100644
index 0000000000..9805a6189d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
@@ -0,0 +1,102 @@
+-- Module IPMSExtendedBodyPartTypes (X.420:06/1999)
+IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ BilaterallyDefinedBodyPart, EncryptedData, EncryptedParameters,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileData, G3FacsimileParameters,
+ G4Class1BodyPart, IA5TextData, IA5TextParameters, MessageData,
+ MessageParameters, MixedModeBodyPart, NationallyDefinedBodyPart,
+ TeletexData, TeletexParameters, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-encrypted, id-ep-g3-facsimile, id-ep-ia5-text, id-ep-message,
+ id-ep-teletex, id-ep-videotex, id-et-bilaterally-defined, id-et-encrypted,
+ id-et-g3-facsimile, id-et-g4-class1, id-et-ia5-text, id-et-message,
+ id-et-mixed-mode, id-et-nationally-defined, id-et-teletex, id-et-videotex
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended IA5 Text body part
+ia5-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {IA5TextParameters
+ IDENTIFIED BY id-ep-ia5-text},
+ DATA {IA5TextData
+ IDENTIFIED BY id-et-ia5-text}
+}
+
+-- Extended G3 Facsimile body part
+g3-facsimile-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {G3FacsimileParameters
+ IDENTIFIED BY id-ep-g3-facsimile},
+ DATA {G3FacsimileData
+ IDENTIFIED BY id-et-g3-facsimile}
+}
+
+-- Extended G4 Class 1 body part
+g4-class1-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {G4Class1BodyPart
+ IDENTIFIED BY id-et-g4-class1}
+}
+
+-- Extended Teletex body part
+teletex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {TeletexParameters
+ IDENTIFIED BY id-ep-teletex},
+ DATA {TeletexData
+ IDENTIFIED BY id-et-teletex}
+}
+
+-- Extended Videotex body part
+videotex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VideotexParameters
+ IDENTIFIED BY id-ep-videotex},
+ DATA {VideotexData
+ IDENTIFIED BY id-et-videotex}
+}
+
+-- Extended Encrypted body part
+encrypted-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {EncryptedParameters
+ IDENTIFIED BY id-ep-encrypted},
+ DATA {EncryptedData
+ IDENTIFIED BY id-et-encrypted}
+}
+
+-- Extended Message body part
+message-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-message},
+ DATA {MessageData
+ IDENTIFIED BY id-et-message}
+}
+
+-- Extended Mixed-mode body part
+mixed-mode-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {MixedModeBodyPart
+ IDENTIFIED BY id-et-mixed-mode}
+}
+
+-- Extended Bilaterally Defined body part
+bilaterally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {BilaterallyDefinedBodyPart
+ IDENTIFIED BY id-et-bilaterally-defined}
+}
+
+-- Extended Nationally Defined body part
+nationally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {NationallyDefinedBodyPart
+ IDENTIFIED BY id-et-nationally-defined}
+}
+
+END -- of IPMSExtendedBodyPartTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
new file mode 100644
index 0000000000..b39e03c3b6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
@@ -0,0 +1,37 @@
+-- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999)
+IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0)
+ extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-general-text, id-et-general-text
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- General Text body part
+general-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {GeneralTextParameters
+ IDENTIFIED BY id-ep-general-text},
+ DATA {GeneralTextData
+ IDENTIFIED BY id-et-general-text}
+}
+
+GeneralTextParameters ::= SET OF CharacterSetRegistration
+
+GeneralTextData ::= GeneralString
+
+CharacterSetRegistration ::= INTEGER(1..32767)
+
+END -- of IPMSExtendedBodyPartTypes2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
new file mode 100644
index 0000000000..171f4b4223
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
@@ -0,0 +1,39 @@
+-- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999)
+IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-voice, id-et-voice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended Voice body part
+voice-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VoiceParameters
+ IDENTIFIED BY id-ep-voice},
+ DATA {VoiceData
+ IDENTIFIED BY id-et-voice}
+}
+
+VoiceParameters ::= SEQUENCE {
+ voice-message-duration [0] INTEGER OPTIONAL, -- In seconds
+ voice-encoding-type [1] OBJECT IDENTIFIER,
+ supplementary-information [2] IA5String OPTIONAL
+}
+
+VoiceData ::= OCTET STRING
+
+END -- of IPMSExtendedVoiceBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFileTransferBodyPartType.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
new file mode 100644
index 0000000000..59de6d1b04
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
@@ -0,0 +1,253 @@
+-- Module IPMSFileTransferBodyPartType (X.420:06/1999)
+IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ file-transfer-body-part-type(9)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- FTAM Attribute Types
+ Attribute-Extensions, Concurrency-Access, Date-and-Time-Attribute,
+ Legal-Qualification-Attribute, Object-Availability-Attribute,
+ Object-Size-Attribute, Pathname, Permitted-Actions-Attribute,
+ Private-Use-Attribute
+ --==
+ FROM ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)}
+ -- ACSE definitions of AP-title and AE-qualifier
+ AE-qualifier, AP-title
+ --==
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, ExtensionsField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-file-transfer, id-et-file-transfer
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ORName
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- File Transfer body part
+file-transfer-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {FileTransferParameters
+ IDENTIFIED BY id-ep-file-transfer},
+ DATA {FileTransferData
+ IDENTIFIED BY id-et-file-transfer}
+}
+
+FileTransferParameters ::= SEQUENCE {
+ related-stored-file [0] RelatedStoredFile OPTIONAL,
+ contents-type
+ [1] ContentsTypeParameter
+ DEFAULT
+ document-type:
+ {document-type-name
+ {iso standard 8571 document-type(5) unstructured-binary(3)}},
+ environment [2] EnvironmentParameter OPTIONAL,
+ compression [3] CompressionParameter OPTIONAL,
+ file-attributes [4] FileAttributes OPTIONAL,
+ extensions [5] ExtensionsField OPTIONAL
+}
+
+FileTransferData ::= SEQUENCE OF EXTERNAL
+
+-- This conveys a sequence of data values representing file contents;
+-- The rules for generating this sequence are implied by the value of the contents-type parameter.
+RelatedStoredFile ::=
+ SET OF
+ SEQUENCE {file-identifier FileIdentifier,
+ relationship
+ Relationship DEFAULT explicit-relationship:unspecified
+ }
+
+FileIdentifier ::= CHOICE {
+ pathname-and-version [0] PathnameandVersion,
+ cross-reference [1] CrossReference
+}
+
+PathnameandVersion ::= SEQUENCE {
+ pathname [0] Pathname-Attribute,
+ file-version [1] GraphicString OPTIONAL
+}
+
+CrossReference ::= SEQUENCE {
+ application-cross-reference [0] OCTET STRING,
+ message-reference [1] MessageReference OPTIONAL,
+ body-part-reference [2] INTEGER OPTIONAL
+}
+
+MessageReference ::= SET {
+ user [0] ORName OPTIONAL,
+ -- Defined in 8.5.5 of ITU-T Rec. X.411 | ISO/IEC 10021-4
+ user-relative-identifier [1] PrintableString
+}
+
+Relationship ::= CHOICE {
+ explicit-relationship [0] ExplicitRelationship,
+ descriptive-relationship [1] GraphicString
+}
+
+ExplicitRelationship ::= INTEGER {
+ unspecified(0), new-file(1), replacement(2), extension(3)}
+
+ContentsTypeParameter ::= Contents-Type-Attribute
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] SEQUENCE {document-type-name Document-Type-Name,
+ parameter [0] DOCUMENT-PARAMETER.&Type OPTIONAL
+ },
+ -- The actual types to be used for values of the parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-syntax
+ [1] SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-syntax-name Abstract-Syntax-Name}
+}
+
+Document-Type-Name ::= OBJECT IDENTIFIER
+
+DOCUMENT-PARAMETER ::= CLASS {&Type
+}
+
+Constraint-Set-Name ::= OBJECT IDENTIFIER
+
+Abstract-Syntax-Name ::= OBJECT IDENTIFIER
+
+EnvironmentParameter ::= SEQUENCE {
+ application-reference [0] GeneralIdentifier OPTIONAL,
+ machine [1] GeneralIdentifier OPTIONAL,
+ operating-system [2] OBJECT IDENTIFIER OPTIONAL,
+ user-visible-string [3] SEQUENCE OF GraphicString OPTIONAL
+}
+
+GeneralIdentifier ::= CHOICE {
+ registered-identifier [0] OBJECT IDENTIFIER,
+ descriptive-identifier [1] SEQUENCE OF GraphicString
+}
+
+CompressionParameter ::= SEQUENCE {
+ compression-algorithm-id
+ [0] COMPRESSION-ALGORITHM.&id({CompressionAlgorithmTable}),
+ compression-algorithm-param
+ [1] COMPRESSION-ALGORITHM.&Type
+ ({CompressionAlgorithmTable}{@compression-algorithm-id})
+}
+
+COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER
+
+CompressionAlgorithmTable COMPRESSION-ALGORITHM ::=
+ {...}
+
+FileAttributes ::= SEQUENCE {
+ pathname Pathname-Attribute OPTIONAL,
+ permitted-actions
+ [1] Permitted-Actions-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-of-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ legal-qualifications
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ attribute-extensions
+ [22] Attribute-Extensions OPTIONAL
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] Pathname,
+ complete-pathname [23] Pathname
+}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute
+ actual-values Account
+}
+
+Account ::= GraphicString
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values User-Identity
+}
+
+User-Identity ::= GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values [1] SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute are described in ISO 8571-2
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] Access-Request,
+ concurrency-access [1] Concurrency-Access OPTIONAL,
+ identity [2] User-Identity OPTIONAL,
+ passwords [3] Access-Passwords OPTIONAL,
+ location [4] Application-Entity-Title OPTIONAL
+}
+
+Access-Request ::= BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-object(7)}
+
+Access-Passwords ::= SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] Pass-Passwords,
+ link-password [9] Password
+}
+
+Password ::= CHOICE {
+ graphic-string GraphicString,
+ octet-string OCTET STRING
+}
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+Application-Entity-Title ::= SEQUENCE {
+ ap-title AP-title,
+ ae-qualifier AE-qualifier
+}
+
+END -- of IPMSFileTransferBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
new file mode 100644
index 0000000000..57faac6587
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
@@ -0,0 +1,53 @@
+-- Module IPMSForwardedContentBodyPartType (X.420:06/1999)
+IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime,
+ MessageSubmissionEnvelope, OriginatingMTACertificate,
+ OtherMessageDeliveryFields, ProofOfSubmission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-content, id-et-content
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Forwarded Content body part
+content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::=
+ {
+ PARAMETERS
+ {ForwardedContentParameters
+ IDENTIFIED BY {id-ep-content content-type}},
+ DATA {Content
+ IDENTIFIED BY {id-et-content content-type}}
+}
+
+ForwardedContentParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL,
+ mts-identifier [2] MessageDeliveryIdentifier OPTIONAL,
+ submission-proof [3] SubmissionProof OPTIONAL
+}
+
+SubmissionProof ::= SET {
+ proof-of-submission [0] ProofOfSubmission,
+ originating-MTA-certificate [1] OriginatingMTACertificate,
+ message-submission-envelope MessageSubmissionEnvelope
+}
+
+END -- of IPMSForwardedContentBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
new file mode 100644
index 0000000000..4e46c7679b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
@@ -0,0 +1,41 @@
+-- Module IPMSForwardedReportBodyPartType (X.420:06/1999)
+IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-report-body-part-type(12)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ ReportDeliveryArgument
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, IPN, MessageParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-notification, id-et-report, id-et-notification
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Report body part
+report-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ReportDeliveryArgument
+ IDENTIFIED BY id-et-report}
+}
+
+-- Notification body part
+notification-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-notification},
+ DATA {IPN IDENTIFIED BY id-et-notification}
+}
+
+END -- of IPMSForwardedReportBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFunctionalObjects.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFunctionalObjects.asn
new file mode 100644
index 0000000000..09ef4de282
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSFunctionalObjects.asn
@@ -0,0 +1,47 @@
+-- Module IPMSFunctionalObjects (X.420:06/1999)
+IPMSFunctionalObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ functional-objects(1) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Abstract Service
+ management, origination, reception
+ --==
+ FROM IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)}
+ -- IPMS Object Identifiers
+ id-ot-ipms, id-ot-ipms-user
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ MHS-OBJECT
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- Primary object types
+ipms-user MHS-OBJECT ::= {
+ INITIATES {ipms-access-contract}
+ ID id-ot-ipms-user
+}
+
+ipms-access-contract CONTRACT ::= {
+ INITIATOR CONSUMER OF {origination | reception | management}
+}
+
+ipms MHS-OBJECT ::= {RESPONDS {ipms-access-contract}
+ ID id-ot-ipms
+}
+
+END -- of IPMSFunctionalObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSHeadingExtensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSHeadingExtensions.asn
new file mode 100644
index 0000000000..752e8d05e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSHeadingExtensions.asn
@@ -0,0 +1,246 @@
+-- Module IPMSHeadingExtensions (X.420:06/1999)
+IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- MTS Abstract Service
+ ExtendedCertificates, SecurityLabel, UniversalOrBMPString{}
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, SIGNATURE{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS upper bounds
+ ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes,
+ ub-extended-subject-length, ub-information-categories,
+ ub-information-category-length, ub-manual-handling-instruction-length,
+ ub-manual-handling-instructions, ub-originators-reference-length,
+ ub-precedence
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-hex-authorization-time, id-hex-auto-submitted,
+ id-hex-body-part-signatures, id-hex-circulation-list-recipients,
+ id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy,
+ id-hex-information-category, id-hex-ipm-security-label, id-hex-languages,
+ id-hex-manual-handling-instructions, id-hex-originators-reference,
+ id-hex-precedence-policy-id, id-rex-circulation-list-indicator,
+ id-rex-precedence
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Incomplete Copy
+incomplete-copy IPMS-EXTENSION ::= {
+ VALUE IncompleteCopy,
+ IDENTIFIED BY id-hex-incomplete-copy
+}
+
+IncompleteCopy ::= NULL
+
+-- Languages
+languages IPMS-EXTENSION ::= {
+ VALUE SET OF Language,
+ IDENTIFIED BY id-hex-languages
+}
+
+Language ::= PrintableString(SIZE (2 | 5))
+
+-- Auto-submitted
+auto-submitted IPMS-EXTENSION ::= {
+ VALUE AutoSubmitted,
+ IDENTIFIED BY id-hex-auto-submitted
+}
+
+AutoSubmitted ::= ENUMERATED {
+ not-auto-submitted(0), auto-generated(1), auto-replied(2)}
+
+body-part-signatures IPMS-EXTENSION ::= {
+ VALUE BodyPartSignatures,
+ IDENTIFIED BY id-hex-body-part-signatures
+}
+
+BodyPartSignatures ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-signature BodyPartSignature,
+ originator-certificate-selector [1] CertificateAssertion OPTIONAL,
+ originator-certificates [0] ExtendedCertificates OPTIONAL,
+ ...}
+
+BodyPartNumber ::= INTEGER(1..MAX)
+
+BodyPartSignature ::=
+ SIGNATURE
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ body-part BodyPart,
+ body-part-security-label SecurityLabel OPTIONAL
+ }}
+
+ipm-security-label IPMS-EXTENSION ::= {
+ VALUE IPMSecurityLabel,
+ IDENTIFIED BY id-hex-ipm-security-label
+}
+
+IPMSecurityLabel ::= SEQUENCE {
+ content-security-label [0] SecurityLabel,
+ heading-security-label [1] SecurityLabel OPTIONAL,
+ body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL
+}
+
+BodyPartSecurityLabel ::= CHOICE {
+ body-part-unlabelled [0] NULL,
+ body-part-security-label [1] SecurityLabel
+}
+
+-- Authorization Time
+authorization-time IPMS-EXTENSION ::= {
+ VALUE AuthorizationTime,
+ IDENTIFIED BY id-hex-authorization-time
+}
+
+AuthorizationTime ::= GeneralizedTime
+
+-- Circulation List
+circulation-list-recipients IPMS-EXTENSION ::= {
+ VALUE CirculationList,
+ IDENTIFIED BY id-hex-circulation-list-recipients
+}
+
+CirculationList ::=
+ SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember
+
+CirculationMember ::= SET {
+ circulation-recipient
+ RecipientSpecifier
+ (WITH COMPONENTS {
+ ...,
+ recipient (WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+ }),
+ checked Checkmark OPTIONAL
+}
+
+Checkmark ::= CHOICE {
+ simple NULL,
+ timestamped CirculationTime,
+ signed CirculationSignature
+}
+
+CirculationTime ::= GeneralizedTime
+
+CirculationSignature ::=
+ SIGNED
+ {SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier,
+ this-IPM ThisIPMField,
+ timestamp CirculationTime}}
+
+CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Circulation List Indicator
+circulation-list-indicator IPMS-EXTENSION ::= {
+ VALUE NULL,
+ IDENTIFIED BY id-rex-circulation-list-indicator
+}
+
+-- Distribution Codes
+distribution-codes IPMS-EXTENSION ::= {
+ VALUE DistributionCodes,
+ IDENTIFIED BY id-hex-distribution-codes
+}
+
+DistributionCodes ::=
+ SEQUENCE (SIZE (1..ub-distribution-codes)) OF DistributionCode
+
+DistributionCode ::= SEQUENCE {
+ oid-code OBJECT IDENTIFIER OPTIONAL,
+ alphanumeric-code AlphaCode OPTIONAL,
+ or-descriptor [0] ORDescriptor OPTIONAL
+}
+
+AlphaCode ::= UniversalOrBMPString{ub-alpha-code-length}
+
+-- Extended Subject
+extended-subject IPMS-EXTENSION ::= {
+ VALUE ExtendedSubject,
+ IDENTIFIED BY id-hex-extended-subject
+}
+
+ExtendedSubject ::= UniversalOrBMPString{ub-extended-subject-length}
+
+-- Information category
+information-category IPMS-EXTENSION ::= {
+ VALUE InformationCategories,
+ IDENTIFIED BY id-hex-information-category
+}
+
+InformationCategories ::=
+ SEQUENCE (SIZE (1..ub-information-categories)) OF InformationCategory
+
+InformationCategory ::= SEQUENCE {
+ reference [0] OBJECT IDENTIFIER OPTIONAL,
+ description [1] DescriptionString OPTIONAL
+}
+
+DescriptionString ::= UniversalOrBMPString{ub-information-category-length}
+
+-- Manual handling Instructions
+manual-handling-instructions IPMS-EXTENSION ::= {
+ VALUE ManualHandlingInstructions,
+ IDENTIFIED BY id-hex-manual-handling-instructions
+}
+
+ManualHandlingInstructions ::=
+ SEQUENCE (SIZE (1..ub-manual-handling-instructions)) OF
+ ManualHandlingInstruction
+
+ManualHandlingInstruction ::=
+ UniversalOrBMPString{ub-manual-handling-instruction-length}
+
+-- Originator's Reference
+originators-reference IPMS-EXTENSION ::= {
+ VALUE OriginatorsReference,
+ IDENTIFIED BY id-hex-originators-reference
+}
+
+OriginatorsReference ::= UniversalOrBMPString{ub-originators-reference-length}
+
+-- Precedence Policy Identifier
+precedence-policy-identifier IPMS-EXTENSION ::= {
+ VALUE PrecedencePolicyIdentifier,
+ IDENTIFIED BY id-hex-precedence-policy-id
+}
+
+PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER
+
+-- Precedence
+precedence IPMS-EXTENSION ::= {
+ VALUE Precedence,
+ IDENTIFIED BY id-rex-precedence
+}
+
+Precedence ::= INTEGER(0..ub-precedence)
+
+END -- of IPMSHeadingExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSInformationObjects.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSInformationObjects.asn
new file mode 100644
index 0000000000..3fb0463ee7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSInformationObjects.asn
@@ -0,0 +1,626 @@
+-- Module IPMSInformationObjects (X.420:06/1999)
+IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Extended Body Parts
+ bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
+ g4-class1-body-part, ia5-text-body-part, message-body-part,
+ mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
+ videotex-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)}
+ general-text-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7)
+ modules(0) extended-body-part-types-2(1)}
+ file-transfer-body-part
+ --==
+ FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) file-transfer-body-part-type(9)}
+ voice-body-part
+ --==
+ FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) extended-voice-body-part-type(11)}
+ notification-body-part, report-body-part
+ --==
+ FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-report-body-part-type(12)}
+ content-body-part{}
+ --==
+ FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-content-body-part-type(15)}
+ pkcs7-body-part
+ --==
+ FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)}
+ -- IPMS Heading Extensions
+ authorization-time, auto-submitted, body-part-signatures,
+ circulation-list-indicator, circulation-list-recipients,
+ distribution-codes, extended-subject, incomplete-copy,
+ information-category, ipm-security-label, languages,
+ manual-handling-instructions, originators-reference, precedence,
+ precedence-policy-identifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ body-part-encryption-token, BodyPartTokens, forwarded-content-token,
+ ForwardedContentToken, ipn-security-response, recipient-security-request
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Upper bounds
+ ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
+ ub-subject-field, ub-telephone-number
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- ODIF
+ Interchange-Data-Element
+ --==
+ FROM Interchange-Data-Elements {2 8 1 5 5}
+ -- MTS Abstract Service
+ EncodedInformationTypes, ExtendedCertificates, EXTENSION,
+ G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
+ OtherMessageDeliveryFields, SupplementaryInformation,
+ TeletexNonBasicParameters
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MS Abstract Service
+ MS-EXTENSION, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- IPMS Object Identifiers
+ id-mst-assembly-capability, id-mst-assembly-instructions,
+ id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
+ id-mst-originator-body-part-encryption-token,
+ id-mst-originator-forwarded-content-token,
+ id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
+ id-on-absence-advice, id-on-change-of-address-advice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+Time ::= UTCTime
+
+-- Information object
+InformationObject ::= CHOICE {ipm [0] IPM,
+ ipn [1] IPN
+}
+
+-- IPM
+IPM ::= SEQUENCE {heading Heading,
+ body Body
+}
+
+-- MTS Extensions
+IPMPerRecipientEnvelopeExtensions EXTENSION ::=
+ {blind-copy-recipients | body-part-encryption-token |
+ forwarded-content-token, ...}
+
+-- IPMS Extensions
+IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type IPMS-EXTENSION.&id({ChosenFrom}),
+ value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Type DEFAULT NULL
+}WITH SYNTAX {[VALUE &Type,]
+ IDENTIFIED BY &id
+}
+
+PrivateIPMSExtensions IPMS-EXTENSION ::=
+ {...}
+
+-- Heading
+Heading ::= SET {
+ this-IPM ThisIPMField,
+ originator [0] OriginatorField OPTIONAL,
+ authorizing-users [1] AuthorizingUsersField OPTIONAL,
+ primary-recipients [2] PrimaryRecipientsField DEFAULT {},
+ copy-recipients [3] CopyRecipientsField DEFAULT {},
+ blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL,
+ replied-to-IPM [5] RepliedToIPMField OPTIONAL,
+ obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {},
+ related-IPMs [7] RelatedIPMsField DEFAULT {},
+ subject [8] EXPLICIT SubjectField OPTIONAL,
+ expiry-time [9] ExpiryTimeField OPTIONAL,
+ reply-time [10] ReplyTimeField OPTIONAL,
+ reply-recipients [11] ReplyRecipientsField OPTIONAL,
+ importance [12] ImportanceField DEFAULT normal,
+ sensitivity [13] SensitivityField OPTIONAL,
+ auto-forwarded [14] AutoForwardedField DEFAULT FALSE,
+ extensions [15] ExtensionsField DEFAULT {}
+}
+
+-- Heading component types
+IPMIdentifier ::= [APPLICATION 11] SET {
+ user ORName OPTIONAL,
+ user-relative-identifier LocalIPMIdentifier
+}
+
+LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
+
+RecipientSpecifier ::= SET {
+ recipient [0] ORDescriptor,
+ notification-requests [1] NotificationRequests DEFAULT {},
+ reply-requested [2] BOOLEAN DEFAULT FALSE,
+ recipient-extensions [3] RecipientExtensionsField OPTIONAL
+}
+
+ORDescriptor ::= SET {
+ formal-name ORName OPTIONAL,
+ free-form-name [0] FreeFormName OPTIONAL,
+ telephone-number [1] TelephoneNumber OPTIONAL
+}
+
+FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
+
+TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
+
+NotificationRequests ::= BIT STRING {
+ rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
+
+RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}}
+
+RecipientExtensions IPMS-EXTENSION ::=
+ {circulation-list-indicator | precedence | recipient-security-request |
+ PrivateIPMSExtensions, ...}
+
+-- This IPM heading field
+ThisIPMField ::= IPMIdentifier
+
+-- Originator heading field
+OriginatorField ::= ORDescriptor
+
+-- Authorizing Users heading field
+AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
+
+AuthorizingUsersSubfield ::= ORDescriptor
+
+-- Primary Recipients heading field
+PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
+
+PrimaryRecipientsSubfield ::= RecipientSpecifier
+
+-- Copy Recipients heading field
+CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
+
+CopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients heading field
+BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
+
+BlindCopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients envelope field
+blind-copy-recipients EXTENSION ::= {
+ BlindCopyRecipientsField,
+ IDENTIFIED BY standard-extension:41
+}
+
+-- Replied-to IPM heading field
+RepliedToIPMField ::= IPMIdentifier
+
+-- Obsoleted IPMs heading field
+ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
+
+ObsoletedIPMsSubfield ::= IPMIdentifier
+
+-- Related IPMs heading field
+RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
+
+RelatedIPMsSubfield ::= IPMIdentifier
+
+-- Subject heading field
+SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
+
+-- Expiry Time heading field
+ExpiryTimeField ::= Time
+
+-- Reply Time heading field
+ReplyTimeField ::= Time
+
+-- Reply Recipients heading field
+ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
+
+ReplyRecipientsSubfield ::=
+ ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+
+-- Importance heading field
+ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
+
+-- Sensitivity heading field
+SensitivityField ::= ENUMERATED {
+ personal(1), private(2), company-confidential(3)}
+
+-- Auto-forwarded heading field
+AutoForwardedField ::= BOOLEAN
+
+-- Extensions heading field
+ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}}
+
+HeadingExtensions IPMS-EXTENSION ::=
+ {authorization-time | auto-submitted | body-part-signatures |
+ circulation-list-recipients | distribution-codes | extended-subject |
+ incomplete-copy | information-category | ipm-security-label | languages |
+ manual-handling-instructions | originators-reference |
+ precedence-policy-identifier | PrivateIPMSExtensions, ...}
+
+-- Body
+Body ::= SEQUENCE OF BodyPart
+
+BodyPart ::= CHOICE {
+ basic
+ CHOICE {ia5-text [0] IA5TextBodyPart,
+ g3-facsimile [3] G3FacsimileBodyPart,
+ g4-class1 [4] G4Class1BodyPart,
+ teletex [5] TeletexBodyPart,
+ videotex [6] VideotexBodyPart,
+ encrypted [8] EncryptedBodyPart,
+ message [9] MessageBodyPart,
+ mixed-mode [11] MixedModeBodyPart,
+ bilaterally-defined [14] BilaterallyDefinedBodyPart,
+ nationally-defined [7] NationallyDefinedBodyPart},
+ extended [15] ExtendedBodyPart{{IPMBodyPartTable}}
+}
+
+-- Extended body part
+ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE {
+ parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ data INSTANCE OF TYPE-IDENTIFIER
+}
+(CONSTRAINED BY { -- must correspond to the &parameters field and &data field of a member of --
+ IPMBodyPartTable})
+
+IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
+ {StandardBodyParts | ApplicationSpecificBodyParts}
+
+StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
+ teletex-body-part | videotex-body-part | encrypted-body-part |
+ message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
+ nationally-defined-body-part | general-text-body-part |
+ file-transfer-body-part | voice-body-part | report-body-part |
+ notification-body-part |
+ content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} |
+ pkcs7-body-part, ...}
+
+ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {--any body part defined in other Specifications, or for proprietary or private use
+ ...}
+
+EXTENDED-BODY-PART-TYPE ::= CLASS {
+ &parameters TYPE-IDENTIFIER OPTIONAL,
+ &data TYPE-IDENTIFIER
+}WITH SYNTAX {[PARAMETERS &parameters,]
+ DATA &data
+}
+
+-- IA5 Text body part
+IA5TextBodyPart ::= SEQUENCE {
+ parameters IA5TextParameters,
+ data IA5TextData
+}
+
+IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5
+}
+
+IA5TextData ::= IA5String
+
+Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
+
+-- G3 Facsimile body part
+G3FacsimileBodyPart ::= SEQUENCE {
+ parameters G3FacsimileParameters,
+ data G3FacsimileData
+}
+
+G3FacsimileParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL
+}
+
+G3FacsimileData ::= SEQUENCE OF BIT STRING
+
+-- G4 Class 1 and Mixed-mode body parts
+G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+-- Teletex body part
+TeletexBodyPart ::= SEQUENCE {
+ parameters TeletexParameters,
+ data TeletexData
+}
+
+TeletexParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ telex-compatible [1] BOOLEAN DEFAULT FALSE,
+ non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL
+}
+
+TeletexData ::= SEQUENCE OF TeletexString
+
+-- Videotex body part
+VideotexBodyPart ::= SEQUENCE {
+ parameters VideotexParameters,
+ data VideotexData
+}
+
+VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL
+}
+
+VideotexSyntax ::= INTEGER {
+ ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
+
+VideotexData ::= VideotexString
+
+-- Encrypted body part
+EncryptedBodyPart ::= SEQUENCE {
+ parameters EncryptedParameters,
+ data EncryptedData
+}
+
+EncryptedParameters ::= SET {
+ algorithm-identifier AlgorithmIdentifier,
+ originator-certificates ExtendedCertificates OPTIONAL,
+ ...
+}
+
+EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
+
+-- Message body part
+MessageBodyPart ::= SEQUENCE {
+ parameters MessageParameters,
+ data MessageData
+}
+
+MessageParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL
+}
+
+MessageData ::= IPM
+
+-- Bilaterally Defined body part
+BilaterallyDefinedBodyPart ::= OCTET STRING
+
+-- Nationally Defined body part
+NATIONAL-BODY-PARTS ::= CLASS {&Type
+}
+
+NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
+
+-- Provided for Historic reasons. Use is strongly deprecated.
+-- IPN
+IPN ::= SET {
+ -- common-fields --COMPONENTS OF CommonFields,
+ choice
+ [0] CHOICE {non-receipt-fields [0] NonReceiptFields,
+ receipt-fields [1] ReceiptFields,
+ other-notification-type-fields
+ [2] OtherNotificationTypeFields}
+}
+
+RN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ receipt-fields PRESENT
+ })
+ })
+
+NRN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ non-receipt-fields PRESENT
+ })
+ })
+
+ON ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ other-notification-type-fields PRESENT
+ })
+ })
+
+CommonFields ::= SET {
+ subject-ipm SubjectIPMField,
+ ipn-originator [1] IPNOriginatorField OPTIONAL,
+ ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL,
+ conversion-eits ConversionEITsField OPTIONAL,
+ notification-extensions [3] NotificationExtensionsField OPTIONAL
+}
+
+NonReceiptFields ::= SET {
+ non-receipt-reason [0] NonReceiptReasonField,
+ discard-reason [1] DiscardReasonField OPTIONAL,
+ auto-forward-comment [2] AutoForwardCommentField OPTIONAL,
+ returned-ipm [3] ReturnedIPMField OPTIONAL,
+ nrn-extensions [4] NRNExtensionsField OPTIONAL
+}
+
+ReceiptFields ::= SET {
+ receipt-time [0] ReceiptTimeField,
+ acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual,
+ suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL,
+ rn-extensions [3] RNExtensionsField OPTIONAL
+}
+
+-- Common fields
+SubjectIPMField ::= IPMIdentifier
+
+IPNOriginatorField ::= ORDescriptor
+
+IPMIntendedRecipientField ::= ORDescriptor
+
+ConversionEITsField ::= EncodedInformationTypes
+
+NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}}
+
+NotificationExtensions IPMS-EXTENSION ::=
+ {ipn-security-response | PrivateIPMSExtensions, ...}
+
+-- Non-receipt fields
+NonReceiptReasonField ::= ENUMERATED {
+ ipm-discarded(0), ipm-auto-forwarded(1), ...
+ }
+
+-- ITU-T version:
+DiscardReasonField ::= ENUMERATED {
+ ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
+ not-used(3)}
+
+-- ISO/IEC version:
+--DiscardReasonField ::= ENUMERATED {
+-- ipm-expired (0),
+-- ipm-obsoleted (1),
+-- user-subscription-terminated (2),
+-- The following value may not be supported by implementations of earlier versions of this Specification
+-- ipm-deleted (3),
+-- ... }
+AutoForwardCommentField ::=
+ AutoForwardComment
+
+AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
+
+ReturnedIPMField ::= IPM
+
+NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}}
+
+NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Receipt fields
+ReceiptTimeField ::= Time
+
+AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
+
+SupplReceiptInfoField ::= SupplementaryInformation
+
+RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}}
+
+RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Other Notification Type fields
+OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}}
+
+OtherNotifications IPMS-EXTENSION ::=
+ {AdviceNotifications | PrivateIPMSExtensions, ...}
+
+AdviceNotifications IPMS-EXTENSION ::=
+ {absence-advice | change-of-address-advice, ...}
+
+-- Advice Notification fields
+absence-advice IPMS-EXTENSION ::= {
+ VALUE AbsenceAdvice,
+ IDENTIFIED BY id-on-absence-advice
+}
+
+AbsenceAdvice ::= SEQUENCE {
+ advice BodyPart OPTIONAL,
+ next-available Time OPTIONAL
+}
+
+-- at least one component shall be present
+change-of-address-advice IPMS-EXTENSION ::= {
+ VALUE ChangeOfAddressAdvice,
+ IDENTIFIED BY id-on-change-of-address-advice
+}
+
+ChangeOfAddressAdvice ::= SEQUENCE {
+ new-address
+ [0] ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ }),
+ effective-from [1] Time OPTIONAL
+}
+
+-- Message Store Realization
+prevent-nrn-generation MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-prevent-nrn-generation
+}
+
+suspend-auto-acknowledgement MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-suspend-auto-acknowledgement
+}
+
+assembly-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-assembly-capability
+}
+
+IPMSubmissionOptions MS-EXTENSION ::=
+ {ipm-assembly-instructions | originator-body-part-encryption-token |
+ originator-forwarded-content-token, ...} -- For future extension additions
+
+ipm-assembly-instructions MS-EXTENSION ::= {
+ IPMAssemblyInstructions
+ IDENTIFIED BY id-mst-assembly-instructions
+}
+
+IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences
+}
+
+BodyPartReferences ::= SEQUENCE OF BodyPartReference
+
+BodyPartReference ::= CHOICE {
+ stored-entry [0] SequenceNumber,
+ stored-content [1] SequenceNumber,
+ submitted-body-part [2] INTEGER(1..MAX),
+ stored-body-part
+ [3] SEQUENCE {message-entry SequenceNumber,
+ body-part-number INTEGER(1..MAX)}
+}
+
+originator-body-part-encryption-token MS-EXTENSION ::= {
+ BodyPartTokens
+ IDENTIFIED BY id-mst-originator-body-part-encryption-token
+}
+
+originator-forwarded-content-token MS-EXTENSION ::= {
+ ForwardedContentToken
+ IDENTIFIED BY id-mst-originator-forwarded-content-token
+}
+
+IPMSubmissionErrors MS-EXTENSION ::=
+ {invalid-assembly-instructions | invalid-ipn, ...
+ } -- For future extension additions
+
+invalid-assembly-instructions MS-EXTENSION ::= {
+ BodyPartReferences
+ IDENTIFIED BY id-mst-invalid-assembly-instructions
+}
+
+invalid-ipn MS-EXTENSION ::= {NULL
+ IDENTIFIED BY id-mst-invalid-ipn
+}
+
+END -- of IPMSInformationObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSMessageStoreAttributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSMessageStoreAttributes.asn
new file mode 100644
index 0000000000..719bca4987
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSMessageStoreAttributes.asn
@@ -0,0 +1,1120 @@
+-- Module IPMSMessageStoreAttributes (X.420:06/1999)
+IPMSMessageStoreAttributes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ message-store-attributes(8) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Heading Extensions
+ AuthorizationTime, AutoSubmitted, BodyPartNumber, BodyPartSecurityLabel,
+ BodyPartSignatures, CirculationMember, DistributionCode, ExtendedSubject,
+ IncompleteCopy, InformationCategory, IPMSecurityLabel, Language,
+ ManualHandlingInstruction, OriginatorsReference, Precedence,
+ PrecedencePolicyIdentifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ BodyPartTokens, ForwardedContentToken
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Information Objects
+ AcknowledgmentModeField, AuthorizingUsersSubfield, AutoForwardCommentField,
+ AutoForwardedField, BilaterallyDefinedBodyPart,
+ BlindCopyRecipientsSubfield, Body, ConversionEITsField,
+ CopyRecipientsSubfield, DiscardReasonField, EncryptedBodyPart,
+ EncryptedData, EncryptedParameters, ExpiryTimeField,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileBodyPart, G3FacsimileData,
+ G3FacsimileParameters, G4Class1BodyPart, Heading, IA5TextBodyPart,
+ IA5TextData, IA5TextParameters, ImportanceField, IPMIdentifier,
+ IPMIntendedRecipientField, IPMSExtension{}, IPNOriginatorField,
+ MessageBodyPart, MessageData, MessageParameters, MixedModeBodyPart,
+ NationallyDefinedBodyPart, NonReceiptReasonField, NotificationExtensions,
+ NRNExtensions, ObsoletedIPMsSubfield, ORDescriptor, OriginatorField,
+ OtherNotifications, PrimaryRecipientsSubfield, ReceiptTimeField,
+ RecipientSpecifier, RelatedIPMsSubfield, RepliedToIPMField,
+ ReplyRecipientsSubfield, ReplyTimeField, ReturnedIPMField, RNExtensions,
+ SensitivityField, SubjectField, SubjectIPMField, SupplReceiptInfoField,
+ TeletexBodyPart, TeletexData, TeletexParameters, ThisIPMField,
+ VideotexBodyPart, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-bat-bilaterally-defined-body-parts, id-bat-body,
+ id-bat-encrypted-body-parts, id-bat-encrypted-data,
+ id-bat-encrypted-parameters, id-bat-extended-body-part-types,
+ id-bat-g3-facsimile-body-parts, id-bat-g3-facsimile-data,
+ id-bat-g3-facsimile-parameters, id-bat-g4-class1-body-parts,
+ id-bat-ia5-text-body-parts, id-bat-ia5-text-data,
+ id-bat-ia5-text-parameters, id-bat-message-body-parts, id-bat-message-data,
+ id-bat-message-parameters, id-bat-mixed-mode-body-parts,
+ id-bat-nationally-defined-body-parts, id-bat-teletex-body-parts,
+ id-bat-teletex-data, id-bat-teletex-parameters, id-bat-videotex-body-parts,
+ id-bat-videotex-data, id-bat-videotex-parameters,
+ id-cat-correlated-delivered-ipns, id-cat-correlated-delivered-replies,
+ id-cat-delivered-ipn-summary, id-cat-delivered-replies-summary,
+ id-cat-forwarded-ipms, id-cat-forwarding-ipms, id-cat-ipm-recipients,
+ id-cat-obsoleted-ipms, id-cat-obsoleting-ipms, id-cat-related-ipms,
+ id-cat-relating-ipms, id-cat-replied-to-ipm, id-cat-recipient-category,
+ id-cat-replying-ipms, id-cat-revised-reply-time, id-cat-subject-ipm,
+ id-cat-submitted-ipn-status, id-cat-submitted-ipns,
+ id-cat-submitted-reply-status, id-hat-authorization-time,
+ id-hat-authorizing-users, id-hat-auto-forwarded, id-hat-auto-submitted,
+ id-hat-blind-copy-recipients, id-hat-body-part-encryption-token,
+ id-hat-body-part-security-label,
+ id-hat-body-part-signature-verification-status,
+ id-hat-body-part-signatures, id-hat-circulation-list-recipients,
+ id-hat-copy-recipients, id-hat-distribution-codes, id-hat-expiry-time,
+ id-hat-extended-subject, id-hat-forwarded-content-token,
+ id-hat-forwarding-token, id-hat-heading, id-hat-importance,
+ id-hat-incomplete-copy, id-hat-information-category,
+ id-hat-ipm-security-label, id-hat-languages,
+ id-hat-manual-handling-instructions, id-hat-nrn-requestors,
+ id-hat-obsoleted-IPMs, id-hat-originator, id-hat-originators-reference,
+ id-hat-precedence, id-hat-precedence-policy-id, id-hat-primary-recipients,
+ id-hat-related-IPMs, id-hat-replied-to-IPM, id-hat-reply-recipients,
+ id-hat-reply-requestors, id-hat-reply-time, id-hat-rn-requestors,
+ id-hat-sensitivity, id-hat-subject, id-hat-this-ipm, id-mr-ipm-identifier,
+ id-mr-ipm-location, id-mr-or-descriptor, id-mr-or-descriptor-elements,
+ id-mr-or-descriptor-single-element, id-mr-or-descriptor-substring-elements,
+ id-mr-circulation-member, id-mr-circulation-member-checkmark,
+ id-mr-circulation-member-elements, id-mr-circulation-member-single-element,
+ id-mr-circulation-member-substring-elements, id-mr-distribution-code,
+ id-mr-information-category, id-mr-recipient-specifier,
+ id-mr-recipient-specifier-elements,
+ id-mr-recipient-specifier-single-element,
+ id-mr-recipient-specifier-substring-elements, id-nat-acknowledgment-mode,
+ id-nat-auto-forward-comment, id-nat-conversion-eits, id-nat-discard-reason,
+ id-nat-ipm-intended-recipient, id-nat-ipn-originator,
+ id-nat-non-receipt-reason, id-nat-notification-extensions,
+ id-nat-nrn-extensions, id-nat-other-notification-type-fields,
+ id-nat-receipt-time, id-nat-returned-ipm, id-nat-rn-extensions,
+ id-nat-subject-ipm, id-nat-suppl-receipt-info, id-sat-body-parts-summary,
+ id-sat-ipm-auto-discarded, id-sat-ipm-entry-type, id-sat-ipm-synopsis
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Abstract Service
+ X413ATTRIBUTE, MS-EIT, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS General Attribute Types
+ SignatureStatus
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching-rules
+ MSString{}, mSStringMatch, mSSubstringsMatch
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MTS Abstract Service
+ EncodedInformationTypes, MessageToken
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Information Framework
+ objectIdentifierMatch, MATCHING-RULE
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Abstract Service
+ booleanMatch, generalizedTimeMatch, generalizedTimeOrderingMatch,
+ integerMatch, integerOrderingMatch, uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ ub-msstring-match
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)};
+
+-- IPMS attribute table information object set
+IPMSAttributeTable X413ATTRIBUTE ::=
+ {acknowledgment-mode | authorizing-users | auto-forward-comment |
+ auto-forwarded | auto-submitted | bilaterally-defined-body-parts |
+ blind-copy-recipients | body | conversion-eits | copy-recipients |
+ discard-reason | encrypted-body-parts | encrypted-data |
+ encrypted-parameters | expiry-time | extended-body-part-types |
+ g3-facsimile-body-parts | g3-facsimile-data | g3-facsimile-parameters |
+ g4-class1-body-parts | heading | ia5-text-body-parts | ia5-text-data |
+ ia5-text-parameters | importance | incomplete-copy | ipm-entry-type |
+ ipm-intended-recipient | ipm-synopsis | ipn-originator | languages |
+ message-body-parts | message-data | message-parameters |
+ mixed-mode-body-parts | nationally-defined-body-parts | non-receipt-reason |
+ nrn-requestors | obsoleted-IPMs | originator | primary-recipients |
+ receipt-time | related-IPMs | replied-to-IPM | reply-recipients |
+ reply-requestors | reply-time | returned-ipm | rn-requestors | sensitivity |
+ subject | subject-ipm | suppl-receipt-info | teletex-body-parts |
+ teletex-data | teletex-parameters | this-ipm | videotex-body-parts |
+ videotex-data | videotex-parameters, ... -- 1994 extension additions --,
+ ac-correlated-delivered-ipns | ac-correlated-delivered-replies |
+ ac-delivered-ipn-summary | ac-delivered-replies-summary | ac-forwarded-ipms
+ | ac-forwarding-ipms | ac-ipm-recipients | ac-obsoleted-ipms |
+ ac-obsoleting-ipms | ac-related-ipms | ac-relating-ipms | ac-replied-to-ipm
+ | ac-replying-ipms | ac-subject-ipm | ac-submitted-ipn-status |
+ ac-submitted-ipns | ac-submitted-reply-status | authorization-time |
+ body-part-encryption-token | body-part-security-label |
+ body-part-signature-verification-status | body-part-signatures |
+ body-parts-summary | circulation-list-recipients | distribution-codes |
+ extended-subject | forwarded-content-token | forwarding-token |
+ information-category | ipm-auto-discarded | ipm-security-label |
+ manual-handling-instructions | notification-extensions | nrn-extensions |
+ originators-reference | other-notification-type-fields | precedence |
+ precedence-policy-identifier | recipient-category | revised-reply-time |
+ rn-extensions}
+
+-- SUMMARY ATTRIBUTES
+-- IPM entry type
+ipm-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMEntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-entry-type
+}
+
+IPMEntryType ::= ENUMERATED {ipm(0), rn(1), nrn(2), on(3)}
+
+-- IPM synopsis
+ipm-synopsis X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSynopsis,
+ NUMERATION single-valued,
+ ID id-sat-ipm-synopsis
+}
+
+IPMSynopsis ::= SEQUENCE OF BodyPartSynopsis
+
+BodyPartSynopsis ::= CHOICE {
+ message [0] MessageBodyPartSynopsis,
+ non-message [1] NonMessageBodyPartSynopsis
+}
+
+MessageBodyPartSynopsis ::= SEQUENCE {
+ number [0] SequenceNumber,
+ synopsis [1] IPMSynopsis
+}
+
+NonMessageBodyPartSynopsis ::= SEQUENCE {
+ type [0] OBJECT IDENTIFIER,
+ parameters [1] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ size [2] INTEGER,
+ processed [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Body part summary
+body-parts-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartDescriptor,
+ NUMERATION multi-valued,
+ ID id-sat-body-parts-summary
+}
+
+BodyPartDescriptor ::= SEQUENCE {
+ data [0] OBJECT IDENTIFIER,
+ parameters [1] OBJECT IDENTIFIER OPTIONAL,
+ this-child-entry [2] SequenceNumber OPTIONAL,
+ position [3] INTEGER,
+ size [4] INTEGER,
+ processed [5] BOOLEAN DEFAULT FALSE
+}
+
+-- IPM auto discarded
+ipm-auto-discarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-auto-discarded
+}
+
+-- Body part signature verification status
+body-part-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatureVerification,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signature-verification-status
+}
+
+BodyPartSignatureVerification ::=
+ SET OF
+ SET {body-part-sequence-number [0] BodyPartNumber,
+ body-part-signature [1] SignatureStatus}
+
+-- HEADING ATTRIBUTES
+-- Heading
+heading X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Heading,
+ NUMERATION single-valued,
+ ID id-hat-heading
+}
+
+-- Heading analyses
+rn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-rn-requestors
+}
+
+nrn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-nrn-requestors
+}
+
+reply-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-reply-requestors
+}
+
+-- Heading fields
+this-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ThisIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-this-ipm
+}
+
+originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-hat-originator
+}
+
+replied-to-IPM X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RepliedToIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-replied-to-IPM
+}
+
+subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-subject
+}
+
+expiry-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExpiryTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-expiry-time
+}
+
+reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-reply-time
+}
+
+importance X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ImportanceField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-importance
+}
+
+sensitivity X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SensitivityField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-sensitivity
+}
+
+auto-forwarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardedField,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-forwarded
+}
+
+-- Heading sub-fields
+authorizing-users X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizingUsersSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-authorizing-users
+}
+
+primary-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrimaryRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-primary-recipients
+}
+
+copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-copy-recipients
+}
+
+blind-copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BlindCopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-blind-copy-recipients
+}
+
+obsoleted-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ObsoletedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-obsoleted-IPMs
+}
+
+related-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RelatedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-related-IPMs
+}
+
+reply-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyRecipientsSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-reply-recipients
+}
+
+-- Heading extensions
+incomplete-copy X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IncompleteCopy,
+ NUMERATION
+ single-valued, -- An equality match is specified for 1988
+
+
+ -- Application Contexts
+ ID id-hat-incomplete-copy
+}
+
+languages X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Language,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE
+ mSSubstringsMatch, -- Not defined for 1988 Application Contexts
+
+ NUMERATION multi-valued,
+ ID id-hat-languages
+}
+
+auto-submitted X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoSubmitted,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-submitted
+}
+
+body-part-signatures X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatures,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signatures
+}
+
+ipm-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSecurityLabel,
+ NUMERATION single-valued,
+ ID id-hat-ipm-security-label
+}
+
+body-part-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSecurityLabel,
+ NUMERATION multi-valued,
+ ID id-hat-body-part-security-label
+}
+
+authorization-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizationTime,
+ EQUALITY MATCHING-RULE generalizedTimeMatch,
+ ORDERING MATCHING-RULE generalizedTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-authorization-time
+}
+
+circulation-list-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CirculationMember,
+ EQUALITY MATCHING-RULE circulationMemberMatch,
+ OTHER MATCHING-RULES
+ {circulationMemberElementsMatch | circulationMemberSubstringElementsMatch |
+ circulationMemberSingleElementMatch | circulationMemberCheckmarkMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-hat-circulation-list-recipients
+}
+
+distribution-codes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DistributionCode,
+ EQUALITY MATCHING-RULE distributionCodeMatch,
+ NUMERATION multi-valued,
+ ID id-hat-distribution-codes
+}
+
+extended-subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedSubject,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-extended-subject
+}
+
+information-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InformationCategory,
+ EQUALITY MATCHING-RULE informationCategoryMatch,
+ NUMERATION multi-valued,
+ ID id-hat-information-category
+}
+
+manual-handling-instructions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ManualHandlingInstruction,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION multi-valued,
+ ID id-hat-manual-handling-instructions
+}
+
+originators-reference X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorsReference,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION single-valued,
+ ID id-hat-originators-reference
+}
+
+precedence-policy-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrecedencePolicyIdentifier,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence-policy-id
+}
+
+-- Recipient extensions
+precedence X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Precedence,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence
+}
+
+-- Envelope extensions
+body-part-encryption-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartTokens,
+ NUMERATION single-valued,
+ ID id-hat-body-part-encryption-token
+}
+
+forwarded-content-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ForwardedContentToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarded-content-token
+}
+
+forwarding-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarding-token
+}
+
+-- BODY ATTRIBUTES
+-- Body
+body X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Body,
+ NUMERATION single-valued,
+ ID id-bat-body
+}
+
+-- Extended body part types
+extended-body-part-types X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-bat-extended-body-part-types
+}
+
+-- Extended body parts
+-- (These attributes cannot be enumerated. See 19.6.3.3.)
+-- (They may be derived using the following parameterized object assignments:)
+extended-body-part-data-attribute{EXTENDED-BODY-PART-TYPE:ebpt} X413ATTRIBUTE
+ ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&data.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&data.&id
+}
+
+extended-body-part-parameters-attribute{EXTENDED-BODY-PART-TYPE:ebpt}
+ X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&parameters.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&parameters.&id
+}
+
+-- Basic body parts
+ia5-text-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-body-parts
+}
+
+g3-facsimile-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-body-parts
+}
+
+g4-class1-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G4Class1BodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g4-class1-body-parts
+}
+
+teletex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-body-parts
+}
+
+videotex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-body-parts
+}
+
+encrypted-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-body-parts
+}
+
+message-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-bat-message-body-parts
+}
+
+mixed-mode-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MixedModeBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-mixed-mode-body-parts
+}
+
+bilaterally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BilaterallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-bilaterally-defined-body-parts
+}
+
+nationally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NationallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-nationally-defined-body-parts
+}
+
+-- Basic body part parameters components
+ia5-text-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextParameters,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-parameters
+}
+
+g3-facsimile-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileParameters,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-parameters
+}
+
+teletex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-parameters
+}
+
+videotex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-parameters
+}
+
+encrypted-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedParameters,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-parameters
+}
+
+message-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageParameters,
+ NUMERATION multi-valued,
+ ID id-bat-message-parameters
+}
+
+-- Basic body part data components
+ia5-text-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextData,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-data
+}
+
+g3-facsimile-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileData,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-data
+}
+
+teletex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexData,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-data
+}
+
+videotex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexData,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-data
+}
+
+encrypted-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedData,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-data
+}
+
+message-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageData,
+ NUMERATION multi-valued,
+ ID id-bat-message-data
+}
+
+-- NOTIFICATION ATTRIBUTES
+-- Common fields
+subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-nat-subject-ipm
+}
+
+ipn-originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPNOriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipn-originator
+}
+
+ipm-intended-recipient X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMIntendedRecipientField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipm-intended-recipient
+}
+
+conversion-eits X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-nat-conversion-eits
+}
+
+notification-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NotificationExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-notification-extensions
+}
+
+-- Non-receipt fields
+non-receipt-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NonReceiptReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-non-receipt-reason
+}
+
+discard-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DiscardReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-discard-reason
+}
+
+auto-forward-comment X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardCommentField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-auto-forward-comment
+}
+
+returned-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReturnedIPMField,
+ NUMERATION single-valued,
+ ID id-nat-returned-ipm
+}
+
+nrn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NRNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-nrn-extensions
+}
+
+-- Receipt fields
+receipt-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReceiptTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-nat-receipt-time
+}
+
+acknowledgment-mode X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AcknowledgmentModeField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-acknowledgment-mode
+}
+
+suppl-receipt-info X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SupplReceiptInfoField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-suppl-receipt-info
+}
+
+rn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{RNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-rn-extensions
+}
+
+-- Other notification type fields
+other-notification-type-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{OtherNotifications}},
+ NUMERATION multi-valued,
+ ID id-nat-other-notification-type-fields
+}
+
+-- CORRELATION ATTRIBUTES
+-- Common attributes
+ac-forwarding-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarding-ipms
+}
+
+ac-forwarded-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarded-ipms
+}
+
+ac-obsoleting-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-obsoleting-ipms
+}
+
+ac-obsoleted-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-obsoleted-ipms
+}
+
+IPMLocation ::= CHOICE {stored SET OF SequenceNumber,
+ absent NULL,
+ ...
+}
+
+ac-relating-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-relating-ipms
+}
+
+ac-related-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-related-ipms
+}
+
+ac-replied-to-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replied-to-ipm
+}
+
+ac-replying-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replying-ipms
+}
+
+ac-subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-subject-ipm
+}
+
+-- Submitted message correlation
+ac-ipm-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-ipm-recipients
+}
+
+ac-delivered-replies-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-replies-summary
+}
+
+DeliveredReplyStatus ::= INTEGER {
+ no-reply-requested(0) -- reply not requested --,
+ reply-outstanding(1) -- reply requested --, reply-received(2)}
+
+ac-correlated-delivered-replies X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredReplies,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-replies
+}
+
+CorrelatedDeliveredReplies ::= CHOICE {
+ no-reply-received [0] NULL,
+ received-replies [1] SEQUENCE OF SequenceNumber
+}
+
+ac-delivered-ipn-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-ipn-summary
+}
+
+DeliveredIPNStatus ::= INTEGER {
+ no-ipn-requested(0), an-requested(3), nrn-requested(5), rn-requested(10),
+ an-received(13), ipm-auto-forwarded(15), ipm-discarded(20), rn-received(25)
+}
+
+ac-correlated-delivered-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredIPNs,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-ipns
+}
+
+CorrelatedDeliveredIPNs ::= CHOICE {
+ no-ipn-received [0] NULL,
+ ipns-received [1] SEQUENCE OF SequenceNumber
+}
+
+-- Delivered message correlation
+ac-submitted-reply-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-reply-status
+}
+
+SubmittedReplyStatus ::= INTEGER {
+ no-reply-requested(0), no-reply-intended(1), reply-pending(2), reply-sent(3)
+}
+
+ac-submitted-ipn-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-ipn-status
+}
+
+SubmittedIPNStatus ::= INTEGER {
+ no-ipn-requested(0), nrn-requested(5), nrn-with-ipm-return-requested(10),
+ rn-requested(15), rn-with-ipm-return-requested(20), ipm-auto-forwarded(25),
+ ipm-discarded(30), rn-sent(35)}
+
+ac-submitted-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-submitted-ipns
+}
+
+recipient-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientCategory,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-recipient-category
+}
+
+RecipientCategory ::= INTEGER {
+ primary-recipient(0), copy-recipient(1), blind-copy-recipient(2),
+ category-unknown(3), circulation-list(4)}
+
+revised-reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-revised-reply-time
+}
+
+-- MATCHING-RULES
+IPMMatchingRuleTable MATCHING-RULE ::=
+ {iPMIdentifierMatch | oRDescriptorMatch | recipientSpecifierMatch,
+ ... -- 1994 extension additions --, circulationMemberCheckmarkMatch |
+ circulationMemberElementsMatch | circulationMemberMatch |
+ circulationMemberSingleElementMatch |
+ circulationMemberSubstringElementsMatch | distributionCodeMatch |
+ informationCategoryMatch | iPMLocationMatch | oRDescriptorElementsMatch |
+ oRDescriptorSingleElementMatch | oRDescriptorSubstringElementsMatch |
+ recipientSpecifierElementsMatch | recipientSpecifierSingleElementMatch |
+ recipientSpecifierSubstringElementsMatch}
+
+iPMIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX IPMIdentifier
+ ID id-mr-ipm-identifier
+}
+
+iPMLocationMatch MATCHING-RULE ::= {
+ SYNTAX SequenceNumber
+ ID id-mr-ipm-location
+}
+
+oRDescriptorMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor
+}
+
+oRDescriptorElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-elements
+}
+
+oRDescriptorSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-substring-elements
+}
+
+oRDescriptorSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-or-descriptor-single-element
+}
+
+recipientSpecifierMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier
+}
+
+recipientSpecifierElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-elements
+}
+
+recipientSpecifierSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-substring-elements
+}
+
+recipientSpecifierSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-recipient-specifier-single-element
+}
+
+circulationMemberMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member
+}
+
+circulationMemberElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-elements
+}
+
+circulationMemberSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-substring-elements
+}
+
+circulationMemberSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-circulation-member-single-element
+}
+
+circulationMemberCheckmarkMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-checkmark
+}
+
+distributionCodeMatch MATCHING-RULE ::= {
+ SYNTAX DistributionCode
+ ID id-mr-distribution-code
+}
+
+informationCategoryMatch MATCHING-RULE ::= {
+ SYNTAX InformationCategory
+ ID id-mr-information-category
+}
+
+END -- of IPMSMessageStoreAttributes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers.asn
new file mode 100644
index 0000000000..6e5c01ab40
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers.asn
@@ -0,0 +1,507 @@
+-- Module IPMSObjectIdentifiers (X.420:06/1999)
+IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (not definitive)
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)} -- not definitive
+
+-- Categories
+id-mod ID ::= {id-ipms 0} -- modules; not definitive
+
+id-ot ID ::= {id-ipms 1} -- object types
+
+id-pt ID ::= {id-ipms 2} -- port types
+
+id-et ID ::= {id-ipms 4} -- extended body part types
+
+id-hex ID ::= {id-ipms 5} -- heading extensions
+
+id-sat ID ::= {id-ipms 6} -- summary attributes
+
+id-hat ID ::= {id-ipms 7} -- heading attributes
+
+id-bat ID ::= {id-ipms 8} -- body attributes
+
+id-nat ID ::= {id-ipms 9} -- notification attributes
+
+id-mct ID ::= {id-ipms 10} -- message content types
+
+id-ep ID ::= {id-ipms 11} -- extended body part parameters
+
+id-eit ID ::= {id-ipms 12} -- encoded information types
+
+id-cat ID ::= {id-ipms 13} -- correlation attributes
+
+id-mr ID ::= {id-ipms 14} -- matching-rules
+
+id-aa ID ::= {id-ipms 15} -- auto-actions
+
+id-aae ID ::= {id-ipms 16} -- auto-action errors
+
+id-mst ID ::= {id-ipms 17} -- message store types
+
+id-sec ID ::= {id-ipms 18} -- ipm security extensions
+
+id-on ID ::= {id-ipms 19} -- other notification type extensions
+
+id-rex ID ::= {id-ipms 20} -- recipient extensions
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-functional-objects ID ::= {id-mod 1} -- not definitive
+
+id-mod-information-objects ID ::= {id-mod 2} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 3} -- not definitive
+
+id-mod-heading-extensions ID ::= {id-mod 6} -- not definitive
+
+id-mod-extended-body-part-types ID ::= {id-mod 7} -- not definitive
+
+id-mod-message-store-attributes ID ::= {id-mod 8} -- not definitive
+
+id-mod-file-transfer-body-part-type ID ::= {id-mod 9} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 10} -- not definitive
+
+id-mod-extended-voice-body-part-type ID ::= {id-mod 11} -- not definitive
+
+id-mod-forwarded-report-body-part-type ID ::= {id-mod 12} -- not definitive
+
+id-mod-auto-actions ID ::= {id-mod 13} -- not definitive
+
+id-mod-ipm-security-extensions ID ::= {id-mod 14} -- not definitive
+
+id-mod-forwarded-content-body-part-type ID ::= {id-mod 15} -- not definitive
+
+id-mod-pkcs7-body-part-type ID ::= {id-mod 16} -- not definitive
+
+-- Object types
+id-ot-ipms-user ID ::= {id-ot 1}
+
+id-ot-ipms ID ::= {id-ot 2}
+
+-- Port types
+id-pt-origination ID ::= {id-pt 0}
+
+id-pt-reception ID ::= {id-pt 1}
+
+id-pt-management ID ::= {id-pt 2}
+
+-- Extended body part types
+id-et-ia5-text ID ::= {id-et 0}
+
+id-et-g3-facsimile ID ::= {id-et 2}
+
+id-et-g4-class1 ID ::= {id-et 3}
+
+id-et-teletex ID ::= {id-et 4}
+
+id-et-videotex ID ::= {id-et 5}
+
+id-et-encrypted ID ::= {id-et 6}
+
+id-et-message ID ::= {id-et 7}
+
+id-et-mixed-mode ID ::= {id-et 8}
+
+id-et-bilaterally-defined ID ::= {id-et 9}
+
+id-et-nationally-defined ID ::= {id-et 10}
+
+id-et-general-text ID ::= {id-et 11}
+
+id-et-file-transfer ID ::= {id-et 12}
+
+-- Value {id-et 13} is no longer defined
+id-et-report ID ::= {id-et 14}
+
+id-et-notification ID ::= {id-et 15}
+
+id-et-voice ID ::= {id-et 16}
+
+id-et-content ID ::=
+ {id-et 17} -- This value is not used directly, only as a prefix
+
+id-et-pkcs7 ID ::= {id-et 18}
+
+-- Heading extensions
+id-hex-incomplete-copy ID ::= {id-hex 0}
+
+id-hex-languages ID ::= {id-hex 1}
+
+id-hex-auto-submitted ID ::= {id-hex 2}
+
+id-hex-body-part-signatures ID ::= {id-hex 3}
+
+id-hex-ipm-security-label ID ::= {id-hex 4}
+
+id-hex-authorization-time ID ::= {id-hex 5}
+
+id-hex-circulation-list-recipients ID ::= {id-hex 6}
+
+id-hex-distribution-codes ID ::= {id-hex 7}
+
+id-hex-extended-subject ID ::= {id-hex 8}
+
+id-hex-information-category ID ::= {id-hex 9}
+
+id-hex-manual-handling-instructions ID ::= {id-hex 10}
+
+id-hex-originators-reference ID ::= {id-hex 11}
+
+id-hex-precedence-policy-id ID ::= {id-hex 12}
+
+-- Summary attributes
+id-sat-ipm-entry-type ID ::= {id-sat 0}
+
+id-sat-ipm-synopsis ID ::= {id-sat 1}
+
+id-sat-body-parts-summary ID ::= {id-sat 2}
+
+id-sat-ipm-auto-discarded ID ::= {id-sat 3}
+
+-- Heading attributes
+id-hat-heading ID ::= {id-hat 0}
+
+id-hat-this-ipm ID ::= {id-hat 1}
+
+id-hat-originator ID ::= {id-hat 2}
+
+id-hat-replied-to-IPM ID ::= {id-hat 3}
+
+id-hat-subject ID ::= {id-hat 4}
+
+id-hat-expiry-time ID ::= {id-hat 5}
+
+id-hat-reply-time ID ::= {id-hat 6}
+
+id-hat-importance ID ::= {id-hat 7}
+
+id-hat-sensitivity ID ::= {id-hat 8}
+
+id-hat-auto-forwarded ID ::= {id-hat 9}
+
+id-hat-authorizing-users ID ::= {id-hat 10}
+
+id-hat-primary-recipients ID ::= {id-hat 11}
+
+id-hat-copy-recipients ID ::= {id-hat 12}
+
+id-hat-blind-copy-recipients ID ::= {id-hat 13}
+
+id-hat-obsoleted-IPMs ID ::= {id-hat 14}
+
+id-hat-related-IPMs ID ::= {id-hat 15}
+
+id-hat-reply-recipients ID ::= {id-hat 16}
+
+id-hat-incomplete-copy ID ::= {id-hat 17}
+
+id-hat-languages ID ::= {id-hat 18}
+
+id-hat-rn-requestors ID ::= {id-hat 19}
+
+id-hat-nrn-requestors ID ::= {id-hat 20}
+
+id-hat-reply-requestors ID ::= {id-hat 21}
+
+id-hat-auto-submitted ID ::= {id-hat 22}
+
+id-hat-body-part-signatures ID ::= {id-hat 23}
+
+id-hat-ipm-security-label ID ::= {id-hat 24}
+
+id-hat-body-part-security-label ID ::= {id-hat 25}
+
+id-hat-body-part-encryption-token ID ::= {id-hat 26}
+
+id-hat-authorization-time ID ::= {id-hat 27}
+
+id-hat-circulation-list-recipients ID ::= {id-hat 28}
+
+id-hat-distribution-codes ID ::= {id-hat 29}
+
+id-hat-extended-subject ID ::= {id-hat 30}
+
+id-hat-information-category ID ::= {id-hat 31}
+
+id-hat-manual-handling-instructions ID ::= {id-hat 32}
+
+id-hat-originators-reference ID ::= {id-hat 33}
+
+id-hat-precedence-policy-id ID ::= {id-hat 34}
+
+id-hat-forwarded-content-token ID ::= {id-hat 35}
+
+id-hat-forwarding-token ID ::= {id-hat 36}
+
+id-hat-precedence ID ::= {id-hat 37}
+
+id-hat-body-part-signature-verification-status ID ::= {id-hat 38}
+
+-- Body attributes
+id-bat-body ID ::= {id-bat 0}
+
+id-bat-ia5-text-body-parts ID ::= {id-bat 1}
+
+id-bat-g3-facsimile-body-parts ID ::= {id-bat 3}
+
+id-bat-g4-class1-body-parts ID ::= {id-bat 4}
+
+id-bat-teletex-body-parts ID ::= {id-bat 5}
+
+id-bat-videotex-body-parts ID ::= {id-bat 6}
+
+id-bat-encrypted-body-parts ID ::= {id-bat 7}
+
+id-bat-message-body-parts ID ::= {id-bat 8}
+
+id-bat-mixed-mode-body-parts ID ::= {id-bat 9}
+
+id-bat-bilaterally-defined-body-parts ID ::= {id-bat 10}
+
+id-bat-nationally-defined-body-parts ID ::= {id-bat 11}
+
+id-bat-extended-body-part-types ID ::= {id-bat 12}
+
+id-bat-ia5-text-parameters ID ::= {id-bat 13}
+
+id-bat-g3-facsimile-parameters ID ::= {id-bat 15}
+
+id-bat-teletex-parameters ID ::= {id-bat 16}
+
+id-bat-videotex-parameters ID ::= {id-bat 17}
+
+id-bat-encrypted-parameters ID ::= {id-bat 18}
+
+id-bat-message-parameters ID ::= {id-bat 19}
+
+id-bat-ia5-text-data ID ::= {id-bat 20}
+
+id-bat-g3-facsimile-data ID ::= {id-bat 22}
+
+id-bat-teletex-data ID ::= {id-bat 23}
+
+id-bat-videotex-data ID ::= {id-bat 24}
+
+id-bat-encrypted-data ID ::= {id-bat 25}
+
+id-bat-message-data ID ::= {id-bat 26}
+
+-- Notification attributes
+id-nat-subject-ipm ID ::= {id-nat 0}
+
+id-nat-ipn-originator ID ::= {id-nat 1}
+
+id-nat-ipm-intended-recipient ID ::= {id-nat 2}
+
+id-nat-conversion-eits ID ::= {id-nat 3}
+
+id-nat-non-receipt-reason ID ::= {id-nat 4}
+
+id-nat-discard-reason ID ::= {id-nat 5}
+
+id-nat-auto-forward-comment ID ::= {id-nat 6}
+
+id-nat-returned-ipm ID ::= {id-nat 7}
+
+id-nat-receipt-time ID ::= {id-nat 8}
+
+id-nat-acknowledgment-mode ID ::= {id-nat 9}
+
+id-nat-suppl-receipt-info ID ::= {id-nat 10}
+
+id-nat-notification-extensions ID ::= {id-nat 11}
+
+id-nat-nrn-extensions ID ::= {id-nat 12}
+
+id-nat-rn-extensions ID ::= {id-nat 13}
+
+id-nat-other-notification-type-fields ID ::= {id-nat 14}
+
+-- Correlation attributes
+id-cat-correlated-delivered-ipns ID ::= {id-cat 0}
+
+id-cat-correlated-delivered-replies ID ::= {id-cat 1}
+
+id-cat-delivered-ipn-summary ID ::= {id-cat 2}
+
+id-cat-delivered-replies-summary ID ::= {id-cat 3}
+
+id-cat-forwarded-ipms ID ::= {id-cat 4}
+
+id-cat-forwarding-ipms ID ::= {id-cat 5}
+
+id-cat-ipm-recipients ID ::= {id-cat 6}
+
+id-cat-obsoleted-ipms ID ::= {id-cat 7}
+
+id-cat-obsoleting-ipms ID ::= {id-cat 8}
+
+id-cat-related-ipms ID ::= {id-cat 9}
+
+id-cat-relating-ipms ID ::= {id-cat 10}
+
+id-cat-replied-to-ipm ID ::= {id-cat 11}
+
+id-cat-replying-ipms ID ::= {id-cat 12}
+
+id-cat-revised-reply-time ID ::= {id-cat 13}
+
+id-cat-submitted-ipn-status ID ::= {id-cat 14}
+
+id-cat-submitted-ipns ID ::= {id-cat 15}
+
+id-cat-submitted-reply-status ID ::= {id-cat 16}
+
+id-cat-subject-ipm ID ::= {id-cat 17}
+
+id-cat-recipient-category ID ::= {id-cat 18}
+
+-- Message content types (for use by MS and Directory)
+id-mct-p2-1984 ID ::=
+ {id-mct 0} -- P2 1984
+
+id-mct-p2-1988 ID ::= {id-mct 1} -- P2 1988
+
+-- Extended body part parameters
+id-ep-ia5-text ID ::= {id-ep 0}
+
+id-ep-g3-facsimile ID ::= {id-ep 2}
+
+id-ep-teletex ID ::= {id-ep 4}
+
+id-ep-videotex ID ::= {id-ep 5}
+
+id-ep-encrypted ID ::= {id-ep 6}
+
+id-ep-message ID ::= {id-ep 7}
+
+id-ep-general-text ID ::= {id-ep 11}
+
+id-ep-file-transfer ID ::= {id-ep 12}
+
+-- Value {id-ep 13} is no longer defined
+id-ep-notification ID ::= {id-ep 15}
+
+id-ep-voice ID ::= {id-ep 16}
+
+id-ep-content ID ::=
+ {id-ep 17} -- This value is not used directly, only as a prefix
+
+-- Encoded Information Types
+id-eit-file-transfer ID ::= {id-eit 0}
+
+id-eit-voice ID ::= {id-eit 1}
+
+-- Voice Encoded Information Types
+id-voice-11khz-sample ID ::=
+ {id-eit-voice 0}
+
+id-voice-22khz-sample ID ::= {id-eit-voice 1}
+
+id-voice-cd-quality ID ::= {id-eit-voice 2}
+
+id-voice-g711-mu-law ID ::= {id-eit-voice 3}
+
+id-voice-g726-32k-adpcm ID ::= {id-eit-voice 4}
+
+id-voice-g728-16k-ld-celp ID ::= {id-eit-voice 5}
+
+-- Matching-rules
+id-mr-ipm-identifier ID ::= {id-mr 0}
+
+id-mr-or-descriptor ID ::= {id-mr 1}
+
+id-mr-or-descriptor-elements ID ::= {id-mr 2}
+
+id-mr-or-descriptor-substring-elements ID ::= {id-mr 3}
+
+id-mr-recipient-specifier ID ::= {id-mr 4}
+
+id-mr-recipient-specifier-elements ID ::= {id-mr 5}
+
+id-mr-recipient-specifier-substring-elements ID ::= {id-mr 6}
+
+id-mr-ipm-location ID ::= {id-mr 7}
+
+id-mr-or-descriptor-single-element ID ::= {id-mr 8}
+
+id-mr-recipient-specifier-single-element ID ::= {id-mr 9}
+
+id-mr-circulation-member ID ::= {id-mr 10}
+
+id-mr-circulation-member-elements ID ::= {id-mr 11}
+
+id-mr-circulation-member-substring-elements ID ::= {id-mr 12}
+
+id-mr-circulation-member-single-element ID ::= {id-mr 13}
+
+id-mr-circulation-member-checkmark ID ::= {id-mr 14}
+
+id-mr-distribution-code ID ::= {id-mr 15}
+
+id-mr-information-category ID ::= {id-mr 16}
+
+-- Auto-actions
+id-aa-ipm-auto-acknowledgement ID ::= {id-aa 0}
+
+id-aa-ipm-auto-correlate ID ::= {id-aa 1}
+
+id-aa-ipm-auto-discard ID ::= {id-aa 2}
+
+id-aa-ipm-auto-advise ID ::= {id-aa 3}
+
+-- Auto-action-errors
+id-aae-auto-discard-error ID ::= {id-aae 0}
+
+id-aae-auto-forwarding-loop ID ::= {id-aae 1}
+
+id-aae-duplicate-ipn ID ::= {id-aae 2}
+
+-- Message Store types
+id-mst-invalid-assembly-instructions ID ::= {id-mst 0}
+
+id-mst-invalid-ipn ID ::= {id-mst 1}
+
+id-mst-assembly-instructions ID ::= {id-mst 2}
+
+id-mst-suspend-auto-acknowledgement ID ::= {id-mst 3}
+
+id-mst-prevent-nrn-generation ID ::= {id-mst 4}
+
+id-mst-originator-body-part-encryption-token ID ::= {id-mst 5}
+
+id-mst-originator-forwarded-content-token ID ::= {id-mst 6}
+
+id-mst-assembly-capability ID ::= {id-mst 7}
+
+-- Security extensions
+id-sec-ipm-security-request ID ::= {id-sec 0}
+
+id-sec-security-common-fields ID ::= {id-sec 1}
+
+-- Other notification types
+id-on-absence-advice ID ::= {id-on 0}
+
+id-on-change-of-address-advice ID ::= {id-on 1}
+
+-- Recipient extensions
+id-rex-circulation-list-indicator ID ::= {id-rex 0}
+
+id-rex-precedence ID ::= {id-rex 1}
+
+END -- of IPMSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers2.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers2.asn
new file mode 100644
index 0000000000..2b46b27b3e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSObjectIdentifiers2.asn
@@ -0,0 +1,33 @@
+-- Module IPMSObjectIdentifiers2 (X.420:06/1999)
+IPMSObjectIdentifiers2 {iso standard mhs(10021) ipms(7) modules(0)
+ object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (ISO/IEC extensions)
+id-iso-ipms ID ::=
+ {iso standard mhs(10021) ipms(7)}
+
+-- Categories
+id-iso-mod ID ::= {id-iso-ipms 0} -- modules; not definitive
+
+id-iso-cs ID ::= {id-iso-ipms 1} -- character sets
+
+-- Modules
+id-mod-object-identifiers-2 ID ::= {id-iso-mod 0} -- not definitive
+
+id-mod-extended-body-part-types-2 ID ::= {id-iso-mod 1} -- not definitive
+
+-- Registration Authority for General Text Character Set EITs
+id-cs-eit-authority ID ::=
+ {id-iso-cs 0}
+
+END -- of IPMSObjectIdentifiers2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSSecurityExtensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSSecurityExtensions.asn
new file mode 100644
index 0000000000..8c692ccb31
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSSecurityExtensions.asn
@@ -0,0 +1,143 @@
+-- Module IPMSSecurityExtensions (X.420:06/1999)
+IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS Abstract Service
+ Certificates, Content, ContentIntegrityCheck, ExtendedCertificates,
+ EXTENSION, MessageOriginAuthenticationCheck, MessageToken, EncryptionKey
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ IPMS-EXTENSION
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Heading Extensions
+ BodyPartNumber
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS Object Identifiers
+ id-sec-ipm-security-request, id-sec-security-common-fields
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Recipient Security Request
+recipient-security-request IPMS-EXTENSION ::= {
+ VALUE RecipientSecurityRequest,
+ IDENTIFIED BY id-sec-ipm-security-request
+}
+
+RecipientSecurityRequest ::= BIT STRING {
+ content-non-repudiation(0), content-proof(1), ipn-non-repudiation(2),
+ ipn-proof(3)}
+
+-- IPN Security Response
+ipn-security-response IPMS-EXTENSION ::= {
+ VALUE IpnSecurityResponse,
+ IDENTIFIED BY id-sec-security-common-fields
+}
+
+IpnSecurityResponse ::= SET {
+ content-or-arguments
+ CHOICE {original-content OriginalContent,
+ original-security-arguments
+ SET {original-content-integrity-check
+ [0] OriginalContentIntegrityCheck OPTIONAL,
+ original-message-origin-authentication-check
+ [1] OriginalMessageOriginAuthenticationCheck OPTIONAL,
+ original-message-token
+ [2] OriginalMessageToken OPTIONAL}},
+ security-diagnostic-code SecurityDiagnosticCode OPTIONAL
+}
+
+-- MTS security fields
+OriginalContent ::= Content
+
+OriginalContentIntegrityCheck ::= ContentIntegrityCheck
+
+OriginalMessageOriginAuthenticationCheck ::= MessageOriginAuthenticationCheck
+
+OriginalMessageToken ::= MessageToken
+
+-- Security Diagnostic Codes
+SecurityDiagnosticCode ::= INTEGER {
+ integrity-failure-on-subject-message(0),
+ integrity-failure-on-forwarded-message(1),
+ moac-failure-on-subject-message(2), unsupported-security-policy(3),
+ unsupported-algorithm-identifier(4), decryption-failed(5), token-error(6),
+ unable-to-sign-notification(7), unable-to-sign-message-receipt(8),
+ authentication-failure-on-subject-message(9),
+ security-context-failure-message(10), message-sequence-failure(11),
+ message-security-labelling-failure(12), repudiation-failure-of-message(13),
+ failure-of-proof-of-message(14), signature-key-unobtainable(15),
+ decryption-key-unobtainable(16), key-failure(17),
+ unsupported-request-for-security-service(18),
+ inconsistent-request-for-security-service(19),
+ ipn-non-repudiation-provided-instead-of-content-proof(20),
+ token-decryption-failed(21), double-enveloping-message-restoring-failure(22),
+ unauthorised-dl-member(23), reception-security-failure(24),
+ unsuitable-alternate-recipient(25), security-services-refusal(26),
+ unauthorised-recipient(27), unknown-certification-authority-name(28),
+ unknown-dl-name(29), unknown-originator-name(30), unknown-recipient-name(31),
+ security-policy-violation(32)}
+
+-- Security Envelope Extensions
+body-part-encryption-token EXTENSION ::= {
+ BodyPartTokens,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:43
+}
+
+BodyPartTokens ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {encryption-token EncryptionToken,
+ message-or-content-body-part [0] BodyPartTokens}
+ }
+
+EncryptionToken ::= SET {
+ encryption-algorithm-identifier AlgorithmIdentifier,
+ encrypted-key ENCRYPTED{EncryptionKey},
+ recipient-certificate-selector [0] CertificateAssertion OPTIONAL,
+ recipient-certificate [1] Certificates OPTIONAL,
+ originator-certificate-selector [2] CertificateAssertion OPTIONAL,
+ originator-certificates [3] ExtendedCertificates OPTIONAL,
+ ...
+}
+
+forwarded-content-token EXTENSION ::= {
+ ForwardedContentToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:44
+}
+
+ForwardedContentToken ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {forwarding-token MessageToken,
+ message-or-content-body-part ForwardedContentToken
+ }}
+
+END -- of IPMSSecurityExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSUpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSUpperBounds.asn
new file mode 100644
index 0000000000..27324f614f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/IPMSUpperBounds.asn
@@ -0,0 +1,46 @@
+-- Module IPMSUpperBounds (X.420:06/1999)
+IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) upper-bounds(10)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+-- Upper bounds
+ub-alpha-code-length INTEGER ::= 16
+
+ub-auto-forward-comment INTEGER ::= 256
+
+ub-circulation-list-members INTEGER ::= 256
+
+ub-distribution-codes INTEGER ::= 16
+
+ub-extended-subject-length INTEGER ::= 256
+
+ub-free-form-name INTEGER ::= 64
+
+ub-information-categories INTEGER ::= 16
+
+ub-information-category-length INTEGER ::= 64
+
+ub-ipm-identifier-suffix INTEGER ::= 2
+
+ub-local-ipm-identifier INTEGER ::= 64
+
+ub-manual-handling-instruction-length INTEGER ::= 128
+
+ub-manual-handling-instructions INTEGER ::= 16
+
+ub-originators-reference-length INTEGER ::= 64
+
+ub-precedence INTEGER ::= 127
+
+ub-subject-field INTEGER ::= 128
+
+ub-telephone-number INTEGER ::= 32
+
+END -- of IPMSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
new file mode 100644
index 0000000000..b7efd7417e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
@@ -0,0 +1,459 @@
+-- Module ISO-STANDARD-9541-FONT-ATTRIBUTE-SET (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Font-Attribute-Set;
+
+IMPORTS Structured-Name
+ FROM ISO9541-SN {1 0 9541 2 3};
+
+Font-Attribute-Set ::= SEQUENCE {
+ name-prefixes [0] IMPLICIT SET OF Name-Prefix OPTIONAL,
+ iso-standard-9541-fontname [1] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-fontdescription [2] IMPLICIT Font-Description OPTIONAL,
+ iso-standard-9541-wrmodes [3] IMPLICIT Writing-Modes OPTIONAL,
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Font-Description ::= SET {
+ iso-standard-9541-dataversion [0] IMPLICIT Data-Version OPTIONAL,
+ iso-standard-9541-Standardversion [1] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-datasource [2] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-datacopyright [3] Message OPTIONAL,
+ iso-standard-9541-dsnsource [4] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsncopyright [5] Message OPTIONAL,
+ iso-standard-9541-relunits [6] IMPLICIT Cardinal DEFAULT 1,
+ iso-standard-9541-typeface [7] Message OPTIONAL,
+ iso-standard-9541-fontfamily [8] Match-String OPTIONAL,
+ iso-standard-9541-posture [9] IMPLICIT Posture-Code OPTIONAL,
+ iso-standard-9541-postureangle [10] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-weight [11] IMPLICIT Weight-Code OPTIONAL,
+ iso-standard-9541-propwidth [12] IMPLICIT Width-Code OPTIONAL,
+ iso-standard-9541-glyphcomp [13] IMPLICIT Glyph-Complement OPTIONAL,
+ iso-standard-9541-nomwrmode [14] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsnsize [15] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minsize [16] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxsize [17] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-capheight [18] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-lcheight [19] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsngroup [20] IMPLICIT Design-Group OPTIONAL,
+ iso-standard-9541-structure [21] IMPLICIT Structure-Code OPTIONAL,
+ iso-standard-9541-minfeatsz [22] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomcapstemwidth [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomlcstemwidth [24] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [25] IMPLICIT Property-List OPTIONAL
+}
+
+Name-Prefix ::= SEQUENCE {
+ --see NOTE 3 at the end of 6.1
+ index [0] IMPLICIT Code,
+ prefix [1] IMPLICIT Structured-Name
+}
+
+Data-Version ::= SEQUENCE {
+ major [0] IMPLICIT Cardinal OPTIONAL,
+ minor [1] IMPLICIT Cardinal OPTIONAL,
+ timestamp [2] IMPLICIT UTCTime OPTIONAL
+}
+
+Posture-Code ::= INTEGER {
+ not-applicable(0), upright(1), oblique-forward(2), oblique-backward(3),
+ italic-forward(4), italic-backward(5), other(6)}
+
+Weight-Code ::= INTEGER {
+ not-applicable(0), ultra-light(1), extra-light(2), light(3), semi-light(4),
+ medium(5), semi-bold(6), bold(7), extra-bold(8), ultra-bold(9)}
+
+Width-Code ::= INTEGER {
+ not-applicable(0), ultra-condensed(1), extra-condensed(2), condensed(3),
+ semi-condensed(4), medium(5), semi-expanded(6), expanded(7),
+ extra-expanded(8), ultra-expanded(9)}
+
+Glyph-Complement ::= SEQUENCE {
+ -- at least one included glyph list or at least one
+ -- included glyph collection list is mandatory
+ iso-standard-9541-numglyphs [0] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-incglyphcols [1] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphcols [2] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-incglyphs [3] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphs [4] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Design-Group ::= SEQUENCE {
+ -- see 9541-1 Annex-A for code values
+ group-code [0] IMPLICIT Code,
+ subgroup-code [1] IMPLICIT Code,
+ specific-group-code [2] IMPLICIT Code
+}
+
+Structure-Code ::= INTEGER {not-applicable(0), solid(1), outline(2)}
+
+Writing-Modes ::= SET {
+ iso-standard-9541-wrmode [0] IMPLICIT SET OF Writing-Mode OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Writing-Mode ::= SEQUENCE {
+ iso-standard-9541-wrmodename [0] IMPLICIT Global-Name,
+ wrmode-properties [1] IMPLICIT Modal-Properties
+}
+
+Modal-Properties ::= SET {
+ iso-standard-9541-nomescdir [0] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-escclass [1] IMPLICIT Esc-Class-Code OPTIONAL,
+ iso-standard-9541-avgescx [2] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgescy [3] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescx [4] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescy [5] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescx [6] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescy [7] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescx [8] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescy [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxfontext [10] IMPLICIT Max-Extents OPTIONAL,
+ iso-standard-9541-sectors [11] IMPLICIT Sectors OPTIONAL,
+ iso-standard-9541-escadjs [12] IMPLICIT SET OF Adjusts OPTIONAL,
+ iso-standard-9541-minescadjsze [13] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxescadjsze [14] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-scores [15] IMPLICIT Scores OPTIONAL,
+ iso-standard-9541-vscripts [16] IMPLICIT Variant-Scripts OPTIONAL,
+ iso-standard-9541-minlinesp [17] IMPLICIT Alignment-Spacing OPTIONAL,
+ iso-standard-9541-minanascale [18] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxanascale [19] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-nomalign [20] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-alignmodes [21] IMPLICIT Alignment-Modes OPTIONAL,
+ iso-standard-9541-copyfits [22] IMPLICIT Copyfits OPTIONAL,
+ iso-standard-9541-dsnwordadd [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnwordampl [24] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minwordadd [25] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minwordampl [26] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxwordadd [27] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxwordampl [28] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-dsnletteradd [29] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnletterampl [30] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minletteradd [31] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minletterampl [32] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxletteradd [33] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxletterampl [34] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-glyphmetrics [35] IMPLICIT Glyph-Metrics OPTIONAL,
+ non-iso-properties [36] IMPLICIT Property-List OPTIONAL
+}
+
+Esc-Class-Code ::= INTEGER {not-applicable(0), monospace(1), proportional(2)}
+
+Max-Extents ::= SEQUENCE {
+ max-minx [0] IMPLICIT Rel-Rational,
+ max-miny [1] IMPLICIT Rel-Rational,
+ max-maxx [2] IMPLICIT Rel-Rational,
+ max-maxy [3] IMPLICIT Rel-Rational
+}
+
+Sectors ::= SET {
+ iso-standard-9541-sector [0] IMPLICIT SEQUENCE OF Sector OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Sector ::= SEQUENCE {
+ sector-left [0] IMPLICIT Rel-Rational,
+ sector-right [1] IMPLICIT Rel-Rational
+}
+
+Adjusts ::= SET {
+ iso-standard-9541-adjust [0] IMPLICIT SET OF Adjust,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Adjust ::= SET {
+ iso-standard-9541-escadjname [0] IMPLICIT Global-Name,
+ adjust-properties [1] IMPLICIT Adjust-Properties
+}
+
+Adjust-Properties ::= SET {
+ iso-standard-9541-cpea [0] IMPLICIT CPEA-Properties OPTIONAL,
+ iso-standard-9541-sec [1] IMPLICIT SEC-Properties OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+CPEA-Properties ::= SET {
+ iso-standard-9541-ncpeaforwd [0] IMPLICIT Cardinal,
+ iso-standard-9541-ncpeabackwd [1] IMPLICIT Cardinal,
+ iso-standard-9541-cpeax [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ -- at least one required
+ iso-standard-9541-cpeay [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+SEC-Properties ::= SET {
+ iso-standard-9541-secx
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-secy
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+Scores ::= SET {
+ iso-standard-9541-Score [0] IMPLICIT SET OF Score OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Score ::= SEQUENCE {
+ iso-standard-9541-scorename [0] IMPLICIT Global-Name,
+ score-property-list [1] IMPLICIT Score-Properties
+}
+
+Score-Properties ::= SET {
+ iso-standard-9541-scoreoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scoreoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scorethick [2] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [3] IMPLICIT Property-List OPTIONAL
+}
+
+Variant-Scripts ::= SET {
+ iso-standard-9541-vscript [0] IMPLICIT SET OF Vscript OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Vscript ::= SEQUENCE {
+ iso-standard-9541-vsname [0] IMPLICIT Global-Name,
+ vscript-property-list [1] IMPLICIT Vscript-Properties
+}
+
+Vscript-Properties ::= SET {
+ iso-standard-9541-vsoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-vsscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment-Spacing ::= SEQUENCE {
+ minlinesp-left [0] IMPLICIT Rel-Rational,
+ minlinesp-right [1] IMPLICIT Rel-Rational
+}
+
+Alignment-Modes ::= SET {
+ iso-standard-9541-align [0] IMPLICIT SET OF Alignment OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment ::= SEQUENCE {
+ iso-standard-9541-alignname [0] IMPLICIT Global-Name,
+ alignment-property-list [1] IMPLICIT Align-Properties
+}
+
+Align-Properties ::= SET {
+ iso-standard-9541-alignoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-alignscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfits ::= SET {
+ iso-standard-9541-copyfit [0] IMPLICIT SET OF Copyfit OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfit ::= SEQUENCE {
+ iso-standard-9541-copyfitname [0] IMPLICIT Global-Name,
+ copyfit-properties [1] IMPLICIT Copyfit-Properties
+}
+
+Copyfit-Properties ::= SET {
+ iso-standard-9541-copyfitmeasure [0] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Metrics ::= SET {
+ iso-standard-9541-gmetric [0] IMPLICIT SET OF Glyph-Property-List,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Property-List ::= SEQUENCE {
+ iso-standard-9541-gname [0] IMPLICIT Global-Name,
+ glyph-properties [1] IMPLICIT Glyph-Properties
+}
+
+Glyph-Properties ::= SET {
+ iso-standard-9541-px [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-py [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-ex [2] IMPLICIT Rel-Rational,
+ iso-standard-9541-ey [3] IMPLICIT Rel-Rational,
+ iso-standard-9541-ext [4] IMPLICIT Extents,
+ iso-standard-9541-lgs [5] IMPLICIT Ligatures OPTIONAL,
+ iso-standard-9541-peas [6] IMPLICIT P-Adjusts OPTIONAL,
+ iso-standard-9541-cpeai [7] IMPLICIT C-Indicator OPTIONAL,
+ iso-standard-9541-eai [8] IMPLICIT E-Code OPTIONAL,
+ iso-standard-9541-minex [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-miney [10] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxex [11] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxey [12] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [13] IMPLICIT Property-List OPTIONAL
+}
+
+Extents ::= SET {
+ minx [0] IMPLICIT Rel-Rational OPTIONAL,
+ miny [1] IMPLICIT Rel-Rational OPTIONAL,
+ maxx [2] IMPLICIT Rel-Rational OPTIONAL,
+ maxy [3] IMPLICIT Rel-Rational OPTIONAL
+}
+
+Ligatures ::= SET {
+ iso-standard-9541-lg [0] IMPLICIT SET OF Ligature OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Ligature ::= SET {
+ iso-standard-9541-lgn [0] IMPLICIT Global-Name,
+ iso-standard-9541-lgsn [1] SEQUENCE OF Global-Name
+}
+
+P-Adjusts ::= SET {
+ iso-standard-9541-pea [0] IMPLICIT SET OF P-Adjust OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+P-Adjust ::= SEQUENCE {
+ iso-standard-9541-pean [0] IMPLICIT Global-Name,
+ p-adjust-property-list [1] IMPLICIT P-Adjust-Properties
+}
+
+P-Adjust-Properties ::= SET {
+ iso-standard-9541-peax
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-peay
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-speaforwdx [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speaforwdy [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdx [4] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdy [5] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [6] IMPLICIT Property-List OPTIONAL
+}
+
+C-Indicator ::= SEQUENCE {
+ c-forward [0] IMPLICIT Cardinal,
+ c-backward [1] IMPLICIT Cardinal
+}
+
+E-Code ::= INTEGER {
+ not-applicable(0), letter-space(1), word-space(2), no-adjust(3)}
+
+-- The following Data Types are used in the above structures
+-- The following Data Types are used in the above structures
+Property ::= SEQUENCE {
+ property-name [0] Global-Name,
+ property-value [1] Property-Value
+}
+
+Property-Value ::= CHOICE {
+ value [0] Value,
+ value-list [1] Value-List,
+ ordered-value-list [2] Ordered-Value-List,
+ property-list [3] Property-List,
+ ordered-property-list [4] Ordered-Property-List
+}
+
+Value-List ::= SET OF Value
+
+Ordered-Value-List ::= SEQUENCE OF Value
+
+Property-List ::= SET OF Property
+
+Ordered-Property-List ::= SEQUENCE OF Property
+
+Value ::= CHOICE {
+ global-Name [0] Global-Name,
+ match-String [1] Match-String,
+ message [2] Message,
+ octetString [3] OCTET STRING,
+ boolean [4] BOOLEAN,
+ integer [5] Integer,
+ cardinal [6] Cardinal,
+ code [7] Code,
+ rational [8] Rational,
+ rel-Rational [9] Rel-Rational,
+ angle [10] Angle,
+ proprietary-Data [11] Proprietary-Data
+}
+
+Global-Name ::= SEQUENCE {
+ -- see global name note at the end of clause 6.1
+ prefix-index [0] IMPLICIT Code OPTIONAL,
+ name-value [1] IMPLICIT Structured-Name
+}
+
+Match-String ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Integer ::= INTEGER {first(-2147483648), last(2147483647)}
+
+Cardinal ::= INTEGER {first(0), last(4294967295)}
+
+Code ::= INTEGER {first(0), last(255)}
+
+Rational ::= SEQUENCE {
+ numerator [0] IMPLICIT INTEGER,
+ denominator [1] IMPLICIT INTEGER {first(1), last(2147483647)} OPTIONAL
+}
+
+-- denominator defaults to 1
+Rel-Rational ::= Rational
+
+-- expresses glyph coordinate units
+-- denominator defaults to relunits
+Angle ::=
+ Rational
+
+-- expresses units of degrees, with a
+-- value range of -360 to +360
+-- denominator defaults to 1
+Proprietary-Data ::= SEQUENCE {
+ prop-data-message [0] Message OPTIONAL,
+ prop-data-key [1] IMPLICIT OCTET STRING OPTIONAL,
+ prop-data [2] IMPLICIT OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO8571-FTAM.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO8571-FTAM.asn
new file mode 100644
index 0000000000..a57a276704
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO8571-FTAM.asn
@@ -0,0 +1,1453 @@
+-- Module ISO8571-FTAM (ISO 8571-4:1988)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+--
+-- Copyright ? ISO/IEC 1988. This version of
+-- this ASN.1 module is part of ISO/IEC 8571-4:1988;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} DEFINITIONS
+::=
+BEGIN
+
+PDU ::= CHOICE {
+ fTAM-Regime-PDU FTAM-Regime-PDU,
+ file-PDU File-PDU,
+ bulk-Data-PDU Bulk-Data-PDU,
+ fSM-PDU FSM-PDU
+}
+
+FTAM-Regime-PDU ::= CHOICE {
+ f-initialize-request [0] IMPLICIT F-INITIALIZE-request,
+ f-initialize-response [1] IMPLICIT F-INITIALIZE-response,
+ f-terminate-request [2] IMPLICIT F-TERMINATE-request,
+ f-terminate-response [3] IMPLICIT F-TERMINATE-response,
+ f-u-abort-request [4] IMPLICIT F-U-ABORT-request,
+ f-p-abort-request [5] IMPLICIT F-P-ABORT-request
+}
+
+F-INITIALIZE-request ::= SEQUENCE {
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ initiator-identity User-Identity OPTIONAL,
+ account Account OPTIONAL,
+ filestore-password Password OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- lf the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+F-INITIALIZE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- If the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+Protocol-Version ::= [0] IMPLICIT BIT STRING {version-1(0), version-2(1)
+}
+
+Implementation-Information ::= [1] IMPLICIT GraphicString
+
+-- This Parameter is provided solely for the convenience of implementors
+-- needing to distinguish between implernentations of a specific version number
+-- of different equipment, it shall not be the subject of conformance test.
+Service-Class ::= [3] IMPLICIT BIT STRING {
+ unconstrained-class(0), management-class(1), transfer-class(2),
+ transfer-and-management-class(3), access-class(4)}
+
+Functional-Units ::= [4] IMPLICIT BIT STRING {
+ read(2), write(3), file-access(4), limited-file-management(5),
+ enhanced-file-management(6), grouping(7), fadu-locking(8), recovery(9),
+ restart-data-transfer(10), limited-filestore-management(11),
+ enhanced-filestore-management(12), object-manipulation(13),
+ group-manipulation(14), consecutive-access(15), concurrent-access(16)
+}
+
+-- Values 2 to 14 are Chosen to align with numbering scheme used in ISO 8571-3.
+Attribute-Groups ::= [5] IMPLICIT BIT STRING {
+ storage(0), security(1), private(2), extension(3)}
+
+-- The extension bit is defined if and only if the limited-filestore-management
+-- or the group-manipulation functional units are available.
+FTAM-Quality-of-Service ::= [6] IMPLICIT INTEGER {
+ no-recovery(0), class-1-recovery(1), class-2-recovery(2), class-3-recovery(3)
+}
+
+Contents-Type-List ::=
+ [7] IMPLICIT
+ SEQUENCE OF
+ CHOICE {document-type-name Document-Type-Name,
+ abstract-Syntax-name Abstract-Syntax-Name}
+
+F-TERMINATE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-TERMINATE-response ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL
+}
+
+F-U-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-P-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+File-PDU ::= CHOICE {
+ f-select-request [6] IMPLICIT F-SELECT-request,
+ f-select-response [7] IMPLICIT F-SELECT-response,
+ f-deselect-request [8] IMPLICIT F-DESELECT-request,
+ f-deselect-response [9] IMPLICIT F-DESELECT-response,
+ f-create-request [10] IMPLICIT F-CREATE-request,
+ f-create-response [11] IMPLICIT F-CREATE-response,
+ f-delete-request [12] IMPLICIT F-DELETE-request,
+ f-delete-response [13] IMPLICIT F-DELETE-response,
+ f-read-attrib-request [14] IMPLICIT F-READ-ATTRIB-request,
+ f-read-attrib-response [15] IMPLICIT F-READ-ATTRIB-response,
+ f-Change-attrib-reques [16] IMPLICIT F-CHANGE-ATTRIB-request,
+ f-Change-attrib-respon [17] IMPLICIT F-CHANGE-ATTRIB-response,
+ f-open-request [18] IMPLICIT F-OPEN-request,
+ f-open-response [19] IMPLICIT F-OPEN-response,
+ f-close-request [20] IMPLICIT F-CLOSE-request,
+ f-close-response [21] IMPLICIT F-CLOSE-response,
+ f-begin-group-request [22] IMPLICIT F-BEGIN-GROUP-request,
+ f-begin-group-response [23] IMPLICIT F-BEGIN-GROUP-response,
+ f-end-group-request [24] IMPLICIT F-END-GROUP-request,
+ f-end-group-response [25] IMPLICIT F-END-GROUP-response,
+ f-recover-request [26] IMPLICIT F-RECOVER-request,
+ f-recover-response [27] IMPLICIT F-RECOVER-response,
+ f-locate-request [28] IMPLICIT F-LOCATE-request,
+ f-locate-response [29] IMPLICIT F-LOCATE-response,
+ f-erase-request [30] IMPLICIT F-ERASE-request,
+ f-erase-response [31] IMPLICIT F-ERASE-response
+}
+
+F-SELECT-request ::= SEQUENCE {
+ attributes Select-Attributes,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-SELECT-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ attributes Select-Attributes,
+ referent-indicator Referent-Indicator OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management functional unit is available.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DESELECT-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DESELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ -- Present if and only if the account field was present on
+ -- the PDU which established the selection regime.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-request ::= SEQUENCE {
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the Object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DELETE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+F-READ-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ -- Password values within the access control tan not be read by means
+ -- of the read attribute action. Whether other Parts of the access
+ -- control Object attribute tan be read by means of the read
+ -- attribute action is decided locally by the responding entity, and
+ -- it shall not be the subject of conformance test.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ -- Password values within access control attribute are never returned.
+ -- Other attributes are retumed as an implementation choice.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-OPEN-request ::= SEQUENCE {
+ processing-mode
+ [0] IMPLICIT BIT STRING {f-read(0), f-insert(1), f-replace(2), f-extend(3),
+ f-erase(4)} DEFAULT {f-read},
+ contents-type
+ [1] CHOICE {unknown [0] IMPLICIT NULL,
+ proposed [1] Contents-Type-Attribute},
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ enable-fadu-locking [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ activity-identifier Activity-Identifier OPTIONAL,
+ -- Only used in the recovery functional unit.
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ remove-contexts [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts [5] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of the consecutive overlap or
+ -- concurrent overlap functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-OPEN-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ --The following are conditional on the negotiation of the concecutive access
+ -- or concurent access functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CLOSE-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CLOSE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-BEGIN-GROUP-request ::= SEQUENCE {threshold [0] IMPLICIT INTEGER
+}
+
+F-BEGIN-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-request ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-RECOVER-request ::= SEQUENCE {
+ activity-identifier Activity-Identifier,
+ bulk-transfer-number [0] IMPLICIT INTEGER,
+ -- If concurrent access was in use then this parameter indicates the read bulk
+ -- transfer.
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ recovefy-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file
+ -- Point after last Checkpoint indicates end of file
+ remove-contexts
+ [3] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts
+ [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-bulk-transfer-number [7] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file
+ -- point after last checkpoint indicates end of file
+ last-transfer-end-read-response [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RECOVER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ recovety-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file.
+ -- Point after last Checkpoint indicates end of file.
+ diagnostic Diagnostic OPTIONAL,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file; point after
+ -- last checkpoint indicates end of file
+ last-transfer-end-read-request [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-LOCATE-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL
+}
+
+F-LOCATE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ file-access-data-unit-identity FADU-Identity OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-ERASE-request ::= SEQUENCE {file-access-data-unit-identity FADU-Identity
+}
+
+F-ERASE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Bulk-Data-PDU ::= CHOICE {
+ f-read-request [32] IMPLICIT F-READ-request,
+ f-write-request [33] IMPLICIT F-WRITE-request,
+ -- There is no F-DATA FPDU, the contents of a file
+ -- are transferred in a different presentation context
+ -- and there is therefore no need to define the types
+ -- of file contents in the FTAM PCI abstract Syntax.
+ -- File contents data are carried in values of the
+ -- data type Data-Element as defined in ISO 8571-2.
+ f-data-end-request [34] IMPLICIT F-DATA-END-request,
+ f-transfer-end-request [35] IMPLICIT F-TRANSFER-END-request,
+ f-transfer-end-response [36] IMPLICIT F-TRANSFER-END-response,
+ f-cancel-request [37] IMPLICIT F-CANCEL-request,
+ f-cancel-response [38] IMPLICIT F-CANCEL-response,
+ -- There is no F-CHECK PDU.
+ f-restart-request [39] IMPLICIT F-RESTART-request,
+ f-restart-response [40] IMPLICIT F-RESTART-response
+}
+
+F-READ-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ access-context Access-Context,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive of concurrent access.
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-WRITE-request ::= SEQUENCE {
+ file-access-data-unit-Operation
+ [0] IMPLICIT INTEGER {insert(0), replace(1), extend(2)},
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive or concurrent access.
+ transfer-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+F-DATA-END-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-TRANSFER-END-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [2] IMPLICIT INTEGER OPTIONAL
+}
+
+F-TRANSFER-END-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CHECK-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-CHECK-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-RESTART-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RESTART-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Degree-Of-Overlap ::= [APPLICATION 30] IMPLICIT INTEGER {
+ normal(0), consecutive(1), concurrent(2)}
+
+Request-Type ::= [APPLICATION 31] IMPLICIT INTEGER {read(0), write(1)}
+
+Abstract-Syntax-Name ::= [APPLICATION 0] IMPLICIT OBJECT IDENTIFIER
+
+Access-Context ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ access-context
+ [0] IMPLICIT INTEGER {hierarchical-all-data-units(0),--HA--
+ hierarchical-no-data-units(1),--HN--
+ flat-all-data-units(2),--FA--
+ flat-one-level-data-unit(3),--FL--
+ flat-Single-data-unit(4),--FS--
+ unstructured-all-data-units(5),--UA--
+ unstructured-Single-data-unit(6)}, --US
+ level-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+-- Present if and only if flat-one-level-data-units
+-- (access context FL) is selected.
+-- As defined in ISO 8571-2.
+Access-Passwords ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords OPTIONAL,
+ link-password [9] Password OPTIONAL
+}
+
+-- The pass-passwords and the link-password must be included in the
+-- access-passwords if and only if the limited-filestore-management
+-- or the Object-manipulation or the group-manipulation functional
+-- units are available.
+Access-Request ::= [APPLICATION 3] IMPLICIT BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7)}
+
+Account ::= [APPLICATION 4] IMPLICIT GraphicString
+
+Action-Result ::= [APPLICATION 5] IMPLICIT INTEGER {
+ success(0), transient-error(1), permanent-error(2)}
+
+Activity-Identifier ::= [APPLICATION 6] IMPLICIT INTEGER
+
+Application-Entity-Title ::= [APPLICATION 7] AE-title
+
+-- As defined in ISO 8650.
+Change-Attributes ::= [APPLICATION 8] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Change-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Change-Attribute OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- enhanced-filestore-management functional unit is available.
+-- Atleast one attribute shall be present in the Change-Attributes
+-- Parameter on the request PDU.
+Charging ::=
+ [APPLICATION 9] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {resource-identifier [0] IMPLICIT GraphicString,
+ charging-unit [1] IMPLICIT GraphicString,
+ charging-value [2] IMPLICIT INTEGER}
+
+Concurrency-Control ::= [APPLICATION 10] IMPLICIT SEQUENCE {
+ read [0] IMPLICIT Lock,
+ insert [1] IMPLICIT Lock,
+ replace [2] IMPLICIT Lock,
+ extend [3] IMPLICIT Lock,
+ erase [4] IMPLICIT Lock,
+ read-attribute [5] IMPLICIT Lock,
+ change-attribute [6] IMPLICIT Lock,
+ delete-Object [7] IMPLICIT Lock
+}
+
+Lock ::= INTEGER {not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Constraint-Set-Name ::= [APPLICATION 11] IMPLICIT OBJECT IDENTIFIER
+
+Create-Attributes ::= [APPLICATION 12] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute,
+ object-type [18] IMPLICIT Object-Type-Attribute DEFAULT file,
+ -- This Parameter tan be sent if and only if the
+ -- limited-filestore-management functional unit is available.
+ permitted-actions [1] IMPLICIT Permitted-Actions-Attribute,
+ contents-type [2] Contents-Type-Attribute,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+Diagnostic ::=
+ [APPLICATION 13] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {diagnostic-type
+ [0] IMPLICIT INTEGER {informative(0), transient(1),
+ permanent(2)},
+ error-identifier [1] IMPLICIT INTEGER,
+ -- As defined in ISO 8571-3.
+ error-observer [2] IMPLICIT Entity-Reference,
+ error-Source [3] IMPLICIT Entity-Reference,
+ suggested-delay [4] IMPLICIT INTEGER OPTIONAL,
+ further-details [5] IMPLICIT GraphicString OPTIONAL
+ }
+
+Entity-Reference ::= INTEGER {
+ no-categorization-possible(0), initiating-file-service-user(1),
+ initiating-file-protocol-machine(2),
+ service-supporting-the-file-protocol-machine(3),
+ responding-file-protocol-machine(4), responding-file-service-user(5)
+}
+
+--NOTE
+-- 1. The values 0 and 3 are only valid as values in error-source.
+-- 2. The value 5 corresponds to the virtual filestore.
+Document-Type-Name ::= [APPLICATION 14] IMPLICIT OBJECT IDENTIFIER
+
+FADU-Identity ::= [APPLICATION 15] CHOICE {
+ first-last [0] IMPLICIT INTEGER {first(0), last(1)},
+ relative [1] IMPLICIT INTEGER {previous(0), current(1), next(2)},
+ begin-end [2] IMPLICIT INTEGER {begin(0), end(1)},
+ single-name [3] IMPLICIT Node-Name,
+ name-list [4] IMPLICIT SEQUENCE OF Node-Name,
+ fadu-number [5] IMPLICIT INTEGER
+}
+
+-- As defined in ISO 8571-2.
+Node-Name ::= EXTERNAL
+
+-- The type to be used for Node-Name is defined in IS08571-FADU.
+FADU-Lock ::= [APPLICATION 16] IMPLICIT INTEGER {off(0), on(1)}
+
+Password ::= [APPLICATION 17] CHOICE {
+ graphicString GraphicString,
+ octetString OCTET STRING
+}
+
+Read-Attributes ::= [APPLICATION 18] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ object-type
+ [18] IMPLICIT Object-Type-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ permitted-actions
+ [1] IMPLICIT Permitted-Actions-Attribute OPTIONAL,
+ contents-type
+ [2] Contents-Type-Attribute OPTIONAL,
+ linked-Object
+ [19] Pathname-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ child-objects
+ [23] Child-Objects-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ -- Storage group
+ primaty-pathname
+ [20] Pathname-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-Object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ path-access-control
+ [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ legal-qualification
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions
+ [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan be sent if and only if
+-- the limited-filestore-management functional unit is available.
+Select-Attributes ::= [APPLICATION 19] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute
+}
+
+Shared-ASE-Information ::= [APPLICATION 20] IMPLICIT EXTERNAL
+
+-- This field may be used to convey commitment control as described
+-- in ISO 8571-3.
+State-Result ::= [APPLICATION 21] IMPLICIT INTEGER {success(0), failure(1)
+}
+
+User-Identity ::= [APPLICATION 22] IMPLICIT GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Change-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT SEQUENCE {insert-values
+ [0] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL,
+ -- This field is used by the Change attribute actions to indicate
+ -- new values to be inserted in the access control Object attribute.
+ delete-values
+ [1] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL}
+}
+
+-- This field is used by the Change attribute action to indicate
+-- old values to be removed from the access control Object
+-- attribute.
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] IMPLICIT Access-Request,
+ concurrency-access [1] IMPLICIT Concurrency-Access OPTIONAL,
+ identity [2] IMPLICIT User-Identity OPTIONAL,
+ passwords [3] IMPLICIT Access-Passwords OPTIONAL,
+ location [4] IMPLICIT Application-Entity-Title OPTIONAL
+}
+
+Concurrency-Access ::= SEQUENCE {
+ read [0] IMPLICIT Concurrency-Key,
+ insert [1] IMPLICIT Concurrency-Key,
+ replace [2] IMPLICIT Concurrency-Key,
+ extend [3] IMPLICIT Concurrency-Key,
+ erase [4] IMPLICIT Concurrency-Key,
+ read-attribute [5] IMPLICIT Concurrency-Key,
+ change-attribute [6] IMPLICIT Concurrency-Key,
+ delete-Object [7] IMPLICIT Concurrency-Key
+}
+
+Concurrency-Key ::= BIT STRING {
+ not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values Account
+}
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] IMPLICIT SEQUENCE {document-type-name Document-Type-Name,
+ parameter
+ [0] TYPE-IDENTIFIER.&Type OPTIONAL},
+ -- The actual types to be used for values of the Parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-Syntax
+ [1] IMPLICIT SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-Syntax-name Abstract-Syntax-Name
+ }
+}
+
+Date-and-Time-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GeneralizedTime
+}
+
+Object-Availability-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT INTEGER {immediate-availability(0), deferred-availability(1)}
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] IMPLICIT Pathname,
+ complete-pathname [APPLICATION 23] IMPLICIT Pathname
+}
+
+Object-Size-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT INTEGER
+}
+
+Legal-Qualification-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GraphicString
+}
+
+Permitted-Actions-Attribute ::= BIT STRING -- Actions available
+ {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7), pass(11),
+ link(12),
+ -- FADU-Identity groups available
+ traversal(8), reverse-traversal(9), random-Order(10)}
+
+Private-Use-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ abstract-Syntax-not-supported [1] IMPLICIT NULL,
+ -- Indicates that abstract Syntax is not available.
+ actual-values [2] IMPLICIT EXTERNAL
+}
+
+Object-Type-Attribute ::= INTEGER {file(0), file-directory(1), reference(2)}
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values User-Identity
+}
+
+Child-Objects-Attribute ::= SET OF GraphicString
+
+FSM-PDU ::= CHOICE {
+ f-Change-prefix-request [41] IMPLICIT F-CHANGE-PREFIX-request,
+ f-Change-prefix-response [42] IMPLICIT F-CHANGE-PREFIX-response,
+ f-list-request [43] IMPLICIT F-LIST-request,
+ f-list-response [44] IMPLICIT F-LIST-response,
+ f-group-select-request [45] IMPLICIT F-GROUP-SELECT-request,
+ f-group-select-response [46] IMPLICIT F-GROUP-SELECT-response,
+ f-group-delete-request [47] IMPLICIT F-GROUP-DELETE-request,
+ f-group-delete-response [48] IMPLICIT F-GROUP-DELETE-response,
+ f-group-move-request [49] IMPLICIT F-GROUP-MOVE-request,
+ f-group-move-response [50] IMPLICIT F-GROUP-MOVE-response,
+ f-group-copy-request [51] IMPLICIT F-GROUP-COPY-request,
+ f-group-copy-response [52] IMPLICIT F-GROUP-COPY-response,
+ f-group-list-request [53] IMPLICIT F-GROUP-LIST-request,
+ f-group-list-response [54] IMPLICIT F-GROUP-LIST-response,
+ f-group-Change-attrib-request [55] IMPLICIT F-GROUP-CHANGE-ATTRIB-request,
+ f-group-Change-attrib-response [56] IMPLICIT F-GROUP-CHANGE-ATTRIB-response,
+ f-select-another-request [57] IMPLICIT F-SELECT-ANOTHER-request,
+ f-select-another-response [58] IMPLICIT F-SELECT-ANOTHER-response,
+ f-create-directory-request [59] IMPLICIT F-CREATE-DIRECTORY-request,
+ f-create-directory-response [60] IMPLICIT F-CREATE-DIRECTORY-response,
+ f-link-request [61] IMPLICIT F-LINK-request,
+ f-link-response [62] IMPLICIT F-LINK-response,
+ f-unlink-request [63] IMPLICIT F-UNLINK-request,
+ f-unlink-response [64] IMPLICIT F-UNLINK-response,
+ f-read-link-attrib-request [65] IMPLICIT F-READ-LINK-ATTRIB-request,
+ f-read-link-attrib-response [66] IMPLICIT F-READ-LINK-ATTRIB-response,
+ f-Change-link-attrib-request [67] IMPLICIT F-CHANGE-LINK-ATTRIB-request,
+ f-Change-Iink-attrib-response [68] IMPLICIT F-CHANGE-LINK-ATTRIB-response,
+ f-move-request [69] IMPLICIT F-MOVE-request,
+ f-move-response [70] IMPLICIT F-MOVE-response,
+ f-copy-request [71] IMPLICIT F-COPY-request,
+ f-copy-response [72] IMPLICIT F-COPY-response
+}
+
+F-CHANGE-PREFIX-request ::= SEQUENCE {
+ reset [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ destination-file-directory Destination-File-Directory,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL
+}
+
+F-CHANGE-PREFIX-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LIST-request ::= SEQUENCE {
+ attribute-value-asset-tions Attribute-Value-Assertions,
+ scope Scope,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-SELECT-request ::= SEQUENCE {
+ attribute-value-assertions Attribute-Value-Assertions,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ maximum-set-size [0] IMPLICIT INTEGER DEFAULT 0,
+ -- 0 implies no limit.
+ scope Scope,
+ account Account OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-SELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-DELETE-request ::= SEQUENCE {
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0}
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [11] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [1] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-LIST-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [2] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-GROUP-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-request ::= SEQUENCE {
+ attributes Change-Attributes,
+ error-action [1] IMPLICIT Error-Action,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-SELECT-ANOTHER-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-SELECT-ANOTHER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ last-member-indicator [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ referent-indicator Referent-Indicator OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-DIRECTORY-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ shared-ASE-infonnation Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-DIRECTORY-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LINK-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ target-object Pathname-Attribute,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-LINK-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ target-Object Pathname-Attribute,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-UNLINK-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-UNLINK-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-LINK-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are ailowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Attribute-Extension-Names ::= SEQUENCE OF Attribute-Extension-Set-Name
+
+Attribute-Extension-Set-Name ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-attribute-names [1] SEQUENCE OF Extension-Attribute-identifier
+}
+
+Attribute-Extensions ::= SEQUENCE OF Attribute-Extension-Set
+
+Attribute-Extension-Set ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attributes [1] SEQUENCE OF Extension-Attribute
+}
+
+Extension-Attribute ::= SEQUENCE {
+ extension-attribute-identifier
+ TYPE-IDENTIFIER.&id({Extension-Attributes}),
+ extension-attribute
+ TYPE-IDENTIFIER.&Type
+ ({Extension-Attributes}{@extension-attribute-identifier})
+}
+
+Extension-Attributes TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible
+
+Extension-Set-Identifier ::= OBJECT IDENTIFIER
+
+Extension-Attribute-identifier ::= OBJECT IDENTIFIER
+
+Attribute-Value-Assertions ::= [APPLICATION 26] IMPLICIT OR-Set
+
+Scope ::=
+ [APPLICATION 28] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {root-directory [0] Pathname-Attribute OPTIONAL,
+ retrieval-scope [1] IMPLICIT INTEGER {child(0), all(1)}
+ }
+
+OR-Set ::= SEQUENCE OF AND-Set
+
+AND-Set ::=
+ SEQUENCE OF
+ CHOICE {-- Kernel group
+ pathname-Pattern
+ [0] IMPLICIT Pathname-Pattern,
+ object-type-Pattern
+ [18] IMPLICIT Integer-Pattern,
+ permitted-actions-Pattern
+ [1] IMPLICIT Bitstring-Pattern,
+ contents-type-Pattern
+ [2] Contents-Type-Pattern,
+ linked-Object-Pattern
+ [19] IMPLICIT Pathname-Pattern,
+ child-objects-Pattern
+ [23] IMPLICIT Pathname-Pattern,
+ -- Storage group
+ primaty-pathname-Pattern
+ [20] IMPLICIT Pathname-Pattern,
+ storage-account-Pattern
+ [3] IMPLICIT String-Pattern,
+ date-and-time-of-creation-Pattern
+ [4] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-modification-Pattern
+ [5] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-read-access-Pattern
+ [6] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-attribute-modification-Pattern
+ [7] IMPLICIT Date-and-Time-Pattern,
+ identity-of-creator-Pattern
+ [8] IMPLICIT User-Identity-Pattern,
+ identity-of-last-modifier-Pattern
+ [9] IMPLICIT User-Identity-Pattern,
+ identity-of-last-reader-Pattern
+ [10] IMPLICIT User-Identity-Pattern,
+ identity-of-last-attribute-modifier-Pattern
+ [11] IMPLICIT User-Identity-Pattern,
+ object-availabiiity-Pattern
+ [12] IMPLICIT Boolean-Pattern,
+ object-size-Pattern
+ [13] IMPLICIT Integer-Pattern,
+ future-object-size-Pattern
+ [14] IMPLICIT Integer-Pattern,
+ -- Security group
+ -- Access control searches are disallowed.
+ legal-quailfication-Pattern
+ [16] IMPLICIT String-Pattern,
+ -- Private group
+ -- Private use searches are disallowed.
+ -- Attribute Extensions group
+ attribute-extensions-pattern
+ [22] IMPLICIT Attribute-Extensions-Pattern}
+
+User-Identity-Pattern ::= String-Pattern
+
+Equality-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Availabie? fails the test.
+ equals-matches(1)
+
+-- Set implies equal items match the test.
+-- Clear implies equal items fail the test.
+}
+
+Relational-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Available? fails the test.
+ equals-matches(1),
+ -- Set implies equal items match the test.?
+ -- Clear implies equal items fail the test.
+ less-than-matches(2),
+ -- Set implies a value less than the test cke matches.
+ -- Clear implies a value less than the test case fails.
+ greater-than-matches(3)
+
+-- Set implies a value greater than the test case matches.
+-- Clear implies a value greater than the test case fails.
+}
+
+-- Bits 1 through 3 shall not all have the Same value.
+Pathname-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ pathname-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {string-match [2] IMPLICIT String-Pattern,
+ any-match [3] IMPLICIT NULL}
+}
+
+String-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ string-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {substring-match
+ [2] IMPLICIT GraphicString,
+ any-match [3] IMPLICIT NULL,
+ number-of-characters-match [4] IMPLICIT INTEGER
+ }
+}
+
+Bitstring-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ match-bitstring [1] IMPLICIT BIT STRING,
+ significance-bitstring [2] IMPLICIT BIT STRING
+}
+
+Date-and-Time-Pattern ::= SEQUENCE {
+ relational-camparision [0] IMPLICIT Equality-Comparision,
+ time-and-date-value [1] IMPLICIT GeneralizedTime
+}
+
+Integer-Pattern ::= SEQUENCE {
+ relational-comparision [0] IMPLICIT Relational-Comparision,
+ integer-value [1] IMPLICIT INTEGER
+}
+
+Object-Identifier-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ object-identifier-value [1] IMPLICIT OBJECT IDENTIFIER
+}
+
+Boolean-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ boolean-value [1] IMPLICIT BOOLEAN
+}
+
+Other-Pattern ::= Equality-Comparision
+
+-- Matches against ?No Value Available?.
+Contents-Type-Pattern ::= CHOICE {
+ document-type-Pattern
+ [0] IMPLICIT Object-Identifier-Pattern,
+ constraint-set-abstract-Syntax-Pattern
+ [1] IMPLICIT SEQUENCE {constraint-Set-Pattern
+ [2] IMPLICIT Object-Identifier-Pattern OPTIONAL,
+ -- Absent implies any Object Identifier is equal.
+ abstract-Syntax-Pattern
+ [3] IMPLICIT Object-Identifier-Pattern OPTIONAL
+ -- Absent implies any Object identifier is equal.
+ }
+}
+
+Attribute-Extensions-Pattern ::=
+ SEQUENCE OF
+ SEQUENCE {extension-set-identifier
+ [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attribute-Patterns
+ [1] IMPLICIT SEQUENCE OF
+ SEQUENCE {extension-attribute-identifier
+ TYPE-IDENTIFIER.&id
+ ({Extension-attribute-Patterns}),
+ extension-attribute-Pattern
+ TYPE-IDENTIFIER.&Type
+ ({Extension-attribute-Patterns}
+ {@.extension-attribute-identifier})
+ }}
+
+-- conjunction with the extention attribute in Order to
+-- perform Pattern matthing operations on it. it may be
+-- defined in terms of other Patterns within this
+-- Standard.
+Extension-attribute-Patterns TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible information object set
+
+Destination-File-Directory ::= [APPLICATION 24] Pathname-Attribute
+
+Objects-Attributes-List ::=
+ [APPLICATION 25] IMPLICIT SEQUENCE OF Read-Attributes
+
+Override ::= INTEGER {
+ create-failure(0), select-old-Object(1),
+ delete-and-create-with-old-attributes(2),
+ delete-and-create-with-new-attributes(3)}
+
+Error-Action ::= INTEGER {terminate(0), continue(1)}
+
+Operation-Result ::= [APPLICATION 30] CHOICE {
+ success-Object-count [0] IMPLICIT INTEGER,
+ success-Object-names [1] IMPLICIT SEQUENCE OF Pathname
+}
+
+Pathname ::= SEQUENCE OF GraphicString
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+-- There is a one-to-one correspondence between the elements of
+-- Pass-Passwords and the non-terminal elements of the specified
+-- Pathname.
+Path-Access-Passwords ::=
+ [APPLICATION 27] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords,
+ link-password [9] Password}
+
+-- There is a one-to-one correspondence between the elements of
+-- Path-Access-Passwords and the non-terminal elements sf the
+-- specified Pathname.
+Request-Operation-Result ::= [APPLICATION 31] IMPLICIT INTEGER {
+ summary(0), fiii-list(1)}
+
+Attribute-Names ::= BIT STRING -- Kernel group
+ {
+ read-pathname(0), read-Object-type(18), read-permitted-actions(1),
+ read-contents-type(2), read-linked-Object(19),
+ read-Child-objects(23),
+ -- Storage group
+ read-primary-pathname(20), read-storage-account(3),
+ read-date-and-time-of-creation(4),
+ read-date-and-time-of-last-modification(5),
+ read-date-and-time-of-last-read-access(6),
+ read-date-and-time-of-last-attribute-modification(7),
+ read-identity-of-creator(8), read-identity-of-last-modifier(9),
+ read-identity-of-last-reader(10),
+ read-identity-of-last-attribute-modifier(11), read-Object-availability(12),
+ read-Object-size(13),
+ read-future-Object-size(14),
+ -- Security group
+ read-access-control(15), read-path-access-control(21),
+ read-l8gal-qualifiCatiOnS(16),
+ -- Private group
+ read-private-use(17)}
+
+-- Bits 19 through 23 arc defined if and only if the limited-fil8Store-manag8m8nt
+-- or group-manipulation functionat units are available.
+Referent-Indicator ::= [APPLICATION 29] IMPLICIT BOOLEAN
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO9541-SN.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO9541-SN.asn
new file mode 100644
index 0000000000..0149602040
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ISO9541-SN.asn
@@ -0,0 +1,51 @@
+-- Module ISO9541-SN (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO9541-SN {1 0 9541 2 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Structured-Name, Owner-Name, Object-Name-Component;
+
+Structured-Name ::= SEQUENCE {
+ owner-name [0] IMPLICIT Owner-Name OPTIONAL,
+ -- length restricted to 120 characters
+ owner-description [1] Message OPTIONAL,
+ object-name [2] SEQUENCE OF Object-Name-Component OPTIONAL,
+ -- length restricted to 100 characters
+ object-description [3] Message OPTIONAL
+}
+
+Owner-Name ::= SEQUENCE {
+ objectIdentifier [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ ownerNameComponent [1] SEQUENCE OF Owner-Name-Component OPTIONAL
+}
+
+Owner-Name-Component ::= [0] VisibleString
+
+-- except for "//" and "::"
+Object-Name-Component ::= [0] VisibleString
+
+-- only characters from the following
+-- repertoire: "A-Z", "a-z", "0-9",
+-- Hyphen, and Period. If the name
+-- component is a numeric value,
+-- the first digit is in the range
+-- of 1 to 9
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Identifiers-and-Expressions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Identifiers-and-Expressions.asn
new file mode 100644
index 0000000000..bd1d8d3c48
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Identifiers-and-Expressions.asn
@@ -0,0 +1,126 @@
+-- Module Identifiers-and-Expressions (T.415:03/1993)
+
+Identifiers-and-Expressions {2 8 1 5 7} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Content-Portion-Identifier, Object-or-Class-Identifier, Style-Identifier,
+ Protected-Part-Identifier, Category-Name, Resource-Name, Binding-Name,
+ Construction-Expression, Object-Id-Expression, Numeric-Expression,
+ String-Expression;
+
+IMPORTS
+ Layout-Object-Type
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Object-Type
+ FROM Logical-Descriptors; -- see 7.10
+
+Content-Portion-Identifier ::= [APPLICATION 0] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions
+Object-or-Class-Identifier ::= [APPLICATION 1] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Style-Identifier ::= [APPLICATION 5] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Protected-Part-Identifier ::= [APPLICATION 7] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Category-Name ::= PrintableString
+
+-- a 'null' value is represented by an empty string
+Resource-Name ::= PrintableString
+
+Binding-Name ::= PrintableString
+
+Construction-Expression ::= CHOICE {
+ construction-type Construction-Type,
+ single-term-construction [3] Construction-Term
+}
+
+Construction-Type ::= CHOICE {
+ sequence-construction [0] IMPLICIT Term-Sequence,
+ aggregate-construction [1] IMPLICIT Term-Sequence,
+ choice-construction [2] IMPLICIT Term-Sequence
+}
+
+Term-Sequence ::= SEQUENCE OF Construction-Term
+
+Construction-Term ::= CHOICE {
+ required-construction-factor [0] Construction-Factor,
+ optional-construction-factor [1] Construction-Factor,
+ repetitive-construction-factor [2] Construction-Factor,
+ optional-repetitive-factor [3] Construction-Factor
+}
+
+Construction-Factor ::= CHOICE {
+ object-class-identifier Object-or-Class-Identifier,
+ construction-type Construction-Type
+}
+
+Object-Id-Expression ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-object-function [1] Object-Id-Expression,
+ superior-object-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Numeric-Expression ::= CHOICE {
+ numeric-literal [0] IMPLICIT INTEGER,
+ increment-application [1] Numeric-Expression,
+ decrement-application [2] Numeric-Expression,
+ ordinal-application
+ [3] CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression},
+ binding-reference [4] IMPLICIT Binding-Reference
+}
+
+Binding-Reference ::= SET {
+ object-reference
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Binding-Selection-Function},
+ binding-identifier Binding-Name
+}
+
+Binding-Selection-Function ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-function [1] Object-Id-Expression,
+ superior-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Current-Instance-Function ::= SEQUENCE {
+ first-parameter
+ CHOICE {identifier [0] IMPLICIT Object-or-Class-Identifier,
+ layout-object-type [1] IMPLICIT Layout-Object-Type,
+ logical-object-type [2] IMPLICIT Logical-Object-Type},
+ second-parameter
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression}
+}
+
+String-Expression ::= SEQUENCE OF Atomic-String-Expression
+
+Atomic-String-Expression ::= CHOICE {
+ string-literal [0] IMPLICIT OCTET STRING,
+ binding-reference [2] IMPLICIT Binding-Reference,
+ make-string-application [3] Numeric-Expression,
+ upper-alpha-application [4] Numeric-Expression,
+ lower-alpha-application [5] Numeric-Expression,
+ upper-roman-application [6] Numeric-Expression,
+ lower-roman-application [7] Numeric-Expression
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/InformationFramework.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/InformationFramework.asn
new file mode 100644
index 0000000000..813ac9c6a0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Interchange-Data-Elements.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Interchange-Data-Elements.asn
new file mode 100644
index 0000000000..2c78360b7b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Interchange-Data-Elements.asn
@@ -0,0 +1,57 @@
+-- Module Interchange-Data-Elements (T.415:03/1993)
+
+Interchange-Data-Elements {2 8 1 5 5} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Interchange-Data-Element;
+
+IMPORTS
+ Document-Profile-Descriptor
+ FROM Document-Profile-Descriptor -- see 7.7
+
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors -- see 7.11
+
+ Text-Unit
+ FROM Text-Units -- see 7.13
+
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor
+ FROM Protected-Part-Descriptors -- see 7.15
+
+ Link-Class-Descriptor, Link-Descriptor, Enciphered-Link-Descriptor
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Interchange-Data-Element ::= CHOICE {
+ document-profile [0] IMPLICIT Document-Profile-Descriptor,
+ layout-object-class [1] IMPLICIT Layout-Class-Descriptor,
+ layout-object [2] IMPLICIT Layout-Object-Descriptor,
+ content-portion [3] IMPLICIT Text-Unit,
+ logical-object-class [5] IMPLICIT Logical-Class-Descriptor,
+ logical-object [6] IMPLICIT Logical-Object-Descriptor,
+ presentation-style
+ [7] IMPLICIT Presentation-Style-Descriptor,
+ layout-style [8] IMPLICIT Layout-Style-Descriptor,
+ sealed-doc-prof-descriptor [9] IMPLICIT Sealed-Doc-Prof-Descriptor,
+ enciphered-doc-prof-descriptor
+ [10] IMPLICIT Enciphered-Doc-Prof-Descriptor,
+ preenciphered-bodypart-descriptor
+ [11] IMPLICIT Preenciphered-Bodypart-Descriptor,
+ postenciphered-bodypart-descriptor
+ [12] IMPLICIT Postenciphered-Bodypart-Descriptor,
+ link-class [13] IMPLICIT Link-Class-Descriptor,
+ link [14] IMPLICIT Link-Descriptor,
+ enciphered-link-descriptor [15] IMPLICIT Enciphered-Link-Descriptor
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Layout-Descriptors.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Layout-Descriptors.asn
new file mode 100644
index 0000000000..92c887bb06
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Layout-Descriptors.asn
@@ -0,0 +1,268 @@
+-- Module Layout-Descriptors (T.415:03/1993)
+
+Layout-Descriptors {2 8 1 5 8} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Layout-Object-Descriptor, Layout-Class-Descriptor, Layout-Object-Type,
+ Transparency, Comment-String, Binding-Pair, One-Of-Four-Angles,
+ Measure-Pair, Dimension-Pair, Medium-Type, Colour, Border,
+ Content-Background-Colour, Content-Foreground-Colour, Enciphered,
+ Sealed;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Protected-Part-Identifier,
+ Category-Name, Resource-Name, Binding-Name, Construction-Expression,
+ Object-Id-Expression, Numeric-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Layout
+ FROM Default-Value-Lists -- see 7.12
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Presentation-Time
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Position-Spec ::= SET {
+ offset
+ [0] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ left-hand [2] IMPLICIT INTEGER OPTIONAL,
+ right-hand [3] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ separation
+ [1] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ alignment
+ [2] IMPLICIT INTEGER {right-hand(0), centred(1), left-hand(2)} OPTIONAL,
+ fill-order [3] IMPLICIT INTEGER {normal(0), reverse(1)} OPTIONAL
+}
+
+Dimension-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ variable [1] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Dimension-Spec ::= SEQUENCE {horizontal Dimension,
+ vertical Dimension
+}
+
+Dimension ::= CHOICE {
+ fixed [0] IMPLICIT INTEGER,
+ rule-a
+ [1] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ rule-b
+ [2] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ maximum-size [3] IMPLICIT NULL,
+ not-present [4] IMPLICIT NULL
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Transparency ::= INTEGER {transparent(0), opaque(1)}
+
+Comment-String ::= OCTET STRING
+
+-- string of characters from the sets designated by
+-- the document profile attribute "comments character sets",
+-- plus code extension control functions,
+-- space, carriage return and line feed
+Binding-Pair ::= SET {
+ binding-identifier [0] IMPLICIT Binding-Name,
+ binding-value
+ CHOICE {a [1] Object-Id-Expression,
+ b [2] Numeric-Expression,
+ c [3] String-Expression,
+ d [4] IMPLICIT Object-or-Class-Identifier,
+ e [5] IMPLICIT INTEGER,
+ f [6] IMPLICIT OCTET STRING}
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Medium-Type ::= SEQUENCE {
+ nominal-page-size Measure-Pair OPTIONAL,
+ side-of-sheet INTEGER {unspecified(0), recto(1), verso(2)} OPTIONAL,
+ colour-of-medium [3] Colour-Of-Medium OPTIONAL
+}
+
+Colour ::= INTEGER {colour-of-media(0), coloured(1)}
+
+Border ::= SET {
+ left-hand-edge [0] IMPLICIT Border-Edge OPTIONAL,
+ right-hand-edge [1] IMPLICIT Border-Edge OPTIONAL,
+ trailing-edge [2] IMPLICIT Border-Edge OPTIONAL,
+ leading-edge [3] IMPLICIT Border-Edge OPTIONAL
+}
+
+Border-Edge ::= SET {
+ line-width [0] IMPLICIT INTEGER OPTIONAL,
+ line-type
+ [1] IMPLICIT INTEGER {invisible(0), solid(1), dashed(2), dot(3),
+ dash-dot(4), dash-dot-dot(5)} OPTIONAL,
+ freespace-width [2] IMPLICIT INTEGER OPTIONAL,
+ border-line-colour [3] Border-Line-Colour OPTIONAL
+}
+
+-- a 'null' border edge is represented by an empty set
+Colour-Of-Medium ::= CHOICE {
+ unspecified-colour [3] IMPLICIT NULL,
+ specified-colour Colour-Expression
+}
+
+Border-Line-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Background-Colour ::= CHOICE {
+ content-background-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Foreground-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ content-foreground-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Enciphered ::= SEQUENCE {
+ enciphered-subordinates
+ CHOICE {none-all [0] IMPLICIT INTEGER {none(0), all(1)},
+ partial [1] IMPLICIT SEQUENCE OF NumericString},
+ protected-part-id [2] IMPLICIT Protected-Part-Identifier OPTIONAL
+}
+
+Sealed ::= SEQUENCE {
+ sealed-status [0] IMPLICIT INTEGER {no(0), yes(1)},
+ seal-ids [1] IMPLICIT SET OF INTEGER OPTIONAL
+}
+
+Layout-Object-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type OPTIONAL,
+ descriptor-body Layout-Object-Descriptor-Body OPTIONAL
+}
+
+Layout-Object-Type ::= INTEGER {
+ document-layout-root(0), page-set(1), page(2), frame(3), block(4)}
+
+Layout-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class
+ [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ position [3] IMPLICIT Measure-Pair OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Pair OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ imaging-order
+ [12] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary
+ [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative
+ [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Layout-Class-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type,
+ descriptor-body Layout-Class-Descriptor-Body
+}
+
+Layout-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ position
+ CHOICE {fixed-position [3] IMPLICIT Measure-Pair,
+ variable-position [26] IMPLICIT Position-Spec} OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Spec OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ logical-source
+ [18] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Link-Descriptors.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Link-Descriptors.asn
new file mode 100644
index 0000000000..64fc4436e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Link-Descriptors.asn
@@ -0,0 +1,80 @@
+-- Module Link-Descriptors (T.424:07/1996)
+
+Link-Descriptors {2 8 1 14 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier,
+ Enciphered-Link-Descriptor;
+
+IMPORTS
+ Reference-Name
+ FROM External-References {2 8 1 12 1}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Style-Identifier, Protected-Part-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Comment-String, Sealed
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Temporal-Relations, Presentation-Time
+ FROM Temporal-Relationships;
+
+-- see 7.5
+Link-or-Link-Class-Identifier ::= [APPLICATION 9] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version of this Recommendation | International Standard;
+-- other characters are reserved for extensions
+Link-Class-Descriptor ::= SET {
+ link-class-identifier Link-or-Link-Class-Identifier,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Descriptor ::= SET {
+ link-identifier Link-or-Link-Class-Identifier,
+ link-class [0] IMPLICIT Link-or-Link-Class-Identifier OPTIONAL,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Role ::= SET {
+ link-ends SET OF Link-End,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Link-End ::= SET {
+ reference
+ SET {reference-name [0] Reference-Name OPTIONAL,
+ reference-qualifier [1] Location-Expression OPTIONAL},
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Enciphered-Link-Descriptor ::= SEQUENCE {
+ protected-part-identifier Protected-Part-Identifier,
+ enciphered-information OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Location-Expressions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Location-Expressions.asn
new file mode 100644
index 0000000000..5de6491621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Location-Expressions.asn
@@ -0,0 +1,338 @@
+-- Module Location-Expressions (T.422:08/1995)
+
+Location-Expressions {2 8 1 12 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Location-Expression, Basic-Location-Expression, Constituent-Locator;
+
+IMPORTS
+ Object-or-Class-Identifier, Content-Portion-Identifier, Style-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors {2 8 1 5 9}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors {2 8 1 5 10}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Text-Unit
+ FROM Text-Units {2 8 1 5 12}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Subprofile-Descriptor, Subprofile-Identifier
+ FROM Subprofiles {2 8 1 12 2}
+ -- see 9.3
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- see ITU-T Rec. T.424 | ISO/IEC 8613-14
+-- Location expression
+Location-Expression ::= CHOICE {
+ basic [0] Basic-Location-Expression,
+ composite [1] Composite-Location-Expression
+}
+
+Composite-Location-Expression ::= CHOICE {
+ complement [0] Location-Expression,
+ intersection [1] SEQUENCE OF Location-Expression,
+ union [2] SEQUENCE OF Location-Expression
+}
+
+Basic-Location-Expression ::= CHOICE {
+ region [0] Region-Locator,
+ subtree [1] Subtree-Locator,
+ constituent [2] Constituent-Locator
+}
+
+Region-Locator ::= SEQUENCE {
+ start [0] Start-End-Object-Locator,
+ end [1] Start-End-Object-Locator
+}
+
+Start-End-Object-Locator ::= SEQUENCE {
+ object [0] Object-Locator,
+ not-included [1] BOOLEAN DEFAULT TRUE
+}
+
+Subtree-Locator ::= Object-Locator
+
+Constituent-Locator ::= CHOICE {
+ documentProfile [0] NULL,
+ subprofile [1] Subprofile-Locator,
+ component [2] Component-Locator,
+ contentPortion [3] Content-Portion-Locator,
+ style [4] Style-Locator,
+ link-or-link-class [5] Link-or-Link-Class-Locator,
+ constituent-of-type [6] Constituent-Type
+}
+
+Constituent-Type ::= ENUMERATED {
+ layout-object-class(1), layout-object(2), content-portion(3),
+ logical-object-class(5), logical-object(6), presentation-style(7),
+ layout-style(8), sealed-doc-prof-descriptor(9),
+ enciphered-doc-prof-descriptor(10), preenciphered-bodypart-descriptor(11),
+ postenciphered-bodypart-descriptor(12), link-class(13), link(14),
+ enciphered-link-descriptor(15), subprofile(16)}
+
+-- Subprofile
+Subprofile-Locator ::= CHOICE {
+ subprofile [0] Subprofile-Identifier,
+ subprofile-of [1] Subprofile-of-argument,
+ subprofile-with [2] Subprofile-with-argument
+}
+
+Subprofile-of-argument ::= Constituent-Locator
+
+Subprofile-with-argument ::=
+ AttributeValue-Subprofile-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+-- Component locator
+Component-Locator ::= CHOICE {
+ objectClass [0] Object-Class-Locator,
+ object [1] Object-Locator
+}
+
+Object-Class-Locator ::= CHOICE {
+ objectClass [0] Object-or-Class-Identifier,
+ object-class-of [1] Object-Class-of-argument,
+ object-class-with [2] Object-Class-with-argument
+}
+
+Object-Class-of-argument ::= Object-Locator
+
+Object-Class-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Class-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Object locator
+Object-Locator ::= CHOICE {
+ object [0] Object-or-Class-Identifier,
+ subord [1] Subord-argument,
+ object-with [2] Object-with-argument
+}
+
+Subord-argument ::= SEQUENCE {
+ object [0] Object-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Object-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Object-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ object [1] Object-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Links
+Link-or-Link-Class-Locator ::= CHOICE {
+ linkClass [0] Link-Class-Locator,
+ link [1] Link-Locator
+}
+
+Link-Class-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-class-of [1] Link-Class-of-argument,
+ link-class-with [2] Link-Class-with-arguments
+}
+
+Link-Class-of-argument ::= Link-Locator
+
+Link-Class-with-arguments ::=
+ AttributeValue-Link-Class-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+Link-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-with [1] Link-with-arguments
+}
+
+Link-with-arguments ::= SEQUENCE {
+ attributeValueLink [0] AttributeValue-Link-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Content portion locator
+Content-Portion-Locator ::= CHOICE {
+ contentPortion [0] Content-Portion-Identifier,
+ assoc [1] Assoc-argument,
+ content-with [2] Content-with-argument
+}
+
+Assoc-argument ::= SEQUENCE {
+ component [0] Component-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Content-with-argument ::= SEQUENCE {
+ attributeValueContent [0] AttributeValue-Content-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ component [1] Component-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Styles
+Style-Locator ::= CHOICE {
+ style [0] Style-Identifier,
+ layout-style-of [1] Layout-Style-of-argument,
+ presentation-style-of [2] Presentation-Style-of-argument,
+ layout-style-with [3] Layout-Style-with-argument,
+ presentation-style-with [4] Presentation-Style-with-argument
+}
+
+Layout-Style-of-argument ::= Component-Locator
+
+Presentation-Style-of-argument ::= Component-Locator
+
+Layout-Style-with-argument ::= SEQUENCE {
+ attributeValueLayoutStyle [0] AttributeValue-LayoutStyle-Specification, -- The "attribute" and
+
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+Presentation-Style-with-argument ::= SEQUENCE {
+ attributeValuePresentationStyle
+ [0] AttributeValue-PresentationStyle-Specification,
+ -- The "attribute" and
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Counters
+CountersType ::= SEQUENCE {
+ start [0] INTEGER OPTIONAL,
+ end [1] INTEGER OPTIONAL
+}
+
+-- Attribute-Value specifications
+-- Classes
+AttributeValue-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Class-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Class-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Class-Specification ::= CHOICE {
+ layout [0] Layout-Class-Descriptor,
+ logical [1] Logical-Class-Descriptor
+}
+
+-- Objects
+AttributeValue-Object-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Object-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Object-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Object-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Object-Specification ::= CHOICE {
+ layout [0] Layout-Object-Descriptor,
+ logical [1] Logical-Object-Descriptor
+}
+
+-- Link classes
+AttributeValue-Link-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Link-Class-Specification ::= Link-Class-Descriptor
+
+-- Links
+AttributeValue-Link-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Link-Specification ::= Link-Descriptor
+
+-- Contents
+AttributeValue-Content-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Content-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Content-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Content-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Content-Specification ::= Text-Unit
+
+-- Layout Styles
+AttributeValue-LayoutStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-LayoutStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-LayoutStyle-Specification ::= Layout-Style-Descriptor
+
+-- Presentation Styles
+AttributeValue-PresentationStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-PresentationStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-PresentationStyle-Specification ::=
+ Presentation-Style-Descriptor
+
+-- Subprofiles
+AttributeValue-Subprofile-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Subprofile-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Subprofile-Specification ::= Subprofile-Descriptor
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Logical-Descriptors.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Logical-Descriptors.asn
new file mode 100644
index 0000000000..fab36bf12a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Logical-Descriptors.asn
@@ -0,0 +1,95 @@
+-- Module Logical-Descriptors (T.415:03/1993)
+
+Logical-Descriptors {2 8 1 5 9} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Logical-Object-Descriptor, Logical-Class-Descriptor, Logical-Object-Type,
+ Protection;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Resource-Name,
+ Construction-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Binding-Pair, Enciphered, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Logical
+ FROM Default-Value-Lists -- see 7.12
+
+ Temporal-Relations
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Logical-Object-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type OPTIONAL,
+ descriptor-body Logical-Object-Descriptor-Body OPTIONAL
+}
+
+Logical-Object-Type ::= INTEGER {
+ document-logical-root(0), composite-logical-object(1),
+ basic-logical-object(2)}
+
+Logical-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Logical-Class-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type,
+ descriptor-body Logical-Class-Descriptor-Body
+}
+
+Logical-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Protection ::= INTEGER {unprotected(0), protected(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSObjectIdentifiers.asn
new file mode 100644
index 0000000000..187c3c8ad4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSObjectIdentifiers.asn
@@ -0,0 +1,187 @@
+-- Module MHSObjectIdentifiers (X.402:06/1999)
+MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Aspects
+id-mhs-protocols ID ::= {joint-iso-itu-t mhs(6) protocols(0)}
+
+-- MHS Application Contexts and Protocols
+-- See ITU-T Rec. X.419 | ISO/IEC 10021-6.
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)}
+
+-- Interpersonal Messaging
+-- See ITU-T Rec. X.420 | ISO/IEC 10021-7.
+-- Value {joint-iso-itu-t mhs(6) 2} is no longer defined
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)}
+
+-- Message Transfer System
+-- See ITU-T Rec. X.411 | ISO/IEC 10021-4.
+id-ms ID ::=
+ {joint-iso-itu-t mhs(6) ms(4)}
+
+-- Message Store
+-- See ITU-T Rec. X.413 | ISO/IEC 10021-5.
+id-arch ID ::=
+ {joint-iso-itu-t mhs(6) arch(5)}
+
+-- Overall Architecture
+-- See this Specification.
+id-group ID ::=
+ {joint-iso-itu-t mhs(6) group(6)}
+
+-- Reserved.
+id-edims ID ::= {joint-iso-itu-t mhs(6) edims(7)}
+
+-- EDI Messaging
+-- See ITU-T Rec. X.435 | ISO/IEC 10021-9.
+id-management ID ::=
+ {joint-iso-itu-t mhs(6) management(9)}
+
+-- MHS Management
+-- See ITU-T Recs. X.460 - X.467 | ISO/IEC 11588.
+id-routing ID ::=
+ {joint-iso-itu-t mhs(6) routing(10)}
+
+-- MHS Routing
+-- See ITU-T Rec. X.412 | ISO/IEC 10021-10.
+-- Categories
+id-mod ID ::=
+ {id-arch 0} -- modules; not definitive
+
+id-oc ID ::= {id-arch 1} -- object classes
+
+id-at ID ::= {id-arch 2} -- attribute types
+
+-- Value {id-arch 3} is no longer defined
+id-mr ID ::=
+ {id-arch 4} -- matching rules
+
+id-con ID ::= {id-arch 5} -- contexts
+
+id-san ID ::= {id-arch 6} -- certificate subject alternative names
+
+-- Modules
+id-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-directory-objects-and-attributes ID ::= {id-mod 1} -- not definitive
+
+-- Object classes
+id-oc-mhs-distribution-list ID ::= {id-oc 0}
+
+id-oc-mhs-message-store ID ::= {id-oc 1}
+
+id-oc-mhs-message-transfer-agent ID ::= {id-oc 2}
+
+id-oc-mhs-user ID ::= {id-oc 3}
+
+id-oc-mhs-user-agent ID ::= {id-oc 4}
+
+-- Attributes
+id-at-mhs-maximum-content-length ID ::= {id-at 0}
+
+id-at-mhs-deliverable-content-types ID ::= {id-at 1}
+
+id-at-mhs-exclusively-acceptable-eits ID ::= {id-at 2}
+
+id-at-mhs-dl-members ID ::= {id-at 3}
+
+id-at-mhs-dl-submit-permissions ID ::= {id-at 4}
+
+id-at-mhs-message-store-dn ID ::= {id-at 5}
+
+id-at-mhs-or-addresses ID ::= {id-at 6}
+
+-- Value {id-at 7} is no longer defined
+id-at-mhs-supported-automatic-actions ID ::=
+ {id-at 8}
+
+id-at-mhs-supported-content-types ID ::= {id-at 9}
+
+id-at-mhs-supported-attributes ID ::= {id-at 10}
+
+id-at-mhs-supported-matching-rules ID ::= {id-at 11}
+
+id-at-mhs-dl-archive-service ID ::= {id-at 12}
+
+id-at-mhs-dl-policy ID ::= {id-at 13}
+
+id-at-mhs-dl-related-lists ID ::= {id-at 14}
+
+id-at-mhs-dl-subscription-service ID ::= {id-at 15}
+
+id-at-mhs-or-addresses-with-capabilities ID ::= {id-at 16}
+
+id-at-mhs-acceptable-eits ID ::= {id-at 17}
+
+id-at-mhs-unacceptable-eits ID ::= {id-at 18}
+
+id-at-mhs-deliverable-classes ID ::= {id-at 19}
+
+id-at-encrypted-mhs-maximum-content-length ID ::= {id-at 0 2}
+
+id-at-encrypted-mhs-deliverable-content-types ID ::= {id-at 1 2}
+
+id-at-encrypted-mhs-exclusively-acceptable-eits ID ::= {id-at 2 2}
+
+id-at-encrypted-mhs-dl-members ID ::= {id-at 3 2}
+
+id-at-encrypted-mhs-dl-submit-permissions ID ::= {id-at 4 2}
+
+id-at-encrypted-mhs-message-store-dn ID ::= {id-at 5 2}
+
+id-at-encrypted-mhs-or-addresses ID ::= {id-at 6 2}
+
+id-at-encrypted-mhs-supported-automatic-actions ID ::= {id-at 8 2}
+
+id-at-encrypted-mhs-supported-content-types ID ::= {id-at 9 2}
+
+id-at-encrypted-mhs-supported-attributes ID ::= {id-at 10 2}
+
+id-at-encrypted-mhs-supported-matching-rules ID ::= {id-at 11 2}
+
+id-at-encrypted-mhs-dl-archive-service ID ::= {id-at 12 2}
+
+id-at-encrypted-mhs-dl-policy ID ::= {id-at 13 2}
+
+id-at-encrypted-mhs-dl-related-lists ID ::= {id-at 14 2}
+
+id-at-encrypted-mhs-dl-subscription-service ID ::= {id-at 15 2}
+
+id-at-encrypted-mhs-or-addresses-with-capabilities ID ::= {id-at 16 2}
+
+id-at-encrypted-mhs-acceptable-eits ID ::= {id-at 17 2}
+
+id-at-encrypted-mhs-unacceptable-eits ID ::= {id-at 18 2}
+
+id-at-encrypted-mhs-deliverable-classes ID ::= {id-at 19 2}
+
+-- Matching Rules
+id-mr-orname-exact-match ID ::= {id-mr 0}
+
+id-mr-address-capabilities-match ID ::= {id-mr 1}
+
+id-mr-capability-match ID ::= {id-mr 2}
+
+-- Contexts
+id-con-dl-administrator-annotation ID ::= {id-con 0}
+
+id-con-dl-nested-dl ID ::= {id-con 1}
+
+id-con-dl-reset-originator ID ::= {id-con 2}
+
+-- Certificate subject alternative names
+id-san-mta-name ID ::= {id-san 0}
+
+END -- of MHSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..40f53b9458
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
@@ -0,0 +1,112 @@
+-- Module MHSProtocolObjectIdentifiers (X.419:06/1999)
+
+MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ object-identifiers(0) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Protocols
+id-mhs-protocols ID ::=
+ {joint-iso-itu-t mhs(6) protocols(0)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::=
+ {id-mhs-protocols 0} -- modules
+
+id-ac ID ::= {id-mhs-protocols 1} -- application contexts
+
+id-as ID ::= {id-mhs-protocols 2} -- abstract syntaxes
+
+id-ase ID ::= {id-mhs-protocols 3} -- application service elements (obsolete)
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-access-protocol ID ::= {id-mod 1} -- not definitive
+
+id-mod-ms-access-protocol ID ::= {id-mod 2} -- not definitive
+
+id-mod-mts-transfer-protocol ID ::= {id-mod 3} -- not definitive
+
+-- Application Contexts
+-- MTS Access Protocol
+id-ac-mts-access-88 ID ::=
+ {id-ac 0}
+
+id-ac-mts-forced-access-88 ID ::= {id-ac 1}
+
+id-ac-mts-reliable-access-88 ID ::= {id-ac 2}
+
+id-ac-mts-forced-reliable-access-88 ID ::= {id-ac 3}
+
+id-ac-mts-access-94 ID ::= {id-ac 7}
+
+id-ac-mts-forced-access-94 ID ::= {id-ac 8}
+
+id-ac-mts-reliable-access-94 ID ::= {id-ac 9}
+
+id-ac-mts-forced-reliable-access-94 ID ::= {id-ac 10}
+
+-- MS Access Protocol
+id-ac-ms-access-88 ID ::= {id-ac 4}
+
+id-ac-ms-reliable-access-88 ID ::= {id-ac 5}
+
+id-ac-ms-access-94 ID ::= {id-ac 11}
+
+id-ac-ms-reliable-access-94 ID ::= {id-ac 12}
+
+-- MTS Transfer Protocol
+id-ac-mts-transfer ID ::= {id-ac 6}
+
+-- Abstract Syntaxes
+id-as-msse ID ::= {id-as 1}
+
+id-as-mdse-88 ID ::= {id-as 2}
+
+id-as-mrse-88 ID ::= {id-as 5}
+
+id-as-mase-88 ID ::= {id-as 6}
+
+id-as-mtse ID ::= {id-as 7}
+
+id-as-mts-rtse ID ::= {id-as 8}
+
+id-as-ms-88 ID ::= {id-as 9}
+
+id-as-ms-rtse ID ::= {id-as 10}
+
+id-as-mts ID ::= {id-as 11}
+
+id-as-mta-rtse ID ::= {id-as 12}
+
+id-as-ms-msse ID ::= {id-as 13}
+
+id-as-mdse-94 ID ::= {id-as 14}
+
+id-as-mrse-94 ID ::= {id-as 15}
+
+id-as-mase-94 ID ::= {id-as 16}
+
+id-as-ms-94 ID ::= {id-as 17}
+
+-- Application Service Elements
+id-ase-msse ID ::= {id-ase 0}
+
+id-ase-mdse ID ::= {id-ase 1}
+
+id-ase-mrse ID ::= {id-ase 2}
+
+id-ase-mase ID ::= {id-ase 3}
+
+id-ase-mtse ID ::= {id-ase 4}
+
+END --of MHSProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAbstractService.asn
new file mode 100644
index 0000000000..052b3b2041
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAbstractService.asn
@@ -0,0 +1,1085 @@
+-- Module MSAbstractService (X.413:06/1999)
+MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) abstract-service(1)
+ version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS information object classes
+ operationObject1, ABSTRACT-ERROR, ABSTRACT-OPERATION, EXTENSION, MHS-OBJECT,
+ PORT,
+ -- MTS objects and ports
+ administration, delivery, mts-user,
+ submission,
+ -- MTS abstract-operations and abstract-errors
+ cancel-deferred-delivery, element-of-service-not-subscribed,
+ inconsistent-request, new-credentials-unacceptable,
+ old-credentials-incorrectly-specified, originator-invalid,
+ recipient-improperly-specified, remote-bind-error, security-error,
+ submission-control, submission-control-violated,
+ unsupported-critical-function,
+ -- MTS abstract-service data-types
+ CertificateSelectors, Credentials, InitiatorCredentials,
+ MessageSubmissionArgument, MessageSubmissionResult, MessageToken,
+ ORAddressAndOrDirectoryName, ProbeSubmissionArgument,
+ ProbeSubmissionResult, ResponderCredentials, SecurityContext, SecurityLabel
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ administration-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- MTS abstract-service upper bounds
+ ub-content-types, ub-encoded-information-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MS X413ATTRIBUTE table
+ AttributeTable
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching rule table
+ MatchingRuleTable
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS auto-action-table and auto-action-error table
+ AutoActionTable, AutoActionErrorTable
+ --==
+ FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)}
+ -- MS object-identifiers
+ id-cp-ms-connection, id-crt-ms-access-88, id-crt-ms-access-94,
+ id-ext-modify-capability, id-ext-modify-retrieval-status-capability,
+ id-ext-originator-token, id-ext-originator-certificate-selectors-override,
+ id-ext-protected-change-credentials,
+ id-ext-protected-change-credentials-capability, id-ot-ms, id-ot-ms-user,
+ id-pt-retrieval-88, id-pt-retrieval-94, id-pt-ms-submission
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Access abstract-operation and error codes
+ err-attribute-error, err-auto-action-request-error, err-ms-extension-error,
+ err-delete-error, err-entry-class-error, err-fetch-restriction-error,
+ err-invalid-parameters-error, err-message-group-error, err-modify-error,
+ err-range-error, err-security-error, err-sequence-number-error,
+ err-service-error, err-register-ms-error, op-alert, op-delete, op-fetch,
+ op-list, op-modify, op-ms-message-submission, op-ms-probe-submission,
+ op-register-ms, op-summarize
+ --==
+ FROM MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-attributes-supported, ub-attribute-values, ub-auto-action-errors,
+ ub-auto-actions, ub-auto-registrations, ub-default-registrations,
+ ub-entry-classes, ub-error-reasons, ub-extensions, ub-group-depth,
+ ub-group-descriptor-length, ub-group-part-length, ub-matching-rules,
+ ub-message-groups, ub-messages, ub-modifications, ub-per-entry,
+ ub-per-auto-action, ub-service-information-length, ub-summaries,
+ ub-supplementary-info-length, ub-ua-registration-identifier-length,
+ ub-ua-registrations, ub-restrictions
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MATCHING-RULE information object class
+ MATCHING-RULE
+ --==
+ FROM InformationFramework
+
+ -- Remote Operations
+ CONTRACT, CONNECTION-PACKAGE
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+-- MS Abstract Objects
+ms MHS-OBJECT ::= {
+ IS {mts-user}
+ RESPONDS {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms
+}
+
+ms-user MHS-OBJECT ::= {
+ INITIATES {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms-user
+}
+
+-- Contracts
+ms-access-contract-94 CONTRACT ::= {
+ CONNECTION ms-connect
+ INITIATOR CONSUMER OF {retrieval | ms-submission | administration}
+ ID id-crt-ms-access-94
+}
+
+ms-access-contract-88 CONTRACT ::= {
+ CONNECTION ms-connect -- with all 1994 extensions omitted
+ INITIATOR CONSUMER OF {retrieval-88 | submission | administration-88}
+ ID id-crt-ms-access-88
+}
+
+-- Connection-package
+ms-connect CONNECTION-PACKAGE ::= {
+ BIND ms-bind
+ UNBIND ms-unbind
+ ID id-cp-ms-connection
+}
+
+-- MS Ports
+retrieval PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {summarize | list | fetch | delete | register-MS,
+ ... -- 1994 extension addition --, modify}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-94
+}
+
+retrieval-88 PORT ::= {
+ -- With all 1994 extensions to the abstract-operations absent
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {summarize | list | fetch | delete | register-MS}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-88
+}
+
+ms-submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {ms-message-submission | ms-probe-submission | ms-cancel-deferred-delivery}
+ SUPPLIER INVOKES {ms-submission-control}
+ ID id-pt-ms-submission
+}
+
+-- X413ATTRIBUTE information object class
+X413ATTRIBUTE ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type ,
+ &equalityMatch MATCHING-RULE OPTIONAL,
+ &substringsMatch MATCHING-RULE OPTIONAL,
+ &orderingMatch MATCHING-RULE OPTIONAL,
+ &numeration ENUMERATED {single-valued(0), multi-valued(1)},
+ -- 1994 extension
+ &OtherMatches MATCHING-RULE OPTIONAL
+}
+WITH SYNTAX {
+ WITH ATTRIBUTE-SYNTAX &Type,
+ [EQUALITY MATCHING-RULE &equalityMatch,]
+ [SUBSTRINGS MATCHING-RULE &substringsMatch,]
+ [ORDERING MATCHING-RULE &orderingMatch,]
+ [OTHER MATCHING-RULES &OtherMatches,]
+ NUMERATION &numeration,
+ ID &id
+}
+
+Attribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+AttributeType ::= OBJECT IDENTIFIER
+
+-- AUTO-ACTION information object class
+AUTO-ACTION ::= CLASS {
+ &id AutoActionType UNIQUE,
+ &RegistrationParameter OPTIONAL,
+ &Errors AUTO-ACTION-ERROR OPTIONAL
+}
+WITH SYNTAX {
+ [REGISTRATION PARAMETER IS &RegistrationParameter]
+ [ERRORS &Errors]
+ IDENTIFIED BY &id
+}
+
+AutoActionType ::= OBJECT IDENTIFIER
+
+AutoActionRegistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1,
+ registration-parameter
+ [1] AUTO-ACTION.&RegistrationParameter
+ ({AutoActionTable}{@auto-action-type}) OPTIONAL
+}
+
+-- AUTO-ACTION-ERROR information object class
+AUTO-ACTION-ERROR ::=
+ ABSTRACT-ERROR
+
+AutoActionError ::= SET {
+ error-code [0] AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable}),
+ error-parameter
+ [1] AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code})
+ OPTIONAL
+}
+
+-- MS-EXTENSION information object class
+MS-EXTENSION ::= TYPE-IDENTIFIER
+
+MSExtensionItem ::= INSTANCE OF MS-EXTENSION
+
+MSExtensions ::= SEQUENCE SIZE (1..ub-extensions) OF MSExtensionItem
+
+-- Common data-types related to the information model
+EntryClass ::= INTEGER {
+ delivery(0),
+ -- 1994 extensions
+ submission(1), draft(2), stored-message(3), delivery-log(4),
+ submission-log(5), message-log(6), auto-action-log(7)}(0..ub-entry-classes)
+
+EntryType ::= INTEGER {
+ delivered-message(0), delivered-report(1),
+ returned-content(2),
+ -- 1994 extensions
+ submitted-message(3), submitted-probe(4), draft-message(5),
+ auto-action-event(6)}
+
+SequenceNumber ::= INTEGER(0..ub-messages)
+
+RetrievalStatus ::= INTEGER {new(0), listed(1), processed(2)}
+
+MessageGroupName ::= SEQUENCE SIZE (1..ub-group-depth) OF GroupNamePart
+
+GroupNamePart ::= GeneralString(SIZE (1..ub-group-part-length))
+
+-- MS-bind abstract-operation
+ms-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MSBindArgument
+ RESULT MSBindResult
+ ERRORS {ms-bind-error}
+}
+
+MSBindArgument ::= SET {
+ initiator-name ORAddressAndOrDirectoryName,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] IMPLICIT SecurityContext OPTIONAL,
+ fetch-restrictions [4] Restrictions OPTIONAL -- default is none--,
+ ms-configuration-request [5] BOOLEAN DEFAULT FALSE,
+ -- 1994 extensions
+ ua-registration-identifier [6] RegistrationIdentifier OPTIONAL,
+ bind-extensions [7] MSExtensions OPTIONAL
+}
+
+Restrictions ::= SET {
+ allowed-content-types
+ [0] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL--default is no restriction--,
+ allowed-EITs [1] MS-EITs OPTIONAL --default is no restriction--,
+ maximum-attribute-length [2] INTEGER OPTIONAL --default is no restriction--
+}
+
+MS-EITs ::= SET SIZE (1..ub-encoded-information-types) OF MS-EIT
+
+MS-EIT ::= OBJECT IDENTIFIER
+
+RegistrationIdentifier ::=
+ PrintableString(SIZE (1..ub-ua-registration-identifier-length))
+
+MSBindResult ::= SET {
+ responder-credentials [2] ResponderCredentials,
+ available-auto-actions
+ [3] SET SIZE (1..ub-auto-actions) OF AUTO-ACTION.&id({AutoActionTable})
+ OPTIONAL,
+ available-attribute-types
+ [4] SET SIZE (1..ub-attributes-supported) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ alert-indication [5] BOOLEAN DEFAULT FALSE,
+ content-types-supported
+ [6] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL,
+ -- 1994 extensions
+ entry-classes-supported
+ [7] SET SIZE (1..ub-entry-classes) OF EntryClass OPTIONAL,
+ matching-rules-supported
+ [8] SET SIZE (1..ub-matching-rules) OF OBJECT IDENTIFIER OPTIONAL,
+ bind-result-extensions [9] MSExtensions OPTIONAL,
+ message-group-depth [10] INTEGER(1..ub-group-depth) OPTIONAL,
+ auto-action-error-indication [11] AutoActionErrorIndication OPTIONAL,
+ unsupported-extensions
+ [12] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER OPTIONAL,
+ ua-registration-id-unknown [13] BOOLEAN DEFAULT FALSE,
+ service-information
+ [14] GeneralString(SIZE (1..ub-service-information-length)) OPTIONAL
+}
+
+modify-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-capability
+}
+
+modify-retrieval-status-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-retrieval-status-capability
+}
+
+protected-change-credentials-capability MS-EXTENSION ::= {
+ ChangeCredentialsAlgorithms
+ IDENTIFIED BY id-ext-protected-change-credentials-capability
+}
+
+ChangeCredentialsAlgorithms ::= SET OF OBJECT IDENTIFIER
+
+AutoActionErrorIndication ::= CHOICE {
+ indication-only [0] NULL,
+ auto-action-log-entry [1] SequenceNumber
+}
+
+ms-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ CHOICE {unqualified-error BindProblem,
+ -- 1994 extension
+ qualified-error
+ SET {bind-problem [0] BindProblem,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length))
+ OPTIONAL,
+ bind-extension-errors
+ [2] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER
+ OPTIONAL}}
+}
+
+BindProblem ::= ENUMERATED {
+ authentication-error(0), unacceptable-security-context(1),
+ unable-to-establish-association(2), ... -- 1994 extension addition --,
+ bind-extension-problem(3), inadequate-association-confidentiality(4)
+}
+
+-- MS Unbind abstract-operation
+ms-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Common data-types
+Range ::= CHOICE {
+ sequence-number-range [0] NumberRange,
+ creation-time-range [1] TimeRange
+}
+
+NumberRange ::= SEQUENCE {
+ from [0] SequenceNumber OPTIONAL -- omitted means no lower bound--,
+ to [1] SequenceNumber OPTIONAL -- omitted means no upper bound--
+}
+
+TimeRange ::= SEQUENCE {
+ from [0] CreationTime OPTIONAL -- omitted means no lower bound--,
+ to [1] CreationTime OPTIONAL -- omitted means no upper bound--
+}
+
+CreationTime ::= UTCTime
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ any
+ [1] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ final
+ [2] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type})
+ }},
+ greater-or-equal [2] AttributeValueAssertion,
+ less-or-equal [3] AttributeValueAssertion,
+ present [4] X413ATTRIBUTE.&id({AttributeTable}),
+ approximate-match [5] AttributeValueAssertion,
+ -- 1994 extension
+ other-match [6] MatchingRuleAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matching-rule [0] MATCHING-RULE.&id({MatchingRuleTable}),
+ attribute-type [1] X413ATTRIBUTE.&id,
+ match-value
+ [2] MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule})
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-value X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+Selector ::= SET {
+ child-entries [0] BOOLEAN DEFAULT FALSE,
+ range [1] Range OPTIONAL -- default is unbounded --,
+ filter
+ [2] Filter
+ OPTIONAL -- default is all entries within the specified range --,
+ limit [3] INTEGER(1..ub-messages) OPTIONAL,
+ override [4] OverrideRestrictions OPTIONAL -- by default, --
+ -- any fetch-restrictions in force apply
+}
+
+OverrideRestrictions ::= BIT STRING {
+ override-content-types-restriction(0), override-EITs-restriction(1),
+ override-attribute-length-restriction(2)}(SIZE (1..ub-restrictions))
+
+EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection
+
+AttributeSelection ::= SET {
+ type X413ATTRIBUTE.&id({AttributeTable}),
+ from
+ [0] INTEGER(1..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--,
+ count
+ [1] INTEGER(0..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--
+}
+
+EntryInformation ::= SEQUENCE {
+ sequence-number SequenceNumber,
+ attributes SET SIZE (1..ub-per-entry) OF Attribute OPTIONAL,
+ -- 1994 extension
+ value-count-exceeded
+ [0] SET SIZE (1..ub-per-entry) OF AttributeValueCount OPTIONAL
+}
+
+AttributeValueCount ::= SEQUENCE {
+ type [0] X413ATTRIBUTE.&id({AttributeTable}),
+ total [1] INTEGER
+}
+
+MSSubmissionOptions ::= SET {
+ object-entry-class
+ [0] EntryClass(submission | submission-log | draft) OPTIONAL,
+ disable-auto-modify [1] BOOLEAN DEFAULT FALSE,
+ add-message-group-names
+ [2] SET SIZE (1..ub-message-groups) OF MessageGroupName OPTIONAL,
+ ms-submission-extensions [3] MSExtensions OPTIONAL
+}
+
+originator-token MS-EXTENSION ::= {
+ OriginatorToken
+ IDENTIFIED BY id-ext-originator-token
+}
+
+OriginatorToken ::=
+ MessageToken
+ (CONSTRAINED BY {
+
+ -- Must contain an asymmetric-token with an encrypted-data component --})
+
+originator-certificate-selectors-override MS-EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ })
+ IDENTIFIED BY id-ext-originator-certificate-selectors-override
+}
+
+CommonSubmissionResults ::= SET {
+ created-entry [0] SequenceNumber OPTIONAL,
+ auto-action-error-indication [1] AutoActionErrorIndication OPTIONAL,
+ ms-submission-result-extensions [2] MSExtensions OPTIONAL
+}
+
+-- Retrieval Port abstract-operations
+summarize ABSTRACT-OPERATION ::= {
+ ARGUMENT SummarizeArgument
+ RESULT SummarizeResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-summarize
+}
+
+SummarizeArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ summary-requests
+ [2] SEQUENCE SIZE (1..ub-summaries) OF X413ATTRIBUTE.&id({AttributeTable})
+ OPTIONAL -- absent if no summaries are requested--,
+ -- 1994 extension
+ summarize-extensions [3] MSExtensions OPTIONAL
+}
+
+SummarizeResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ count
+ [1] INTEGER(0..ub-messages)-- of the entries selected-- ,
+ span [2] Span OPTIONAL -- of the entries selected,---- omitted if count is zero --,
+ summaries
+ [3] SEQUENCE SIZE (1..ub-summaries) OF Summary OPTIONAL,
+ -- 1994 extension
+ summarize-result-extensions [4] MSExtensions OPTIONAL
+}
+
+Span ::= SEQUENCE {lowest [0] SequenceNumber,
+ highest [1] SequenceNumber
+}
+
+Summary ::= SET {
+ absent
+ [0] INTEGER(1..ub-messages)
+ OPTIONAL --count of entries where X413ATTRIBUTE is absent--,
+ present
+ [1] SET SIZE (1..ub-attribute-values)
+ OF--one for each X413ATTRIBUTE value present--
+ SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ value X413ATTRIBUTE.&Type({AttributeTable}{@.type}),
+ count INTEGER(1..ub-messages)} OPTIONAL
+}
+
+--
+list ABSTRACT-OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-list
+}
+
+ListArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ list-extensions [4] MSExtensions OPTIONAL
+}
+
+ListResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ requested
+ [1] SEQUENCE SIZE (1..ub-messages) OF EntryInformation OPTIONAL--omitted if none found--,
+ -- 1994 extension
+ list-result-extensions [2] MSExtensions OPTIONAL
+}
+
+--
+fetch ABSTRACT-OPERATION ::= {
+ ARGUMENT FetchArgument
+ RESULT FetchResult
+ ERRORS
+ {attribute-error | fetch-restriction-error | invalid-parameters-error |
+ range-error | security-error | sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-fetch
+}
+
+FetchArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ item
+ CHOICE {search [1] Selector,
+ precise [2] SequenceNumber},
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ fetch-extensions [4] MSExtensions OPTIONAL
+}
+
+FetchResult ::= SET {
+ entry-information
+ [0] EntryInformation OPTIONAL --if an entry was selected--,
+ list
+ [1] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ next [2] SequenceNumber OPTIONAL,
+ -- 1994 extension
+ fetch-result-extensions [3] MSExtensions OPTIONAL
+}
+
+--
+delete ABSTRACT-OPERATION ::= {
+ ARGUMENT DeleteArgument
+ RESULT DeleteResult
+ ERRORS
+ {delete-error | invalid-parameters-error | range-error | security-error |
+ sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-delete
+}
+
+DeleteArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ items
+ CHOICE {selector [1] Selector,
+ sequence-numbers [2] SET SIZE (1..ub-messages) OF SequenceNumber
+ },
+ -- 1994 extension
+ delete-extensions [3] MSExtensions OPTIONAL
+}
+
+DeleteResult ::= CHOICE {
+ delete-result-88 NULL,
+ -- 1994 extension
+ delete-result-94
+ SET {entries-deleted
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ delete-result-extensions [1] MSExtensions OPTIONAL}
+}
+
+--
+register-MS ABSTRACT-OPERATION ::= {
+ ARGUMENT Register-MSArgument
+ RESULT Register-MSResult
+ ERRORS
+ {attribute-error | auto-action-request-error | invalid-parameters-error |
+ security-error | service-error | old-credentials-incorrectly-specified |
+ new-credentials-unacceptable, ... -- 1994 extension additions --,
+ message-group-error | ms-extension-error | register-ms-error}
+ LINKED {operationObject1, ...}
+ CODE op-register-ms
+}
+
+Register-MSArgument ::= SET {
+ auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration OPTIONAL,
+ auto-action-deregistrations
+ [1] SET SIZE (1..ub-auto-registrations) OF AutoActionDeregistration
+ OPTIONAL,
+ list-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [3] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ change-credentials
+ [4] SEQUENCE {old-credentials
+ [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials
+ [1] Credentials(WITH COMPONENTS {
+ simple
+ })} OPTIONAL,
+ user-security-labels
+ [5] SET SIZE (1..ub-labels-and-redirections) OF SecurityLabel OPTIONAL,
+ -- 1994 extensions
+ ua-registrations
+ [6] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [7] MSSubmissionOptions OPTIONAL,
+ message-group-registrations [8] MessageGroupRegistrations OPTIONAL,
+ registration-status-request [9] RegistrationTypes OPTIONAL,
+ register-ms-extensions [10] MSExtensions OPTIONAL
+}
+
+AutoActionDeregistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1
+}
+
+UARegistration ::= SET {
+ ua-registration-identifier [0] RegistrationIdentifier,
+ ua-list-attribute-defaults
+ [1] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-fetch-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-submission-defaults [3] MSSubmissionOptions OPTIONAL,
+ content-specific-defaults [4] MSExtensions OPTIONAL
+}
+
+MessageGroupRegistrations ::=
+ SEQUENCE SIZE (1..ub-default-registrations) OF
+ CHOICE {register-group [0] MessageGroupNameAndDescriptor,
+ deregister-group [1] MessageGroupName,
+ change-descriptors [2] MessageGroupNameAndDescriptor}
+
+MessageGroupNameAndDescriptor ::= SET {
+ message-group-name [0] MessageGroupName,
+ message-group-descriptor
+ [1] GeneralString(SIZE (1..ub-group-descriptor-length)) OPTIONAL
+}
+
+RegistrationTypes ::= SET {
+ registrations
+ [0] BIT STRING {auto-action-registrations(0), list-attribute-defaults(1),
+ fetch-attribute-defaults(2), ua-registrations(3),
+ submission-defaults(4), message-group-registrations(5)}
+ OPTIONAL,
+ extended-registrations [1] SET OF MS-EXTENSION.&id OPTIONAL,
+ restrict-message-groups [2] MessageGroupsRestriction OPTIONAL
+}
+
+MessageGroupsRestriction ::= SET {
+ parent-group [0] MessageGroupName OPTIONAL,
+ immediate-descendants-only [1] BOOLEAN DEFAULT TRUE,
+ omit-descriptors [2] BOOLEAN DEFAULT TRUE
+}
+
+protected-change-credentials MS-EXTENSION ::= {
+ ProtectedChangeCredentials
+ IDENTIFIED BY id-ext-protected-change-credentials
+}
+
+ProtectedChangeCredentials ::= SEQUENCE {
+ algorithm-identifier [0] IMPLICIT OBJECT IDENTIFIER,
+ old-credentials
+ InitiatorCredentials(WITH COMPONENTS {
+ protected PRESENT
+ }),
+ password-delta [2] IMPLICIT BIT STRING
+}
+
+Register-MSResult ::= CHOICE {
+ no-status-information NULL,
+ -- 1994 extension
+ registered-information
+ SET {auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration
+ OPTIONAL,
+ list-attribute-defaults
+ [1] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [2] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-registrations
+ [3] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [4] MSSubmissionOptions OPTIONAL,
+ message-group-registrations
+ [5] SET SIZE (1..ub-message-groups) OF
+ MessageGroupNameAndDescriptor OPTIONAL,
+ register-ms-result-extensions [6] MSExtensions OPTIONAL}
+}
+
+--
+alert ABSTRACT-OPERATION ::= {
+ ARGUMENT AlertArgument
+ RESULT AlertResult
+ ERRORS {security-error}
+ LINKED {operationObject1, ...}
+ CODE op-alert
+}
+
+AlertArgument ::= SET {
+ alert-registration-identifier [0] INTEGER(1..ub-auto-actions),
+ new-entry [2] EntryInformation OPTIONAL
+}
+
+AlertResult ::= NULL
+
+--
+modify ABSTRACT-OPERATION ::= {
+ ARGUMENT ModifyArgument
+ RESULT ModifyResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | security-error |
+ sequence-number-error | service-error | modify-error |
+ message-group-error | entry-class-error | ms-extension-error,
+ ... -- For future extension additions --}
+ LINKED {operationObject1, ...}
+ CODE op-modify
+}
+
+ModifyArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ entries
+ CHOICE {selector [1] Selector,
+ specific-entries
+ [2] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber},
+ modifications
+ [3] SEQUENCE SIZE (1..ub-modifications) OF EntryModification,
+ modify-extensions [4] MSExtensions OPTIONAL
+}
+
+EntryModification ::= SET {
+ strict [0] BOOLEAN DEFAULT FALSE,
+ modification
+ CHOICE {add-attribute [1] Attribute,
+ remove-attribute [2] X413ATTRIBUTE.&id({AttributeTable}),
+ add-values [3] OrderedAttribute,
+ remove-values [4] OrderedAttribute}
+}
+
+OrderedAttribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ SEQUENCE {-- at least one must be specified
+ value
+ [0] X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+ OPTIONAL,
+ position [1] INTEGER(1..ub-attribute-values) OPTIONAL
+ }
+}
+
+ModifyResult ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ modify-result-extensions [1] MSExtensions OPTIONAL
+}
+
+-- MS-submission Port abstract-operations
+ms-message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSMessageSubmissionArgument
+ RESULT MSMessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-message-submission
+}
+
+MSMessageSubmissionArgument ::= SEQUENCE {
+ COMPONENTS OF
+ MessageSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+forwarding-request EXTENSION ::= {
+ SequenceNumber,
+ IDENTIFIED BY standard-extension:36
+}
+
+MSMessageSubmissionResult ::= CHOICE {
+ mts-result
+ SET {COMPONENTS OF
+ MessageSubmissionResult-- This imported type has IMPLICIT tags -- ,
+ -- 1994 extension
+ ms-message-result [4] CommonSubmissionResults OPTIONAL},
+ -- 1994 extension
+ store-draft-result [4] CommonSubmissionResults
+}
+
+--
+ms-probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSProbeSubmissionArgument
+ RESULT MSProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-probe-submission
+}
+
+MSProbeSubmissionArgument ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+MSProbeSubmissionResult ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionResult -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ ms-probe-result [4] CommonSubmissionResults OPTIONAL
+}
+
+ms-cancel-deferred-delivery ABSTRACT-OPERATION ::= cancel-deferred-delivery
+
+ms-submission-control ABSTRACT-OPERATION ::= submission-control
+
+-- Abstract-errors
+attribute-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-per-entry) OF
+ SET {problem [0] AttributeProblem,
+ type [1] X413ATTRIBUTE.&id({AttributeTable}),
+ value
+ [2] X413ATTRIBUTE.&Type({AttributeTable}{@.type})
+ OPTIONAL}}
+ CODE err-attribute-error
+}
+
+AttributeProblem ::= INTEGER {
+ invalid-attribute-value(0), unavailable-attribute-type(1),
+ inappropriate-matching(2), attribute-type-not-subscribed(3),
+ inappropriate-for-operation(4),
+ -- 1994 extensions
+ inappropriate-modification(5), single-valued-attribute(6)
+}(0..ub-error-reasons)
+
+--
+auto-action-request-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-auto-registrations) OF
+ SET {problem [0] AutoActionRequestProblem,
+ type [1] AUTO-ACTION.&id({AutoActionTable})
+ }}
+ CODE err-auto-action-request-error
+}
+
+AutoActionRequestProblem ::= INTEGER {
+ unavailable-auto-action-type(0),
+ auto-action-type-not-subscribed(1),
+ -- 1994 extension
+ not-willing-to-perform(2)}(0..ub-error-reasons)
+
+--
+delete-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-messages) OF
+ SET {problem [0] DeleteProblem,
+ sequence-number [1] SequenceNumber},
+ -- 1994 extension
+ entries-deleted
+ [1] SET SIZE (1..ub-messages) OF SequenceNumber OPTIONAL}
+ CODE err-delete-error
+}
+
+DeleteProblem ::= INTEGER {
+ child-entry-specified(0),
+ delete-restriction-problem(1),
+ -- 1994 extensions
+ new-entry-specified(2), entry-class-restriction(3), stored-message-exists(4)
+}(0..ub-error-reasons)
+
+--
+fetch-restriction-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-default-registrations) OF
+ SET {problem [3] FetchRestrictionProblem,
+ restriction
+ CHOICE {content-type [0] OBJECT IDENTIFIER,
+ eit [1] MS-EITs,
+ attribute-length [2] INTEGER}}}
+ CODE err-fetch-restriction-error
+}
+
+FetchRestrictionProblem ::= INTEGER {
+ content-type-problem(1), eit-problem(2), maximum-length-problem(3)
+}(0..ub-error-reasons)
+
+--
+invalid-parameters-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-invalid-parameters-error
+}
+
+--
+range-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] RangeProblem}
+ CODE err-range-error
+}
+
+RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons)
+
+--
+sequence-number-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [1] SET SIZE (1..ub-messages) OF
+ SET {problem [0] SequenceNumberProblem,
+ sequence-number [1] SequenceNumber}}
+ CODE err-sequence-number-error
+}
+
+SequenceNumberProblem ::= INTEGER {no-such-entry(0)}(0..ub-error-reasons)
+
+--
+service-error ABSTRACT-ERROR ::= {
+ PARAMETER ServiceErrorParameter
+ CODE err-service-error
+}
+
+ServiceErrorParameter ::= SET {
+ problem [0] ServiceProblem,
+ -- 1994 extension
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+ServiceProblem ::= INTEGER {busy(0), unavailable(1), unwilling-to-perform(2)
+}(0..ub-error-reasons)
+
+--
+message-group-error ABSTRACT-ERROR ::= {
+ PARAMETER MessageGroupErrorParameter
+ CODE err-message-group-error
+}
+
+MessageGroupErrorParameter ::= SET {
+ problem [0] MessageGroupProblem,
+ name [1] MessageGroupName
+}
+
+MessageGroupProblem ::= INTEGER {
+ name-not-registered(0), name-already-registered(1), parent-not-registered(2),
+ group-not-empty(3), name-in-use(4), child-group-registered(5),
+ group-depth-exceeded(6)}(0..ub-error-reasons)
+
+--
+ms-extension-error ABSTRACT-ERROR ::= {
+ PARAMETER MSExtensionErrorParameter
+ CODE err-ms-extension-error
+}
+
+MSExtensionErrorParameter ::= CHOICE {
+ ms-extension-problem [0] MSExtensionItem,
+ unknown-ms-extension [1] OBJECT IDENTIFIER
+}
+
+--
+register-ms-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problem [0] RegistrationProblem,
+ registration-type [1] RegistrationTypes}
+ CODE err-register-ms-error
+}
+
+RegistrationProblem ::= ENUMERATED {
+ registration-not-supported(0), registration-improperly-specified(1),
+ registration-limit-exceeded(2), ... -- For future extension additions --
+ }
+
+--
+modify-error ABSTRACT-ERROR ::= {
+ PARAMETER ModifyErrorParameter
+ CODE err-modify-error
+}
+
+ModifyErrorParameter ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ failing-entry [1] SequenceNumber,
+ modification-number [2] INTEGER,
+ problem [3] ModifyProblem
+}
+
+ModifyProblem ::= INTEGER {
+ attribute-not-present(0), value-not-present(1),
+ attribute-or-value-already-exists(2), invalid-position(3),
+ modify-restriction-problem(4)}(0..ub-error-reasons)
+
+--
+entry-class-error ABSTRACT-ERROR ::= {
+ PARAMETER EntryClassErrorParameter
+ CODE err-entry-class-error
+}
+
+EntryClassErrorParameter ::= SET {
+ entry-class [0] EntryClass,
+ problem
+ [1] BIT STRING {unsupported-entry-class(0), entry-class-not-subscribed(1),
+ inappropriate-entry-class(2)}
+}
+
+END -- of MS Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAccessProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAccessProtocol.asn
new file mode 100644
index 0000000000..b69d72b3ed
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSAccessProtocol.asn
@@ -0,0 +1,259 @@
+-- Module MSAccessProtocol (X.419:06/1999)
+
+MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MS Abstract Service
+ ms-access-contract-88, ms-access-contract-94, ms-submission, retrieval,
+ retrieval-88
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- MTS Access Protocol
+ message-administration-abstract-syntax-88,
+ message-administration-abstract-syntax-94,
+ message-submission-abstract-syntax
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Object Identifiers
+ id-ac-ms-access-88, id-ac-ms-access-94, id-ac-ms-reliable-access-88,
+ id-ac-ms-reliable-access-94, id-as-ms-msse, id-as-mase-88, id-as-mase-94,
+ id-as-mdse-88, id-as-mdse-94, id-as-mrse-88, id-as-mrse-94, id-as-ms-88,
+ id-as-ms-94, id-as-ms-rtse, id-as-msse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+-- Definitions from X.228(11/1988) --
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+-- end of definitions from X.228 (11/1988) --
+
+-- APPLICATION-CONTEXTS
+-- 1994 Application Context omitting RTSE
+ms-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-abstract-syntax-94}
+ APPLICATION CONTEXT NAME id-ac-ms-access-94
+}
+
+-- 1994 Application Context including RTSE
+ms-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-94
+}
+
+-- 1988 Application Context omitting RTSE
+ms-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-abstract-syntax-88}
+ APPLICATION CONTEXT NAME id-ac-ms-access-88
+}
+
+-- 1988 Application Context including RTSE
+ms-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-88
+}
+
+-- ABSTRACT SYNTAXES
+-- Abstract-syntax for 1994 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs94
+ IDENTIFIED BY id-as-ms-94
+}
+
+MSBindUnbindPDUs94 ::= CHOICE {
+ bind Bind{ms-access-contract-94.&connection.&bind},
+ unbind Unbind{ms-access-contract-94.&connection.&unbind}
+}
+
+-- Abstract-syntax for 1988 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs88
+ IDENTIFIED BY id-as-ms-88
+}
+
+MSBindUnbindPDUs88 ::= CHOICE {
+ bind Bind{ms-access-contract-88.&connection.&bind},
+ unbind Unbind{ms-access-contract-88.&connection.&unbind}
+}
+
+-- Abstract-syntax for MS-bind and MS-unbind with RTSE
+ms-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MS-bind and MS-unbind --
+ IDENTIFIED BY id-as-ms-rtse
+}
+
+-- Abstract Syntax for MS Message Submission Service Element
+ms-message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MSMessageSubmissionPDUs
+ IDENTIFIED BY id-as-ms-msse
+}
+
+MSMessageSubmissionPDUs ::= ROS-SingleAS{{MSInvokeIds}, ms-submission}
+
+MSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Abstract Syntax for Message Retrieval Service Element 1994
+message-retrieval-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs
+ IDENTIFIED BY id-as-mrse-94
+}
+
+-- Abstract Syntax for Message Retrieval Service Element 1988
+MessageRetrievalPDUs ::=
+ ROS-SingleAS{{MSInvokeIds}, retrieval}
+
+message-retrieval-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs88
+ IDENTIFIED BY id-as-mrse-88
+}
+
+MessageRetrievalPDUs88 ::= ROS-SingleAS{{MSInvokeIds}, retrieval-88}
+
+-- Remote Operations
+op-ms-submission-control Code ::= local:2
+
+op-ms-message-submission Code ::= local:3
+
+op-ms-probe-submission Code ::= local:4
+
+op-ms-cancel-deferred-delivery Code ::= local:7
+
+op-summarize Code ::= local:20
+
+op-list Code ::= local:21
+
+op-fetch Code ::= local:22
+
+op-delete Code ::= local:23
+
+op-register-ms Code ::= local:24
+
+op-alert Code ::= local:25
+
+op-modify Code ::= local:26
+
+-- Remote Errors
+err-attribute-error Code ::= local:21
+
+err-auto-action-request-error Code ::= local:22
+
+err-delete-error Code ::= local:23
+
+err-fetch-restriction-error Code ::= local:24
+
+err-range-error Code ::= local:25 -- 1988 Application Contexts only
+
+err-security-error Code ::= local:26
+
+err-service-error Code ::= local:27
+
+err-sequence-number-error Code ::= local:28
+
+err-invalid-parameters-error Code ::= local:29
+
+err-message-group-error Code ::= local:30
+
+err-ms-extension-error Code ::= local:31
+
+err-register-ms-error Code ::= local:32
+
+err-modify-error Code ::= local:33
+
+err-entry-class-error Code ::= local:34
+
+END -- of MSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAttributeTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAttributeTypes.asn
new file mode 100644
index 0000000000..99d34b2883
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAttributeTypes.asn
@@ -0,0 +1,830 @@
+-- Module MSGeneralAttributeTypes (X.413:06/1999)
+MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- X413ATTRIBUTE information object class
+ X413ATTRIBUTE,
+ -- MS abstract-service data-types
+ AutoActionError, AutoActionType, CreationTime, EntryClassErrorParameter,
+ EntryType, MessageGroupName, MessageGroupErrorParameter, MS-EIT,
+ MSExtensionErrorParameter, RetrievalStatus, SequenceNumber,
+ ServiceErrorParameter
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- General-attribute-type Object Identifiers
+ id-att-ac-correlated-report-list, id-att-ac-report-subject-entry,
+ id-att-ac-report-summary, id-att-ac-uncorrelated-report-list,
+ id-att-auto-action-error, id-att-auto-action-registration-identifier,
+ id-att-auto-action-subject-entry, id-att-auto-action-type,
+ id-att-certificate-selectors, id-att-child-sequence-numbers,
+ id-att-content, id-att-content-confidentiality-algorithm-identifier,
+ id-att-content-correlator, id-att-content-identifier,
+ id-att-content-integrity-check, id-att-content-length,
+ id-att-content-returned, id-att-content-type,
+ id-att-conversion-with-loss-prohibited, id-att-converted-EITs,
+ id-att-creation-time, id-att-deferred-delivery-cancellation-time,
+ id-att-deferred-delivery-time, id-att-deletion-time, id-att-delivered-EITs,
+ id-att-delivery-flags, id-att-dl-exempted-recipients,
+ id-att-dl-expansion-history, id-att-dl-expansion-prohibited,
+ id-att-entry-type, id-att-internal-trace-information,
+ id-att-latest-delivery-time, id-att-locally-originated,
+ id-att-marked-for-deletion, id-att-message-delivery-envelope,
+ id-att-message-delivery-time, id-att-message-group-name,
+ id-att-message-identifier, id-att-message-notes,
+ id-att-message-origin-authentication-check, id-att-message-security-label,
+ id-att-message-submission-envelope, id-att-message-submission-time,
+ id-att-message-token, id-att-ms-originated, id-att-ms-submission-error,
+ id-att-multiple-originator-certificates, id-att-original-EITs,
+ id-att-originally-intended-recipient-name,
+ id-att-originating-MTA-certificate, id-att-originator-certificate,
+ id-att-originator-name, id-att-originator-report-request,
+ id-att-originator-return-address, id-att-other-recipient-names,
+ id-att-parent-sequence-number, id-att-per-message-indicators,
+ id-att-per-recipient-message-submission-fields,
+ id-att-per-recipient-probe-submission-fields,
+ id-att-per-recipient-report-delivery-fields, id-att-priority,
+ id-att-probe-origin-authentication-check, id-att-probe-submission-envelope,
+ id-att-proof-of-delivery-request, id-att-proof-of-submission,
+ id-att-recipient-certificate, id-att-recipient-names,
+ id-att-recipient-reassignment-prohibited, id-att-redirection-history,
+ id-att-report-delivery-envelope, id-att-reporting-DL-name,
+ id-att-reporting-MTA-certificate,
+ id-att-report-origin-authentication-check, id-att-retrieval-status,
+ id-att-security-classification, id-att-sequence-number,
+ id-att-signature-verification-status, id-att-storage-period,
+ id-att-storage-time, id-att-subject-submission-identifier,
+ id-att-this-recipient-name, id-att-trace-information
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Message Store matching-rules
+ bitStringMatch, contentCorrelatorMatch, contentIdentifierMatch,
+ mSSingleSubstringListElementsMatch, mSSingleSubstringListMatch,
+ mSSingleSubstringMatch, mSSubstringsMatch, mSStringCaseSensitiveMatch,
+ mSStringListElementsMatch, mSStringListMatch, mSStringMatch,
+ mSStringOrderingMatch, mTSIdentifierMatch, oRAddressElementsMatch,
+ oRAddressMatch, oRAddressSubstringElementsMatch, oRNameElementsMatch,
+ oRNameMatch, oRNameSingleElementMatch, oRNameSubstringElementsMatch,
+ redirectionOrDLExpansionElementsMatch, redirectionOrDLExpansionMatch,
+ redirectionOrDLExpansionSingleElementMatch,
+ redirectionOrDLExpansionSubstringElementsMatch, redirectionReasonMatch,
+ valueCountMatch
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-entry-types, ub-message-notes-length
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service data-types
+ CertificateSelectors, Content, ContentCorrelator, ContentIdentifier,
+ ContentIntegrityCheck, ContentLength, ConversionWithLossProhibited,
+ DeferredDeliveryTime, DeliveryFlags, DLExpansion, DLExpansionProhibited,
+ ExtendedCertificates, ImproperlySpecifiedRecipients, LatestDeliveryTime,
+ MessageDeliveryEnvelope, MessageDeliveryTime,
+ MessageOriginAuthenticationCheck, MessageSecurityLabel,
+ MessageSubmissionEnvelope, MessageSubmissionTime, MessageToken,
+ MTSIdentifier, OriginatingMTACertificate, OriginatorCertificate,
+ OriginatorReportRequest, OriginatorReturnAddress, ORName,
+ PerMessageIndicators, PerRecipientMessageSubmissionFields,
+ PerRecipientProbeSubmissionFields, PerRecipientReportDeliveryFields,
+ Priority, ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope,
+ ProofOfDeliveryRequest, ProofOfSubmission, RecipientReassignmentProhibited,
+ Redirection, ReportDeliveryEnvelope, ReportingDLName,
+ ReportingMTACertificate, ReportOriginAuthenticationCheck,
+ SecurityClassification, SecurityProblem, SubjectSubmissionIdentifier
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service upper bound
+ ub-recipients
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MTA abstract-service data-types
+ InternalTraceInformationElement, TraceInformationElement
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- Directory matching-rules
+ booleanMatch, integerMatch, integerOrderingMatch, uTCTimeMatch,
+ uTCTimeOrderingMatch
+ FROM SelectedAttributeTypes
+ objectIdentifierMatch
+ FROM InformationFramework
+
+ -- Authentication-service data-types
+ AlgorithmIdentifier
+ FROM AuthenticationFramework;
+
+-- X413ATTRIBUTE table
+AttributeTable X413ATTRIBUTE ::=
+ {GeneralAttributes | ContentSpecificAttributes}
+
+GeneralAttributes X413ATTRIBUTE ::=
+ {ms-child-sequence-numbers | mt-content |
+ mt-content-confidentiality-algorithm-identifier | mt-content-correlator |
+ mt-content-identifier | mt-content-integrity-check | ms-content-length |
+ ms-content-returned | mt-content-type | mt-conversion-with-loss-prohibited |
+ mt-converted-EITs | ms-creation-time | ms-delivered-EITs | mt-delivery-flags
+ | mt-dl-expansion-history | ms-entry-type | mt-message-delivery-envelope |
+ mt-message-delivery-time | mt-message-identifier |
+ mt-message-origin-authentication-check | mt-message-security-label |
+ mt-message-submission-time | mt-message-token | mt-original-EITs |
+ mt-originally-intended-recipient-name | mt-originator-certificate |
+ mt-originator-name | mt-other-recipient-names | ms-parent-sequence-number |
+ mt-per-recipient-report-delivery-fields | mt-priority |
+ mt-proof-of-delivery-request | mt-redirection-history |
+ mt-report-delivery-envelope | mt-reporting-DL-name |
+ mt-reporting-MTA-certificate | mt-report-origin-authentication-check |
+ ms-retrieval-status | mt-security-classification | ms-sequence-number |
+ mt-subject-submission-identifier | mt-this-recipient-name,
+ ... -- 1994 extension additions --, ms-ac-correlated-report-list |
+ ms-ac-report-subject-entry | ms-ac-report-summary |
+ ms-ac-uncorrelated-report-list | ms-auto-action-error |
+ ms-auto-action-registration-identifier | ms-auto-action-subject-entry |
+ ms-auto-action-type | mt-certificate-selectors |
+ ms-deferred-delivery-cancellation-time | mt-deferred-delivery-time |
+ ms-deletion-time | mt-dl-exempted-recipients | mt-dl-expansion-prohibited |
+ mt-internal-trace-information | mt-latest-delivery-time |
+ ms-locally-originated | ms-marked-for-deletion | ms-message-group-name |
+ ms-message-notes | mt-message-submission-envelope |
+ mt-multiple-originator-certificates | ms-originated | ms-submission-error |
+ mt-originating-MTA-certificate | mt-originator-report-request |
+ mt-originator-return-address | mt-per-message-indicators |
+ mt-per-recipient-message-submission-fields |
+ mt-per-recipient-probe-submission-fields |
+ mt-probe-origin-authentication-check | mt-probe-submission-envelope |
+ mt-proof-of-submission | mt-recipient-certificate | ms-recipient-names |
+ mt-recipient-reassignment-prohibited | ms-signature-verification-status |
+ ms-storage-period | ms-storage-time | mt-trace-information}
+
+ContentSpecificAttributes X413ATTRIBUTE ::=
+ {...}
+
+-- Attribute-types
+ms-ac-correlated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportLocation,
+ NUMERATION multi-valued,
+ ID id-att-ac-correlated-report-list
+}
+
+ReportLocation ::= CHOICE {
+ no-correlated-reports [0] NULL,
+ location [1] SEQUENCE OF PerRecipientReport
+}
+
+PerRecipientReport ::= SEQUENCE {
+ report-entry [0] SequenceNumber,
+ position [1] INTEGER(1..ub-recipients) DEFAULT 1
+}
+
+ms-ac-report-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-ac-report-subject-entry
+}
+
+ms-ac-report-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportSummary,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-att-ac-report-summary
+}
+
+ReportSummary ::= ENUMERATED {
+ no-report-requested(0) -- non-delivery report suppressed --,
+ no-report-received(1) -- non-delivery report requested --,
+ report-outstanding(2) -- delivery report requested --, delivery-cancelled(3),
+ delivery-report-from-another-recipient(4),
+ non-delivery-report-from-another-recipient(5),
+ delivery-report-from-intended-recipient(6),
+ non-delivery-report-from-intended-recipient(7)}
+
+ms-ac-uncorrelated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReport,
+ NUMERATION multi-valued,
+ ID id-att-ac-uncorrelated-report-list
+}
+
+ms-auto-action-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionError,
+ NUMERATION single-valued,
+ ID id-att-auto-action-error
+}
+
+ms-auto-action-registration-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX INTEGER,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-registration-identifier
+}
+
+ms-auto-action-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-subject-entry
+}
+
+ms-auto-action-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionType,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-type
+}
+
+mt-certificate-selectors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CertificateSelectors,
+ NUMERATION single-valued,
+ ID id-att-certificate-selectors
+}
+
+ms-child-sequence-numbers X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-att-child-sequence-numbers
+}
+
+mt-content X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Content,
+ NUMERATION single-valued,
+ ID id-att-content
+}
+
+mt-content-confidentiality-algorithm-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AlgorithmIdentifier,
+ NUMERATION single-valued,
+ ID id-att-content-confidentiality-algorithm-identifier
+}
+
+mt-content-correlator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentCorrelator,
+ EQUALITY MATCHING-RULE contentCorrelatorMatch,
+ NUMERATION single-valued,
+ ID id-att-content-correlator
+}
+
+mt-content-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIdentifier,
+ EQUALITY MATCHING-RULE contentIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-identifier
+}
+
+mt-content-integrity-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIntegrityCheck,
+ NUMERATION single-valued,
+ ID id-att-content-integrity-check
+}
+
+ms-content-length X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentLength,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-content-length
+}
+
+ms-content-returned X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-att-content-returned
+}
+
+mt-content-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-type
+}
+
+mt-conversion-with-loss-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ConversionWithLossProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-conversion-with-loss-prohibited
+}
+
+mt-converted-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-converted-EITs
+}
+
+ms-creation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CreationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-creation-time
+}
+
+ms-deferred-delivery-cancellation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryCancellationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-cancellation-time
+}
+
+DeferredDeliveryCancellationTime ::= UTCTime
+
+mt-deferred-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-time
+}
+
+ms-deletion-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeletionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deletion-time
+}
+
+DeletionTime ::= UTCTime
+
+ms-delivered-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-delivered-EITs
+}
+
+mt-delivery-flags X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveryFlags,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-delivery-flags
+}
+
+mt-dl-exempted-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-exempted-recipients
+}
+
+mt-dl-expansion-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansion,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-expansion-history
+}
+
+mt-dl-expansion-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansionProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-dl-expansion-prohibited
+}
+
+ms-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-entry-type
+}
+
+mt-internal-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InternalTraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-internal-trace-information
+}
+
+mt-latest-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX LatestDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-latest-delivery-time
+}
+
+ms-locally-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-locally-originated
+}
+
+ms-marked-for-deletion X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-marked-for-deletion
+}
+
+mt-message-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-envelope
+}
+
+mt-message-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-time
+}
+
+ms-message-group-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageGroupName,
+ EQUALITY MATCHING-RULE mSStringListMatch,
+ OTHER MATCHING-RULES
+ {mSSingleSubstringListMatch | mSStringListElementsMatch |
+ mSSingleSubstringListElementsMatch | valueCountMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-message-group-name
+}
+
+mt-message-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MTSIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-message-identifier
+}
+
+ms-message-notes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX GeneralString(SIZE (1..ub-message-notes-length)),
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION multi-valued,
+ ID id-att-message-notes
+}
+
+mt-message-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-message-origin-authentication-check
+}
+
+mt-message-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSecurityLabel,
+ NUMERATION single-valued,
+ ID id-att-message-security-label
+}
+
+mt-message-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-submission-envelope
+}
+
+mt-message-submission-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-submission-time
+}
+
+mt-message-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-att-message-token
+}
+
+ms-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-ms-originated
+}
+
+ms-submission-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmissionError,
+ NUMERATION single-valued,
+ ID id-att-ms-submission-error
+}
+
+SubmissionError ::= CHOICE {
+ submission-control-violated [1] NULL,
+ originator-invalid [2] NULL,
+ recipient-improperly-specified [3] ImproperlySpecifiedRecipients,
+ element-of-service-not-subscribed [4] NULL,
+ inconsistent-request [11] NULL,
+ security-error [12] SecurityProblem,
+ unsupported-critical-function [13] NULL,
+ remote-bind-error [15] NULL,
+ service-error [27] ServiceErrorParameter,
+ message-group-error [30] MessageGroupErrorParameter,
+ ms-extension-error [31] MSExtensionErrorParameter,
+ entry-class-error [34] EntryClassErrorParameter
+}
+
+mt-multiple-originator-certificates X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-multiple-originator-certificates
+}
+
+mt-original-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-original-EITs
+}
+
+mt-originally-intended-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originally-intended-recipient-name
+}
+
+mt-originating-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-originating-MTA-certificate
+}
+
+mt-originator-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorCertificate,
+ NUMERATION single-valued,
+ ID id-att-originator-certificate
+}
+
+mt-originator-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originator-name
+}
+
+mt-originator-report-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReportRequest,
+ NUMERATION multi-valued,
+ ID id-att-originator-report-request
+}
+
+mt-originator-return-address X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReturnAddress,
+ NUMERATION single-valued,
+ ID id-att-originator-return-address
+}
+
+mt-other-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-other-recipient-names
+}
+
+ms-parent-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-parent-sequence-number
+}
+
+mt-per-message-indicators X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerMessageIndicators,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-per-message-indicators
+}
+
+mt-per-recipient-message-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientMessageSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-message-submission-fields
+}
+
+mt-per-recipient-probe-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientProbeSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-probe-submission-fields
+}
+
+mt-per-recipient-report-delivery-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReportDeliveryFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-report-delivery-fields
+}
+
+mt-priority X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Priority,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-priority
+}
+
+mt-probe-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-probe-origin-authentication-check
+}
+
+mt-probe-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-probe-submission-envelope
+}
+
+mt-proof-of-delivery-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfDeliveryRequest,
+ EQUALITY MATCHING-RULE
+ integerMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-proof-of-delivery-request
+}
+
+mt-proof-of-submission X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfSubmission,
+ NUMERATION single-valued,
+ ID id-att-proof-of-submission
+}
+
+mt-recipient-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-recipient-certificate
+}
+
+ms-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-recipient-names
+}
+
+mt-recipient-reassignment-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientReassignmentProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-recipient-reassignment-prohibited
+}
+
+mt-redirection-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Redirection,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch | redirectionReasonMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-att-redirection-history
+}
+
+mt-report-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-report-delivery-envelope
+}
+
+mt-reporting-DL-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingDLName,
+ EQUALITY MATCHING-RULE
+ oRNameMatch, -- rule not defined in 1988 Application Contexts
+
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-reporting-DL-name
+}
+
+mt-reporting-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-reporting-MTA-certificate
+}
+
+mt-report-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-report-origin-authentication-check
+}
+
+ms-retrieval-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RetrievalStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-retrieval-status
+}
+
+mt-security-classification X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SecurityClassification,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-security-classification
+}
+
+ms-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-sequence-number
+}
+
+ms-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SignatureVerificationStatus,
+ NUMERATION single-valued,
+ ID id-att-signature-verification-status
+}
+
+SignatureVerificationStatus ::= SET {
+ content-integrity-check
+ [0] SignatureStatus DEFAULT signature-absent,
+ message-origin-authentication-check
+ [1] SignatureStatus DEFAULT signature-absent,
+ message-token
+ [2] SignatureStatus DEFAULT signature-absent,
+ report-origin-authentication-check
+ [3] SignatureStatus DEFAULT signature-absent,
+ proof-of-delivery
+ [4] SignatureStatus DEFAULT signature-absent,
+ proof-of-submission
+ [5] SignatureStatus DEFAULT signature-absent
+}
+
+SignatureStatus ::= INTEGER {
+ signature-absent(0), verification-in-progress(1), verification-succeeded(2),
+ verification-not-possible(3), content-converted(4), signature-encrypted(5),
+ algorithm-not-supported(6), certificate-not-obtainable(7),
+ verification-failed(8)}
+
+ms-storage-period X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StoragePeriod,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-period
+}
+
+StoragePeriod ::= INTEGER -- seconds
+
+ms-storage-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StorageTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-time
+}
+
+StorageTime ::= UTCTime
+
+mt-subject-submission-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectSubmissionIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-subject-submission-identifier
+}
+
+mt-this-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-this-recipient-name
+}
+
+mt-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-trace-information
+}
+
+END -- of MSGeneralAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAutoActionTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAutoActionTypes.asn
new file mode 100644
index 0000000000..eceae4ab44
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSGeneralAutoActionTypes.asn
@@ -0,0 +1,118 @@
+-- Module MSGeneralAutoActionTypes (X.413:06/1999)
+MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- AUTO-ACTION and AUTO-ACTION-ERROR information object classes
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS abstract-service data-types and abstract-errors
+ EntryClass, EntryInformationSelection, EntryModification, Filter,
+ message-group-error, modify-error, service-error, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS Object Identifiers
+ id-aae-auto-alert-error, id-act-auto-alert, id-act-auto-correlate-reports,
+ id-act-auto-delete, id-act-auto-modify
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-alert-addresses, ub-modifications, ub-supplementary-info-length
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service
+ security-error
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Auto-action table information object set
+AutoActionTable AUTO-ACTION ::=
+ {GeneralAutoActions | ContentSpecificAutoActions}
+
+GeneralAutoActions AUTO-ACTION ::=
+ {auto-alert, ... -- 1994 extension additions --, auto-modify |
+ auto-correlate-reports | auto-delete}
+
+ContentSpecificAutoActions AUTO-ACTION ::=
+ {...}
+
+-- Auto-action error table information object set
+AutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {GeneralAutoActionErrors | ContentSpecificAutoActionErrors}
+
+GeneralAutoActionErrors AUTO-ACTION-ERROR ::=
+ {auto-alert-error | modify-error | service-error | security-error |
+ message-group-error, ... -- For future extension additions --}
+
+ContentSpecificAutoActionErrors AUTO-ACTION-ERROR ::=
+ {...}
+
+-- Auto-action-types
+auto-alert AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoAlertRegistrationParameter
+ ERRORS {auto-alert-error}
+ IDENTIFIED BY id-act-auto-alert
+}
+
+AutoAlertRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ alert-destinations
+ [1] SEQUENCE SIZE (1..ub-alert-addresses) OF AlertDestination OPTIONAL,
+ requested-attributes [2] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ suppress-alert-destinations [3] BOOLEAN DEFAULT TRUE
+}
+
+AlertDestination ::= SEQUENCE {
+ alert-address EXTERNAL,
+ alert-qualifier OCTET STRING OPTIONAL
+}
+
+--
+auto-modify AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoModifyRegistrationParameter
+ ERRORS
+ {security-error | service-error | modify-error | message-group-error}
+ IDENTIFIED BY id-act-auto-modify
+}
+
+AutoModifyRegistrationParameter ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ filter [1] Filter OPTIONAL,
+ modifications [2] SEQUENCE SIZE (1..ub-modifications) OF EntryModification
+}
+
+--
+auto-correlate-reports AUTO-ACTION ::= {
+ IDENTIFIED BY id-act-auto-correlate-reports
+}
+
+--
+auto-delete AUTO-ACTION ::= {
+ ERRORS {security-error}
+ IDENTIFIED BY id-act-auto-delete
+}
+
+-- Auto-action errors
+auto-alert-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SEQUENCE SIZE (1..ub-alert-addresses) OF AutoAlertErrorIndication
+ CODE global:id-aae-auto-alert-error
+}
+
+AutoAlertErrorIndication ::= SET {
+ failing-alert-destination [0] AlertDestination OPTIONAL,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+END -- of MSGeneralAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSMatchingRules.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSMatchingRules.asn
new file mode 100644
index 0000000000..37c894da86
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSMatchingRules.asn
@@ -0,0 +1,225 @@
+-- Module MSMatchingRules (X.413:06/1999)
+MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+--Exports everything
+IMPORTS
+ -- MATCHING-RULE information object class and Directory matching-rules
+ MATCHING-RULE, objectIdentifierMatch
+ --==
+ FROM InformationFramework
+ bitStringMatch, booleanMatch, generalizedTimeMatch,
+ generalizedTimeOrderingMatch, integerMatch, integerOrderingMatch,
+ uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes
+
+ -- Matching-rule Object Identifiers
+ id-mr-content-correlator-match, id-mr-content-identifier-match,
+ id-mr-ms-single-substring-list-elements-match,
+ id-mr-ms-single-substring-list-match, id-mr-ms-single-substring-match,
+ id-mr-ms-substrings-match, id-mr-msstring-case-sensitive-match,
+ id-mr-msstring-list-elements-match, id-mr-msstring-list-match,
+ id-mr-msstring-match, id-mr-msstring-ordering-match,
+ id-mr-mts-identifier-match, id-mr-oraddress-elements-match,
+ id-mr-oraddress-match, id-mr-oraddress-substring-elements-match,
+ id-mr-orname-elements-match, id-mr-orname-match,
+ id-mr-orname-single-element-match, id-mr-orname-substring-elements-match,
+ id-mr-redirection-or-dl-expansion-elements-match,
+ id-mr-redirection-or-dl-expansion-match,
+ id-mr-redirection-or-dl-expansion-single-element-match,
+ id-mr-redirection-or-dl-expansion-substring-elements-match,
+ id-mr-redirection-reason-match, id-mr-value-count-match
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS upper bounds
+ ub-attribute-values, ub-msstring-match
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract service
+ ContentCorrelator, ContentIdentifier, MTSIdentifier, ORAddress,
+ ORAddressAndOptionalDirectoryName, ORName, RedirectionReason
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Matching rule table information object set
+MatchingRuleTable MATCHING-RULE ::=
+ {GeneralMatchingRules | ContentSpecificMatchingRules}
+
+GeneralMatchingRules MATCHING-RULE ::=
+ {bitStringMatch | booleanMatch | contentIdentifierMatch | integerMatch |
+ integerOrderingMatch | mSStringCaseSensitiveMatch | objectIdentifierMatch |
+ oRNameMatch | uTCTimeMatch | uTCTimeOrderingMatch,
+ ... -- 1994 extension additions --, contentCorrelatorMatch |
+ generalizedTimeMatch | generalizedTimeOrderingMatch | mSSingleSubstringMatch
+ | mSStringCaseSensitiveMatch | mSStringListElementsMatch | mSStringListMatch
+ | mSStringMatch | mSStringOrderingMatch | mSSingleSubstringListElementsMatch
+ | mSSingleSubstringListMatch | mSSubstringsMatch | mTSIdentifierMatch |
+ oRAddressElementsMatch | oRAddressMatch | oRAddressSubstringElementsMatch |
+ oRNameElementsMatch | oRNameMatch | oRNameSingleElementMatch |
+ oRNameSubstringElementsMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionMatch | redirectionOrDLExpansionSingleElementMatch |
+ redirectionOrDLExpansionSubstringElementsMatch | redirectionReasonMatch |
+ valueCountMatch}
+
+ContentSpecificMatchingRules MATCHING-RULE ::=
+ {...}
+
+-- MS String assertion-syntax
+MSString{INTEGER:maxSize} ::= CHOICE {
+ printable PrintableString(SIZE (1..maxSize)),
+ teletex TeletexString(SIZE (1..maxSize)),
+ general GeneralString(SIZE (1..maxSize)),
+ universal UniversalString(SIZE (1..maxSize)),
+ bmp BMPString(SIZE (1..maxSize))
+}
+
+-- String matching-rules
+mSStringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-match
+}
+
+mSStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-ordering-match
+}
+
+mSSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-ms-substrings-match
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] MSString{ub-msstring-match},
+ any [1] MSString{ub-msstring-match},
+ final [2] MSString{ub-msstring-match}}
+
+-- at most one initial and one final component
+mSSingleSubstringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-ms-single-substring-match
+}
+
+mSStringCaseSensitiveMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-case-sensitive-match
+}
+
+mSStringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-match
+}
+
+mSStringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-elements-match
+}
+
+mSSingleSubstringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-match
+}
+
+mSSingleSubstringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-elements-match
+}
+
+-- Syntax-based matching-rule
+valueCountMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER(1..ub-attribute-values)
+ ID id-mr-value-count-match
+}
+
+-- Matching-rules for complex Message Store attributes
+-- OR-address matching-rules
+oRAddressMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-match
+}
+
+oRAddressElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-elements-match
+}
+
+oRAddressSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-substring-elements-match
+}
+
+-- OR-name matching-rules
+oRNameMatch MATCHING-RULE ::= {SYNTAX ORName
+ ID id-mr-orname-match
+}
+
+oRNameElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-elements-match
+}
+
+oRNameSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-substring-elements-match
+}
+
+oRNameSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-orname-single-element-match
+}
+
+-- Redirection or DL-expansion matching rules
+redirectionOrDLExpansionMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-match
+}
+
+redirectionOrDLExpansionElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-elements-match
+}
+
+redirectionOrDLExpansionSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-redirection-or-dl-expansion-single-element-match
+}
+
+redirectionOrDLExpansionSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-substring-elements-match
+}
+
+redirectionReasonMatch MATCHING-RULE ::= {
+ SYNTAX RedirectionReason
+ ID id-mr-redirection-reason-match
+}
+
+-- MTS-identifier matching rule
+mTSIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX MTSIdentifier
+ ID id-mr-mts-identifier-match
+}
+
+-- Content-correlator matching rule
+contentCorrelatorMatch MATCHING-RULE ::= {
+ SYNTAX ContentCorrelator
+ ID id-mr-content-correlator-match
+}
+
+-- Content-identifier matching rule
+contentIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX ContentIdentifier
+ ID id-mr-content-identifier-match
+}
+
+END -- of MSMatchingRules
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSObjectIdentifiers.asn
new file mode 100644
index 0000000000..df194f838c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSObjectIdentifiers.asn
@@ -0,0 +1,322 @@
+-- Module MSObjectIdentifiers (X.413:06/1999)
+MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ ID, id-ms
+ --==
+ FROM MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Categories
+id-mod -- modules -- ID ::= {id-ms 0}
+
+id-ot -- objects -- ID ::= {id-ms 1}
+
+id-pt -- port types -- ID ::= {id-ms 2}
+
+id-att -- attribute types -- ID ::= {id-ms 3}
+
+id-act -- auto-action types -- ID ::= {id-ms 4}
+
+id-crt -- contracts -- ID ::= {id-ms 5}
+
+id-cp -- connection-packages -- ID ::= {id-ms 6}
+
+id-aae -- auto-action-errors-- ID ::= {id-ms 7}
+
+id-mr -- matching-rules -- ID ::= {id-ms 8}
+
+id-ext -- extensions -- ID ::= {id-ms 9}
+
+id-alg -- algorithms -- ID ::= {id-ms 10}
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-attribute-types ID ::= {id-mod 2} -- not definitive
+
+id-mod-action-types ID ::= {id-mod 3} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 4} -- not definitive
+
+id-mod-matching-rules ID ::= {id-mod 5} -- not definitive
+
+-- Objects
+id-ot-ms ID ::= {id-ot 0}
+
+id-ot-ms-user ID ::= {id-ot 1}
+
+-- Port types
+id-pt-retrieval-88 ID ::= {id-pt 0}
+
+id-pt-retrieval-94 ID ::= {id-pt 1}
+
+id-pt-ms-submission ID ::= {id-pt 2}
+
+-- Contracts
+id-crt-ms-access-88 ID ::= {id-crt 0}
+
+id-crt-ms-access-94 ID ::= {id-crt 1}
+
+-- Connection-packages
+id-cp-ms-connection ID ::= {id-cp 0}
+
+-- Attribute-types
+id-att-ac-correlated-report-list ID ::= {id-att 42}
+
+id-att-ac-report-subject-entry ID ::= {id-att 76}
+
+id-att-ac-report-summary ID ::= {id-att 43}
+
+id-att-ac-uncorrelated-report-list ID ::= {id-att 44}
+
+id-att-auto-action-error ID ::= {id-att 46}
+
+id-att-auto-action-registration-identifier ID ::= {id-att 47}
+
+id-att-auto-action-subject-entry ID ::= {id-att 48}
+
+id-att-auto-action-type ID ::= {id-att 49}
+
+id-att-certificate-selectors ID ::= {id-att 80}
+
+id-att-child-sequence-numbers ID ::= {id-att 0}
+
+id-att-content ID ::= {id-att 1}
+
+id-att-content-confidentiality-algorithm-identifier ID ::= {id-att 2}
+
+id-att-content-correlator ID ::= {id-att 3}
+
+id-att-content-identifier ID ::= {id-att 4}
+
+id-att-content-integrity-check ID ::= {id-att 5}
+
+id-att-content-length ID ::= {id-att 6}
+
+id-att-content-returned ID ::= {id-att 7}
+
+id-att-content-type ID ::= {id-att 8}
+
+id-att-conversion-with-loss-prohibited ID ::= {id-att 9}
+
+id-att-converted-EITs ID ::= {id-att 10}
+
+id-att-creation-time ID ::= {id-att 11}
+
+id-att-deferred-delivery-cancellation-time ID ::= {id-att 50}
+
+id-att-deferred-delivery-time ID ::= {id-att 51}
+
+id-att-deletion-time ID ::= {id-att 52}
+
+id-att-delivered-EITs ID ::= {id-att 12}
+
+id-att-delivery-flags ID ::= {id-att 13}
+
+id-att-dl-exempted-recipients ID ::= {id-att 78}
+
+id-att-dl-expansion-history ID ::= {id-att 14}
+
+id-att-dl-expansion-prohibited ID ::= {id-att 53}
+
+id-att-entry-type ID ::= {id-att 16}
+
+id-att-internal-trace-information ID ::= {id-att 54}
+
+id-att-latest-delivery-time ID ::= {id-att 55}
+
+id-att-locally-originated ID ::= {id-att 77}
+
+id-att-marked-for-deletion ID ::= {id-att 56}
+
+id-att-message-delivery-envelope ID ::= {id-att 18}
+
+id-att-message-delivery-time ID ::= {id-att 20}
+
+id-att-message-group-name ID ::= {id-att 57}
+
+id-att-message-identifier ID ::= {id-att 19}
+
+id-att-message-notes ID ::= {id-att 58}
+
+id-att-message-origin-authentication-check ID ::= {id-att 21}
+
+id-att-message-security-label ID ::= {id-att 22}
+
+id-att-message-submission-envelope ID ::= {id-att 59}
+
+id-att-message-submission-time ID ::= {id-att 23}
+
+id-att-message-token ID ::= {id-att 24}
+
+id-att-ms-originated ID ::= {id-att 60}
+
+id-att-ms-submission-error ID ::= {id-att 61}
+
+id-att-multiple-originator-certificates ID ::= {id-att 81}
+
+id-att-original-EITs ID ::= {id-att 25}
+
+id-att-originally-intended-recipient-name ID ::= {id-att 17}
+
+id-att-originating-MTA-certificate ID ::= {id-att 62}
+
+id-att-originator-certificate ID ::= {id-att 26}
+
+id-att-originator-name ID ::= {id-att 27}
+
+id-att-originator-report-request ID ::= {id-att 63}
+
+id-att-originator-return-address ID ::= {id-att 64}
+
+id-att-other-recipient-names ID ::= {id-att 28}
+
+id-att-parent-sequence-number ID ::= {id-att 29}
+
+id-att-per-message-indicators ID ::= {id-att 65}
+
+id-att-per-recipient-message-submission-fields ID ::= {id-att 66}
+
+id-att-per-recipient-probe-submission-fields ID ::= {id-att 67}
+
+id-att-per-recipient-report-delivery-fields ID ::= {id-att 30}
+
+id-att-priority ID ::= {id-att 31}
+
+id-att-probe-origin-authentication-check ID ::= {id-att 68}
+
+id-att-probe-submission-envelope ID ::= {id-att 69}
+
+id-att-proof-of-delivery-request ID ::= {id-att 32}
+
+id-att-proof-of-submission ID ::= {id-att 70}
+
+id-att-recipient-certificate ID ::= {id-att 82}
+
+id-att-recipient-names ID ::= {id-att 71}
+
+id-att-recipient-reassignment-prohibited ID ::= {id-att 72}
+
+id-att-redirection-history ID ::= {id-att 33}
+
+id-att-report-delivery-envelope ID ::= {id-att 34}
+
+id-att-reporting-DL-name ID ::= {id-att 35}
+
+id-att-reporting-MTA-certificate ID ::= {id-att 36}
+
+id-att-report-origin-authentication-check ID ::= {id-att 37}
+
+id-att-retrieval-status ID ::= {id-att 15}
+
+id-att-security-classification ID ::= {id-att 38}
+
+id-att-sequence-number ID ::= {id-att 39}
+
+id-att-signature-verification-status ID ::= {id-att 79}
+
+id-att-storage-period ID ::= {id-att 73}
+
+id-att-storage-time ID ::= {id-att 74}
+
+id-att-subject-submission-identifier ID ::= {id-att 40}
+
+id-att-this-recipient-name ID ::= {id-att 41}
+
+id-att-trace-information ID ::= {id-att 75}
+
+-- Auto-action-types
+id-act-ipm-auto-forward ID ::=
+ {id-act 0} -- Reserved for use in
+
+-- ITU-T Rec. X.420 |
+-- ISO/IEC 10021-7
+id-act-auto-alert ID ::= {id-act 1}
+
+id-act-auto-correlate-reports ID ::= {id-act 2}
+
+id-act-auto-delete ID ::= {id-act 3}
+
+id-act-auto-modify ID ::= {id-act 4}
+
+-- Auto-action errors
+id-aae-auto-alert-error ID ::= {id-aae 0}
+
+-- Matching-rules
+id-mr-content-correlator-match ID ::= {id-mr 1}
+
+id-mr-content-identifier-match ID ::= {id-mr 2}
+
+id-mr-ms-single-substring-list-elements-match ID ::= {id-mr 3}
+
+id-mr-ms-single-substring-list-match ID ::= {id-mr 4}
+
+id-mr-ms-single-substring-match ID ::= {id-mr 5}
+
+id-mr-ms-substrings-match ID ::= {id-mr 6}
+
+id-mr-msstring-case-sensitive-match ID ::= {id-mr 7}
+
+id-mr-msstring-list-elements-match ID ::= {id-mr 8}
+
+id-mr-msstring-list-match ID ::= {id-mr 9}
+
+id-mr-msstring-match ID ::= {id-mr 10}
+
+id-mr-msstring-ordering-match ID ::= {id-mr 11}
+
+id-mr-mts-identifier-match ID ::= {id-mr 12}
+
+id-mr-oraddress-elements-match ID ::= {id-mr 13}
+
+id-mr-oraddress-match ID ::= {id-mr 14}
+
+id-mr-oraddress-substring-elements-match ID ::= {id-mr 15}
+
+id-mr-orname-elements-match ID ::= {id-mr 16}
+
+id-mr-orname-match ID ::= {id-mr 17}
+
+id-mr-orname-single-element-match ID ::= {id-mr 18}
+
+id-mr-orname-substring-elements-match ID ::= {id-mr 19}
+
+id-mr-redirection-or-dl-expansion-elements-match ID ::= {id-mr 20}
+
+id-mr-redirection-or-dl-expansion-match ID ::= {id-mr 21}
+
+id-mr-redirection-or-dl-expansion-single-element-match ID ::= {id-mr 25}
+
+id-mr-redirection-or-dl-expansion-substring-elements-match ID ::= {id-mr 22}
+
+id-mr-redirection-reason-match ID ::= {id-mr 23}
+
+id-mr-value-count-match ID ::= {id-mr 24}
+
+-- Extensions
+id-ext-modify-capability ID ::= {id-ext 0}
+
+id-ext-modify-retrieval-status-capability ID ::= {id-ext 1}
+
+id-ext-originator-certificate-selectors-override ID ::= {id-ext 2}
+
+id-ext-originator-token ID ::= {id-ext 3}
+
+id-ext-protected-change-credentials ID ::= {id-ext 4}
+
+id-ext-protected-change-credentials-capability ID ::= {id-ext 5}
+
+-- Algorithms
+id-alg-password-xor ID ::= {id-alg 0}
+
+END -- of MSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MSUpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSUpperBounds.asn
new file mode 100644
index 0000000000..6494fbd3ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MSUpperBounds.asn
@@ -0,0 +1,77 @@
+-- Module MSUpperBounds (X.413:06/1999)
+MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-alert-addresses INTEGER ::= 16
+
+ub-attribute-values INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-attributes-supported INTEGER ::= 1024
+
+ub-auto-action-errors INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-auto-actions INTEGER ::= 128
+
+ub-auto-registrations INTEGER ::= 1024
+
+ub-default-registrations INTEGER ::= 1024
+
+ub-entry-classes INTEGER ::= 128
+
+ub-entry-types INTEGER ::= 16
+
+ub-error-reasons INTEGER ::= 16
+
+ub-extensions INTEGER ::= 32
+
+ub-group-depth INTEGER ::= 64
+
+ub-group-descriptor-length INTEGER ::= 256
+
+ub-group-part-length INTEGER ::= 128
+
+ub-information-bases INTEGER ::= 16
+
+ub-matching-rules INTEGER ::= 1024
+
+ub-message-groups INTEGER ::= 8192
+
+ub-message-notes-length INTEGER ::= 1024
+
+ub-messages INTEGER ::= 2147483647 -- (231 - 1) the largest integer
+
+-- representable in 32 bits
+ub-modifications INTEGER ::=
+ 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-msstring-match INTEGER ::= 512
+
+ub-per-auto-action INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-per-entry INTEGER ::= 1024
+
+ub-service-information-length INTEGER ::= 2048
+
+ub-summaries INTEGER ::= 16
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-ua-registration-identifier-length INTEGER ::= 32
+
+ub-ua-registrations INTEGER ::= 128
+
+ub-restrictions INTEGER ::= 16
+
+END -- of MSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTAAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTAAbstractService.asn
new file mode 100644
index 0000000000..38035c77ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTAAbstractService.asn
@@ -0,0 +1,481 @@
+-- Module MTAAbstractService (X.411:06/1999)
+MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTS Abstract Service Parameters
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, administration, AdministrationDomainName,
+ certificate-selectors, certificate-selectors-override, Content,
+ ContentIdentifier, ContentLength, ContentType,
+ content-confidentiality-algorithm-identifier, content-correlator,
+ content-integrity-check, conversion-with-loss-prohibited,
+ ConvertedEncodedInformationTypes, CountryName, DeferredDeliveryTime,
+ delivery, dl-exempted-recipients, dl-expansion-history,
+ dl-expansion-prohibited, ExplicitConversion, EXTENSION, ExtensionField{},
+ GlobalDomainIdentifier, InitiatorCredentials, latest-delivery-time,
+ message-origin-authentication-check, message-security-label, message-token,
+ MHS-OBJECT, MTAName, MTSIdentifier, multiple-originator-certificates,
+ ORAddressAndOptionalDirectoryName, OriginalEncodedInformationTypes,
+ originator-and-DL-expansion-history, originator-certificate,
+ originator-return-address, PerMessageIndicators, physical-delivery-modes,
+ physical-delivery-report-request, physical-forwarding-address,
+ physical-forwarding-address-request, physical-forwarding-prohibited,
+ physical-rendition-attributes, PORT, Priority, PrivateDomainIdentifier,
+ PrivateExtensions, probe-origin-authentication-check, proof-of-delivery,
+ proof-of-delivery-request, recipient-certificate,
+ recipient-number-for-advice, recipient-reassignment-prohibited,
+ redirection-history, registered-mail-type, reporting-DL-name,
+ reporting-MTA-certificate, reporting-MTA-name, ReportType,
+ report-origin-authentication-check, requested-delivery-method,
+ ResponderCredentials, SecurityContext, submission,
+ SupplementaryInformation, Time
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-cp-mta-connect, id-ct-mta-transfer, id-ot-mta, id-pt-transfer
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Upper Bounds
+ ub-bit-options, ub-integer-options, ub-recipients, ub-transfers
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mta MHS-OBJECT ::= {BOTH {mta-transfer}
+ ID id-ot-mta
+}
+
+-- Contracts
+mta-transfer CONTRACT ::= {
+ CONNECTION mta-connect
+ OPERATIONS OF {transfer}
+ ID id-ct-mta-transfer
+}
+
+-- Connection package
+mta-connect CONNECTION-PACKAGE ::= {
+ BIND mta-bind
+ UNBIND mta-unbind
+ ID id-cp-mta-connect
+}
+
+-- Ports
+transfer PORT ::= {
+ OPERATIONS {message-transfer | probe-transfer | report-transfer}
+ ID id-pt-transfer
+}
+
+-- MTA-bind and MTA-unbind
+mta-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTABindArgument
+ RESULT MTABindResult
+ ERRORS {mta-bind-error}
+}
+
+mta-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+MTABindArgument ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--initiator-name
+ [0] MTAName,
+ initiator-credentials
+ [1] InitiatorCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ }),
+ security-context
+ [2] SecurityContext OPTIONAL
+ }
+}
+
+MTABindResult ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--responder-name
+ [0] MTAName,
+ responder-credentials
+ [1] ResponderCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ })}
+}
+
+mta-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+-- Transfer Port
+message-transfer ABSTRACT-OPERATION ::= {ARGUMENT Message
+}
+
+probe-transfer ABSTRACT-OPERATION ::= {ARGUMENT Probe
+}
+
+report-transfer ABSTRACT-OPERATION ::= {ARGUMENT Report
+}
+
+Message ::= SEQUENCE {envelope MessageTransferEnvelope,
+ content Content
+}
+
+Probe ::= ProbeTransferEnvelope
+
+Report ::= SEQUENCE {
+ envelope ReportTransferEnvelope,
+ content ReportTransferContent
+}
+
+-- Message Transfer Envelope
+MessageTransferEnvelope ::= SET {
+ COMPONENTS OF PerMessageTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientMessageTransferFields
+}
+
+PerMessageTransferFields ::= SET {
+ message-identifier MessageIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{MessageTransferExtensions}} DEFAULT {}
+}
+
+MessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ content-correlator | dl-exempted-recipients | certificate-selectors |
+ multiple-originator-certificates | dl-expansion-history |
+ internal-trace-information | PrivateExtensions, ...}
+
+PerRecipientMessageTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientMessageTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate | redirection-history
+ | IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Transfer Envelope
+ProbeTransferEnvelope ::= SET {
+ COMPONENTS OF PerProbeTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeTransferFields
+}
+
+PerProbeTransferFields ::= SET {
+ probe-identifier ProbeIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{ProbeTransferExtensions}} DEFAULT {}
+}
+
+ProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | internal-trace-information |
+ PrivateExtensions, ...}
+
+PerRecipientProbeTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientProbeTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | redirection-history | PrivateExtensions,
+ ...}
+
+-- Report Transfer Envelope
+ReportTransferEnvelope ::= SET {
+ report-identifier ReportIdentifier,
+ report-destination-name ReportDestinationName,
+ trace-information TraceInformation,
+ extensions
+ [1] SET OF ExtensionField{{ReportTransferEnvelopeExtensions}} DEFAULT {}
+}
+
+ReportTransferEnvelopeExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ internal-trace-information | reporting-MTA-name | PrivateExtensions,
+ ...}
+
+-- Report Transfer Content
+ReportTransferContent ::= SET {
+ COMPONENTS OF PerReportTransferFields,
+ per-recipient-fields
+ [0] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportTransferFields
+}
+
+PerReportTransferFields ::= SET {
+ subject-identifier SubjectIdentifier,
+ subject-intermediate-trace-information
+ SubjectIntermediateTraceInformation OPTIONAL,
+ original-encoded-information-types
+ OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType OPTIONAL,
+ content-identifier ContentIdentifier OPTIONAL,
+ returned-content [1] Content OPTIONAL,
+ additional-information [2] AdditionalInformation OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{ReportTransferContentExtensions}} DEFAULT {}
+}
+
+ReportTransferContentExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ content-correlator | PrivateExtensions, ...}
+
+PerRecipientReportTransferFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ originally-specified-recipient-number
+ [1] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [2] PerRecipientIndicators,
+ last-trace-information [3] LastTraceInformation,
+ originally-intended-recipient-name
+ [4] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [5] SupplementaryInformation OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{PerRecipientReportTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+-- Envelope & Report Content Fields
+MessageIdentifier ::= MTSIdentifier
+
+OriginatorName ::= ORAddressAndOptionalDirectoryName
+
+PerDomainBilateralInformation ::= SEQUENCE {
+ COMPONENTS OF BILATERAL.&id,
+ bilateral-information BILATERAL.&Type
+}
+
+BILATERAL ::= CLASS {&id BilateralDomain UNIQUE,
+ &Type
+}WITH SYNTAX {&Type,
+ IDENTIFIED BY &id
+}
+
+BilateralDomain ::= SEQUENCE {
+ country-name CountryName,
+ domain
+ CHOICE {administration-domain-name AdministrationDomainName,
+ private-domain
+ SEQUENCE {administration-domain-name
+ [0] AdministrationDomainName,
+ private-domain-identifier
+ [1] PrivateDomainIdentifier}}
+}
+
+RecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallySpecifiedRecipientNumber ::= INTEGER(1..ub-recipients)
+
+PerRecipientIndicators ::= BIT STRING {
+ responsibility(0),
+ -- responsible 'one', not-responsible 'zero'
+ originating-MTA-report(1),
+ originating-MTA-non-delivery-report(2),
+ -- either originating-MTA-report, or originating-MTA-non-delivery-report,
+ -- or both, shall be 'one':
+ -- originating-MTA-report bit 'one' requests a 'report';
+ -- originating-MTA-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'one' requests an 'audited-report';
+ -- bits 0 - 2 'don't care' for Report Transfer Content
+ originator-report(3),
+ originator-non-delivery-report(4),
+ -- at most one bit shall be 'one':
+ -- originator-report bit 'one' requests a 'report';
+ -- originator-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'zero' requests 'no-report'
+ reserved-5(5), reserved-6(6), reserved-7(7)
+
+-- reserved- bits 5 - 7 shall be 'zero' --}(SIZE (8..ub-bit-options))
+
+ProbeIdentifier ::= MTSIdentifier
+
+ReportIdentifier ::= MTSIdentifier
+
+ReportDestinationName ::= ORAddressAndOptionalDirectoryName
+
+SubjectIdentifier ::= MessageOrProbeIdentifier
+
+MessageOrProbeIdentifier ::= MTSIdentifier
+
+SubjectIntermediateTraceInformation ::= TraceInformation
+
+-- AdditionalInformation is retained for backwards compatibility only,
+-- and use in new systems is strongly deprecated
+ADDITIONAL ::= CLASS {&Type
+}
+
+AdditionalInformation ::=
+ ADDITIONAL.&Type -- maximum ub-additional-info octets including all encoding
+
+ActualRecipientName ::= ORAddressAndOptionalDirectoryName
+
+LastTraceInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ report-type [1] ReportType
+}
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+-- Extension Fields
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOptionalDirectoryName
+
+trace-information EXTENSION ::= {
+ TraceInformation,
+ IDENTIFIED BY standard-extension:37
+}
+
+internal-trace-information EXTENSION ::= {
+ InternalTraceInformation,
+ IDENTIFIED BY standard-extension:38
+}
+
+InternalTraceInformation ::=
+ SEQUENCE SIZE (1..ub-transfers) OF InternalTraceInformationElement
+
+InternalTraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-supplied-information MTASuppliedInformation
+}
+
+MTASuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted CHOICE {mta MTAName,
+ domain GlobalDomainIdentifier} OPTIONAL,
+ -- additional-actions --COMPONENTS OF InternalAdditionalActions
+}
+
+InternalAdditionalActions ::= AdditionalActions
+
+-- Common Parameter Types
+TraceInformation ::=
+ [APPLICATION 9] SEQUENCE SIZE (1..ub-transfers) OF TraceInformationElement
+
+TraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ domain-supplied-information DomainSuppliedInformation
+}
+
+DomainSuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted-domain GlobalDomainIdentifier OPTIONAL,
+ -- additional-actions --COMPONENTS OF AdditionalActions
+}
+
+AdditionalActions ::= SET {
+ deferred-time [1] DeferredTime OPTIONAL,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ other-actions [3] OtherActions DEFAULT {}
+}
+
+RoutingAction ::= ENUMERATED {relayed(0), rerouted(1)}
+
+DeferredTime ::= Time
+
+ArrivalTime ::= Time
+
+OtherActions ::= BIT STRING {redirected(0), dl-operation(1)
+}(SIZE (0..ub-bit-options))
+
+END -- of MTA Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService88.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService88.asn
new file mode 100644
index 0000000000..f66d117f35
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAbstractService88.asn
@@ -0,0 +1,150 @@
+-- Module MTSAbstractService88 (X.411:06/1999)
+MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ -- MTS Abstract Service Parameters
+ operationObject1, ABSTRACT-OPERATION, change-credentials, ContentLength,
+ ContentTypes, Controls, control-violates-registration,
+ DefaultDeliveryControls, EncodedInformationTypes, message-delivery,
+ MHS-OBJECT, mts-connect, PORT, RecipientAssignedAlternateRecipient,
+ register-rejected, report-delivery, SecurityLabel, security-error,
+ submission, UserAddress, UserName, Waiting
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Object Identifiers
+ id-ct-mts-access, id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user,
+ id-pt-administration, id-pt-delivery
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation Codes
+ op-delivery-control, op-register
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Upper Bounds
+ ub-content-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mts-88 MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract-88}
+ RESPONDS {mts-access-contract-88}
+ ID {id-ot-mts 88}
+}
+
+mts-user-88 MHS-OBJECT ::= {
+ INITIATES {mts-access-contract-88}
+ RESPONDS {mts-forced-access-contract-88}
+ ID {id-ot-mts-user 88}
+}
+
+-- Contracts
+mts-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-access 88}
+}
+
+mts-forced-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-forced-access 88}
+}
+
+-- Ports
+delivery-88 PORT ::= {
+ OPERATIONS
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {delivery-control-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {message-delivery | report-delivery,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-delivery 88}
+}
+
+administration-88 PORT ::= {
+ OPERATIONS
+ {change-credentials,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {register-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-administration 88}
+}
+
+-- Delivery Port
+delivery-control-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControls88
+ RESULT Waiting
+ ERRORS {control-violates-registration | security-error}
+ LINKED
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControls88 ::= SET {
+ COMPONENTS OF
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-encoded-information-types ABSENT
+ }),
+ permissible-encoded-information-types-88 EncodedInformationTypes OPTIONAL
+}
+
+-- Administration Port
+register-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT Register88
+ RESULT NULL
+ ERRORS {register-rejected}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+Register88 ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-encoded-information-types EncodedInformationTypes OPTIONAL,
+ deliverable-maximum-content-length [1] EXPLICIT ContentLength OPTIONAL,
+ default-delivery-controls
+ [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ deliverable-content-types [3] ContentTypes OPTIONAL,
+ labels-and-redirections
+ [4] SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection
+ OPTIONAL
+}
+
+LabelAndRedirection ::= SET {
+ user-security-label [0] UserSecurityLabel OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+UserSecurityLabel ::= SecurityLabel
+
+END -- of MTSAbstractService88
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAccessProtocol.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAccessProtocol.asn
new file mode 100644
index 0000000000..03181c5951
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSAccessProtocol.asn
@@ -0,0 +1,321 @@
+-- Module MTSAccessProtocol (X.419:06/1999)
+
+MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MTS Abstract Service
+ administration, delivery, mts-access-contract, mts-connect,
+ mts-forced-access-contract, submission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS Abstract Service (1988)
+ administration-88, delivery-88, mts-access-contract-88,
+ mts-forced-access-contract-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- Object Identifiers
+ id-ac-mts-access-88, id-ac-mts-access-94, id-ac-mts-forced-access-88,
+ id-ac-mts-forced-access-94, id-ac-mts-forced-reliable-access-88,
+ id-ac-mts-forced-reliable-access-94, id-ac-mts-reliable-access-88,
+ id-ac-mts-reliable-access-94, id-as-mase-88, id-as-mase-94, id-as-mdse-88,
+ id-as-mdse-94, id-as-msse, id-as-mts, id-as-mts-rtse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- APPLICATION CONTEXTS
+-- 1994 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-94
+}
+
+-- MTS initiated
+mts-forced-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-94
+}
+
+-- 1994 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-94
+}
+
+-- MTS initiated
+mts-forced-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-94
+}
+
+-- 1988 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-88
+}
+
+-- MTS initiated
+mts-forced-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-88
+}
+
+-- 1988 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-88
+}
+
+-- MTS initiated
+mts-forced-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-88
+}
+
+-- ABSTRACT-SYNTAXES
+-- Abstract Syntax for MTS-Bind and MTS-Unbind
+mts-bind-unbind-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MTSBindUnbindPDUs
+ IDENTIFIED BY id-as-mts
+}
+
+MTSBindUnbindPDUs ::= CHOICE {
+ bind Bind{mts-connect.&bind},
+ unbind Unbind{mts-connect.&unbind}
+}
+
+-- Abstract Syntax for MTS-Bind and MTS-Unbind with RTSE
+mts-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MTS Bind and MTS Unbind --
+ IDENTIFIED BY id-as-mts-rtse
+}
+
+-- Abstract Syntax for Message Submission Service Element
+message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageSubmissionPDUs
+ IDENTIFIED BY id-as-msse
+}
+
+MessageSubmissionPDUs ::= ROS-SingleAS{{MTSInvokeIds}, submission}
+
+MTSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Remote Operations
+op-message-submission Code ::= local:3
+
+op-probe-submission Code ::= local:4
+
+op-cancel-deferred-delivery Code ::= local:7
+
+op-submission-control Code ::= local:2
+
+-- Remote Errors
+err-submission-control-violated Code ::= local:1
+
+err-element-of-service-not-subscribed Code ::= local:4
+
+err-deferred-delivery-cancellation-rejected Code ::= local:8
+
+err-originator-invalid Code ::= local:2
+
+err-recipient-improperly-specified Code ::= local:3
+
+err-message-submission-identifier-invalid Code ::= local:7
+
+err-inconsistent-request Code ::= local:11
+
+err-security-error Code ::= local:12
+
+err-unsupported-critical-function Code ::= local:13
+
+err-remote-bind-error Code ::= local:15
+
+-- Abstract Syntax for Message Delivery Service Element 1994
+message-delivery-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs
+ IDENTIFIED BY id-as-mdse-94
+}
+
+MessageDeliveryPDUs ::= ROS-SingleAS{{MTSInvokeIds}, delivery}
+
+-- Abstract Syntax for Message Delivery Service Element 1988
+message-delivery-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs88
+ IDENTIFIED BY id-as-mdse-88
+}
+
+MessageDeliveryPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, delivery-88}
+
+-- Remote Operations
+op-message-delivery Code ::= local:5
+
+op-report-delivery Code ::= local:6
+
+op-delivery-control Code ::= local:2
+
+-- Remote Errors
+err-delivery-control-violated Code ::= local:1
+
+err-control-violates-registration Code ::= local:14
+
+err-operation-refused Code ::= local:16
+
+-- Abstract Syntax for Message Administration Service Element 1994
+message-administration-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs
+ IDENTIFIED BY id-as-mase-94
+}
+
+MessageAdministrationPDUs ::= ROS-SingleAS{{MTSInvokeIds}, administration}
+
+-- Abstract Syntax for Message Administration Service Element 1988
+message-administration-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs88
+ IDENTIFIED BY id-as-mase-88
+}
+
+MessageAdministrationPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, administration-88}
+
+-- Remote Operations
+op-register Code ::= local:1
+
+op-change-credentials Code ::= local:8
+
+-- Remote Errors
+err-register-rejected Code ::= local:10
+
+err-new-credentials-unacceptable Code ::= local:6
+
+err-old-credentials-incorrectly-specified Code ::= local:5
+
+END -- of MTSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSObjectIdentifiers.asn
new file mode 100644
index 0000000000..1615b241ee
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSObjectIdentifiers.asn
@@ -0,0 +1,116 @@
+-- Module MTSObjectIdentifiers (X.411:06/1999)
+MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Message Transfer System
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::= {id-mts 0} -- modules
+
+id-ot ID ::= {id-mts 1} -- object types
+
+id-pt ID ::= {id-mts 2} -- port types
+
+id-cont ID ::= {id-mts 3} -- content types
+
+id-eit ID ::= {id-mts 4} -- encoded information types
+
+id-att ID ::= {id-mts 5} -- attributes
+
+id-tok ID ::= {id-mts 6} -- token types
+
+id-sa ID ::= {id-mts 7} -- secure agent types
+
+id-ct ID ::= {id-mts 8} -- contracts
+
+id-cp ID ::= {id-mts 9} -- connection packages
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-mta-abstract-service ID ::= {id-mod 2} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 3} -- not definitive
+
+-- Object Types
+id-ot-mts ID ::= {id-ot 0}
+
+id-ot-mts-user ID ::= {id-ot 1}
+
+id-ot-mta ID ::= {id-ot 2}
+
+-- Port Types
+id-pt-submission ID ::= {id-pt 0}
+
+id-pt-delivery ID ::= {id-pt 1}
+
+id-pt-administration ID ::= {id-pt 2}
+
+id-pt-transfer ID ::= {id-pt 3}
+
+-- Content Types
+id-cont-unidentified ID ::=
+ {id-cont 0} -- For use by MS and Directory
+
+id-cont-inner-envelope ID ::= {id-cont 1}
+
+-- Encoded Information Types
+id-eit-unknown ID ::= {id-eit 0}
+
+-- Value { id-eit 1 } is no longer defined
+id-eit-ia5-text ID ::= {id-eit 2}
+
+id-eit-g3-facsimile ID ::= {id-eit 3}
+
+id-eit-g4-class-1 ID ::= {id-eit 4}
+
+id-eit-teletex ID ::= {id-eit 5}
+
+id-eit-videotex ID ::= {id-eit 6}
+
+id-eit-voice ID ::= {id-eit 7}
+
+id-eit-sfd ID ::= {id-eit 8}
+
+id-eit-mixed-mode ID ::= {id-eit 9}
+
+-- Attributes
+id-att-physicalRendition-basic ID ::= {id-att 0}
+
+id-att-physicalRendition-no-cover-page ID ::= {id-att 1}
+
+-- Token Types
+id-tok-asymmetricToken ID ::= {id-tok 0}
+
+-- Secure Agent Types
+id-sa-ua ID ::= {id-sa 0}
+
+id-sa-ms ID ::= {id-sa 1}
+
+-- Contracts
+id-ct-mts-access ID ::= {id-ct 0}
+
+id-ct-mts-forced-access ID ::= {id-ct 1}
+
+id-ct-mta-transfer ID ::= {id-ct 2}
+
+-- Connection Packages
+id-cp-mts-connect ID ::= {id-cp 0}
+
+id-cp-mta-connect ID ::= {id-cp 1}
+
+END -- of MTSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Notation.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Notation.asn
new file mode 100644
index 0000000000..96dfc39b6a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Notation.asn
@@ -0,0 +1,244 @@
+-- Module Notation (X.830:04/1995)
+
+Notation {joint-iso-itu-t genericULS(20) modules(1) notation(1)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- From Directory Standards:
+ informationFramework, selectedAttributeTypes, authenticationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name
+ FROM InformationFramework informationFramework
+ UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AlgorithmIdentifier
+ FROM AuthenticationFramework authenticationFramework
+ -- From Other GULS Modules:
+ genericProtectingTransferSyntax
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SyntaxStructure{}
+ FROM GenericProtectingTransferSyntax genericProtectingTransferSyntax;
+
+-- *************************************************
+-- Notation for security identity and SA-identifiers
+-- *************************************************
+-- Values of the SecurityIdentity type are used to identify entities
+-- which assign externally-established security association identifiers,
+-- and for other security-related purposes requiring globally-unique
+-- identifiers.
+SecurityIdentity ::= CHOICE {
+ directoryName Name,
+ objectIdentifier OBJECT IDENTIFIER
+}
+
+ExternalSAID ::= SEQUENCE {
+ localSAID INTEGER,
+ assignerIdentity SecurityIdentity OPTIONAL
+ -- Identity of the system which assigned the integer value
+}
+
+-- ******************************************
+-- Notation for specifying security exchanges
+-- ******************************************
+SECURITY-EXCHANGE ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security exchange.
+ {
+ &SE-Items SEC-EXCHG-ITEM,
+ -- This is an ASN.1 information object set, comprising a set
+ -- of security exchange items
+ &sE-Identifier Identifier UNIQUE
+ -- A local or global identifier for the particular security
+ -- exchange
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- exchange.
+{SE-ITEMS &SE-Items
+ IDENTIFIER &sE-Identifier
+}
+
+Identifier ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+SEC-EXCHG-ITEM ::= CLASS {
+ &ItemType ,
+ -- ASN.1 type for this exchange item
+ &itemId INTEGER,
+ -- Identifier for this item, e.g. 1, 2, 3, ..
+ &Errors SE-ERROR OPTIONAL
+ -- Optional list of errors which may result from
+ -- transfer of this item
+}WITH SYNTAX {ITEM-TYPE &ItemType
+ ITEM-ID &itemId
+ [ERRORS &Errors]
+}
+
+SE-ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ -- ASN.1 type of a parameter to accompany the signalling
+ -- of the error condition back to the sender of the SEI
+ &errorCode Identifier UNIQUE
+ -- An identifier used in signalling the error condition
+ -- back to the sender of the SEI
+}WITH SYNTAX {[PARAMETER &ParameterType]
+ ERROR-CODE &errorCode
+}
+
+-- ************************************************
+-- Notation for specifying security transformations
+-- ************************************************
+SECURITY-TRANSFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security transformation.
+ {
+ &sT-Identifier OBJECT IDENTIFIER UNIQUE,
+ -- Identifier to be used in signalling the application
+ -- of the particular security transformation
+ &initialEncodingRules OBJECT IDENTIFIER DEFAULT {joint-iso-ccitt
+ asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ -- Default initial encoding rules to generate a bit
+ -- string prior to applying the encoding process of a
+ -- security transformation.
+ &StaticUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying static unprotected parameters
+ &DynamicUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying dynamic unprotected parameters
+ &XformedDataType ,
+ -- ASN.1 type of the ASN.1 value produced by the security
+ -- transformations encoding process
+ &QualifierType OPTIONAL
+ -- &QualifierType specifies the ASN.1 type of the qualifier
+ -- parameter used with the PROTECTED-Q notation.
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- transformation.
+{
+ IDENTIFIER &sT-Identifier
+ [INITIAL-ENCODING-RULES &initialEncodingRules]
+ [STATIC-UNPROT-PARM &StaticUnprotectedParm]
+ [DYNAMIC-UNPROT-PARM &DynamicUnprotectedParm]
+ XFORMED-DATA-TYPE &XformedDataType
+ [QUALIFIER-TYPE &QualifierType]
+}
+
+-- **************************************************
+-- Notation for specifying selective field protection
+-- **************************************************
+PROTECTED{BaseType, PROTECTION-MAPPING:protectionReqd} ::= CHOICE {
+ dirEncrypt
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- dirEncrypt is for use only with the
+ -- dirEncryptedTransformation,
+ -- and generates the same encoding as the
+ -- X.509/9594-8 ENCRYPTED type-- }),
+ dirSign
+ SEQUENCE {baseType BaseType OPTIONAL,
+ -- must be present for dirSignedTransformation
+ -- and must be omitted for
+ -- dirSignatureTransformation
+ algorithmId AlgorithmIdentifier,
+ encipheredHash
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- contains enciphered hash--
+ -- of a value of BaseType -- })}-- dirSign is for use only with the
+ -- dirSignedTransformation or
+ -- dirSignatureTransformation, and generates
+ -- the same encoding as the corresponding
+ -- X.509/9594-8 SIGNED or SIGNATURE type--,
+ noTransform [0] BaseType,
+ -- noTransform invokes no security transformation.
+ -- Subject to security policy, noTransform may be used
+ -- if adequate protection is provided by lower layers
+ -- and any application relays through which the data
+ -- may pass are trusted to maintain the required
+ -- protection. This alternative may only be used
+ -- if protectionReqd.&bypassPermitted is TRUE,
+ direct [1] SyntaxStructure{{protectionReqd.&SecurityTransformation}},
+ -- direct generates a protecting transfer syntax
+ -- value, which is encoded using the same encoding
+ -- rules as the surrounding ASN.1 (The type
+ -- SyntaxStructure is imported from Rec. X.833 |
+ -- ISO/IEC 11586-3)
+ embedded
+ [2] EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ presentation-context-id ,
+ context-negotiation (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT
+ IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ data-value (CONTAINING BaseType )
+
+ -- The data value encoded is a value of type BaseType
+ })
+}
+
+PROTECTED-Q{BaseType, PROTECTION-MAPPING:protectionReqd,
+ PROTECTION-MAPPING.&SecurityTransformation.&QualifierType:qualifier}
+ ::=
+ PROTECTED{BaseType, protectionReqd}
+ (CONSTRAINED BY {
+ protectionReqd.&SecurityTransformation.&QualifierType:qualifier
+ -- The value of qualifier must be made available to
+ -- the security transformation used
+ })
+
+-- BaseType is the type to be protected, and protectionReqd is an
+-- object of class PROTECTION-MAPPING. The use of PROTECTED requires
+-- the importation into the user's module of the PROTECTED parameterized
+-- type, together with the necessary PROTECTION-MAPPING object
+-- definition.
+-- *******************************************
+-- Notation for specifying protection mappings
+-- *******************************************
+PROTECTION-MAPPING ::= CLASS {
+ &SecurityTransformation SECURITY-TRANSFORMATION,
+ -- &SecurityTransformation specifies an ASN.1 object set of the
+ -- SECURITY-TRANSFORMATION class. Use of the particular
+ -- protection mapping implies use of one of the specified
+ -- transformations, with the choice being left to the
+ -- encoding system. Rules for selecting between these security
+ -- transformations may be specified in comments.
+ &protTransferSyntax OBJECT IDENTIFIER DEFAULT {joint-iso-itu-t
+ genericULS(20)
+ generalTransferSyntax(2)},
+ -- Identifies the particular protecting transfer syntax to
+ -- be used in an EMDEDDED PDV encoding for the embedded
+ -- option.
+ &bypassPermitted BOOLEAN DEFAULT FALSE
+ -- Indicates if bypassing of protection is permitted
+}
+WITH SYNTAX {
+ SECURITY-TRANSFORMATION &SecurityTransformation
+ [PROTECTING-TRANSFER-SYNTAX &protTransferSyntax]
+ [BYPASS-PERMITTED &bypassPermitted]
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ObjectIdentifiers.asn
new file mode 100644
index 0000000000..b4f91f50c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ObjectIdentifiers.asn
@@ -0,0 +1,46 @@
+-- Module ObjectIdentifiers (X.830:04/1995)
+
+ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+genericULS OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20)}
+
+-- Categories of information object
+modules OBJECT IDENTIFIER ::=
+ {genericULS 1}
+
+generalTransferSyntax OBJECT IDENTIFIER ::= {genericULS 2}
+
+specificTransferSyntax OBJECT IDENTIFIER ::= {genericULS 3}
+
+securityExchanges OBJECT IDENTIFIER ::= {genericULS 4}
+
+securityTransformations OBJECT IDENTIFIER ::= {genericULS 5}
+
+-- ASN.1 modules
+objectIdentifiers OBJECT IDENTIFIER ::= {modules 0}
+
+notation OBJECT IDENTIFIER ::= {modules 1}
+
+gulsSecurityExchanges OBJECT IDENTIFIER ::= {modules 2}
+
+gulsSecurityTransformations OBJECT IDENTIFIER ::= {modules 3}
+
+dirProtectionMappings OBJECT IDENTIFIER ::= {modules 4}
+
+gulsProtectionMappings OBJECT IDENTIFIER ::= {modules 5}
+
+seseAPDUs OBJECT IDENTIFIER ::= {modules 6}
+
+genericProtectingTransferSyntax OBJECT IDENTIFIER ::= {modules 7}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/OperationalBindingManagement.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/OperationalBindingManagement.asn
new file mode 100644
index 0000000000..2044feb155
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/OperationalBindingManagement.asn
@@ -0,0 +1,263 @@
+-- Module OperationalBindingManagement (X.501:08/1997)
+OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, hierarchicalOperationalBindings, dop,
+ directoryAbstractService, distributedOperations, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ shadowOperationalBinding
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
+ FROM HierarchicalOperationalBindings hierarchicalOperationalBindings
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ id-op-establishOperationalBinding, id-op-modifyOperationalBinding,
+ id-op-terminateOperationalBinding, id-err-operationalBindingError
+ FROM DirectoryOperationalBindingManagementProtocol dop
+ directoryBind, directoryUnbind, securityError, CommonResultsSeq,
+ SecurityParameters
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ AccessPoint
+ FROM DistributedOperations distributedOperations;
+
+--PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+-- bind and unbind
+dSAOperationalBindingManagementBind OPERATION ::=
+ directoryBind
+
+dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind
+
+-- operations, arguments and results
+establishOperationalBinding OPERATION ::= {
+ ARGUMENT EstablishOperationalBindingArgument
+ RESULT EstablishOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-establishOperationalBinding
+}
+
+EstablishOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A initiates, or Role B initiates -
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ agreement
+ [6] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid [7] Validity DEFAULT {},
+ securityParameters [8] SecurityParameters OPTIONAL}}
+
+OperationalBindingID ::= SEQUENCE {identifier INTEGER,
+ version INTEGER
+}
+
+Validity ::= SEQUENCE {
+ validFrom [0] CHOICE {now [0] NULL,
+ time [1] Time} DEFAULT now:NULL,
+ validUntil
+ [1] CHOICE {explicitTermination [0] NULL,
+ time [1] Time
+ } DEFAULT explicitTermination:NULL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+EstablishOperationalBindingResult ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A replies , or Role B replies
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-replies
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-replies
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+
+modifyOperationalBinding OPERATION ::= {
+ ARGUMENT ModifyOperationalBindingArgument
+ RESULT ModifyOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-modifyOperationalBinding
+}
+
+ModifyOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ accessPoint [2] AccessPoint OPTIONAL,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&ModifyParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ newBindingID [6] OperationalBindingID,
+ newAgreement
+ [7] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}) OPTIONAL,
+ valid [8] Validity OPTIONAL,
+ securityParameters [9] SecurityParameters OPTIONAL}}
+
+ModifyOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newBindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ newAgreement
+ OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid Validity OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+terminateOperationalBinding OPERATION ::= {
+ ARGUMENT TerminateOperationalBindingArgument
+ RESULT TerminateOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-terminateOperationalBinding
+}
+
+TerminateOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [2] OPERATIONAL-BINDING.&both.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [3] OPERATIONAL-BINDING.&roleA.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [4] OPERATIONAL-BINDING.&roleB.&TerminateParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ terminateAt [5] Time OPTIONAL,
+ securityParameters [6] SecurityParameters OPTIONAL}}
+
+TerminateOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {bindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ terminateAt
+ GeneralizedTime OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- errors and parameters
+operationalBindingError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ {OpBindingErrorParam}
+ CODE id-err-operationalBindingError
+}
+
+OpBindingErrorParam ::= SEQUENCE {
+ problem
+ [0] ENUMERATED {invalidID(0), duplicateID(1), unsupportedBindingType(2),
+ notAllowedForRole(3), parametersMissing(4),
+ roleAssignment(5), invalidStartTime(6), invalidEndTime(7),
+ invalidAgreement(8), currentlyNotDecidable(9),
+ modificationNotAllowed(10)},
+ bindingType [1] OPERATIONAL-BINDING.&id({OpBindingSet}) OPTIONAL,
+ agreementProposal
+ [2] OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType}) OPTIONAL,
+ retryAt [3] Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+}
+
+-- information object classes
+OPERATIONAL-BINDING ::= CLASS {
+ &Agreement ,
+ &Cooperation OP-BINDING-COOP,
+ &both OP-BIND-ROLE OPTIONAL,
+ &roleA OP-BIND-ROLE OPTIONAL,
+ &roleB OP-BIND-ROLE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ AGREEMENT &Agreement
+ APPLICATION CONTEXTS &Cooperation
+ [SYMMETRIC &both]
+ [ASYMMETRIC
+ [ROLE-A &roleA]
+ [ROLE-B &roleB]]
+ ID &id
+}
+
+OP-BINDING-COOP ::= CLASS {
+ &applContext APPLICATION-CONTEXT,
+ &Operations OPERATION OPTIONAL
+}WITH SYNTAX {&applContext
+ [APPLIES TO &Operations]
+}
+
+OP-BIND-ROLE ::= CLASS {
+ &establish BOOLEAN DEFAULT FALSE,
+ &EstablishParam OPTIONAL,
+ &modify BOOLEAN DEFAULT FALSE,
+ &ModifyParam OPTIONAL,
+ &terminate BOOLEAN DEFAULT FALSE,
+ &TerminateParam OPTIONAL
+}
+WITH SYNTAX {
+ [ESTABLISHMENT-INITIATOR &establish]
+ [ESTABLISHMENT-PARAMETER &EstablishParam]
+ [MODIFICATION-INITIATOR &modify]
+ [MODIFICATION-PARAMETER &ModifyParam]
+ [TERMINATION-INITIATOR &terminate]
+ [TERMINATION-PARAMETER &TerminateParam]
+}
+
+OpBindingSet OPERATIONAL-BINDING ::=
+ {shadowOperationalBinding | hierarchicalOperationalBinding |
+ nonSpecificHierarchicalOperationalBinding}
+
+END -- OperationalBindingManagement
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7.asn
new file mode 100644
index 0000000000..ac449b59c7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7.asn
@@ -0,0 +1,342 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7BodyPartType.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7BodyPartType.asn
new file mode 100644
index 0000000000..525ee3c5ec
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/PKCS7BodyPartType.asn
@@ -0,0 +1,31 @@
+-- Module PKCS7BodyPartType (X.420:06/1999)
+PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ -- PKCS#7
+ ContentInfo
+ FROM PKCS7 {iso(1) member-body(2) usa(840) rsadsi(113549) pkcs(1)
+ 7 module(0)}
+ -- module not formally defined in the PKCS#7document, therefore defined in Annex O
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-et-pkcs7
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- PKCS7 body part
+pkcs7-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ContentInfo
+ IDENTIFIED BY id-et-pkcs7}
+}
+
+END -- of PKCS7BodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Protected-Part-Descriptors.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Protected-Part-Descriptors.asn
new file mode 100644
index 0000000000..5512f1590b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Protected-Part-Descriptors.asn
@@ -0,0 +1,74 @@
+-- Module Protected-Part-Descriptors (T.415:03/1993)
+
+Protected-Part-Descriptors {2 8 1 5 13} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor;
+
+IMPORTS Protected-Part-Identifier
+ FROM Identifiers-and-Expressions; -- see 7.8
+
+Sealed-Doc-Prof-Descriptor ::= SEQUENCE {
+ sealed-doc-prof-identifier Protected-Part-Identifier,
+ sealed-doc-prof-information Document-Profile-Attribute-Names
+}
+
+Document-Profile-Attribute-Names ::= BIT STRING {
+ generic-layout-structure(0), specific-layout-structure(1),
+ generic-logical-structure(2), specific-logical-structure(3),
+ layout-styles(4), presentation-styles(5), sealed-profiles(6),
+ enciphered-profiles(7), pre-enciphered-body-parts(8),
+ post-enciphered-body-parts(9), external-document-class(10),
+ resource-document(11), resources(12), document-application-profile(13),
+ document-application-profile-defaults(14), document-architecture-class(15),
+ content-architecture-classes(16), interchange-format-class(17),
+ oda-version(18), alternative-feature-sets(19), profile-character-sets(20),
+ comments-character-sets(21), alternative-representation-character-sets(22),
+ page-dimensions(23), medium-types(24), layout-paths(25), protections(26),
+ block-alignments(27), fill-orders(28), transparencies(29), colours(30),
+ colours-of-layout-object(31), object-colour-tables(32),
+ content-background-colours(33), content-foreground-colours(34),
+ content-colour-tables(35), borders(36), page-positions(37),
+ types-of-coding(38), coding-attributes(39), presentation-features(40),
+ number-of-objects-per-page(41), unit-scaling(42), fonts-list(43),
+ colour-characteristics(44), colour-spaces-list(45),
+ assured-reproduction-areas(86), title(46), subject(47),
+ document-reference(48), document-type(49), abstract(50), keywords(51),
+ document-date-and-time(52), creation-date-and-time(53),
+ local-filing-date-and-time(54), expiry-date-and-time(55),
+ start-date-and-time(56), purge-date-and-time(57), release-date-and-time(58),
+ revision-history(59), organizations(60), preparers(61), owners(62),
+ authors(63), copyright(64), status(65), user-specific-codes(66),
+ distribution-list(67), additional-information(68),
+ references-to-other-documents(69), superseded-documents(70),
+ local-file-references(71), document-size(72), number-of-pages(73),
+ languages(74), authorization(75), security-classification(76),
+ access-rights(77), sealed-information-encoding(78), oda-security-label(79),
+ sealed-document-profiles(80), pre-sealed-document-body-parts(81),
+ post-sealed-document-body-parts(82), enciphered-document-profiles(83),
+ pre-enciphered-document-body-parts(84),
+ post-enciphered-document-body-parts(85)}
+
+Enciphered-Doc-Prof-Descriptor ::= SEQUENCE {
+ enciphered-doc-prof-identifier Protected-Part-Identifier,
+ enciphered-doc-prof-information Enciphered-Information
+}
+
+Preenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ preenciphered-bodypart-identifier Protected-Part-Identifier,
+ preenciphered-bodypart-info Enciphered-Information
+}
+
+Postenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ postenciphered-bodypart-identifier Protected-Part-Identifier,
+ postenciphered-bodypart-info Enciphered-Information
+}
+
+Enciphered-Information ::= OCTET STRING
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/ProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/ProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..d6e88a2e47
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/ProtocolObjectIdentifiers.asn
@@ -0,0 +1,140 @@
+-- Module ProtocolObjectIdentifiers (X.519 TC2:08/1997)
+
+ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1)
+ protocolObjectIdentifiers(4) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-rosObject, id-contract, id-package, id-ac, id-as
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+-- ROS Objects
+id-rosObject-dua OBJECT IDENTIFIER ::= {id-rosObject 1}
+
+id-rosObject-directory OBJECT IDENTIFIER ::= {id-rosObject 2}
+
+id-rosObject-dapDSA OBJECT IDENTIFIER ::= {id-rosObject 3}
+
+id-rosObject-dspDSA OBJECT IDENTIFIER ::= {id-rosObject 4}
+
+id-rosObject-dopDSA OBJECT IDENTIFIER ::= {id-rosObject 7}
+
+id-rosObject-initiatingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 8}
+
+id-rosObject-respondingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 9}
+
+id-rosObject-initiatingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 10}
+
+id-rosObject-respondingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 11}
+
+-- contracts
+id-contract-dap OBJECT IDENTIFIER ::= {id-contract 1}
+
+id-contract-dsp OBJECT IDENTIFIER ::= {id-contract 2}
+
+id-contract-shadowConsumer OBJECT IDENTIFIER ::= {id-contract 3}
+
+id-contract-shadowSupplier OBJECT IDENTIFIER ::= {id-contract 4}
+
+id-contract-dop OBJECT IDENTIFIER ::= {id-contract 5}
+
+-- packages
+id-package-read OBJECT IDENTIFIER ::= {id-package 1}
+
+id-package-search OBJECT IDENTIFIER ::= {id-package 2}
+
+id-package-modify OBJECT IDENTIFIER ::= {id-package 3}
+
+id-package-chainedRead OBJECT IDENTIFIER ::= {id-package 4}
+
+id-package-chainedSearch OBJECT IDENTIFIER ::= {id-package 5}
+
+id-package-chainedModify OBJECT IDENTIFIER ::= {id-package 6}
+
+id-package-shadowConsumer OBJECT IDENTIFIER ::= {id-package 7}
+
+id-package-shadowSupplier OBJECT IDENTIFIER ::= {id-package 8}
+
+id-package-operationalBindingManagement OBJECT IDENTIFIER ::= {id-package 9}
+
+id-package-dapConnection OBJECT IDENTIFIER ::= {id-package 10}
+
+id-package-dspConnection OBJECT IDENTIFIER ::= {id-package 11}
+
+id-package-dispConnection OBJECT IDENTIFIER ::= {id-package 12}
+
+id-package-dopConnection OBJECT IDENTIFIER ::= {id-package 13}
+
+-- application contexts
+id-ac-directoryAccessAC OBJECT IDENTIFIER ::=
+ {id-ac 1}
+
+id-ac-directorySystemAC OBJECT IDENTIFIER ::= {id-ac 2}
+
+id-ac-directoryOperationalBindingManagementAC OBJECT IDENTIFIER ::= {id-ac 3}
+
+id-ac-shadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 4}
+
+id-ac-shadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 5}
+
+id-ac-reliableShadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 6}
+
+id-ac-reliableShadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 7}
+
+id-ac-shadowSupplierInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 8}
+
+id-ac-shadowConsumerInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 9}
+
+id-ac-directoryAccessWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 10}
+
+id-ac-directorySystemWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 11}
+
+id-ac-shadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 12}
+
+id-ac-shadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 13}
+
+id-ac-reliableShadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 14}
+
+id-ac-reliableShadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 15}
+
+id-ac-directoryOperationalBindingManagementWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 16}
+
+-- ASEs (obsolete)
+-- id-ase-readASE OBJECT IDENTIFIER ::= {id-ase 1}
+-- id-ase-searchASE OBJECT IDENTIFIER ::= {id-ase 2}
+-- id-ase-modifyASE OBJECT IDENTIFIER ::= {id-ase 3}
+-- id-ase-chainedReadASE OBJECT IDENTIFIER ::= {id-ase 4}
+-- id-ase-chainedSearchASE OBJECT IDENTIFIER ::= {id-ase 5}
+-- id-ase-chainedModifyASE OBJECT IDENTIFIER ::= {id-ase 6}
+-- id-ase-operationalBindingManagementASE OBJECT IDENTIFIER ::= {id-ase 7}
+-- id-ase-shadowConsumerASE OBJECT IDENTIFIER ::= {id-ase 8}
+-- id-ase-shadowSupplierASE OBJECT IDENTIFIER ::= {id-ase 9}
+-- abstract syntaxes
+id-as-directoryAccessAS OBJECT IDENTIFIER ::=
+ {id-as 1}
+
+id-as-directorySystemAS OBJECT IDENTIFIER ::= {id-as 2}
+
+id-as-directoryShadowAS OBJECT IDENTIFIER ::= {id-as 3}
+
+id-as-directoryOperationalBindingManagementAS OBJECT IDENTIFIER ::= {id-as 4}
+
+id-as-directoryReliableShadowAS OBJECT IDENTIFIER ::= {id-as 5}
+
+id-as-reliableShadowBindingAS OBJECT IDENTIFIER ::= {id-as 6}
+
+id-as-2or3se OBJECT IDENTIFIER ::= {id-as 7}
+
+END -- ProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..258c5f0b23
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
@@ -0,0 +1,75 @@
+-- Module Raster-Gr-Coding-Attributes (T.417:03/1993)
+
+Raster-Gr-Coding-Attributes {2 8 1 7 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Gr-Coding-Attributes, Compression, Tile-Type,
+ Bits-Per-Colour-Component, Subsampling;
+
+IMPORTS Coordinate-Pair
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2};
+
+Raster-Gr-Coding-Attributes ::= SET {
+ number-of-pels-per-line [0] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines [1] IMPLICIT INTEGER OPTIONAL,
+ compression [2] IMPLICIT Compression OPTIONAL,
+ number-of-discarded-pels [3] IMPLICIT INTEGER OPTIONAL,
+ bits-per-colour-component [4] Bits-Per-Colour-Component OPTIONAL,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)} OPTIONAL,
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [8] IMPLICIT Coordinate-Pair OPTIONAL,
+ tile-types [9] IMPLICIT SEQUENCE OF Tile-Type OPTIONAL,
+ subsampling [10] IMPLICIT Subsampling OPTIONAL,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ baseline(0), huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-extended-sequential-DCT(9),
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)} OPTIONAL,
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ -- basic and default value is "associated".
+ jbig-differential-layer
+ [17] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)}
+ OPTIONAL,
+ number-of-lines-per-stripe [18] IMPLICIT INTEGER OPTIONAL
+}
+
+Compression ::= INTEGER {uncompressed(0), compressed(1)}
+
+Tile-Type ::= INTEGER {
+ null-background(0), null-foreground(1), t6-encoded(2),
+ t4-one-dimensional-encoded(3), t4-two-dimensional-encoded(4),
+ bitmap-encoded(5), t6-encoded-msb(6), t4-one-dimensional-encoded-msb(7),
+ t4-two-dimensional-encoded-msb(8), jbig-bits-per-component-eq-1(9),
+ jpeg(10), jbig-bits-per-component-gr-1(11)}
+
+Bits-Per-Colour-Component ::= CHOICE {
+ single-integer INTEGER,
+ component-list SEQUENCE OF INTEGER
+}
+
+Subsampling ::= OCTET STRING
+
+-- The value OCTET STRING shall be chosen from the
+-- following table:
+-- Semantic Meaning JPEG notations Octet strings
+-- 4:1:1 ((2,2),(1,1),(1,1)) '221111'H
+-- 2:1:1 or 4:2:2 ((2,1),(1,1),(1,1)) '211111'H
+-- 1:1:1 ((1,1),(1,1),(1,1)) '111111'H
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..c8f3a2ff33
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
@@ -0,0 +1,92 @@
+-- Module Raster-Gr-Presentation-Attributes (T.417:03/1993)
+
+Raster-Gr-Presentation-Attributes {2 8 1 7 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Graphics-Attributes, Clipping, Measure-Pair, One-Of-Four-Angles,
+ One-Of-Two-Angles, Pel-Transmission-Density, Pel-Spacing, Spacing-Ratio,
+ Image-Dimensions, Coordinate-Pair;
+
+Raster-Graphics-Attributes ::= SET {
+ pel-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ pel-transmission-density [2] IMPLICIT Pel-Transmission-Density OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ clipping [4] IMPLICIT Clipping OPTIONAL,
+ pel-spacing [5] Pel-Spacing OPTIONAL,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio OPTIONAL,
+ image-dimensions [7] Image-Dimensions OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {
+ d0(0), -- d0
+ d90(1), -- d90
+ d180(2), --d180
+ d270(3) -- d270--}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), -- d90
+ d270(3) -- d270 --}
+
+Pel-Transmission-Density ::= INTEGER {
+ p5(2), -- 5 BMU (240 pels/25.4 mm)
+ p4(3), -- 4 BMU (300 pels/25.4 mm)
+ p3(4), -- 3 BMU (400 pels/25.4 mm)
+ p2(5), -- 2 BMU (600 pels/25.4 mm)
+ p1(6), -- 1 BMU (1200 pels/25.4 mm)
+ colour-grey-scale-p12(10), -- 12 BMU (100 pels/25.4 mm)
+ colour-grey-scale-p6(11), -- 6 BMU (200 pels/25.4 mm)
+ colour-grey-scale-p4(13), -- 4 BMU (300 pels/25.4 mm)
+ colour-grey-scale-p3(14), -- 3 BMU (400 pels/25.4 mm)
+ colour-grey-scale-p2(15), -- 2 BMU (600 pels/25.4 mm)
+ colour-grey-scale-p1(16), -- 1 BMU (1200 pels/25.4 mm)
+ p6(1)} -- 6 BMU (200 pels/25.4 mm)
+
+-- default and basic value is p6 (1)
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [0] IMPLICIT INTEGER
+}
+
+Clipping ::= SEQUENCE {
+ first-coordinate-pair [0] IMPLICIT Coordinate-Pair OPTIONAL,
+ second-coordinate-pair [1] IMPLICIT Coordinate-Pair OPTIONAL
+}
+
+Coordinate-Pair ::= SEQUENCE {x-coordinate INTEGER,
+ y-coordinate INTEGER
+}
+
+Pel-Spacing ::= CHOICE {
+ spacing
+ [0] IMPLICIT SEQUENCE {length [0] INTEGER,
+ pel-spaces [0] INTEGER},
+ null [1] IMPLICIT NULL
+}
+
+Spacing-Ratio ::= SEQUENCE {
+ line-spacing-value INTEGER,
+ pel-spacing-value INTEGER
+}
+
+Image-Dimensions ::= CHOICE {
+ width-controlled
+ [0] IMPLICIT SEQUENCE {minimum-width [0] INTEGER,
+ preferred-width [0] INTEGER},
+ height-controlled
+ [1] IMPLICIT SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] IMPLICIT SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag INTEGER {fixed(0), variable(1)}
+ },
+ automatic [3] IMPLICIT NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..365144ff35
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
@@ -0,0 +1,76 @@
+-- Module Raster-Gr-Profile-Attributes (T.417:03/1993)
+
+Raster-Gr-Profile-Attributes {2 8 1 7 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Ra-Gr-Presentation-Feature, Ra-Gr-Coding-Attribute,
+ Raster-Gr-Content-Defaults;
+
+IMPORTS
+ One-Of-Four-Angles, One-Of-Two-Angles, Pel-Transmission-Density,
+ Measure-Pair, Clipping, Pel-Spacing, Spacing-Ratio, Image-Dimensions,
+ Coordinate-Pair, Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2}
+ Compression, Tile-Type, Bits-Per-Colour-Component, Subsampling
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3};
+
+Ra-Gr-Coding-Attribute ::= CHOICE {
+ compression [0] IMPLICIT Compression,
+ bits-per-colour-component [4] Bits-Per-Colour-Component,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)},
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER,
+ tiling-offset [8] IMPLICIT Coordinate-Pair,
+ tiling-types [9] IMPLICIT Tile-Type,
+ subsampling [10] IMPLICIT Subsampling,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ huffman-baseline(0),
+ huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)},
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ jbig-tp-for-base-layer [14] IMPLICIT INTEGER {not-used(0), used(1)},
+ jbig-differential-layer
+ [15] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)},
+ number-of-lines-per-stripe [16] IMPLICIT INTEGER
+}
+
+Ra-Gr-Presentation-Feature ::= CHOICE {
+ initial-offset [3] IMPLICIT Measure-Pair,
+ clipping [4] IMPLICIT Clipping,
+ pel-spacing [5] Pel-Spacing,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio,
+ image-dimensions [7] Image-Dimensions,
+ pel-path [9] IMPLICIT One-Of-Four-Angles,
+ line-progression [10] IMPLICIT One-Of-Two-Angles,
+ pel-transmission-density [11] IMPLICIT Pel-Transmission-Density
+}
+
+-- The tag values used above preserve compatibility
+-- with Group 4 Class I facsimile data streams.
+Raster-Gr-Content-Defaults ::= SET {
+ COMPONENTS OF Raster-Graphics-Attributes,
+ compression [8] IMPLICIT Compression OPTIONAL,
+ number-of-pels-per-tile-line [11] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [12] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [13] IMPLICIT Coordinate-Pair OPTIONAL,
+ tiling-type [14] IMPLICIT Tile-Type OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Reliable-Transfer-APDU.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Reliable-Transfer-APDU.asn
new file mode 100644
index 0000000000..d00570b7e7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Reliable-Transfer-APDU.asn
@@ -0,0 +1,132 @@
+-- Module Reliable-Transfer-APDU (X.228:11/1988)
+
+Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ rTSE, rTSE-abstract-syntax, RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu; -- for use by Presentation Layer only
+
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+OPEN ::= CLASS {&Type
+}WITH SYNTAX {TYPE &Type
+}
+
+rTSE-abstract-syntax OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t reliable-transfer(3) abstract-syntax(2)}
+
+rTSE CONTRACT ::= {ID {joint-iso-itu-t reliable-transfer(3) aseID(1)}
+}
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+-- Tags [19], [20], [21] are used by the values of the UNBIND macro of the RO-notation of
+-- Recommendation X.219. Tags [0] to [15] inclusive are reserved for the
+-- use by the APDUs of ROSE (Recommendation X229). Any occurrence of
+-- ANY in this module shall be replaced by a single ASN. 1 type (if any) in an RTSE-user
+-- protocol specification. In addition any RTSE-user protocol sharing a single named
+-- abstract syntax with the RTSE protocol shall use distinct tags for the single
+-- presentation data values in the user data parameters of the RT-CLOSE (if any) and
+-- RT- TRANSFER services. These tags shall be distinct from the tag values [16], [17],
+-- [18] and [22] and from the ASN. 1 types INTEGER and OCTET STRING.
+-- Note - The above conditions are ensured, if the RTSE-user protocol specification uses the
+-- RO-notation of Recommendation X229.
+-- In X.410-1984 mode only the components of RTORQapdu, RTOACapdu, RTORJapdu
+-- and RTABapdu are used by the presentation layer. This has the effect that the following
+-- APDU types appear in the protocol in X.410-1984 mode instead of the alternative types
+-- of the RTSE-apdus type:
+-- RTORQapdu
+-- RTOACapdu
+-- RTORJapdu
+-- RTTPapdu
+-- RTTRapdu
+-- RTABapdu
+RTORQapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ dialogueMode
+ [2] IMPLICIT INTEGER {monologue(0), twa(1)} DEFAULT monologue,
+ connectionDataRQ [3] ConnectionData,
+ applicationProtocol
+ [4] IMPLICIT INTEGER OPTIONAL --solely in X.410-1984 mode--
+}
+
+RTOACapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ connectionDataAC [2] ConnectionData
+}
+
+RTORJapdu ::= SET {
+ refuseReason [0] IMPLICIT RefuseReason OPTIONAL, -- only in X.410-1984 mode
+ userDataRJ
+ [1] OPEN.&Type OPTIONAL -- RTSE user data, only in normal mode--
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] OPEN.&Type OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+ConnectionData ::= CHOICE {
+ open [0] OPEN.&Type, -- RTSE user data
+
+ -- this alternative is encoded as [0] IMPLICIT NULL
+ -- in the case of absence of RTSE user data,
+ recover [1] IMPLICIT SessionConnectionIdentifier
+}
+
+SessionConnectionIdentifier ::= SEQUENCE {
+ callingSSuserReference CallingSSuserReference,
+ commonReference CommonReference,
+ additionalReferenceInformation
+ [0] IMPLICIT AdditionalReferenceInformation OPTIONAL
+}
+
+RefuseReason ::= INTEGER {
+ rtsBusy(0), cannotRecover(1), validationFailure(2),
+ unacceptableDialogueMode(3)}
+
+CallingSSuserReference ::= CHOICE {
+ t61String T61String -- solely in X.410-1984 --,
+ octetString OCTET STRING -- solely in normal mode --
+}
+
+CommonReference ::= UTCTime
+
+AdditionalReferenceInformation ::= T61String
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
new file mode 100644
index 0000000000..4a59cc403b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
@@ -0,0 +1,103 @@
+-- Module Remote-Operations-Abstract-Syntaxes (X.882:07/1994)
+
+Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t remote-operations(4)
+ remote-operations-abstract-syntaxes(12) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, noInvokeId, ROS{}, Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ACSE-apdu
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ combine{}, AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+acse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ ACSE-apdu
+ IDENTIFIED BY
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+}
+
+rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus
+ IDENTIFIED BY {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+}
+
+AllValues{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind},
+ ros-singleAS
+ ROS-SingleAS{{ROSEInvokeIds},
+ combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&ResponderConsumerOf}, {
+ ...},
+ {-- Information Object of class OPERATION-PACKAGE to be defined -- }}}
+}
+
+ROS-SingleAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS{{ROSEInvokeIds}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+ROSEInvokeIds InvokeId ::= {ALL EXCEPT noInvokeId}
+
+END -- end of the remote-operations-abstract-syntaxes module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..e55ea3c05e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,163 @@
+-- Module Remote-Operations-Generic-ROS-PDUs (X.880:07/1994)
+
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
new file mode 100644
index 0000000000..671cf0e780
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
@@ -0,0 +1,36 @@
+-- Module Remote-Operations-Information-Objects-extensions (X.881:07/1994)
+
+Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &associationRealization REALIZATION OPTIONAL,
+ &transferRealization REALIZATION,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ [ESTABLISHED BY &associationRealization]
+ INFORMATION TRANSFER BY &transferRealization
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+REALIZATION ::= TYPE-IDENTIFIER
+
+-- information objects ABSTRACT-SYNTAX and TYPE-IDENTIFIER are defined in ITU-T Rec. X.681 |
+-- ISO/IEC 8824-2
+END -- end of the information-objects-extensions module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..b497e4126b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,123 @@
+-- Module Remote-Operations-Information-Objects (X.880:07/1994)
+
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Realizations.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Realizations.asn
new file mode 100644
index 0000000000..73b49c8d7a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Realizations.asn
@@ -0,0 +1,81 @@
+-- Module Remote-Operations-Realizations (X.882:07/1994)
+
+Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ REALIZATION
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RealizationParameter ::= SEQUENCE {
+ realization-type ENUMERATED {association-service(0), transfer-service(1)},
+ concatenation BOOLEAN DEFAULT FALSE
+}
+
+acse REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-without-concatenation(0)}
+}
+
+acse-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-with-concatenation(1)}
+}
+
+association-by-RTSE REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ association-by-rtse(2)}
+}
+
+pData REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-without-concatenation(0)}
+}
+
+pData-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (transfer-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-with-concatenation(1)}
+}
+
+transfer-by-RTSE REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ rTSE-transfer(2)}
+}
+
+END -- end of the OSI realizations module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..e526ff4600
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,95 @@
+-- Module Remote-Operations-Useful-Definitions (X.880:07/1994)
+
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/SeseAPDUs.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/SeseAPDUs.asn
new file mode 100644
index 0000000000..2917122e94
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/SeseAPDUs.asn
@@ -0,0 +1,116 @@
+-- Module SeseAPDUs (X.832:04/1995)
+
+SeseAPDUs {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ dirAuthenticationTwoWay
+ FROM GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)}
+ SECURITY-EXCHANGE, SE-ERROR
+ FROM Notation notation;
+
+SESEapdus{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ CHOICE {
+ se-transfer SETransfer{{ValidSEs}, {InvocationIdSet}},
+ se-u-abort SEUAbort{{ValidSEs}, {InvocationIdSet}},
+ se-p-abort SEPAbort{{ValidSEs}, {InvocationIdSet}}
+}
+
+SETransfer{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ seIdentifier SECURITY-EXCHANGE.&sE-Identifier({ValidSEs}),
+ -- This identifies one of the security-
+ -- exchanges supported by the particular SESE
+ -- abstract syntax
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs}{@seIdentifier}),
+ -- This identifies one of the security-
+ -- exchange-items of the security exchange
+ -- indicated by "seIdentifier"
+ seItem
+ SECURITY-EXCHANGE.&SE-Items.&ItemType
+ ({ValidSEs}{@seIdentifier, @itemIdentifier}),
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active security exchange--
+
+ -- if start flag is not true -- }) DEFAULT noInvocationId,
+ startFlag BOOLEAN DEFAULT FALSE,
+ -- This field is set only as the first security-
+ -- exchange-item of a security-exchange is
+ -- transferred.
+ endFlag BOOLEAN DEFAULT FALSE-- This field is set as the last security-exchange-
+-- item of a security-exchange is transferred. It is
+-- needed to accommodate those mechanisms requiring
+-- n exchanges, where n is not known a priori
+}
+
+SEUAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active or just-completed--
+
+ -- security exchange -- }) DEFAULT noInvocationId,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ errors SEQUENCE OF SEerror{{ValidSEs}} OPTIONAL
+ -- needed to handle multiple error codes
+}
+
+SEPAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId InvocationId(InvocationIdSet) OPTIONAL,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ problemCode ProblemCode
+}
+
+InvocationId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvocationId InvocationId ::= absent:NULL
+
+NoInvocationId InvocationId ::= {noInvocationId}
+
+SEerror{SECURITY-EXCHANGE:ValidSEs} ::= SEQUENCE {
+ errorCode SE-ERROR.&errorCode({Errors{{ValidSEs}}}) OPTIONAL,
+ errorParameter
+ SE-ERROR.&ParameterType({Errors{{ValidSEs}}}) OPTIONAL
+}
+
+Errors{SECURITY-EXCHANGE:ValidSEs} SE-ERROR ::= {ValidSEs.&SE-Items.&Errors}
+
+ProblemCode ::= CHOICE {
+ general GeneralProblem,
+ transfer TransferProblem,
+ abort AbortProblem
+}
+
+GeneralProblem ::= ENUMERATED {invalidAPDU(0)}
+
+TransferProblem ::= ENUMERATED {
+ duplicateInvocationId(0), unrecognizedSecurityExchange(1), mistypedItem(2),
+ inappropriateInvocationId(3), alternatingSequenceError(4)}
+
+AbortProblem ::= ENUMERATED {
+ unrecognizedInvocationId(0), abortUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedErrorParameter(4)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/SpkmGssTokens.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/SpkmGssTokens.asn
new file mode 100644
index 0000000000..02205bd64c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/SpkmGssTokens.asn
@@ -0,0 +1,257 @@
+-- Module SpkmGssTokens (RFC 2025:10/1996)
+SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkmGssTokens(10)}
+--
+-- Copyright (C) The Internet Society (1996). This version of
+-- this ASN.1 module is part of RFC 2025;
+-- see the RFC itself for full legal notices.
+--
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ Name
+ FROM InformationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ informationFramework(1) 3}
+ Certificate, CertificateList, CertificatePair, AlgorithmIdentifier, Validity
+ FROM AuthenticationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- types
+SPKM-REQ ::= SEQUENCE {
+ requestToken REQ-TOKEN,
+ certif-data [0] CertificationData OPTIONAL,
+ auth-data [1] AuthorizationData OPTIONAL
+}
+
+CertificationData ::= SEQUENCE {
+ certificationPath [0] CertificationPath OPTIONAL,
+ certificateRevocationList [1] CertificateList OPTIONAL
+} -- at least one of the above shall be present
+
+CertificationPath ::= SEQUENCE {
+ userKeyId [0] OCTET STRING OPTIONAL,
+ userCertif [1] Certificate OPTIONAL,
+ verifKeyId [2] OCTET STRING OPTIONAL,
+ userVerifCertif [3] Certificate OPTIONAL,
+ theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL
+} -- Presence of [2] or [3] implies that [0] or [1] must also be
+
+-- present. Presence of [4] implies that at least one of [0], [1],
+-- [2], and [3] must also be present.
+REQ-TOKEN ::= SEQUENCE {
+ req-contents Req-contents,
+ algId AlgorithmIdentifier,
+ req-integrity Integrity -- "token" is Req-contents
+}
+
+Integrity ::= BIT STRING
+
+-- If corresponding algId specifies a signing algorithm,
+-- "Integrity" holds the result of applying the signing procedure
+-- specified in algId to the BER-encoded octet string which results
+-- from applying the hashing procedure (also specified in algId) to
+-- the DER-encoded octets of "token".
+-- Alternatively, if corresponding algId specifies a MACing
+-- algorithm, "Integrity" holds the result of applying the MACing
+-- procedure specified in algId to the DER-encoded octets of
+-- "token"
+Req-contents ::= SEQUENCE {
+ tok-id INTEGER(256), -- shall contain 0100 (hex)
+ context-id Random-Integer,
+ pvno BIT STRING,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randSrc Random-Integer,
+ targ-name Name,
+ src-name [0] Name OPTIONAL,
+ req-data Context-Data,
+ validity [1] Validity OPTIONAL,
+ key-estb-set Key-Estb-Algs,
+ key-estb-req BIT STRING OPTIONAL,
+ key-src-bind OCTET STRING OPTIONAL
+ -- This field must be present for the case of SPKM-2
+ -- unilateral authen. if the K-ALG in use does not provide
+ -- such a binding (but is optional for all other cases).
+ -- The octet string holds the result of applying the
+ -- mandatory hashing procedure (in MANDATORY I-ALG;
+ -- see Section 2.1) as follows: MD5(src || context_key),
+ -- where "src" is the DER-encoded octets of src-name,
+ -- "context-key" is the symmetric key (i.e., the
+ -- unprotected version of what is transmitted in
+ -- key-estb-req), and "||" is the concatenation operation.
+}
+
+Random-Integer ::= BIT STRING
+
+Context-Data ::= SEQUENCE {
+ channelId ChannelId OPTIONAL,
+ seq-number INTEGER OPTIONAL,
+ options Options,
+ conf-alg Conf-Algs,
+ intg-alg Intg-Algs,
+ owf-alg OWF-Algs
+}
+
+ChannelId ::= OCTET STRING
+
+Options ::= BIT STRING {
+ delegation-state(0), mutual-state(1), replay-det-state(2), sequence-state(3),
+ conf-avail(4), integ-avail(5), target-certif-data-required(6)}
+
+Conf-Algs ::= CHOICE {
+ algs [0] SEQUENCE OF AlgorithmIdentifier,
+ null [1] NULL
+}
+
+Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+SPKM-REP-TI ::= SEQUENCE {
+ responseToken REP-TI-TOKEN,
+ certif-data CertificationData OPTIONAL
+ -- present if target-certif-data-required option was
+} -- set to TRUE in SPKM-REQ
+
+REP-TI-TOKEN ::= SEQUENCE {
+ rep-ti-contents Rep-ti-contents,
+ algId AlgorithmIdentifier,
+ rep-ti-integ Integrity -- "token" is Rep-ti-contents
+}
+
+Rep-ti-contents ::= SEQUENCE {
+ tok-id INTEGER(512), -- shall contain 0200 (hex)
+ context-id Random-Integer,
+ pvno [0] BIT STRING OPTIONAL,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randTarg Random-Integer,
+ src-name [1] Name OPTIONAL,
+ targ-name Name,
+ randSrc Random-Integer,
+ rep-data Context-Data,
+ validity [2] Validity OPTIONAL,
+ key-estb-id AlgorithmIdentifier OPTIONAL,
+ key-estb-str BIT STRING OPTIONAL
+}
+
+SPKM-REP-IT ::= SEQUENCE {
+ responseToken REP-IT-TOKEN,
+ algId AlgorithmIdentifier,
+ rep-it-integ Integrity -- "token" is REP-IT-TOKEN
+}
+
+REP-IT-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(768), -- shall contain 0300 (hex)
+ context-id Random-Integer,
+ randSrc Random-Integer,
+ randTarg Random-Integer,
+ targ-name Name,
+ src-name Name OPTIONAL,
+ key-estb-rep BIT STRING OPTIONAL
+}
+
+SPKM-ERROR ::= SEQUENCE {
+ errorToken ERROR-TOKEN,
+ algId AlgorithmIdentifier,
+ integrity Integrity -- "token" is ERROR-TOKEN
+}
+
+ERROR-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(1024), -- shall contain 0400 (hex)
+ context-id Random-Integer
+}
+
+SPKM-MIC ::= SEQUENCE {mic-header Mic-Header,
+ int-cksum BIT STRING
+}
+
+Mic-Header ::= SEQUENCE {
+ tok-id INTEGER(257), -- shall contain 0101 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+SeqNum ::= SEQUENCE {num INTEGER,
+ dir-ind BOOLEAN
+}
+
+SPKM-WRAP ::= SEQUENCE {wrap-header Wrap-Header,
+ wrap-body Wrap-Body
+}
+
+Wrap-Header ::= SEQUENCE {
+ tok-id INTEGER(513), -- shall contain 0201 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ conf-alg [1] Conf-Alg OPTIONAL,
+ snd-seq [2] SeqNum OPTIONAL
+}
+
+Wrap-Body ::= SEQUENCE {int-cksum BIT STRING,
+ data BIT STRING
+}
+
+Conf-Alg ::= CHOICE {algId [0] AlgorithmIdentifier,
+ null [1] NULL
+}
+
+SPKM-DEL ::= SEQUENCE {del-header Del-Header,
+ int-cksum BIT STRING
+}
+
+Del-Header ::= SEQUENCE {
+ tok-id INTEGER(769), -- shall contain 0301 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+-- other types
+-- from [RFC-1508]
+MechType ::= OBJECT IDENTIFIER
+
+InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ thisMech MechType,
+ innerContextToken SPKMInnerContextToken
+} -- when thisMech is SPKM-1 or SPKM-2
+
+SPKMInnerContextToken ::= CHOICE {
+ req [0] SPKM-REQ,
+ rep-ti [1] SPKM-REP-TI,
+ rep-it [2] SPKM-REP-IT,
+ error [3] SPKM-ERROR,
+ mic [4] SPKM-MIC,
+ wrap [5] SPKM-WRAP,
+ del [6] SPKM-DEL
+}
+
+-- from [RFC-1510]
+AuthorizationData ::=
+ SEQUENCE OF SEQUENCE {ad-type INTEGER,
+ ad-data OCTET STRING}
+
+-- object identifier assignments
+md5-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) md5-DES-CBC(1)}
+
+sum64-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) sum64-DES-CBC(2)}
+
+spkm-1 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-1(1)}
+
+spkm-2 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-2(2)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Style-Descriptors.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Style-Descriptors.asn
new file mode 100644
index 0000000000..8f033eab6f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Style-Descriptors.asn
@@ -0,0 +1,190 @@
+-- Module Style-Descriptors (T.415:03/1993)
+
+Style-Descriptors {2 8 1 5 10} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Presentation-Style-Descriptor, Presentation-Attributes, Content-Type,
+ Content-Architecture-Class, Layout-Style-Descriptor, Fill-Order,
+ Block-Alignment;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Category-Name,
+ Object-Id-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Transparency, Colour, Border, Layout-Object-Type,
+ Content-Background-Colour, Content-Foreground-Colour, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Attributes
+ FROM Character-Presentation-Attributes {2 8 1 6 2
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geometric-Graphics-Attributes
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+
+Presentation-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ transparency [2] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [5] IMPLICIT Border OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Presentation-Attributes ::= SET {
+ content-architecture-class
+ CHOICE {a Content-Architecture-Class,
+ b Content-Type} OPTIONAL,
+ character-attributes [0] IMPLICIT Character-Attributes OPTIONAL,
+ raster-graphics-attributes
+ [1] IMPLICIT Raster-Graphics-Attributes OPTIONAL,
+ geometric-graphics-attributes
+ [2] IMPLICIT Geometric-Graphics-Attributes OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of presentation attributes:
+ -- [3] videotex, for use in conjunction with CCITT Recommendations
+ -- [4] audio
+ -- [5] dynamic-graphics
+ ext-cont-arch-pres-attributes [6] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Content-Type ::= [APPLICATION 2] IMPLICIT INTEGER {formatted-raster-graphics(1)
+}
+
+-- The integer representation for content architecture class,
+-- Content-Type, is only to be used if the value of the document
+-- profile attribute "document application profile" is an integer.
+-- The value 'formatted-raster-graphics' represents the formatted raster
+-- graphics content architecture as defined in ITU-T Rec. T.417 | ISO/IEC 8613-7.
+Content-Architecture-Class ::= OBJECT IDENTIFIER
+
+Layout-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ layout-directives [4] IMPLICIT Layout-Directives OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Layout-Directives ::= SET {
+ indivisibility
+ CHOICE {to-layout-object-class [0] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [1] IMPLICIT Category-Name,
+ to-layout-object-type [2] IMPLICIT Layout-Object-Type,
+ null [15] IMPLICIT NULL} OPTIONAL,
+ separation [3] IMPLICIT Separation OPTIONAL,
+ offset [4] IMPLICIT Offset OPTIONAL,
+ fill-order [5] IMPLICIT Fill-Order OPTIONAL,
+ concatenation [6] IMPLICIT Concatenation OPTIONAL,
+ new-layout-object
+ CHOICE {to-layout-object-class [7] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [8] IMPLICIT Category-Name,
+ to-layout-object-type [9] IMPLICIT Layout-Object-Type,
+ null [16] IMPLICIT NULL} OPTIONAL,
+ same-layout-object [10] IMPLICIT Same-Layout-Object OPTIONAL,
+ layout-object-class
+ [11] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ logical-stream-category [19] IMPLICIT Category-Name OPTIONAL,
+ logical-stream-sub-category [20] IMPLICIT Category-Name OPTIONAL,
+ layout-category [12] IMPLICIT Category-Name OPTIONAL,
+ synchronization
+ CHOICE {a [13] IMPLICIT Object-or-Class-Identifier,
+ b [17] Object-Id-Expression,
+ c [18] IMPLICIT NULL} OPTIONAL,
+ block-alignment [14] IMPLICIT Block-Alignment OPTIONAL,
+ floatability-range [24] IMPLICIT Floatability-Range OPTIONAL
+}
+
+Separation ::= SET {
+ leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Offset ::= SET {
+ leading [3] IMPLICIT INTEGER OPTIONAL,
+ trailing [2] IMPLICIT INTEGER OPTIONAL,
+ left-hand [1] IMPLICIT INTEGER OPTIONAL,
+ right-hand [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Fill-Order ::= INTEGER {normal(0), reverse(1)}
+
+Concatenation ::= INTEGER {non-concatenated(0), concatenated(1)}
+
+Same-Layout-Object ::= SET {
+ logical-object
+ CHOICE {a [0] IMPLICIT Object-or-Class-Identifier,
+ b [4] Object-Id-Expression,
+ c [5] IMPLICIT NULL},
+ layout-object
+ CHOICE {d [1] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category [6] IMPLICIT Category-Name,
+ to-stream-sub-category [7] IMPLICIT Category-Name,
+ to-layout-category [2] IMPLICIT Category-Name,
+ e [3] IMPLICIT Layout-Object-Type} OPTIONAL
+}
+
+Floatability-Range ::= SET {
+ forward-limit
+ [0] SEQUENCE {logical-object
+ CHOICE {a [2] IMPLICIT Object-or-Class-Identifier,
+ b [3] Object-Id-Expression,
+ c [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ d [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL,
+ backward-limit
+ [1] SEQUENCE {logical-object
+ CHOICE {e [2] IMPLICIT Object-or-Class-Identifier,
+ f [3] Object-Id-Expression,
+ g [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ h [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL
+}
+
+Block-Alignment ::= INTEGER {right-hand(0), left-hand(1), centred(2), null(3)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Subprofiles.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Subprofiles.asn
new file mode 100644
index 0000000000..bfcd0b5dbc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Subprofiles.asn
@@ -0,0 +1,96 @@
+-- Module Subprofiles (T.422:08/1995)
+
+Subprofiles {2 8 1 12 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Subprofile-Descriptor, Subprofile-Identifier;
+
+IMPORTS
+ Character-Data, Date-and-Time, Document-Reference, Personal-Name,
+ Originators, Other-User-Information, Local-File-References,
+ Security-Information
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0};
+
+Subprofile-Descriptor ::= SET {
+ subprofile-identifier [0] Subprofile-Identifier,
+ subprofile-reference [1] Subprofile-Reference OPTIONAL,
+ subprofile-precedence [2] INTEGER OPTIONAL,
+ document-fragment-reference [3] Location-Expression,
+ content-architecture-classes
+ [4] SET OF OBJECT IDENTIFIER OPTIONAL, -- shall always
+
+ -- be present, except when used in a location expression
+ document-fragment-management-attributes
+ [5] Document-Fragment-Management-Attributes OPTIONAL
+}
+
+Subprofile-Identifier ::= [APPLICATION 8] PrintableString
+
+-- only digits and spaces are used in the present version of this Specification;
+-- other characters are reserved for extensions
+Subprofile-Reference ::= CHOICE {
+ unique-reference [0] OBJECT IDENTIFIER,
+ descriptive-reference [1] Character-Data
+}
+
+Document-Fragment-Management-Attributes ::= SET {
+ document-fragment-description [0] Document-Fragment-Description OPTIONAL,
+ dates-and-times [1] Dates-and-Times OPTIONAL,
+ originators [2] Originators OPTIONAL,
+ other-user-information [3] Other-User-Information OPTIONAL,
+ external-references [4] External-References2 OPTIONAL,
+ local-file-references [5] Local-File-References OPTIONAL,
+ languages [6] SET OF Character-Data OPTIONAL,
+ security-information [7] Security-Information OPTIONAL
+}
+
+Document-Fragment-Description ::= SET {
+ title [0] Character-Data OPTIONAL,
+ subject [1] Character-Data OPTIONAL,
+ document-fragment-type [2] Character-Data OPTIONAL,
+ abstract [3] Character-Data OPTIONAL,
+ keywords [4] SET OF Character-Data OPTIONAL
+}
+
+Dates-and-Times ::= SET {
+ document-fragment-date-and-time [0] Date-and-Time OPTIONAL,
+ creation-date-and-time [1] Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] Date-and-Time OPTIONAL,
+ start-date-and-time [4] Date-and-Time OPTIONAL,
+ purge-date-and-time [5] Date-and-Time OPTIONAL,
+ release-date-and-time [6] Date-and-Time OPTIONAL,
+ revision-history
+ [7] SEQUENCE OF
+ SET {revision-date-and-time [0] Date-and-Time OPTIONAL,
+ version-identifier [1] Character-Data OPTIONAL,
+ revisers
+ [2] SET OF
+ SET {names [0] SET OF Personal-Name OPTIONAL,
+ position [1] Character-Data OPTIONAL,
+ organization [2] Character-Data OPTIONAL
+ } OPTIONAL,
+ version-reference
+ [3] Document-or-Document-Fragment-Reference OPTIONAL,
+ user-comments [4] Character-Data OPTIONAL} OPTIONAL
+}
+
+External-References2 ::= SET {
+ references-to-other-documents-or-document-fragments
+ [0] SET OF Document-or-Document-Fragment-Reference OPTIONAL,
+ superseded-documents-or-document-fragments
+ [1] SET OF Document-or-Document-Fragment-Reference OPTIONAL
+}
+
+Document-or-Document-Fragment-Reference ::= CHOICE {
+ document [0] Document-Reference,
+ document-fragment [1] Subprofile-Reference
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Temporal-Relationships.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Temporal-Relationships.asn
new file mode 100644
index 0000000000..9633995e3b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Temporal-Relationships.asn
@@ -0,0 +1,92 @@
+-- Module Temporal-Relationships (T.424:07/1996)
+
+Temporal-Relationships {2 8 1 14 0} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Temporal-Relations, Presentation-Time, Document-Presentation-Time,
+ Time-Scaling;
+
+IMPORTS
+ Date-and-Time
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 and C.4
+ Object-or-Class-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7};
+
+-- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+Temporal-Relations ::= SET {
+ synchronization-type [0] IMPLICIT Synchronization-Type,
+ subordinate-nodes
+ [1] SEQUENCE OF
+ SET {node-identifier [0] IMPLICIT Node-Identifier,
+ start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ duration [2] Indefinite-or-Time-Delay OPTIONAL,
+ cyclic [3] IMPLICIT Cyclic OPTIONAL,
+ end-time [4] IMPLICIT Time-Delay OPTIONAL,
+ application-comments [5] IMPLICIT OCTET STRING OPTIONAL
+ }
+}
+
+-- The value 'null' is represented by an empty set
+Synchronization-Type ::= INTEGER {
+ parallel-last(0), parallel-first(1), parallel-selective(2), sequential(3)
+}
+
+Node-Identifier ::= PrintableString
+
+-- only digits and spaces are used
+-- the first digit is either 2 for a logical object class or 3 for a logical object
+Cyclic ::= SET {
+ number-of-cycles [0] CHOICE {indefinite Indefinite,
+ a INTEGER},
+ cycle-start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ cycle-duration [2] Indefinite-or-Time-Delay OPTIONAL
+}
+
+Indefinite ::= NULL
+
+Time-Delay ::= INTEGER {indefinite(-1)}
+
+Presentation-Time ::= SET {
+ timing
+ CHOICE {fixed-timing [0] IMPLICIT INTEGER,
+ variable-timing [1] IMPLICIT Time-Spec} OPTIONAL,
+ duration
+ CHOICE {fixed-duration
+ [2] CHOICE {indefinite-or-time-delay Indefinite-or-Time-Delay,
+ object-or-class-identifier
+ Object-or-Class-Identifier},
+ rule-A [3] IMPLICIT Rule-Spec,
+ rule-B [4] IMPLICIT Rule-Spec} OPTIONAL,
+ cyclic [5] Cyclic OPTIONAL
+}
+
+-- The value 'null' is represented by an empty set
+Time-Spec ::= SET {
+ start-offset [0] IMPLICIT INTEGER OPTIONAL,
+ end-offset [1] IMPLICIT INTEGER OPTIONAL,
+ start-separation [2] IMPLICIT INTEGER OPTIONAL,
+ end-separation [3] IMPLICIT INTEGER OPTIONAL
+}
+
+Rule-Spec ::= SET {
+ minimum-duration [0] IMPLICIT INTEGER OPTIONAL,
+ maximum-duration [1] IMPLICIT INTEGER OPTIONAL
+}
+
+Indefinite-or-Time-Delay ::= CHOICE {
+ indefinite [0] IMPLICIT NULL,
+ fixed [1] Time-Delay
+}
+
+Document-Presentation-Time ::= Date-and-Time
+
+Time-Scaling ::= [0] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Text-Units.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Text-Units.asn
new file mode 100644
index 0000000000..ccc64a52f5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Text-Units.asn
@@ -0,0 +1,72 @@
+-- Module Text-Units (T.415:03/1993)
+
+Text-Units {2 8 1 5 12} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Text-Unit, Type-Of-Coding;
+
+IMPORTS
+ Content-Portion-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Character-Coding-Attributes
+ FROM Character-Coding-Attributes {2 8 1 6 3
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Coding-Attributes
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Coding-Attributes
+ FROM Geo-Gr-Coding-Attributes {2 8 1 8 3
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Videotex-Coding-Attributes
+ FROM Videotex-Coding-Attributes ;
+
+Text-Unit ::= SEQUENCE {
+ content-portion-attributes Content-Portion-Attributes OPTIONAL,
+ content-information Content-Information OPTIONAL
+}
+
+Content-Portion-Attributes ::= SET {
+ content-identifier-layout Content-Portion-Identifier OPTIONAL,
+ content-identifier-logical [4] IMPLICIT Content-Portion-Identifier OPTIONAL,
+ type-of-coding Type-Of-Coding OPTIONAL,
+ coding-attributes
+ CHOICE {character-coding-attributes
+ [1] IMPLICIT Character-Coding-Attributes,
+ raster-gr-coding-attributes
+ [2] IMPLICIT Raster-Gr-Coding-Attributes,
+ geo-gr-coding-attributes
+ [7] IMPLICIT Geo-Gr-Coding-Attributes,
+ videotex-coding-attributes
+ [8] IMPLICIT Videotex-Coding-Attributes,
+ -- the use of the data item "videotex-coding-attributes" is applicable to
+ -- ITU-T Rec. T.410 Series only
+ -- the following tags are reserved for additional types
+ -- of coding attributes:
+ -- [9] audio
+ -- [10] dynamic-graphics
+ ext-cont-arch-coding-attributes [11] IMPLICIT EXTERNAL} OPTIONAL,
+ alternative-representation [3] IMPLICIT Alternative-Representation OPTIONAL
+}
+
+Content-Information ::= CHOICE {
+ content OCTET STRING,
+ tiled-content Tiled-Content
+}
+
+Tiled-Content ::= SEQUENCE OF OCTET STRING
+
+Type-Of-Coding ::= CHOICE {
+ a [0] IMPLICIT INTEGER {t6(1)},
+ b [6] IMPLICIT OBJECT IDENTIFIER
+}
+
+Alternative-Representation ::= OCTET STRING
+
+-- string of characters from the sets designated by the document
+-- profile attribute "alternative representation character sets",
+-- plus carriage return and line feed
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/UpperBounds.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/UpperBounds.asn
new file mode 100644
index 0000000000..c97c83a569
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 17 --This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/x420/Videotex-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_SUITE_data/x420/Videotex-Coding-Attributes.asn
new file mode 100644
index 0000000000..18e51cbc0d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/x420/Videotex-Coding-Attributes.asn
@@ -0,0 +1,30 @@
+-- Module Videotex-Coding-Attributes (T.101:11/1994)
+Videotex-Coding-Attributes DEFINITIONS ::=
+BEGIN
+
+EXPORTS Videotex-Coding-Attributes;
+
+Videotex-Coding-Attributes ::= SET {
+ subset [0] IMPLICIT Subset OPTIONAL,
+ rank [1] IMPLICIT Rank OPTIONAL,
+ profile [2] IMPLICIT Profile OPTIONAL
+}
+
+Subset ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5), profile1(81),
+ profile2(82), profile3(83), profile4(84), profileX1-1(85), profileX1-2(86),
+ profileX1-3(87), profileX1-4(88), profileX2-1(89), profileX2-2(90),
+ profileX2-3(91), profileX2-4(92)}
+
+Rank ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5)}
+
+Profile ::= INTEGER {
+ undefined(0), profile1(81), profile2(82), profile3(83), profile4(84),
+ profileX1-1(85), profileX1-2(86), profileX1-3(87), profileX1-4(88),
+ profileX2-1(89), profileX2-2(90), profileX2-3(91), profileX2-4(92)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_particular_SUITE.erl.src b/lib/asn1/test/asn1_bin_particular_SUITE.erl.src
new file mode 100644
index 0000000000..0e153238ad
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_particular_SUITE.erl.src
@@ -0,0 +1,2 @@
+
+particular() -> [].
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/AA1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/AA1.asn
new file mode 100644
index 0000000000..c2c20f17a1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/AA1.asn
@@ -0,0 +1,13 @@
+AA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ B
+ FROM AA2;
+
+T1 ::= SEQUENCE (SIZE (1..10)) OF B
+T2 ::= SEQUENCE (SIZE (1..10)) OF B
+T3 ::= SEQUENCE (SIZE (1..10)) OF INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/AA2.asn1db b/lib/asn1/test/asn1_bin_v2_SUITE_data/AA2.asn1db
new file mode 100644
index 0000000000..3bf2c1b89d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/AA2.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BadEnumValue1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadEnumValue1.asn
new file mode 100644
index 0000000000..dbc224a74b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadEnumValue1.asn
@@ -0,0 +1,8 @@
+BadEnumValue1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+enumWrongVal E3 ::= sunday
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BadTypeEnding.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadTypeEnding.asn
new file mode 100644
index 0000000000..3ccd838ac0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadTypeEnding.asn
@@ -0,0 +1,6 @@
+BadTypeEnding DEFINITIONS ::=
+BEGIN
+
+T ::= Typ;
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment1.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment1.asn1
new file mode 100644
index 0000000000..a5d4984e60
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment1.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment1 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 integer ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment2.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment2.asn1
new file mode 100644
index 0000000000..7a96406001
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueAssignment2.asn1
@@ -0,0 +1,8 @@
+BadValueAssignment2 DEFINITIONS ::=
+BEGIN
+
+int INTEGER ::= 3
+
+int2 ::= 3
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueSet.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueSet.asn1
new file mode 100644
index 0000000000..68bd4380b7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BadValueSet.asn1
@@ -0,0 +1,9 @@
+BadValueSet DEFINITIONS ::=
+BEGIN
+
+Int INTEGER ::= {1|2|3}
+
+Int2 INTEGER ::= {
+ 1,2,3}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/BitStr.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/BitStr.py
new file mode 100644
index 0000000000..1d5bc21fda
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/BitStr.py
@@ -0,0 +1,56 @@
+BitStr DEFINITIONS ::=
+BEGIN
+
+-- F.2.5.1
+-- Use a bit string type to model binary data whose format and
+-- length are unspecified,
+-- or specified elsewhere, and whose length in bits is not necessarily
+-- a multiple of eight.
+-- EXAMPLE
+
+G3FacsimilePage ::= BIT STRING
+-- a sequence of bits conforming to Recommendation T.4.
+
+image G3FacsimilePage ::= '100110100100001110110'B
+trailer BIT STRING ::= '0123456789ABCDEF'H
+body1 G3FacsimilePage ::= '1101'B
+body2 G3FacsimilePage ::= '1101000'B
+
+-- F.2.5.2
+-- Use a bit string type with a size constraint to model the
+-- values of a fixed sized bit field.
+-- EXAMPLE
+
+BitField ::= BIT STRING (SIZE (12))
+map1 BitField ::= '100110100100'B
+map2 BitField ::= '9A4'H
+map3 BitField ::= '1001101001'B -- Illegal - violates size constraint
+
+-- F.2.5.3
+-- Use a bit string type to model the values of a bit map, an
+-- ordered collection of logical variables
+-- indicating whether a particular condition holds for each of a
+-- correspondingly ordered collection of objects.
+
+DaysOfTheWeek ::= BIT STRING {
+ sunday(0), monday (1), tuesday(2),
+ wednesday(3), thursday(4), friday(5),
+ saturday(6) } (SIZE (0..7))
+
+sunnyDaysLastWeek1 DaysOfTheWeek ::= {sunday, monday, wednesday}
+sunnyDaysLastWeek2 DaysOfTheWeek ::= '1101'B
+sunnyDaysLastWeek3 DaysOfTheWeek ::= '1101000'B
+sunnyDaysLastWeek4 DaysOfTheWeek ::= '11010000'B -- Illegal - violates size constraint
+
+-- F.2.5.5
+-- Use a bit string type with named bits to model the values of a
+-- collection of related logical variables.
+-- EXAMPLE
+
+PersonalStatus ::= BIT STRING
+ {married(0), employed(1), veteran(2), collegeGraduate(3)}
+
+billClinton PersonalStatus ::= {married, employed, collegeGraduate}
+hillaryClinton PersonalStatus ::= '110100'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/CCSNARG3.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/CCSNARG3.asn
new file mode 100644
index 0000000000..23c1f32ceb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/CCSNARG3.asn
@@ -0,0 +1,345 @@
+CCSNARG3 DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation [1] IMPLICIT EventInformation OPTIONAL
+
+
+}
+
+EventInformation ::=
+ CHOICE
+ { callEvent [0] CallEvent,
+ billingReport [1] BillingInformation
+ }
+
+
+ScriptToScriptInformation ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] Attribute1 OPTIONAL,
+ scriptAttribute2 [2] Attribute2 OPTIONAL,
+ scriptAttribute3 [3] Attribute3 OPTIONAL,
+ scriptAttribute4 [4] Attribute4 OPTIONAL,
+ scriptAttribute5 [5] Attribute5 OPTIONAL,
+ scriptAttribute6 [6] Attribute6 OPTIONAL,
+ scriptAttribute7 [7] Attribute7 OPTIONAL,
+ scriptAttribute8 [8] Attribute8 OPTIONAL,
+ scriptAttribute9 [9] Attribute9 OPTIONAL,
+ scriptAttribute10 [10] Attribute10 OPTIONAL,
+ scriptAttribute11 [11] Attribute11 OPTIONAL,
+ scriptAttribute12 [12] Attribute12 OPTIONAL,
+ scriptAttribute13 [13] Attribute13 OPTIONAL,
+ scriptAttribute14 [14] Attribute14 OPTIONAL,
+ scriptAttribute15 [15] Attribute15 OPTIONAL,
+ scriptAttribute16 [16] Attribute16 OPTIONAL,
+ scriptAttribute17 [17] Attribute17 OPTIONAL,
+ scriptAttribute18 [18] Attribute18 OPTIONAL,
+ scriptAttribute19 [19] Attribute19 OPTIONAL,
+ scriptAttribute20 [20] Attribute20 OPTIONAL,
+ scriptAttribute21 [21] Attribute21 OPTIONAL,
+ scriptAttribute22 [22] Attribute22 OPTIONAL,
+ scriptAttribute23 [23] Attribute23 OPTIONAL,
+ scriptAttribute24 [24] Attribute24 OPTIONAL,
+ scriptAttribute25 [25] Attribute25 OPTIONAL,
+ scriptAttribute26 [26] Attribute26 OPTIONAL,
+ scriptAttribute27 [27] Attribute27 OPTIONAL,
+ scriptAttribute28 [28] Attribute28 OPTIONAL,
+ scriptAttribute29 [29] Attribute29 OPTIONAL,
+ scriptAttribute30 [30] Attribute30 OPTIONAL
+ }
+
+
+CallEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM OPTIONAL,
+
+ miscCallInfo [1] MiscCallInfo OPTIONAL,
+ iNlegID [2] LegType OPTIONAL,
+ announcementInfo [3] INTEGER
+ { announcementstarted(0), announcementcompleted(1) } (0..1) OPTIONAL,
+ callAttemptElapsedTimeValue [4] INTEGER (0..255) OPTIONAL,
+ callStopTimeValue [5] DateAndTime OPTIONAL,
+ callConnectedElapsedTimeValue [6] INTEGER (0..4294967295) OPTIONAL,
+ calledAddressValue [7] GenericNumber OPTIONAL,
+ releaseCause [8] Cause OPTIONAL
+ }
+
+EventTypeBCSM ::= INTEGER {
+ origAttemptauthorized(1),
+ collectedInfo(2),
+ analyzedInformation(3),
+ routeSelectFailure(4),
+ oCalledPartyBusy(5),
+ oAlerting(255),
+ oCalledPartyNotReachable(254),
+ oNoAnswer(6),
+ oAnswer(7),
+ oMidCall(8),
+ oSuspended(253),
+ oReAnswer(252),
+ oDisconnect(9),
+ oAbandon(10),
+ termAttemptauthorized(12)
+ } (0..255)
+
+
+BackwardCallIndicators ::= OCTET STRING (SIZE (2))
+
+BackwardGVNSIndicator ::= OCTET STRING(SIZE(1))
+
+
+MiscCallInfo::= INTEGER {
+ request (0),
+ notification (1)
+ } (0..1)
+
+LegType ::= INTEGER (1..30)
+
+DateAndTime ::= OCTET STRING (SIZE(6))
+
+GenericNumber ::= OCTET STRING (SIZE(1..16))
+
+GenericDigits ::= OCTET STRING (SIZE(1..16))
+
+Number ::= OCTET STRING (SIZE(1..16))
+
+Cause::= OCTET STRING (SIZE(2))
+
+
+BillingInformation ::= SEQUENCE {
+ billingKey [0] INTEGER (0..214783647),
+ billingAttribute1 [1] Attribute1 OPTIONAL,
+ billingAttribute2 [2] Attribute2 OPTIONAL,
+ billingAttribute3 [3] Attribute3 OPTIONAL,
+ billingAttribute4 [4] Attribute4 OPTIONAL,
+ billingAttribute5 [5] Attribute5 OPTIONAL,
+ billingAttribute6 [6] Attribute6 OPTIONAL,
+ billingAttribute7 [7] Attribute7 OPTIONAL,
+ billingAttribute8 [8] Attribute8 OPTIONAL,
+ billingAttribute9 [9] Attribute9 OPTIONAL,
+ billingAttribute10 [10] Attribute10 OPTIONAL,
+ billingAttribute11 [11] Attribute11 OPTIONAL,
+ billingAttribute12 [12] Attribute12 OPTIONAL,
+ billingAttribute13 [13] Attribute13 OPTIONAL,
+ billingAttribute14 [14] Attribute14 OPTIONAL,
+ billingAttribute15 [15] Attribute15 OPTIONAL,
+ billingAttribute16 [16] Attribute16 OPTIONAL,
+ billingAttribute17 [17] Attribute17 OPTIONAL,
+ billingAttribute18 [18] Attribute18 OPTIONAL,
+ billingAttribute19 [19] Attribute19 OPTIONAL,
+ billingAttribute20 [20] Attribute20 OPTIONAL
+}
+
+
+Attribute1 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute2 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute3 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute4 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute5 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute6 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute7 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute8 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute9 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute10 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute11 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute12 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute13::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute14 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute15 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute16 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute17 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute18 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute19::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute20 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute21 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute22 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute23 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute24 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute25 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute26 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute27::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute28 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute29 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+Attribute30 ::= CHOICE {
+ integerValue [0] INTEGER (0..65535),
+ longIntValue [1] INTEGER (0..4294967295),
+ numberValue [2] Number,
+ genDigitValue [3] GenericDigits
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Certificate.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Certificate.asn
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Certificate.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Cho.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Cho.py
new file mode 100644
index 0000000000..c390eed2ba
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Cho.py
@@ -0,0 +1,27 @@
+Cho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoCon ::= CHOICE
+{
+ nested Cho2,
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+Cho2 ::= CHOICE
+{
+ i INTEGER,
+ b BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExtension.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExtension.asn1
new file mode 100644
index 0000000000..18473bae30
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExtension.asn1
@@ -0,0 +1,44 @@
+ChoExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoExt1 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+ChoExt1x ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+ChoExt2 ::= CHOICE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+ChoExt3 ::= CHOICE
+{
+ str OCTET STRING,
+-- ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+ChoExt4 ::= CHOICE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...,
+ str OCTET STRING
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExternal.asn1
new file mode 100644
index 0000000000..950579a620
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoExternal.asn1
@@ -0,0 +1,40 @@
+ChoExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XCho, XBool, XBoolImp, XBoolExp, XChoNT, XChoExp FROM External;
+
+
+
+ChoXCho ::= XCho
+
+ChoXBool ::= CHOICE
+{
+ xbool XBool,
+ xboolImp XBoolImp,
+ xboolExp XBoolExp
+}
+
+
+
+NT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTExp ::= Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XChoNT
+XExpNT ::= [4] EXPLICIT XChoNT
+
+XNTExp ::= XChoExp
+XExpExp ::= [8] EXPLICIT XChoExp
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptional.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptional.asn1
new file mode 100644
index 0000000000..18f45b645c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptional.asn1
@@ -0,0 +1,35 @@
+ChoOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho VisibleString,
+ ocStrCho OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptionalImplicitTag.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptionalImplicitTag.asn1
new file mode 100644
index 0000000000..251f682ddc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoOptionalImplicitTag.asn1
@@ -0,0 +1,35 @@
+ChoOptionalImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool [0] BOOLEAN,
+ int [1] INTEGER OPTIONAL,
+ cho [7] ChoOpt OPTIONAL
+}
+
+Seq2 ::= SEQUENCE
+{
+ int INTEGER OPTIONAL,
+ cho ChoOpt OPTIONAL,
+ bool BOOLEAN
+}
+
+Seq3 ::= SEQUENCE
+{
+ cho ChoOpt OPTIONAL,
+ int INTEGER OPTIONAL,
+ bool BOOLEAN
+}
+
+
+ChoOpt ::= CHOICE
+{
+ vsCho [2] VisibleString,
+ ocStrCho [3] OCTET STRING
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoPrim.asn1
new file mode 100644
index 0000000000..984694ced8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoPrim.asn1
@@ -0,0 +1,20 @@
+ChoPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoCon ::= CHOICE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN,
+ int2 [2] INTEGER
+}
+
+ChoExp ::= CHOICE
+{
+ int10 [APPLICATION 10] EXPLICIT INTEGER {first(1),last(31)},
+ bool11 [APPLICATION 11] EXPLICIT BOOLEAN,
+ enum12 [APPLICATION 12] EXPLICIT ENUMERATED {one(1),two(2),three(3)}
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoRecursive.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoRecursive.asn1
new file mode 100644
index 0000000000..f0fe2f629c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoRecursive.asn1
@@ -0,0 +1,30 @@
+ChoRecursive DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoRec ::= CHOICE
+{
+ nothing [0] NULL,
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec
+ }
+}
+
+ChoRec2 ::= CHOICE
+{
+ something SEQUENCE
+ {
+ a INTEGER,
+ b OCTET STRING,
+ c ChoRec2
+ },
+ nothing [0] NULL
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefCho.asn1
new file mode 100644
index 0000000000..bcbf5045cd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefCho.asn1
@@ -0,0 +1,44 @@
+ChoTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+ChoTRcho ::= CHOICE
+{
+ choCho ChoChoNT,
+ choChoE [145] EXPLICIT ChoChoNT,
+
+ choCho-E ChoChoExp,
+ choChoE-E [345] EXPLICIT ChoChoExp
+
+}
+
+ChoChoNT ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+ChoChoExp ::= [75] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+
+ChoChoInline ::= CHOICE
+{
+ bool1 [0] BOOLEAN,
+ choCho CHOICE
+ {
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+ }
+}
+
+OctStr ::= OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefPrim.asn1
new file mode 100644
index 0000000000..ed6095f769
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefPrim.asn1
@@ -0,0 +1,34 @@
+ChoTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTR ::= CHOICE
+{
+ bool BOOLEAN,
+ octStr OctStr,
+ int INTEGER
+}
+
+
+ChoTR2 ::= CHOICE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSeq.asn1
new file mode 100644
index 0000000000..f9b5cbf85f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSeq.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+ChoTRseq ::= CHOICE
+{
+ choSeq ChoSeq,
+ choSeqI [134] ChoSeq,
+ choSeqE [135] EXPLICIT ChoSeq,
+
+ choSeq-I ChoSeqImp,
+ choSeqI-I [234] ChoSeqImp,
+ choSeqE-I [235] EXPLICIT ChoSeqImp,
+
+ choSeq-E ChoSeqExp,
+ choSeqI-E [334] ChoSeqExp,
+ choSeqE-E [335] EXPLICIT ChoSeqExp
+
+}
+
+ChoSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+ChoSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSet.asn1
new file mode 100644
index 0000000000..7d8da3f90d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoTypeRefSet.asn1
@@ -0,0 +1,37 @@
+ChoTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ChoTRset ::= CHOICE
+{
+ choSet ChoSet,
+ choSetI [124] ChoSet,
+ choSetE [125] EXPLICIT ChoSet,
+
+ choSet-I ChoSetImp,
+ choSetI-I [224] ChoSetImp,
+ choSetE-I [225] EXPLICIT ChoSetImp,
+
+ choSet-E ChoSetExp,
+ choSetI-E [324] ChoSetExp,
+ choSetE-E [325] EXPLICIT ChoSetExp
+
+}
+
+ChoSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+ChoSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceBadExtension.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceBadExtension.asn1
new file mode 100644
index 0000000000..d0789d7414
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceBadExtension.asn1
@@ -0,0 +1,27 @@
+ChoiceBadExtension DEFINITIONS ::=
+BEGIN
+
+Seq ::= SEQUENCE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho1 ::= CHOICE {
+ name PrintableString,
+ ...,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+Cho2 ::= CHOICE {
+ ...,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceInSeq.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceInSeq.asn
new file mode 100644
index 0000000000..ac93226a1b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceInSeq.asn
@@ -0,0 +1,22 @@
+ChoiceInSeq DEFINITIONS ::=
+BEGIN
+CallCentreServiceNotificationArg ::= SEQUENCE {
+ scriptInformation [0] ScriptToScriptInformation,
+ eventInformation
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ } OPTIONAL
+}
+
+ScriptToScriptInformation ::= INTEGER
+CallEvent ::= INTEGER
+BillingInformation ::= INTEGER
+EventInformation ::=
+ CHOICE
+ { callEvent [1] CallEvent,
+ billingReport [2] BillingInformation
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceIndef.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceIndef.asn
new file mode 100644
index 0000000000..71b717b621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ChoiceIndef.asn
@@ -0,0 +1,24 @@
+ChoiceIndef DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+I ::= INTEGER
+
+Cho ::= CHOICE {
+ ca [0] I,
+ cb [1] INTEGER
+}
+
+Seq ::= SEQUENCE {
+ sa [0] Cho,
+ sb [1] INTEGER
+}
+
+-- detta varde funkar ej. fixat i OTP-4358
+-- Val4 = {'Seq',{ca,11},12}
+-- val4 = <<48,128,160,128,128,1,11,0,0,129,1,12,0,0>>
+
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Comment.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Comment.asn
new file mode 100644
index 0000000000..c2a5abd633
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Comment.asn
@@ -0,0 +1,21 @@
+Comment DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+/* comments as to the 2002 standard
+
+this is the new added way of commenting multile lines */
+
+/* it is also allowed to have -- old kind of comment signs inside
+this new variant. The two dashes will lose their meaning as a comment
+inside a multiline comment, /* the new type of comment may also be
+nested */ */
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+/* another multiline comment, bu t on one line. */
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/CommonDataTypes.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/CommonDataTypes.py
new file mode 100644
index 0000000000..2c25f81235
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/CommonDataTypes.py
@@ -0,0 +1,4360 @@
+CommonDataTypes DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- @prop dataType
+-- @descr This types only purpose is to avoid OSS compiler warning : Duplicate PDU tag
+-- @
+CommonDataTypeWrapper ::= CHOICE
+{
+ wrapAddAnalysisRejectReason AddAnalysisRejectReason,
+ wrapAddServiceToServiceProfileRejectReason AddServiceToServiceProfileRejectReason,
+ wrapAddUserIdentifiersRejectReason AddUserIdentifiersRejectReason,
+ wrapAdmissionRejectReason AdmissionRejectReason,
+ wrapAlertingUUIE AlertingUUIE,
+ wrapAllocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ wrapAnalyseRejectReason AnalyseRejectReason,
+ wrapAvailabilityOfEquipment AvailabilityOfEquipment,
+ wrapBandwidth Bandwidth,
+ wrapBandwidthReducedInformation BandwidthReducedInformation,
+ wrapBandwidthReducedReason BandwidthReducedReason,
+ wrapBandwidthRejectReason BandwidthRejectReason,
+ wrapBasicCallCategories BasicCallCategories,
+ wrapBearerCapability BearerCapability,
+ wrapCallInformation CallInformation,
+ wrapCallModel CallModel,
+ wrapCallProceedingUUIE CallProceedingUUIE,
+ wrapCallReference CallReference,
+ wrapCallServices CallServices,
+ wrapCallState CallState,
+ wrapCallType CallType,
+ wrapCause Cause,
+ wrapCauseValue CauseValue,
+ wrapChangeServiceAndStatusRejectReason ChangeServiceAndStatusRejectReason,
+ wrapCheckServiceRejectReason CheckServiceRejectReason,
+ wrapCoding Coding,
+ wrapConferenceGoal ConferenceGoal,
+ wrapConferenceIdentifier ConferenceIdentifier,
+ wrapConnectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ wrapConnectUUIE ConnectUUIE,
+ wrapConnectionData ConnectionData,
+ wrapConnectionIdentifier ConnectionIdentifier,
+ wrapConnectionInformation ConnectionInformation,
+ wrapConnectionInformationOriginatingSide ConnectionInformationOriginatingSide,
+ wrapConnectionInformationTerminatingSide ConnectionInformationTerminatingSide,
+ wrapConnectionType ConnectionType,
+ wrapCreateEquipmentRepresentationRejectReason CreateEquipmentRepresentationRejectReason,
+ wrapCreateServiceAndStatusRejectReason CreateServiceAndStatusRejectReason,
+ wrapCreateServiceIdentifierRejectReason CreateServiceIdentifierRejectReason,
+ wrapDeallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ wrapDetailedReasonAtom DetailedReasonAtom,
+ wrapDiagnostics Diagnostics,
+ wrapDisconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ wrapDisengageReason DisengageReason,
+ wrapDisengageRejectReason DisengageRejectReason,
+ wrapDisplay Display,
+ wrapE164Identifier E164Identifier,
+ wrapEndToEndEndpointInformationServiceCallAcknowledge EndToEndEndpointInformationServiceCallAcknowledge,
+ wrapEndToEndEndpointInformationServiceCallActive EndToEndEndpointInformationServiceCallActive,
+ wrapEndToEndEndpointInformationServiceCallProgress EndToEndEndpointInformationServiceCallProgress,
+ wrapEndToEndEndpointInformationServiceCallSetup EndToEndEndpointInformationServiceCallSetup,
+ wrapEndToEndEndpointInformationServiceCallTermination EndToEndEndpointInformationServiceCallTermination,
+ wrapEndpointIdentifier EndpointIdentifier,
+ wrapEndpointRegistrationCategories EndpointRegistrationCategories,
+ wrapEndpointRegistrationRejectReason EndpointRegistrationRejectReason,
+ wrapEndpointType EndpointType,
+ wrapEndpointUnregistrationCategories EndpointUnregistrationCategories,
+ wrapEndpointUnregistrationRejectReason EndpointUnregistrationRejectReason,
+ wrapEquipmentAddressAN EquipmentAddressAN,
+ wrapEquipmentAddressLAN EquipmentAddressLAN,
+ wrapEquipmentRelatedInformation EquipmentRelatedInformation,
+ wrapEquipmentRelatedInformationIdentifier EquipmentRelatedInformationIdentifier,
+ wrapFacilityReason FacilityReason,
+ wrapFacilityUUIE FacilityUUIE,
+ wrapGatekeeperIdentifier GatekeeperIdentifier,
+ wrapGatekeeperInformation GatekeeperInformation,
+ wrapGatekeeperRejectReason GatekeeperRejectReason,
+ wrapGatewayInformation GatewayInformation,
+ wrapGetAnalysisRejectReason GetAnalysisRejectReason,
+ wrapGetEquipmentInformationRejectReason GetEquipmentInformationRejectReason,
+ wrapGetLANDataRejectReason GetLANDataRejectReason,
+ wrapGetPartyInformationRejectReason GetPartyInformationRejectReason,
+ wrapGetRejectReasonUser GetRejectReasonUser,
+ wrapGetServiceFromServiceProfileRejectReason GetServiceFromServiceProfileRejectReason,
+ wrapGetServiceProfileRejectReason GetServiceProfileRejectReason,
+ wrapGetServicesAndStatusRejectReason GetServicesAndStatusRejectReason,
+ wrapGetUserServiceInformationAndStatusRejectReason GetUserServiceInformationAndStatusRejectReason,
+ wrapH221NonStandard H221NonStandard,
+ wrapH310Information H310Information,
+ wrapH320Information H320Information,
+ wrapH321Information H321Information,
+ wrapH322Information H322Information,
+ wrapH323Information H323Information,
+ wrapH323InterfaceAddCallReferenceRejectReason H323InterfaceAddCallReferenceRejectReason,
+ wrapH323InterfaceAddCallRelatedDataRejectReason H323InterfaceAddCallRelatedDataRejectReason,
+ wrapH323InterfaceAddFixedTransportAddressDataRejectReason H323InterfaceAddFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceAddKeysAndSetAttributesRejectReason H323InterfaceAddKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceAdditionalKeys H323InterfaceAdditionalKeys,
+ wrapH323InterfaceAllocateResourceRejectReason H323InterfaceAllocateResourceRejectReason,
+ wrapH323InterfaceChangeKeysAndRelationsToUsersReject H323InterfaceChangeKeysAndRelationsToUsersReject,
+ wrapH323InterfaceCommonAttribute H323InterfaceCommonAttribute,
+ wrapH323InterfaceCommonAttributeIdentifier H323InterfaceCommonAttributeIdentifier,
+ wrapH323InterfaceCreateCallReferenceRejectReason H323InterfaceCreateCallReferenceRejectReason,
+ wrapH323InterfaceCreateRejectReason H323InterfaceCreateRejectReason,
+ wrapH323InterfaceDeallocateResourceRejectReason H323InterfaceDeallocateResourceRejectReason,
+ wrapH323InterfaceGetFixedTransportAddressDataRejectReason H323InterfaceGetFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceGetOrRemoveCallRelatedDataRejectReason H323InterfaceGetOrRemoveCallRelatedDataRejectReason,
+ wrapH323InterfaceGetOrSetCommonRejectReason H323InterfaceGetOrSetCommonRejectReason,
+ wrapH323InterfaceGetOrSetInstanceRejectReason H323InterfaceGetOrSetInstanceRejectReason,
+ wrapH323InterfaceInstanceAttribute H323InterfaceInstanceAttribute,
+ wrapH323InterfaceInstanceAttributeIdentifier H323InterfaceInstanceAttributeIdentifier,
+ wrapH323InterfaceKey H323InterfaceKey,
+ wrapH323InterfaceKeyEndpointIdentifier H323InterfaceKeyEndpointIdentifier,
+ wrapH323InterfaceReduceBandwidthRejectReason H323InterfaceReduceBandwidthRejectReason,
+ wrapH323InterfaceRemoveCallReferenceRejectReason H323InterfaceRemoveCallReferenceRejectReason,
+ wrapH323InterfaceRemoveFixedTransportAddressDataRejectReason H323InterfaceRemoveFixedTransportAddressDataRejectReason,
+ wrapH323InterfaceRemoveKeysAndSetAttributesRejectReason H323InterfaceRemoveKeysAndSetAttributesRejectReason,
+ wrapH323InterfaceRemoveRejectReason H323InterfaceRemoveRejectReason,
+ wrapH324Information H324Information,
+ wrapHighLayerCompatibility HighLayerCompatibility,
+ wrapInterfaceRegistrationInformation InterfaceRegistrationInformation,
+ wrapLANAttribute LANAttribute,
+ wrapLANAttributeIdentifier LANAttributeIdentifier,
+ wrapLayer1ProtUserInfo Layer1ProtUserInfo,
+ wrapLocation Location,
+ wrapLocationRejectReason LocationRejectReason,
+ wrapLogicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ wrapLowLayerCompatibility LowLayerCompatibility,
+ wrapMaximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ wrapMaximumTotalBandwidth MaximumTotalBandwidth,
+ wrapMcuInformation McuInformation,
+ wrapNonStandardIdentifier NonStandardIdentifier,
+ wrapNonStandardMessage NonStandardMessage,
+ wrapNonStandardParameter NonStandardParameter,
+ wrapNumber Number,
+ wrapNumberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ wrapNumberType NumberType,
+ wrapNumberingPlan NumberingPlan,
+ wrapObjectIdentifier ObjectIdentifier,
+ wrapPhysicalConnectionPointIdentifier PhysicalConnectionPointIdentifier,
+ wrapPid Pid,
+ wrapPreStringToRemoveInDestinationAddress PreStringToRemoveInDestinationAddress,
+ wrapProgressIndicator ProgressIndicator,
+ wrapProtocolIdentifier ProtocolIdentifier,
+ wrapQ931Timer301Value Q931Timer301Value,
+ wrapQ931Timer303Value Q931Timer303Value,
+ wrapQ954Details Q954Details,
+ wrapQseriesOptions QseriesOptions,
+ wrapRASMessageTimerValue RASMessageTimerValue,
+ wrapRTPSession RTPSession,
+ wrapRegistrationRejectReason RegistrationRejectReason,
+ wrapRegistrationStatus RegistrationStatus,
+ wrapRelationToEquipment RelationToEquipment,
+ wrapRelationToUser RelationToUser,
+ wrapReleaseCompleteReason ReleaseCompleteReason,
+ wrapReleaseCompleteUUIE ReleaseCompleteUUIE,
+ wrapReleaseInformation ReleaseInformation,
+ wrapRemoveAnalysisRejectReason RemoveAnalysisRejectReason,
+ wrapRemoveEquipmentRepresentationRejectReason RemoveEquipmentRepresentationRejectReason,
+ wrapRemoveServiceAndStatusRejectReason RemoveServiceAndStatusRejectReason,
+ wrapRemoveServiceFromServiceProfileRejectReason RemoveServiceFromServiceProfileRejectReason,
+ wrapRemoveServiceIdentifierRejectReason RemoveServiceIdentifierRejectReason,
+ wrapRepeatIndicator RepeatIndicator,
+ wrapRequestSeqNum RequestSeqNum,
+ wrapRequestedUserAndLinkedUserAreIdentical RequestedUserAndLinkedUserAreIdentical,
+ wrapServiceAndStatus ServiceAndStatus,
+ wrapServiceCallSetupRejectionInformation ServiceCallSetupRejectionInformation,
+ wrapServiceCallSetupRejectionReason ServiceCallSetupRejectionReason,
+ wrapServiceCallTerminationInformation ServiceCallTerminationInformation,
+ wrapServiceCallTerminationReason ServiceCallTerminationReason,
+ wrapServiceData ServiceData,
+ wrapServiceIdentifier ServiceIdentifier,
+ wrapServiceProfile ServiceProfile,
+ wrapSetEquipmentStatusRejectReason SetEquipmentStatusRejectReason,
+ wrapSetLANDataRejectReason SetLANDataRejectReason,
+ wrapSetUserAttributeData SetUserAttributeData,
+ wrapSetupUUIE SetupUUIE,
+ wrapStateOfEquipment StateOfEquipment,
+ wrapStateOfUser StateOfUser,
+ wrapStatusOfService StatusOfService,
+ wrapSubaddress Subaddress,
+ wrapSubaddressInformation SubaddressInformation,
+ wrapSubaddressType SubaddressType,
+ wrapSupportedProtocols SupportedProtocols,
+ wrapT120Information T120Information,
+ wrapTerminalInformation TerminalInformation,
+ wrapTerminationInitiatior TerminationInitiatior,
+ wrapTimeSlot TimeSlot,
+ wrapTransferCapability TransferCapability,
+ wrapTransferRate TransferRate,
+ wrapTransportAddress TransportAddress,
+ wrapTransportAddressInformation TransportAddressInformation,
+ wrapTransportChannelInformation TransportChannelInformation,
+ wrapTypeOfEquipment TypeOfEquipment,
+ wrapTypeOfFlowControl TypeOfFlowControl,
+ wrapTypeOfLAN TypeOfLAN,
+ wrapTypeOfRegistration TypeOfRegistration,
+ wrapTypeOfService TypeOfService,
+ wrapTypeOfUser TypeOfUser,
+ wrapUnknownMessageResponse UnknownMessageResponse,
+ wrapUnregistrationRejectReason UnregistrationRejectReason,
+ wrapUserAllocateResourceRejectReason UserAllocateResourceRejectReason,
+ wrapUserAttributeData UserAttributeData,
+ wrapUserAttributeIdentifier UserAttributeIdentifier,
+ wrapUserCreateRejectReason UserCreateRejectReason,
+ wrapUserDeallocateResourceRejectReason UserDeallocateResourceRejectReason,
+ wrapUserIdentifier UserIdentifier,
+ wrapUserIdentifierInformation UserIdentifierInformation,
+ wrapUserInformation UserInformation,
+ wrapUserInformationUUIE UserInformationUUIE,
+ wrapUserKey UserKey,
+ wrapUserOrEquipmentRelatedInformation UserOrEquipmentRelatedInformation,
+ wrapUserOrEquipmentRelatedInformationIdentifier UserOrEquipmentRelatedInformationIdentifier,
+ wrapUserRelatedInformation UserRelatedInformation,
+ wrapUserRelatedInformationIdentifier UserRelatedInformationIdentifier,
+ wrapUserRemoveRejectReason UserRemoveRejectReason,
+ wrapUserSetRejectReason UserSetRejectReason,
+ wrapUserSpecificInformation UserSpecificInformation,
+ wrapVendorIdentifier VendorIdentifier,
+ wrapVoiceInformation VoiceInformation,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AddAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddServiceToServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddServiceToServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AddUserIdentifiersRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AddUserIdentifiersRejectReason ::= CHOICE
+{
+ userIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AdmissionRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AlertingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AlertingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- AllocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AllocateTransmissionPathRejectReason ::= CHOICE
+{
+ calledUserNotAvailable NULL,
+ calledUserUnknown NULL,
+ permissionDenied NULL,
+ resourcesNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AnalyseRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+AnalyseRejectReason ::= CHOICE
+{
+ noMatchingEntryFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- AvailabilityOfEquipment
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+AvailabilityOfEquipment ::= CHOICE
+{
+ available NULL,
+ notAvailable NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- Bandwidth
+--
+-- @prop dataType
+--
+-- @descr States the bandwidth to be used in 100 bps.
+--
+-- @
+--
+-- ---------------------------------
+
+Bandwidth ::= INTEGER ( 1.. 4294967295 )
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedInformation
+--
+-- @prop dataType
+--
+-- @descr States information related to the recuction of the bandwidth.
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedInformation ::= SEQUENCE
+{
+ allocatedBandwidth Bandwidth,
+ bandwidthReducedReason BandwidthReducedReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- BandwidthReducedReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+BandwidthReducedReason ::= CHOICE
+{
+ bandwidthLimited NULL,
+ bandwidthAdaptedToOriginatingEndpoint NULL,
+ originBandwidthBarredDueToCategories NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BandwidthRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+BandwidthRejectReason ::= CHOICE
+{
+ notBound NULL,
+ invalidConferenceID NULL,
+ invalidPermission NULL,
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- BasicCallCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service basic call.
+--
+-- @
+-- ---------------------------------
+
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+-- ---------------------------------
+--
+-- BearerCapability
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+BearerCapability ::= SEQUENCE
+{
+ transferCapability TransferCapability,
+ transferRate TransferRate,
+ layer1ProtUserInfo Layer1ProtUserInfo,
+ rateMultiplier INTEGER (0..127),
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CallInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReference CallReference, -- callReferenceValue
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInformation OPTIONAL,
+ h245 TransportChannelInformation,
+ callSignaling TransportChannelInformation,
+ callType CallType,
+ bandwidth Bandwidth, -- bandWidth
+ callModel CallModel,
+ ...
+}
+
+-- ---------------------------------
+--
+-- CallModel
+--
+-- @prop dataType
+--
+-- @descr Type of callmodel used i.e routed via gatekeeper or not
+--
+-- @
+--
+-- ---------------------------------
+
+CallModel ::= CHOICE
+{
+ gatekeeperRouted NULL,
+ direct NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallProceedingUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+
+CallProceedingUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationEndpointType EndpointType, -- destinationInfo
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ ...
+}
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr states the call reference that identifies a specific call.
+-- Origin: H.225.0 CallReferenceValue.
+--
+-- @
+--
+-- ---------------------------------
+
+CallReference ::= INTEGER (0..65535)
+
+
+-- ---------------------------------
+--
+-- CallServices
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallServices ::= SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallState ::= CHOICE
+{
+ null NULL,
+ callInit NULL,
+ overlapSending NULL,
+ outgoingCallProceeding NULL,
+ callDelivered NULL,
+ callPresent NULL,
+ callReceived NULL,
+ connectRequest NULL,
+ incomingCallProceeding NULL,
+ active NULL,
+ disconnectRequest NULL,
+ disconnectIndication NULL,
+ releaseRequest NULL,
+ facilityRequest NULL,
+ overlapReceiving NULL,
+ restartRequest NULL,
+ restart NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CallType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Cause
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Cause ::= SEQUENCE
+{
+ coding Coding,
+ location Location,
+ value CauseValue,
+ diagnostics Diagnostics,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- CauseValue
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+CauseValue ::= CHOICE
+{
+ unassignedNumber NULL, -- 1
+ noRouteToSpecifiedTransitNetwork NULL, -- 2
+ noRouteToDestination NULL, -- 3
+ channelUnacceptable NULL, -- 6
+ normalClearing NULL, -- 16
+ userBusy NULL, -- 17
+ noUserResponding NULL, -- 18
+ noAnswereFromUser NULL, -- 19
+ portableNotAvailable NULL, -- 20
+ callRejected NULL, -- 21
+ numberChanged NULL, -- 22
+ destinationOutOfOrder NULL, -- 27
+ invalidNumberFormat NULL, -- 28
+ facilityRequestRejected NULL, -- 29
+ responseToStatusEnquiry NULL, -- 30
+ normalUnspecified NULL, -- 31
+ noCircuitChannelAvailable NULL, -- 34
+ networkOutOfOrder NULL, -- 38
+ temporaryFailure NULL, -- 41
+ switchingEquipmentCongestion NULL, -- 42
+ accessInformationDiscarded NULL, -- 43
+ requestedCircuitChannelNotAvailable NULL, -- 44
+ resourceUnavailableUnspecified NULL, -- 47
+ qualityOfServiceUnavailable NULL, -- 49
+ notSubscribedToRequestedFacility NULL, -- 50
+ bearerCapabilityNotAuthorized NULL, -- 57
+ bearerCapabilityNotPresentlyAvailable NULL, -- 58
+ serviceOrOptionNotAvailableUnspecified NULL, -- 63, 79
+ bearerCapabilityNotImplemented NULL, -- 65
+ channelTypeNotImplemented NULL, -- 66
+ requestedFacilityNotImplemented NULL, -- 69
+ onlyRestrictedDigitalInformationBcIsAvailable NULL, -- 70
+ invalidCallReferenceValue NULL, -- 81
+ incompatibleDestination NULL, -- 88
+ invalidTransitNetworkSelection NULL, -- 91
+ invalidMessageUnspecified NULL, -- 95
+ mandatoryInformationElementIsMissing NULL, -- 96
+ messageTypeNonexistingOrNotimplemented NULL, -- 97
+ messageNotCompatibleOrImplemented NULL, -- 98
+ informationElementNonExisting NULL, -- 99
+ invalidInformationElementContents NULL, -- 100
+ messageNotCompatibleWithCallState NULL, -- 101
+ recoveryOnTimerExpiry NULL, -- 102
+ protocolErrorUnspecified NULL, -- 111
+ interworkingUnspecified NULL, -- 127
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ChangeServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ChangeServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CheckServiceRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CheckServiceRejectReason ::= CHOICE
+{
+ deniedDueToInteraction NULL,
+ deniedDueToCategories NULL,
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Coding
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Coding ::= CHOICE
+{
+ ccitt NULL,
+ ecma NULL,
+ national NULL,
+ network NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ConferenceGoal
+--
+-- @prop dataType
+--
+-- @descr Type of call setup desire
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceGoal ::= CHOICE
+{
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConferenceIdentifier
+--
+-- @prop dataType
+--
+--
+--
+-- @
+--
+-- ---------------------------------
+
+ConferenceIdentifier ::= OCTET STRING (SIZE (16))
+
+
+-- ---------------------------------
+--
+-- ConnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectUUIE
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationH245Address TransportAddress OPTIONAL, -- h245Address
+ destinationEndpointType EndpointType, -- destinationInfo
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionData
+--
+-- @prop dataType
+--
+-- @descr This parameter holds connection data that are specific for
+-- certain types of Equipments.
+-- @
+--
+-- ---------------------------------
+
+ConnectionData ::= CHOICE
+{
+ timeSlotInformation SEQUENCE OF TimeSlot,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionIdentifier
+--
+-- @prop dataType
+--
+-- @descr Identifier to the connection handler instance.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionIdentifier ::= ObjectIdentifier
+
+
+-- ---------------------------------
+--
+-- ConnectionInformation
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies information that are of interest for
+-- the functionallity handled by component Connection Handler.
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformation ::= SEQUENCE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ connectionData ConnectionData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationOriginatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the originating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationOriginatingSide ::= SEQUENCE
+{
+ bandwidth Bandwidth,
+ callType CallType,
+ originatorConnectionInformation ConnectionInformation,
+ terminatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionInformationTerminatingSide
+--
+-- @prop dataType
+--
+-- @descr Contains connection information that shall be used for the terminating side of the connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionInformationTerminatingSide ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ originatorConnectionInformation ConnectionInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ConnectionType
+--
+-- @prop dataType
+--
+-- @descr States the type of connection.
+--
+-- @
+--
+-- ---------------------------------
+
+ConnectionType ::= CHOICE
+{
+ pointToPoint NULL,
+ oneToN NULL,
+ nToOne NULL,
+ nToN NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateEquipmentRepresentationRejectReason ::= CHOICE
+{
+ equipmentRepresentationAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- CreateServiceIdentifierRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+CreateServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DeallocateTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DeallocateTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- DetailedReasonAtom
+--
+-- @prop dataType
+-- @descr This data type indicates the release information of a forced drop
+-- during a call.
+-- @
+--
+-- ---------------------------------
+
+DetailedReasonAtom ::= CHOICE
+{
+ internalDataMissmatch NULL,
+ destinationUserIdentifierNotKnown NULL,
+ rejectedDueToCategories NULL,
+ rejectedDueToResources NULL,
+ failedToOpenDestinationCallSignallingPort NULL,
+ theRequestedServiceIsNotSupported NULL,
+ undefined NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- Diagnostics
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Diagnostics ::= INTEGER(1..127)
+
+
+-- ---------------------------------
+--
+-- DisconnectTransmissionPathRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+DisconnectTransmissionPathRejectReason ::= CHOICE
+{
+ resourcesNotAllocated NULL,
+ switchFailure NULL,
+ switchNotConnected NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageReason
+--
+-- @prop dataType
+-- @descr the reason why a change was requested by the gatekeeper or the terminal.
+-- @
+-- ---------------------------------
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL,
+ normalDrop NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- DisengageRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ requestToDropOther NULL,
+ ...
+}
+-- ---------------------------------
+--
+-- Display
+--
+-- @prop dataType
+--
+-- @descr Origin: Q931
+--
+-- @
+--
+-- ---------------------------------
+
+Display ::= OCTET STRING (SIZE(1..82))
+
+
+
+-- ---------------------------------
+--
+-- E164Identifier
+--
+-- @prop dataType
+--
+-- @descr Identifier for the user identifier of the type E.164.
+--
+-- @
+--
+-- ---------------------------------
+
+E164Identifier ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallAcknowledge
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallAcknowledge ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323AcknowledgeInformation AlertingUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallActive
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallActive ::= SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323ActiveInformation ConnectUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallProgress
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallProgress ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ ...
+}
+
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallSetup
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallSetup ::=SEQUENCE
+{
+ bearerCapability BearerCapability OPTIONAL,
+ calledNumber Number OPTIONAL,
+ calledSubaddress Subaddress OPTIONAL,
+ callingNumber Number OPTIONAL,
+ callingSubaddress Subaddress OPTIONAL,
+ highLayerCompatibility HighLayerCompatibility OPTIONAL,
+ lowLayerCompatibility LowLayerCompatibility OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ repeatIndicator RepeatIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323SetupInformation SetupUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndToEndEndpointInformationServiceCallTermination
+--
+-- @prop dataType
+--
+-- @descr Information that shall be sent end to end.
+--
+-- @
+--
+-- ---------------------------------
+
+EndToEndEndpointInformationServiceCallTermination ::=SEQUENCE
+{
+ cause Cause OPTIONAL,
+ progressIndicator ProgressIndicator OPTIONAL,
+ userToUserQ931Information UserInformation OPTIONAL,
+ userToUserH323TerminationInformation ReleaseCompleteUUIE OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointIdentifier
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointIdentifier ::= BMPString (SIZE(1..128)) -- change from SIZE(128)
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint registration.
+--
+-- @
+-- ---------------------------------
+
+EndpointRegistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointRegistrationRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointRegistrationRejectReason ::= CHOICE
+{
+ attemptToChangeEndpoint NULL,
+ requestedUserNotKnown NULL,
+ endpointTypeNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointType
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInformation OPTIONAL,
+ gateway GatewayInformation OPTIONAL,
+ mcu McuInformation OPTIONAL,
+ terminal TerminalInformation OPTIONAL,
+ mc BOOLEAN,
+ undefinedNode BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationCategories
+--
+-- @prop dataType
+--
+-- @descr Categories for the service endpoint unregistration.
+--
+-- @
+-- ---------------------------------
+
+EndpointUnregistrationCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+
+
+-- ---------------------------------
+--
+-- EndpointUnregistrationRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+EndpointUnregistrationRejectReason ::= CHOICE
+{
+ permissionDenied NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressAN
+--
+-- @prop dataType
+--
+-- @descr States the address for a certain equipment connected
+-- to the Access Node.
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressAN ::= SEQUENCE
+{
+ --TBD by SEA,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentAddressLAN
+--
+-- @prop dataType
+--
+-- @descr States the transport address for a certain equipment
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentAddressLAN ::= SEQUENCE
+{
+ transportAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformation
+--
+-- @prop dataType
+--
+-- @descr Contains the retreived data.
+--
+-- @
+--
+-- ---------------------------------
+
+EquipmentRelatedInformation ::= CHOICE
+{
+ logicalConnectionPointIdentifier LogicalConnectionPointIdentifier,
+ registrationStatus RegistrationStatus,
+ stateOfEquipment StateOfEquipment,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- EquipmentRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain equipment.
+--
+-- @
+-- ---------------------------------
+
+EquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ logicalConnectionPointIdentifier NULL,
+ registrationStatus NULL,
+ stateOfEquipment NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- FacilityReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL,
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- FacilityUUIE
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+FacilityUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeH245Address TransportAddress OPTIONAL, -- alternativeAddress
+ alternativeUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- alternativeAliasAddress
+ conferenceIdentifier ConferenceIdentifier OPTIONAL, -- conferenceID
+ facilityReason FacilityReason, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperIdentifier
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+
+
+-- ---------------------------------
+--
+-- GatekeeperInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatekeeperRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GatewayInformation
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GatewayInformation ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- GetAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetAnalysisRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetEquipmentInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetEquipmentInformationRejectReason ::= CHOICE
+{
+ equipmentUnknown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetLANDataRejectReason
+--
+-- @prop dataType
+--
+-- @descr This reason for rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetLANDataRejectReason ::= CHOICE
+{
+ noDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetPartyInformationRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetPartyInformationRejectReason ::= CHOICE
+{
+ noEquipmentAvailable NULL,
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetRejectReasonUser
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetRejectReasonUser ::= CHOICE
+{
+ keyNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr
+--
+-- @
+--
+-- ---------------------------------
+
+GetServiceProfileRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetServicesAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetServicesAndStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- GetUserServiceInformationAndStatusRejectReason
+--
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+GetUserServiceInformationAndStatusRejectReason ::= CHOICE
+{
+ undefined NULL,
+ userNotKnown NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H221NonStandard
+-- @prop dataType
+--
+-- @descr Gives non standard information about the standard protocol H.221.
+-- @
+--
+-- ---------------------------------
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255),
+ t35Extension INTEGER(0..255),
+ manufacturerCode INTEGER(0..65535),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H310Information
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.310.
+-- @
+--
+-- ---------------------------------
+
+H310Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H320Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.320.
+-- @
+--
+-- ---------------------------------
+
+H320Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H321Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.321.
+-- @
+--
+-- ---------------------------------
+
+H321Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H322Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.322.
+-- @
+--
+-- ---------------------------------
+
+H322Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol H.323.
+-- @
+--
+-- ---------------------------------
+
+H323Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ requestedCallReferenceAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ callRelatedDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ fixedTransportAddressDataAlredyStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAddKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAddKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ existingKeyNotValid NULL,
+ newKeyAlreadyExists NULL,
+ newKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAdditionalKeys
+--
+-- @prop dataType
+-- @descr Additional keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceAdditionalKeys ::= SEQUENCE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceAllocateResourceRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceChangeKeysAndRelationsToUsersReject
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceChangeKeysAndRelationsToUsersReject ::= CHOICE
+{
+ firstKeyNotValid NULL,
+ secondKeyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are common for all objects of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttribute ::= CHOICE
+{
+ gatekeeperCallSignallingAddressData CHOICE
+ {
+ gatekeeperCallSignallingAddresses SEQUENCE OF TransportAddress,
+ undefined NULL,
+ ...
+ },
+ gatekeeperRASAddressInformation CHOICE
+ {
+ gatekeeperRASAddressData SEQUENCE
+ {
+ multicastRASAddress TransportAddress,
+ gatekeeperRASAddress TransportAddress,
+ ...
+ },
+ undefined NULL,
+ ...
+ },
+ q931Timer301Value Q931Timer301Value,
+ q931Timer303Value Q931Timer303Value,
+ rasMessageTimerValue RASMessageTimerValue,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCommonAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are common for all objects
+-- of the type H.323Interface.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCommonAttributeIdentifier ::= CHOICE
+{
+ gatekeeperCallSignallingAddresses NULL,
+ gatekeeperRASAddress NULL,
+ q931Timer301Value NULL,
+ q931Timer303Value NULL,
+ rasMessageTimerValue NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceCreateCallReferenceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ noCallReferenceAvailable NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceCreateRejectReason ::= CHOICE
+{
+ keyAlreadyInUse NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceDeallocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetFixedTransportAddressDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceGetFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ noFixedTransportAddressDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrRemoveCallRelatedDataRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrRemoveCallRelatedDataRejectReason ::= CHOICE
+{
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ noCallRelatedDataStored NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetCommonRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetCommonRejectReason ::= CHOICE
+{
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceGetOrSetInstanceRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceGetOrSetInstanceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttribute
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attributes which holds data
+-- that are specific for a h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttribute ::= CHOICE
+{
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRasAddresses SEQUENCE OF TransportAddress,
+ registrationStatus RegistrationStatus,
+ gatekeeperCallSignallingAddress TransportAddress,
+ maximumTotalBandwidthForInterface Bandwidth,
+ preStringsToRemoveInDestinationAddress SEQUENCE OF PreStringToRemoveInDestinationAddress,
+ relationToH2250CallSignalling Pid,
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceInstanceAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains the attribute identifiers of the
+-- attributes which holds data that are specific for a
+-- h323Interface object.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceInstanceAttributeIdentifier ::= CHOICE
+{
+ endpointCallSignallingAddresses NULL,
+ endpointRASAddresses NULL,
+ registrationStatus NULL,
+ gatekeeperCallSignallingAddress NULL,
+ maximumTotalBandwidthForInterface NULL,
+ preStringsToRemoveInDestinationAddress NULL,
+ relationToH2250CallSignalling NULL,
+ relationToUser NULL,
+ typeOfEquipment NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKey
+--
+-- @prop dataType
+-- @descr Allowed keys for an instance of the type H.323Interface.
+-- @
+-- ---------------------------------
+
+H323InterfaceKey ::= CHOICE
+{
+ endpointIdentifier EndpointIdentifier,
+ endpointCallSignallingAddresses SEQUENCE OF TransportAddress,
+ endpointRASAddresses SEQUENCE OF TransportAddress,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceKeyEndpointIdentifier
+--
+-- @descr Allowed keys for an instance of the type H.323Interface.
+--
+-- ---------------------------------
+
+H323InterfaceKeyEndpointIdentifier ::= SEQUENCE
+{
+ endpointIdentifier EndpointIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- H323InterfaceReduceBandwidthRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceReduceBandwidthRejectReason ::= CHOICE
+{
+ bandwidthNotAllocated NULL,
+ callReferenceNotValid NULL,
+ keyNotValid NULL,
+ newBandwidthHigherThanAllocatedBandwidth NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveCallReferenceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveCallReferenceRejectReason ::= CHOICE
+{
+ callReferenceNotStored NULL,
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveFixedTransportAddressDataRejectReason
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+H323InterfaceRemoveFixedTransportAddressDataRejectReason ::= CHOICE
+{
+ noDataStoredForThisTransportAddress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveKeysAndSetAttributesRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveKeysAndSetAttributesRejectReason ::= CHOICE
+{
+ keysNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H323InterfaceRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+H323InterfaceRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- H324Information
+-- @prop dataType
+--
+-- @descr Gives detailed information about the standard protocol H.324.
+-- @
+--
+-- ---------------------------------
+
+H324Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+HighLayerCompatibility ::= SEQUENCE
+{
+ ...
+}
+-- ---------------------------------
+--
+-- InterfaceRegistrationInformation
+-- @prop dataType
+--
+-- @descr This parameter specifies the current registration status of an
+-- endpoints registration request.
+-- @
+--
+-- ---------------------------------
+
+InterfaceRegistrationInformation ::= SEQUENCE
+{
+ isInterfaceRegistered BOOLEAN,
+ relationToH323User EndpointIdentifier OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LANAttribute
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute value.
+-- @
+--
+-- ---------------------------------
+
+LANAttribute ::= CHOICE
+{
+ maximumTotalBandwidth MaximumTotalBandwidth,
+ maximumNumberOfAllowedConnections MaximumNumberOfAllowedConnections,
+ numberOfTimesLANWasCrowded NumberOfTimesLANWasCrowded,
+ typeOfFlowControl TypeOfFlowControl,
+ typeOfLAN TypeOfLAN,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- LANAttributeIdentifier
+--
+-- @prop dataType
+-- @descr This parameter contains a LAN attribute identifier.
+-- @
+--
+-- ---------------------------------
+
+LANAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumNumberOfAllowedConnections NULL,
+ numberOfTimesLANWasCrowded NULL,
+ typeOfFlowControl NULL,
+ typeOfLAN NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Layer1ProtUserInfo ::= CHOICE
+ {
+ g711u-law NULL,
+ g711a-law NULL,
+ h323VidephoneCall NULL, -- the meaning of "5" in H323
+ h221Andh242 NULL, -- the meaning of "5" in Q931
+ ...
+ }-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Location ::= CHOICE
+ {
+ user NULL,
+ localPrivateNetwork NULL,
+ localPublicNetwork NULL,
+ transitNetwork NULL,
+ remotePublicNetwork NULL,
+ remotePrivateNetwork NULL,
+ internationalNetwork NULL,
+ beyondInterworkingPoint NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- LocationRejectReason
+-- @prop dataType
+--
+-- @descr
+-- @
+-- ---------------------------------
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL,
+ requestDenied NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- LogicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Identifier of the logical connection point.
+-- @
+--
+-- ---------------------------------
+
+LogicalConnectionPointIdentifier ::= INTEGER (0..65535)
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @descr origin Q931
+-- @
+
+ LowLayerCompatibility ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- MaximumNumberOfAllowedConnections
+--
+-- @prop dataType
+-- @descr States the maximum number of allowed connections.
+-- @
+--
+-- ---------------------------------
+
+MaximumNumberOfAllowedConnections ::= CHOICE
+{
+ maximumNumberOfAllowedConnectionsValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- MaximumTotalBandwidth
+-- @prop dataType
+-- @descr States the maximum total bandwidth.
+-- @
+-- ---------------------------------
+
+MaximumTotalBandwidth ::= CHOICE
+{
+ maximumTotalBandwidthValue Bandwidth,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- McuInformation
+-- @prop dataType
+--
+-- @descr Gives detailed information about the endpoint type, MCU.
+-- @
+-- ---------------------------------
+
+McuInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardIdentifier
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- NonStandardMessage
+-- @prop dataType
+--
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+-- ---------------------------------
+--
+-- NonStandardParameter
+--
+-- @prop dataType
+-- @
+-- ---------------------------------
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING,
+ ...
+}
+
+
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Number ::= SEQUENCE
+ {
+ type NumberType,
+ indicator NumberingPlan,
+ number IA5String (FROM ("0123456789#*")),
+ ...
+ }
+
+-- ---------------------------------
+--
+-- NumberOfTimesLANWasCrowded
+-- @prop dataType
+--
+-- @descr States the number of times the Lan has been crowded,
+-- i.e. the endpoints has released the initiated call due to
+-- heavy load in the LAN.
+-- @
+--
+-- ---------------------------------
+
+NumberOfTimesLANWasCrowded ::= CHOICE
+{
+ numberOfTimesLANWasCrowdedValue INTEGER ( 0.. 999999999),
+ undefined NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberType ::= CHOICE
+ {
+ unknown NULL,
+ international NULL,
+ national NULL,
+ network NULL,
+ local NULL,
+ abbreviated NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ NumberingPlan ::= CHOICE
+ {
+ unknown NULL,
+ e164 NULL,
+ data NULL,
+ telex NULL,
+ national NULL,
+ private NULL,
+ ...
+ }
+
+
+
+-- ---------------------------------
+--
+-- ObjectIdentifier
+--
+-- @prop dataType
+-- @descr An identifier to a certain instance of an object.
+-- @
+--
+-- ---------------------------------
+
+ObjectIdentifier ::= OCTET STRING
+
+
+
+-- ---------------------------------
+--
+-- PhysicalConnectionPointIdentifier
+--
+-- @prop dataType
+-- @descr Contains data that identifies a specific equipment instance.
+-- @
+--
+-- ---------------------------------
+
+PhysicalConnectionPointIdentifier ::= CHOICE
+{
+ equipmentAN EquipmentAddressAN, -- Equipment connected to the Access Node.
+ equipmentLAN EquipmentAddressLAN, -- Equipment connected to the LAN.
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- Pid
+-- @prop dataType
+--
+-- @descr A process identifier.
+-- @
+--
+-- ---------------------------------
+
+Pid ::= ObjectIdentifier
+
+
+
+-- ---------------------------------
+--
+-- PreStringToRemoveInDestinationAddress
+--
+-- @prop dataType
+--
+-- @descr A pre-string that shall be removed when sending the destination address.
+--
+-- @
+--
+-- ---------------------------------
+
+PreStringToRemoveInDestinationAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789,")),
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ ProgressIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- ProtocolIdentifier
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+
+
+-- ---------------------------------
+--
+-- Q931Timer301Value
+-- @prop dataType
+--
+-- @descr States the Q931 timer 301 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer301Value ::= INTEGER ( 180000.. 360000 )
+
+
+
+-- ---------------------------------
+--
+-- Q931Timer303Value
+--
+-- @prop dataType
+-- @descr States the Q931 timer 303 value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+Q931Timer303Value ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- Q954Details
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- QseriesOptions
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+QseriesOptions ::=SEQUENCE
+{
+ q932Full BOOLEAN,
+ q951Full BOOLEAN,
+ q952Full BOOLEAN,
+ q953Full BOOLEAN,
+ q955Full BOOLEAN,
+ q956Full BOOLEAN,
+ q957Full BOOLEAN,
+ q954Info Q954Details,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RASMessageTimerValue
+--
+-- @prop dataType
+-- @descr States the RAS message timer value to be used in milli seconds.
+-- @
+--
+-- ---------------------------------
+
+RASMessageTimerValue ::= INTEGER ( 1000.. 10000 )
+
+
+
+-- ---------------------------------
+--
+-- RTPSession
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInformation,
+ rtcpAddress TransportChannelInformation,
+ cname PrintableString,
+ ssrc INTEGER (1.. 134217727), -- change from 4294967295 for erl 4.2
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationRejectReason
+--
+-- @prop dataType
+-- @descr Specifies the registration reject reason that are valid
+-- in the H.225.0 message RegistartionReject
+-- @ --
+-- ---------------------------------
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL,
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRasAddress NULL,
+ duplicateAlias UserIdentifierInformation,
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RegistrationStatus
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+RegistrationStatus ::= CHOICE
+{
+ notRegistered NULL,
+ registered NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RelationToEquipment
+--
+-- @prop dataType
+-- @descr Relation to the architecture component Equipment.
+-- @
+--
+-- ---------------------------------
+
+RelationToEquipment ::= SEQUENCE
+{
+ relationToUser RelationToUser,
+ typeOfEquipment TypeOfEquipment,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RelationToUser
+--
+-- @prop dataType
+-- @descr Relation to the architecture component User.
+-- @
+--
+-- ---------------------------------
+
+RelationToUser ::= BMPString (SIZE(1..128))
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL,
+ gatekeeperResources NULL,
+ unreachableDestination NULL,
+ destinationRejection NULL,
+ invalidRevision NULL,
+ noPermission NULL,
+ unreachableGatekeeper NULL,
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL,
+ inConf NULL,
+ undefinedReason NULL,
+ ...
+}
+
+
+
+
+
+
+-- ---------------------------------
+--
+-- ReleaseCompleteUUIE
+-- @prop dataType
+--
+-- @
+-- ---------------------------------
+
+ReleaseCompleteUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ releaseCompleteReason ReleaseCompleteReason OPTIONAL, -- reason
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ReleaseInformation
+--
+-- @prop dataType
+-- @descr This data type is used to transfer the reason for the
+-- rejection or release.
+-- @
+--
+-- ---------------------------------
+
+ReleaseInformation ::= CHOICE
+{
+ forcedDrop DetailedReasonAtom,
+ normalDrop NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- RemoveAnalysisRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveAnalysisRejectReason ::= CHOICE
+{
+ analysisTableEntryNotFound NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveEquipmentRepresentationRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveEquipmentRepresentationRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ equipmentRepresentationDoesNotExist NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceAndStatusRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceAndStatusRejectReason ::= CHOICE
+{
+ identifierOfServiceNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceFromServiceProfileRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the service and its categories that
+-- shall be added to a service profile.
+--
+-- @
+--
+-- ---------------------------------
+
+RemoveServiceFromServiceProfileRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- RemoveServiceIdentifierRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+-- ---------------------------------
+
+RemoveServiceIdentifierRejectReason ::= CHOICE
+{
+ keyNotKnown NULL,
+ serviceIdentifierDoNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+ RepeatIndicator ::= SEQUENCE
+ {
+ }
+
+-- ---------------------------------
+--
+-- RequestSeqNum
+--
+-- @prop dataType
+-- @descr
+-- @
+-- ---------------------------------
+
+RequestSeqNum ::= INTEGER (1..65535)
+
+
+
+-- ---------------------------------
+--
+-- RequestedUserAndLinkedUserAreIdentical
+--
+-- @prop dataType
+-- @descr This parameter indicates if the requested user and the user
+-- linked to the requested endpoint are identical, not identical
+-- or if this is undefined.
+-- @
+--
+-- ---------------------------------
+
+RequestedUserAndLinkedUserAreIdentical ::= CHOICE
+{
+ yes NULL,
+ no NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceAndStatus
+-- @prop dataType
+--
+-- @descr Information of a service and its state.
+-- @
+--
+-- ---------------------------------
+
+ServiceAndStatus ::= SEQUENCE
+{
+ typeOfService TypeOfService,
+ status StatusOfService,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionInformation
+--
+-- @prop dataType
+-- @descr Information related to the call setup rejection.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallSetupRejectionInformation ::= SEQUENCE
+{
+ terminationInitiatior TerminationInitiatior,
+ terminationReason ServiceCallSetupRejectionReason,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallSetupRejectionReason
+--
+-- @prop dataType
+-- @descr Reason for rejection.
+-- @
+-- ---------------------------------
+
+ServiceCallSetupRejectionReason ::= CHOICE
+{
+ calledUserBusy NULL,
+ calledUserNotAvailable NULL,
+ destinationOutOfOrder NULL,
+ requestedServiceBarred NULL,
+ requestedServiceNotAvailable NULL,
+ requestedServiceNotSubscribed NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ unassignedUserIdentifier NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationInformation
+-- @prop dataType
+--
+-- @descr States information related to the termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationInformation ::= SEQUENCE
+{
+ terminationInitiation TerminationInitiatior,
+ terminationReason ServiceCallTerminationReason,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- ServiceCallTerminationReason
+--
+-- @prop dataType
+-- @descr Reason for termination.
+-- @
+--
+-- ---------------------------------
+
+ServiceCallTerminationReason ::= CHOICE
+{
+ noAnswerFromCalledUser NULL,
+ normalTermination NULL,
+ resourceUnavailable NULL,
+ temporaryFailure NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- ServiceData
+--
+-- @prop dataType
+-- @descr Contains the identified services and theirs categories
+-- @
+-- ---------------------------------
+
+ServiceData ::= CHOICE
+{
+ basicCall BasicCallCategories,
+ endpointRegistration EndpointRegistrationCategories,
+ endpointUnregistration EndpointUnregistrationCategories,
+ ...
+}
+
+-- @prop dataType
+-- @descr
+-- @
+--
+
+ ServiceIdentifier ::= INTEGER
+
+
+-- ---------------------------------
+--
+-- ServiceProfile
+--
+-- @prop dataType
+-- @descr Contains services and data related to the services.
+-- @
+-- ---------------------------------
+
+ServiceProfile ::= SEQUENCE
+{
+ serviceDataInformation SEQUENCE OF ServiceData OPTIONAL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetEquipmentStatusRejectReason
+--
+-- @prop dataType
+--
+--
+-- @
+--
+-- ---------------------------------
+
+SetEquipmentStatusRejectReason ::= CHOICE
+{
+ userNotKnown NULL,
+ undefined NULL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- SetLANDataRejectReason
+--
+-- @prop dataType
+-- @descr This reason for rejection.
+-- @
+--
+-- ---------------------------------
+
+SetLANDataRejectReason ::= CHOICE
+{
+ invalidInputData NULL,
+ other NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetUserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+SetUserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- SetupUUIE
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+SetupUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ sourceH245Address TransportAddress OPTIONAL, -- h245Address
+ sourceUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- sourceAddress
+ sourceEndpointType EndpointType, -- sourceInfo
+ destinationUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destinationAddress
+ destinationCallSignallingAddress TransportAddress OPTIONAL, -- destCallSignalAddress
+ destinationExtraUserIdentifierInformation UserIdentifierInformation OPTIONAL, -- destExtraCallInfo
+ destinationExtraCallReference SEQUENCE OF CallReference OPTIONAL, -- destExtraCRV
+ activeMC BOOLEAN,
+ conferenceIdentifier ConferenceIdentifier, -- conferenceID
+ conferenceGoal ConferenceGoal,
+ callServices CallServices OPTIONAL,
+ callType CallType,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- StateOfEquipment
+--
+-- @prop dataType
+-- @descr States the state of the equipment.
+-- @
+--
+-- ---------------------------------
+
+StateOfEquipment ::= CHOICE
+{
+ blocked NULL, -- Equipment is blocked
+ busy NULL, -- Equipment is busy, no more calls possible for moment
+ available NULL, -- Equipment has reported itself as present and is ready for actions
+ unregistered NULL, -- Equipment is not present
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StateOfUser
+--
+-- @prop dataType
+-- @descr This parameter specifies the state of the user.
+-- @
+-- ---------------------------------
+
+StateOfUser ::= CHOICE
+{
+ absent NULL,
+ present NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- StatusOfService
+--
+-- @prop dataType
+-- @descr States the state of the service.
+-- @
+--
+-- ---------------------------------
+
+StatusOfService ::= CHOICE
+{
+ acknowledge NULL,
+ active NULL,
+ initiatied NULL,
+ ...
+}
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ Subaddress ::= SEQUENCE
+ {
+ type SubaddressType,
+ indicator BOOLEAN,
+ address SubaddressInformation,
+ ...
+ }
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressInformation ::= OCTET STRING (SIZE(1..23))
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ SubaddressType ::= CHOICE
+ {
+ nsap NULL,
+ user NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- SupportedProtocols
+--
+-- @prop dataType
+-- @descr Gives detailed information about protocols that are
+-- supported by the stated endpoint.
+-- @
+-- ---------------------------------
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Information,
+ h320 H320Information,
+ h321 H321Information,
+ h322 H322Information,
+ h323 H323Information,
+ h324 H324Information,
+ voice VoiceInformation,
+ t120Only T120Information,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- T120Information
+--
+-- @prop dataType
+-- @descr Gives detailed information about the standard protocol T.120
+-- @
+-- ---------------------------------
+
+T120Information ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminalInformation
+-- @prop dataType
+--
+-- @
+--
+-- ---------------------------------
+
+TerminalInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TerminationInitiatior
+--
+-- @prop dataType
+-- @descr States who initiated the termination.
+-- @
+--
+-- ---------------------------------
+
+TerminationInitiatior ::= CHOICE
+{
+ endpoint NULL,
+ serviceNode NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TimeSlot
+--
+-- @prop dataType
+-- @descr This parameter contains the identity of the time slot used
+-- for the connection.
+-- @
+--
+-- ---------------------------------
+
+TimeSlot ::= INTEGER
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferCapability ::= CHOICE
+ {
+ speech NULL,
+ unrestrictedDigital NULL,
+ restrictedDigital NULL,
+ audio3point1kHz NULL,
+ unrestrictedWithTonesAndAnnouncements NULL,
+ video NULL,
+ ...
+ }
+
+-- @prop dataType
+-- @descr Origin: Q931
+-- @
+
+ TransferRate ::= CHOICE
+ {
+ packedMode NULL,
+ r64kbps NULL,
+ r2x64kbps NULL,
+ r384kbps NULL,
+ r1536kbps NULL,
+ r1920kbps NULL,
+ multirate NULL,
+ ...
+ }
+
+-- ---------------------------------
+--
+-- TransportAddress
+--
+-- @prop dataType
+-- @descr The transport address.
+-- @
+--
+-- ---------------------------------
+
+TransportAddress ::= CHOICE
+{
+ ipV4Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (4) ),
+ port INTEGER ( 0..65535 )
+ },
+
+ ipV6Address SEQUENCE
+ {
+ ip OCTET STRING ( SIZE (16) ),
+ port INTEGER ( 0..65535 ),
+ ...
+ },
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TransportAddressInformation
+--
+-- @prop dataType
+-- @descr sequence of TransportAdress
+-- @
+-- ---------------------------------
+
+TransportAddressInformation ::= SEQUENCE OF TransportAddress
+
+
+-- ---------------------------------
+--
+-- TransportChannelInformation
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+TransportChannelInformation ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- TypeOfEquipment
+--
+-- @prop dataType
+-- @descr Type of equipment.
+-- @
+--
+-- ---------------------------------
+
+TypeOfEquipment ::= CHOICE
+{
+ cordlessTerminal NULL,
+ h323Terminal NULL,
+ h323Gateway NULL,
+ isdnTerminal NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfFlowControl
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of flow control used in the LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfFlowControl ::= CHOICE
+{
+ isa NULL,
+ priorityOutputRouting NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfLAN
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of LAN.
+-- @
+--
+-- ---------------------------------
+
+TypeOfLAN ::= CHOICE
+{
+ ethernet NULL,
+ tokenRing NULL,
+ other NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfRegistration
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfRegistration ::= CHOICE
+{
+ changeOfUser NULL,
+ noChangeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfService
+--
+-- @prop dataType
+-- @descr Type of service.
+-- @
+--
+-- ---------------------------------
+
+TypeOfService ::= CHOICE
+{
+ basicCall NULL,
+ endpointRegistration NULL,
+ endpointUnregistration NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- TypeOfUser
+--
+-- @prop dataType
+-- @descr Type of user.
+-- @
+--
+-- ---------------------------------
+
+TypeOfUser ::= CHOICE
+{
+ human NULL,
+ network NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UnknownMessageResponse
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnknownMessageResponse ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UnregistrationRejectReason
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+UnregistrationRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...
+}
+
+-- ---------------------------------
+--
+-- UserAllocateResourceRejectReason
+--
+-- @prop dataType
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserAllocateResourceRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ resourceNotAvailable NULL,
+ serviceIdentifierExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeData
+--
+-- @prop dataType
+--
+-- @descr This parameter contains an User attribute value.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeData ::= CHOICE
+{
+ maximumTotalBandwidth Bandwidth,
+ maximumBandwidthPerService Bandwidth,
+ relationToEquipment SEQUENCE OF RelationToEquipment,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserAttributeIdentifier
+--
+-- @prop dataType
+--
+-- @descr This parameter contains User attribute identifiers.
+--
+-- @
+--
+-- ---------------------------------
+
+UserAttributeIdentifier ::= CHOICE
+{
+ maximumTotalBandwidth NULL,
+ maximumBandwidthPerService NULL,
+ relationToEquipment NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ userIdentifierInformation NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserCreateRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserCreateRejectReason ::= CHOICE
+{
+ userIdentifierAlreadyExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserDeallocateResourceRejectReason
+-- @prop dataType
+--
+-- @descr Reason for the rejection.
+-- @
+--
+-- ---------------------------------
+
+UserDeallocateResourceRejectReason ::= CHOICE
+{
+ resourceNotAllocated NULL,
+ serviceIdentifierNotValid NULL,
+ userNotExist NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserIdentifier
+--
+-- @prop dataType
+-- @descr The identifier of the User.
+-- @
+--
+-- ---------------------------------
+
+UserIdentifier ::= CHOICE
+{
+ e164 E164Identifier,
+ h323 BMPString (SIZE (1..256)),
+ -- h323 is Basic ISO/IEC 10646-1 (Unicode)
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserIdentifierInformation
+--
+-- @prop dataType
+-- @descr sequence of UserIdentifier
+-- @
+--
+-- ---------------------------------
+
+UserIdentifierInformation ::= SEQUENCE OF UserIdentifier--
+-- Created by :
+-- Creation date :
+-- Modified by :
+-- Modification date :
+-- Version :
+--
+-- @prop dataType
+-- @
+
+UserInformation ::= OCTET STRING (SIZE(1..131))
+
+
+
+
+-- ---------------------------------
+--
+-- UserInformationUUIE
+--
+-- @prop dataType
+-- @ --
+-- ---------------------------------
+
+UserInformationUUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserKey
+--
+-- @prop dataType
+-- @descr Unique key for a certain user.
+-- @
+-- ---------------------------------
+
+UserKey ::= CHOICE
+{
+ relationToUser RelationToUser,
+ userIdentifierInformation SEQUENCE OF UserIdentifier,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserOrEquipmentRelatedInformationIdentifier
+--
+-- @prop dataType
+-- @descr This parameter specifies the type of information identifiers.
+-- @
+-- ---------------------------------
+
+UserOrEquipmentRelatedInformationIdentifier ::= CHOICE
+{
+ userRelatedInformationIdentifiers SEQUENCE OF UserRelatedInformationIdentifier,
+ equipmentRelatedInformationIdentifiers SEQUENCE OF EquipmentRelatedInformationIdentifier,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformation
+--
+-- @prop dataType
+-- @descr This parameter specifies different types of data
+-- that are related to the user.
+-- @
+--
+-- ---------------------------------
+
+UserRelatedInformation ::= CHOICE
+{
+ numberOfEquipments INTEGER,
+ stateOfUser StateOfUser,
+ typeOfUser TypeOfUser,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRelatedInformationIdentifier
+--
+--
+-- @prop dataType
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to a certain user.
+--
+-- @
+-- ---------------------------------
+
+UserRelatedInformationIdentifier ::= CHOICE
+{
+ numberOfEquipments NULL,
+ stateOfUser NULL,
+ typeOfUser NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserRemoveRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserRemoveRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ serviceInProgress NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSetRejectReason
+--
+-- @prop dataType
+--
+-- @descr This parameter states the reason for the rejection.
+--
+-- @
+--
+-- ---------------------------------
+
+UserSetRejectReason ::= CHOICE
+{
+ keyNotValid NULL,
+ undefined NULL,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- UserSpecificInformation
+--
+-- @descr This parameter specifies different types of data
+-- that are specific to the user.
+-- @
+--
+-- ---------------------------------
+
+UserSpecificInformation ::= CHOICE
+{
+ userRelatedInformation SEQUENCE OF UserRelatedInformation,
+ equipmentRelatedInformation SEQUENCE OF EquipmentRelatedInformation,
+ ...
+}
+
+
+
+-- ---------------------------------
+--
+-- VendorIdentifier
+--
+-- @prop dataType
+-- @
+--
+-- ---------------------------------
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL,
+ ...
+}
+
+
+-- ---------------------------------
+--
+-- VoiceInformation
+--
+-- @prop dataType
+-- @descr
+-- @
+--
+-- ---------------------------------
+
+VoiceInformation ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Constraints.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Constraints.py
new file mode 100644
index 0000000000..b18c29bd89
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Constraints.py
@@ -0,0 +1,84 @@
+Constraints DEFINITIONS ::=
+BEGIN
+
+-- Single Value
+SingleValue ::= INTEGER (1)
+SingleValue2 ::= INTEGER (1..20)
+Range2to19 ::= INTEGER (1<..<20)
+Range10to20 ::= INTEGER (10..20)
+ContainedSubtype ::= INTEGER (INCLUDES Range10to20)
+FixedSize ::= OCTET STRING (SIZE(10))
+FixedSize2 ::= OCTET STRING (SIZE(10|20))
+VariableSize ::= OCTET STRING (SIZE(1..10))
+PemittedAlphabet ::= PrintableString (FROM ("a"|"yx"))
+AliasAddress ::=CHOICE
+{
+ e164 IA5String (SIZE (1..128) ^ FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)),
+ ...
+}
+Obj ::= OBJECT IDENTIFIER
+
+
+-- OTP-4559: a referenced type that has a permitted alphabet constraint
+-- Example from H323-MESSAGES ver (11/2000)
+TBCD-STRING ::= IA5String (FROM ("0123456789#*abc"))
+
+ANSI-41-UIM ::= SEQUENCE {
+ imsi [0] TBCD-STRING(SIZE (3..16)) OPTIONAL,
+ esn [1] TBCD-STRING(SIZE (16)) OPTIONAL
+}
+
+-- OTP-4869: a BIT STRING constrained by SIZE(C) was encoded wrong
+-- when C was larger than 16. There was also an error when encodeing
+-- in compact_bit_string mode.
+
+IP ::= SEQUENCE {
+ perm SEQUENCE OF INTEGER (0..15),
+ key BIT STRING (SIZE (128)),
+ bool BOOLEAN OPTIONAL
+}
+
+-- add for OTP-3558 and OTP-4917
+Day ::= ENUMERATED{monday(0),tuesday(1),wednesday(2),thursday(3),friday(4),saturday(5),sunday(6)}
+
+Wednesday ::= Day(wednesday)
+
+
+Thing ::= INTEGER {fred (0),fred2 (1),fred3 (2)}
+
+
+AnotherThing ::= Thing (fred | fred2)
+
+I ::= INTEGER (0|15..269) -- OTP-5457
+
+-- OTP-5511
+
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 35
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+-- OTP-6763
+T ::= IA5String (SIZE (1|2, ..., SIZE (1|2|3))) -- Dubuisson 268
+T2 ::= IA5String (SIZE (1|2, ..., 3)) -- equal with T
+
+-- OTP-8046
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYYY-HH:MM
+
+
+-- OTP-6828
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING MyType),
+ ...
+}
+
+MoreCompact ::= OCTET STRING (CONTAINING MyType ENCODED BY {joint-iso-itu-t asn1 packed-encoding(3) basic(0) unaligned(1)})
+
+MyType ::= SEQUENCE {a INTEGER, b INTEGER}
+
+Document ::= OCTET STRING (ENCODED BY pdf)
+
+pdf OBJECT IDENTIFIER ::= {1,2,3,4,5}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Constructed.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Constructed.asn
new file mode 100644
index 0000000000..09a66d0c0d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Constructed.asn
@@ -0,0 +1,23 @@
+
+
+
+Constructed DEFINITIONS ::=
+BEGIN
+
+S ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
+ b BOOLEAN
+ }
+
+I ::= [8] IMPLICIT INTEGER
+
+S2 ::= [UNIVERSAL 8] SEQUENCE { b BOOLEAN}
+
+C ::= CHOICE {
+ a S,
+ b S3
+}
+
+S3 ::= SEQUENCE {i INTEGER}
+
+S3ext ::= SEQUENCE {i INTEGER, ...}
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ContextSwitchingTypes.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ContextSwitchingTypes.asn1
new file mode 100644
index 0000000000..c8145bad63
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ContextSwitchingTypes.asn1
@@ -0,0 +1,53 @@
+ContextSwitchingTypes DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- EXTERNAL type
+
+T ::= EXTERNAL
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b T
+}
+
+int INTEGER ::= 12
+
+val1-T T ::= {indirect-reference int, encoding octet-aligned:'123'H}
+
+val2-T T ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+val3-T T ::= {identification context-negotiation:{presentation-context-id 12,
+ transfer-syntax {1 2 3}},
+ data-value '123'H}
+
+-- EMBEDDED PDV type
+
+EP ::= EMBEDDED PDV
+
+Seq2 ::= SEQUENCE {
+ a BOOLEAN,
+ b EP
+}
+
+val1-EP EP ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ data-value '12345'H}
+
+val2-EP EP ::= {identification syntax:{1 2 3}, data-value '123'H}
+
+-- CHARACTER STRING type and value
+
+CS ::= CHARACTER STRING
+
+Seq3 ::= SEQUENCE {
+ a INTEGER,
+ b CS
+}
+
+val1-CS CS ::= {identification syntaxes:{abstract {1 2 3 4},
+ transfer {1 2 3 5}},
+ string-value '12345'H}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/DERSpec.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/DERSpec.asn
new file mode 100644
index 0000000000..93e6180d42
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/DERSpec.asn
@@ -0,0 +1,38 @@
+DERSpec DEFINITIONS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+C ::= CHOICE {
+ version INTEGER,
+ message PrintableString
+}
+
+Set ::= SET {
+ int [1] INTEGER,
+ choice C,
+ bool BOOLEAN
+}
+
+
+SetOf ::= SET OF C
+
+-- This type compiled with ber_bin, optimize, der
+-- will test the fix in OTP-4866
+Set2 ::= SET {
+ int INTEGER,
+ bool BOOLEAN}
+
+-- OTP-5602
+SO ::= SEQUENCE OF Seq2
+
+Seq2 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
new file mode 100644
index 0000000000..a17fb001d3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/DS-EquipmentUser-CommonFunctionOrig-TransmissionPath.py
@@ -0,0 +1,150 @@
+DS-EquipmentUser-CommonFunctionOrig-TransmissionPath DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS AllocateTransmissionPathRejectReason,
+ Bandwidth,
+ BandwidthReducedInformation,
+ CallType,
+ ConnectionIdentifier,
+ ConnectionInformation,
+ ConnectTransmissionPathRejectReason,
+ DeallocateTransmissionPathRejectReason,
+ DisconnectTransmissionPathRejectReason,
+ RelationToUser,
+ UserIdentifier FROM CommonDataTypes ;
+
+EquipmentUserCommonFunctionOrigTransmissionPathMessages ::= CHOICE
+{
+ allocateTransmissionPathEU AllocateTransmissionPathEU,
+ allocateTransmissionPathConfirmedUE AllocateTransmissionPathConfirmedUE, -- Reply
+ allocateTransmissionPathRejectedUE AllocateTransmissionPathRejectedUE, -- Reply
+ connectTransmissionPathEU ConnectTransmissionPathEU,
+ connectTransmissionPathConfirmedUE ConnectTransmissionPathConfirmedUE, -- Reply
+ connectTransmissionPathRejectedUE ConnectTransmissionPathRejectedUE, -- Reply
+ deallocateTransmissionPathEU DeallocateTransmissionPathEU,
+ deallocateTransmissionPathConfirmedUE DeallocateTransmissionPathConfirmedUE, -- Reply
+ deallocateTransmissionPathRejectedUE DeallocateTransmissionPathRejectedUE, -- Reply
+ disconnectTransmissionPathEU DisconnectTransmissionPathEU,
+ disconnectTransmissionPathConfirmedUE DisconnectTransmissionPathConfirmedUE, -- Reply
+ disconnectTransmissionPathRejectedUE DisconnectTransmissionPathRejectedUE, -- Reply
+ ...
+}
+
+
+
+-- ----------------------------------
+--
+-- Allocate transmission path
+--
+--
+-- ----------------------------------
+
+AllocateTransmissionPathEU ::= SEQUENCE
+{
+ callType CallType,
+ bandwidth Bandwidth,
+ destinationUserIdentifiers SEQUENCE OF UserIdentifier,
+ sourceConnectionInformation ConnectionInformation,
+ relationToSourceUser RelationToUser,
+ ...
+}
+
+
+--
+-- @param bandwidthReducedInformation Mandatory if bandwidth has been reduced.
+--
+--
+
+AllocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ bandwidthReducedInformation BandwidthReducedInformation OPTIONAL,
+ ...
+}
+
+
+AllocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ allocateTransmissionPathRejectReason AllocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Connect transmission path
+--
+-- ----------------------------------
+
+ConnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+ConnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+ConnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ connectTransmissionPathRejectReason ConnectTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Deallocate transmission path
+--
+-- ----------------------------------
+
+DeallocateTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DeallocateTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DeallocateTransmissionPathRejectedUE ::= SEQUENCE
+{
+ deallocateTransmissionPathRejectReason DeallocateTransmissionPathRejectReason,
+ ...
+}
+
+
+-- ----------------------------------
+--
+-- Disconnect transmission path
+--
+-- ----------------------------------
+
+DisconnectTransmissionPathEU ::= SEQUENCE
+{
+ connectionIdentifier ConnectionIdentifier,
+ ...
+}
+
+
+DisconnectTransmissionPathConfirmedUE ::= SEQUENCE
+{
+ ...
+}
+
+
+DisconnectTransmissionPathRejectedUE ::= SEQUENCE
+{
+ disconnectTransmissionPathRejectReason DisconnectTransmissionPathRejectReason,
+ ...
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.asn1
new file mode 100644
index 0000000000..8dd5b383e3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.asn1
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT FALSE,
+ bool2 [2] BOOLEAN DEFAULT FALSE,
+ bool3 [3] BOOLEAN DEFAULT FALSE
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT FALSE,
+ bool12 [12] BOOLEAN DEFAULT FALSE,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT FALSE,
+ bool31 [31] BOOLEAN DEFAULT FALSE,
+ bool32 [32] BOOLEAN DEFAULT FALSE,
+ bool33 [33] BOOLEAN DEFAULT FALSE
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.py
new file mode 100644
index 0000000000..ff08ed6386
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Def.py
@@ -0,0 +1,31 @@
+Def DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Def1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN DEFAULT false,
+ bool2 [2] BOOLEAN DEFAULT false,
+ bool3 [3] BOOLEAN DEFAULT false
+}
+
+
+Def2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN DEFAULT false,
+ bool12 [12] BOOLEAN DEFAULT false,
+ bool13 [13] BOOLEAN
+}
+
+
+Def3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN DEFAULT false,
+ bool31 [31] BOOLEAN DEFAULT false,
+ bool32 [32] BOOLEAN DEFAULT false,
+ bool33 [33] BOOLEAN DEFAULT false
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Default.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Default.asn
new file mode 100644
index 0000000000..6604953c1f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Default.asn
@@ -0,0 +1,158 @@
+Default DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+SeqInts ::= SEQUENCE {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+SetInts ::= SET {
+ a INTEGER DEFAULT 1,
+ b INTEGER DEFAULT -1,
+ c INTEGER {one(1),two(2),three(3)} DEFAULT three,
+ d INTEGER DEFAULT one
+}
+
+
+SeqBS ::= SEQUENCE {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+SetBS ::= SET {
+ a BIT STRING DEFAULT '1010110'B,
+ b BIT STRING DEFAULT 'A8A'H,
+ c BIT STRING {first(0),second(1),third(2)} DEFAULT {second},
+ d BIT STRING DEFAULT onelist
+}
+
+onelist BIT STRING ::= '1001'B
+
+SeqOS ::= SEQUENCE {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+SetOS ::= SET {
+ a OCTET STRING DEFAULT '1010110'B,
+ b OCTET STRING DEFAULT 'A8A'H,
+ c NULL DEFAULT NULL
+}
+
+E ::= ENUMERATED {b1,b2,b3}
+
+SeqOI ::= SEQUENCE {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SetOI ::= SET {
+ a OBJECT IDENTIFIER DEFAULT {1 2 14 15},
+ b OBJECT IDENTIFIER DEFAULT {iso member-body f(250) 3 4},
+ c OBJECT IDENTIFIER DEFAULT {ftam 2 f(250) 4}--,
+}
+
+SeqEnum ::= SEQUENCE {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+SetEnum ::= SET {
+ a ENUMERATED {b1,b2,b3,b4,b5} DEFAULT b4,
+ b F DEFAULT b2
+}
+
+ftam OBJECT IDENTIFIER ::= {iso standard 8571}
+
+F ::= E
+
+SeqIntBool ::= SEQUENCE {
+ a SEQUENCE{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SetIntBool ::= SET {
+ a SET{
+ aa INTEGER,
+ ab INTEGER} DEFAULT {aa 12, ab 13},
+ b S2 DEFAULT {a 14, b TRUE},
+ c S2 DEFAULT s
+}
+
+SeqStrings ::= SEQUENCE {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+SetStrings ::= SET {
+ a NumericString DEFAULT "123456789",
+ b1 IA5String DEFAULT "abcdef",
+ b2 IA5String DEFAULT {0,13},
+ b3 IA5String DEFAULT {"First line",cr,"Second line"},
+ c PrintableString DEFAULT "Printable string",
+ d UniversalString DEFAULT {0,0,1,14}
+}
+
+S1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab S2} DEFAULT {aa 1, ab {a two, b TRUE}},
+ b S4 DEFAULT s4
+}
+
+S2 ::= SEQUENCE {
+ a INTEGER DEFAULT one,
+ b BOOLEAN OPTIONAL
+}
+
+S3 ::= SEQUENCE {
+ a SEQUENCE OF INTEGER DEFAULT {11,12,13},
+ b SEQUENCE OF C DEFAULT {a:11,b:TRUE,c:13},
+ c SO DEFAULT so,
+ d SEQUENCE OF S2 DEFAULT {{a 20,b TRUE},{a 30, b FALSE}}
+}
+
+S3set ::= SET {
+ a SET OF CHOICE {a BOOLEAN,b INTEGER,c S2} DEFAULT {c:{a 3,b TRUE},b:17,a:FALSE},
+ b SO DEFAULT so
+}
+
+S4 ::= SEQUENCE {
+ a S2 DEFAULT {},
+ b SEQUENCE {ba BOOLEAN,bb INTEGER} DEFAULT {ba TRUE,bb 0}
+}
+
+s4 S4 ::= {a {a 2,b TRUE}, b {ba TRUE, bb 5}}
+
+C ::= CHOICE{
+ a INTEGER,
+ b BOOLEAN,
+ c INTEGER
+}
+
+SO ::= SEQUENCE OF INTEGER
+
+so SEQUENCE OF INTEGER ::= {1,2,3,4}
+
+s S2 ::= {a 15,b FALSE}
+
+one INTEGER ::= 1
+two INTEGER ::= 2
+three INTEGER ::= 3
+four INTEGER ::= 4
+
+cr IA5String ::= {0,13}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/DirectoryAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/DirectoryAbstractService.asn
new file mode 100755
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/DoubleEllipses.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/DoubleEllipses.asn
new file mode 100644
index 0000000000..e90cf55d61
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/DoubleEllipses.asn
@@ -0,0 +1,99 @@
+DoubleEllipses DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SeqV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SeqAlt ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SeqAltV2 ::= SEQUENCE
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+Set ::= SET {
+ a INTEGER,
+ ...,
+ ...,
+ c BOOLEAN
+ }
+
+SetV2 ::= SET
+ {
+ a INTEGER,
+ ...,
+ b BOOLEAN,
+ ...,
+ c BOOLEAN
+ }
+
+
+SetAlt ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+SetAltV2 ::= SET
+ {
+ a INTEGER,
+ d INTEGER,
+ ...,
+ b BIT STRING,
+ e BOOLEAN,
+ h PrintableString,
+ i INTEGER,
+ ...,
+ c BOOLEAN,
+ f INTEGER,
+ g INTEGER
+ }
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ELDAPv3.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/ELDAPv3.asn
new file mode 100644
index 0000000000..0cfac48c37
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ELDAPv3.asn
@@ -0,0 +1,291 @@
+-- LDAPv3 ASN.1 specification, taken from RFC 2251
+
+-- Lightweight-Directory-Access-Protocol-V3 DEFINITIONS
+ELDAPv3 DEFINITIONS
+IMPLICIT TAGS ::=
+
+BEGIN
+
+LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse },
+ controls [0] Controls OPTIONAL }
+
+MessageID ::= INTEGER (0 .. maxInt)
+
+maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+LDAPString ::= OCTET STRING
+
+LDAPOID ::= OCTET STRING
+
+LDAPDN ::= LDAPString
+
+RelativeLDAPDN ::= LDAPString
+
+AttributeType ::= LDAPString
+
+AttributeDescription ::= LDAPString
+
+
+
+
+-- Wahl, et. al. Standards Track [Page 44]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+AttributeDescriptionList ::= SEQUENCE OF
+ AttributeDescription
+
+AttributeValue ::= OCTET STRING
+
+AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+AssertionValue ::= OCTET STRING
+
+Attribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+MatchingRuleId ::= LDAPString
+
+LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongAuthRequired (8),
+ -- 9 reserved --
+ referral (10), -- new
+ adminLimitExceeded (11), -- new
+ unavailableCriticalExtension (12), -- new
+ confidentialityRequired (13), -- new
+ saslBindInProgress (14), -- new
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+
+-- Wahl, et. al. Standards Track [Page 45]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71), -- new
+ -- 72-79 unused --
+ other (80) },
+ -- 81-90 reserved for APIs --
+ matchedDN LDAPDN,
+ errorMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+Referral ::= SEQUENCE OF LDAPURL
+
+LDAPURL ::= LDAPString -- limited to characters permitted in URLs
+
+Controls ::= SEQUENCE OF Control
+
+Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials }
+
+SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+BindResponse ::= [APPLICATION 1] SEQUENCE {
+
+-- Wahl, et. al. Standards Track [Page 46]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+UnbindRequest ::= [APPLICATION 2] NULL
+
+SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2) },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeDescriptionList }
+
+Filter ::= CHOICE {
+ and [0] SET OF Filter,
+ or [1] SET OF Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion }
+
+SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ -- at least one must be present
+ substrings SEQUENCE OF CHOICE {
+ initial [0] LDAPString,
+ any [1] LDAPString,
+ final [2] LDAPString } }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+-- Wahl, et. al. Standards Track [Page 47]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+PartialAttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+SearchResultReference ::= [APPLICATION 19] SEQUENCE OF LDAPURL
+
+SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ modification SEQUENCE OF SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2) },
+ modification AttributeTypeAndValues } }
+
+AttributeTypeAndValues ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+AttributeList ::= SEQUENCE OF SEQUENCE {
+ type AttributeDescription,
+ vals SET OF AttributeValue }
+
+AddResponse ::= [APPLICATION 9] LDAPResult
+
+DelRequest ::= [APPLICATION 10] LDAPDN
+
+DelResponse ::= [APPLICATION 11] LDAPResult
+
+ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+-- Wahl, et. al. Standards Track [Page 48]
+--
+-- RFC 2251 LDAPv3 December 1997
+
+
+CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+CompareResponse ::= [APPLICATION 15] LDAPResult
+
+AbandonRequest ::= [APPLICATION 16] MessageID
+
+ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ response [11] OCTET STRING OPTIONAL }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-InterNodeDefinitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-InterNodeDefinitions.asn
new file mode 100644
index 0000000000..5e6313dc02
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-InterNodeDefinitions.asn
@@ -0,0 +1,123 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+HandoverCommand ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverCommand-r8 HandoverCommand-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+HandoverPreparationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
+ as-Config AS-Config OPTIONAL, -- Cond HO
+ rrm-Config RRM-Config OPTIONAL,
+ as-Context AS-Context OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioAccessCapabilityInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation-r8
+ UERadioAccessCapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+AS-Config ::= SEQUENCE {
+ sourceMeasConfig MeasConfig,
+ sourceRadioResourceConfig RadioResourceConfigDedicated,
+ sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
+ sourceUE-Identity C-RNTI,
+ sourceMasterInformationBlock MasterInformationBlock,
+ sourceSystemInformationBlockType1 SystemInformationBlockType1,
+ sourceSystemInformationBlockType2 SystemInformationBlockType2,
+ antennaInfoCommon AntennaInfoCommon,
+ sourceDl-CarrierFreq ARFCN-ValueEUTRA,
+ ...
+}
+
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
+}
+
+
+ReestablishmentInfo ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellShortMAC-I ShortMAC-I,
+ additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
+ ...
+}
+
+AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
+
+AdditionalReestabInfo ::= SEQUENCE{
+ cellIdentity CellIdentity,
+ key-eNodeB-Star Key-eNodeB-Star,
+ shortMAC-I ShortMAC-I
+}
+
+Key-eNodeB-Star ::= BIT STRING (SIZE (256))
+
+
+RRM-Config ::= SEQUENCE {
+ ue-InactiveTime ENUMERATED {
+ s1, s2, s3, s5, s7, s10, s15, s20,
+ s25, s30, s40, s50, min1, min1s20c, min1s40,
+ min2, min2s30, min3, min3s30, min4, min5, min6,
+ min7, min8, min9, min10, min12, min14, min17, min20,
+ min24, min28, min33, min38, min44, min50, hr1,
+ hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
+ hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
+ day2hr12, day3, day4, day5, day7, day10, day14, day19,
+ day24, day30, dayMoreThan30} OPTIONAL,
+ ...
+}
+
+
+maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
+ -- at handover for re-establishment preparation
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-RRC-Definitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-RRC-Definitions.asn
new file mode 100644
index 0000000000..a451874ef0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-RRC-Definitions.asn
@@ -0,0 +1,2640 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformationBlockType1 SystemInformationBlockType1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ paging Paging
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-CCCH-Message ::= SEQUENCE {
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishment RRCConnectionReestablishment,
+ rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject,
+ rrcConnectionReject RRCConnectionReject,
+ rrcConnectionSetup RRCConnectionSetup
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-DCCH-Message ::= SEQUENCE {
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000,
+ dlInformationTransfer DLInformationTransfer,
+ handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest,
+ mobilityFromEUTRACommand MobilityFromEUTRACommand,
+ rrcConnectionReconfiguration RRCConnectionReconfiguration,
+ rrcConnectionRelease RRCConnectionRelease,
+ securityModeCommand SecurityModeCommand,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ counterCheck CounterCheck,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-CCCH-Message ::= SEQUENCE {
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest,
+ rrcConnectionRequest RRCConnectionRequest
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-DCCH-Message ::= SEQUENCE {
+ message UL-DCCH-MessageType
+}
+
+UL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000,
+ measurementReport MeasurementReport,
+ rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete,
+ rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete,
+ rrcConnectionSetupComplete RRCConnectionSetupComplete,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ ueCapabilityInformation UECapabilityInformation,
+ ulHandoverPreparationTransfer ULHandoverPreparationTransfer,
+ ulInformationTransfer ULInformationTransfer,
+ counterCheckResponse CounterCheckResponse,
+ spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+CounterCheck ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ counterCheck-r8 CounterCheck-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheck-r8-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoList DRB-CountMSB-InfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+DRB-CountMSB-InfoList::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-Info ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ countMSB-Uplink INTEGER(0..33554431),
+ countMSB-Downlink INTEGER(0..33554431)
+}
+
+
+CounterCheckResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheckResponse-r8 CounterCheckResponse-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheckResponse-r8-IEs ::= SEQUENCE {
+ drb-CountInfoList DRB-CountInfoList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo
+
+DRB-CountInfo ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ count-Uplink INTEGER(0..4294967295),
+ count-Downlink INTEGER(0..4294967295)
+}
+
+
+CSFBParametersRequestCDMA2000 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CSFBParametersResponseCDMA2000 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE {
+ rand RAND-CDMA2000,
+ mobilityParameters MobilityParametersCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+DLInformationTransfer ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r8 DLInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
+}
+
+
+HandoverFromEUTRAPreparationRequest ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ handoverFromEUTRAPreparationRequest-r8
+ HandoverFromEUTRAPreparationRequest-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ phich-Config PHICH-Config,
+ systemFrameNumber BIT STRING (SIZE (8)),
+ spare BIT STRING (SIZE (10))
+}
+
+
+
+MeasurementReport ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ measurementReport-r8 MeasurementReport-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MeasurementReport-r8-IEs ::= SEQUENCE {
+ measResults MeasResults,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MobilityFromEUTRACommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+Handover ::= SEQUENCE {
+ targetRAT-Type ENUMERATED {
+ utra, geran, cdma2000-1XRTT, cdma2000-HRPD,
+ spare4, spare3, spare2, spare1, ...},
+ targetRAT-MessageContainer OCTET STRING,
+ nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO
+}
+
+CellChangeOrder ::= SEQUENCE {
+ t304 ENUMERATED {
+ ms100, ms200, ms500, ms1000,
+ ms2000, ms4000, ms8000, spare1},
+ targetRAT-Type CHOICE {
+ geran SEQUENCE {
+ physCellId PhysCellIdGERAN,
+ carrierFreq CarrierFreqGERAN,
+ networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP
+ },
+ ...
+ }
+}
+
+SI-OrPSI-GERAN ::= CHOICE {
+ si SystemInfoListGERAN,
+ psi SystemInfoListGERAN
+}
+
+SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
+ OCTET STRING (SIZE (1..23))
+
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need ON
+ systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
+ etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord
+
+PagingRecord ::= SEQUENCE {
+ ue-Identity PagingUE-Identity,
+ cn-Domain ENUMERATED {ps, cs},
+ ...
+}
+
+PagingUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ imsi IMSI,
+ ...
+}
+
+IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit
+
+IMSI-Digit::= INTEGER (0..9)
+
+
+RRCConnectionReconfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE {
+ measConfig MeasConfig OPTIONAL, -- Need ON
+ mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO
+ dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF
+ DedicatedInfoNAS OPTIONAL, -- Cond nonHO
+ radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA
+ securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigHO ::= SEQUENCE {
+ handoverType CHOICE {
+ intraLTE SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need OP
+ keyChangeIndicator BOOLEAN,
+ nextHopChainingCount NextHopChainingCount
+ },
+ interRAT SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ nas-SecurityParamToEUTRA OCTET STRING (SIZE(6))
+ }
+ },
+ ...
+}
+
+
+RRCConnectionReconfigurationComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReconfigurationComplete-r8
+ RRCConnectionReconfigurationComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishment ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishment-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nextHopChainingCount NextHopChainingCount,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r8
+ RRCConnectionReestablishmentComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentReject-r8
+ RRCConnectionReestablishmentReject-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionReestablishmentRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentRequest-r8
+ RRCConnectionReestablishmentRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity ReestabUE-Identity,
+ reestablishmentCause ReestablishmentCause,
+ spare BIT STRING (SIZE (2))
+}
+
+ReestabUE-Identity ::= SEQUENCE {
+ c-RNTI C-RNTI,
+ physCellId PhysCellId,
+ shortMAC-I ShortMAC-I
+}
+
+ReestablishmentCause ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure,
+ otherFailure, spare1}
+
+
+RRCConnectionReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionReject-r8 RRCConnectionReject-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-r8-IEs ::= SEQUENCE {
+ waitTime INTEGER (1..16),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionRelease ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRelease-r8-IEs ::= SEQUENCE {
+ releaseCause ReleaseCause,
+ redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON
+ idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
+ other,spare2, spare1 }
+
+RedirectedCarrierInfo ::= CHOICE {
+ eutra ARFCN-ValueEUTRA,
+ geran CarrierFreqsGERAN,
+ utra-FDD ARFCN-ValueUTRA,
+ utra-TDD ARFCN-ValueUTRA,
+ cdma2000-HRPD CarrierFreqCDMA2000,
+ cdma2000-1xRTT CarrierFreqCDMA2000,
+ ...
+}
+
+IdleModeMobilityControlInfo ::= SEQUENCE {
+ freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON
+ freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON
+ freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON
+ freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON
+ bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON
+ bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON
+ t320 ENUMERATED {
+ min5, min10, min20, min30, min60, min120, min180,
+ spare1} OPTIONAL, -- Need OR
+ ...
+}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN
+
+FreqsPriorityGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD
+
+FreqPriorityUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD
+
+FreqPriorityUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD
+
+BandClassPriorityHRPD ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT
+
+BandClassPriority1XRTT ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+RRCConnectionRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+InitialUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ randomValue BIT STRING (SIZE (40))
+}
+
+EstablishmentCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, spare3, spare2, spare1}
+
+
+RRCConnectionSetup ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetup-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+RRCConnectionSetupComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE {
+ selectedPLMN-Identity INTEGER (1..6),
+ registeredMME RegisteredMME OPTIONAL,
+ dedicatedInfoNAS DedicatedInfoNAS,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RegisteredMME ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ mmegi BIT STRING (SIZE (16)),
+ mmec MMEC
+}
+
+
+SecurityModeCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ securityModeCommand-r8 SecurityModeCommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeCommand-r8-IEs ::= SEQUENCE {
+ securityConfigSMC SecurityConfigSMC,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete-r8 SecurityModeComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure-r8 SecurityModeFailure-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInfo SEQUENCE {
+ plmn-IdentityList PLMN-IdentityList,
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred ENUMERATED {barred, notBarred},
+ intraFreqReselection ENUMERATED {allowed, notAllowed},
+ csg-Indication BOOLEAN,
+ csg-Identity BIT STRING (SIZE (27)) OPTIONAL -- Need OR
+ },
+ cellSelectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP
+ },
+ p-Max P-Max OPTIONAL, -- Need OP
+ freqBandIndicator INTEGER (1..64),
+ schedulingInfoList SchedulingInfoList,
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ si-WindowLength ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,
+ ms40},
+ systemInfoValueTag INTEGER (0..31),
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo
+
+PLMN-IdentityInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse ENUMERATED {reserved, notReserved}
+}
+
+SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo
+
+SchedulingInfo ::= SEQUENCE {
+ si-Periodicity ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo SIB-MappingInfo
+}
+
+SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type
+
+SIB-Type ::= ENUMERATED {
+ sibType3, sibType4, sibType5, sibType6,
+ sibType7, sibType8, sibType9, sibType10,
+ sibType11, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1, ...}
+
+
+UECapabilityEnquiry ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRequest UE-CapabilityRequest,
+ nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
+}
+
+UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type
+
+
+UECapabilityInformation ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULHandoverPreparationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ meid BIT STRING (SIZE (56)) OPTIONAL,
+ dedicatedInfo DedicatedInfoCDMA2000,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulInformationTransfer-r8 ULInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType2 ::= SEQUENCE {
+ ac-BarringInfo SEQUENCE {
+ ac-BarringForEmergency BOOLEAN,
+ ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ radioResourceConfigCommon RadioResourceConfigCommonSIB,
+ ue-TimersAndConstants UE-TimersAndConstants,
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ timeAlignmentTimerCommon TimeAlignmentTimer,
+ ...
+}
+
+AC-BarringConfig ::= SEQUENCE {
+ ac-BarringFactor ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ ac-BarringForSpecialAC BIT STRING (SIZE(5))
+}
+
+MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+MBSFN-SubframeConfig ::= SEQUENCE {
+ radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32},
+ radioframeAllocationOffset INTEGER (0..7),
+ subframeAllocation CHOICE {
+ oneFrame BIT STRING (SIZE(6)),
+ fourFrames BIT STRING (SIZE(24))
+ }
+}
+
+SystemInformationBlockType3 ::= SEQUENCE {
+ cellReselectionInfoCommon SEQUENCE {
+ q-Hyst ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ speedStateReselectionPars SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ q-HystSF SEQUENCE {
+ sf-Medium ENUMERATED {
+ dB-6, dB-4, dB-2, dB0},
+ sf-High ENUMERATED {
+ dB-6, dB-4, dB-2, dB0}
+ }
+ } OPTIONAL -- Need OP
+ },
+ cellReselectionServingFreqInfo SEQUENCE {
+ s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ threshServingLow ReselectionThreshold,
+ cellReselectionPriority CellReselectionPriority
+ },
+ intraFreqCellReselectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+ },
+ ...
+}
+
+
+SystemInformationBlockType4 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
+ csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
+ ...
+}
+
+IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
+
+IntraFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ ...
+}
+
+IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType5 ::= SEQUENCE {
+ interFreqCarrierFreqList InterFreqCarrierFreqList,
+ ...
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqInfo ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig NeighCellConfig,
+ q-OffsetFreq Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR
+ ...
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType6 ::= SEQUENCE {
+ carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR
+ carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR
+ t-ReselectionUTRA T-Reselection,
+ t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD
+
+CarrierFreqUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ q-QualMin INTEGER (-24..0),
+ ...
+}
+
+CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD
+
+CarrierFreqUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ ...
+}
+
+
+SystemInformationBlockType7 ::= SEQUENCE {
+ t-ReselectionGERAN T-Reselection,
+ t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
+ carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
+ ...
+}
+
+CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN
+
+CarrierFreqsInfoGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ commonInfo SEQUENCE {
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ ncc-Permitted BIT STRING (SIZE (8)),
+ q-RxLevMin INTEGER (0..45),
+ p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold
+ },
+ ...
+}
+
+
+SystemInformationBlockType8 ::= SEQUENCE {
+ systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR
+ parametersHRPD SEQUENCE {
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT SEQUENCE {
+ csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR
+ cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+CellReselectionParametersCDMA2000 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList NeighCellListCDMA2000,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
+
+NeighCellCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
+}
+
+NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
+
+NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList PhysCellIdListCDMA2000
+}
+
+PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000
+
+BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000
+
+BandClassInfoCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High INTEGER (0..63),
+ threshX-Low INTEGER (0..63),
+ ...
+}
+
+
+SystemInformationBlockType9 ::= SEQUENCE {
+ hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType10 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ warningSecurityInfo OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP
+ ...
+}
+
+
+SystemInformationBlockType11 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ ...
+}
+
+
+AntennaInfoCommon ::= SEQUENCE {
+ antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
+}
+
+AntennaInfoDedicated ::= SEQUENCE {
+ transmissionMode ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6,
+ tm7, spare1},
+ codebookSubsetRestriction CHOICE {
+ n2TxAntenna-tm3 BIT STRING (SIZE (2)),
+ n4TxAntenna-tm3 BIT STRING (SIZE (4)),
+ n2TxAntenna-tm4 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm4 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm5 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm5 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm6 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm6 BIT STRING (SIZE (16))
+ } OPTIONAL, -- Cond TM
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+
+CQI-ReportConfig ::= SEQUENCE {
+ cqi-ReportModeAperiodic ENUMERATED {
+ rm12, rm20, rm22, rm30, rm31,
+ spare3, spare2, spare1} OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
+}
+
+CQI-ReportPeriodic ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex INTEGER (0.. 1185),
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic CHOICE {
+ widebandCQI NULL,
+ subbandCQI SEQUENCE {
+ k INTEGER (1..4)
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN
+ }
+}
+
+
+DRB-Identity ::= INTEGER (1..32)
+
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {
+ kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
+ kBps256, infinity, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2, spare1},
+ bucketSizeDuration ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500, ms1000, spare2,
+ spare1},
+ logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond UL
+ ...
+}
+
+
+MAC-MainConfig ::= SEQUENCE {
+ ul-SCH-Config SEQUENCE {
+ maxHARQ-Tx ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n7, n8,
+ n10, n12, n16, n20, n24, n28,
+ spare2, spare1} OPTIONAL, -- Need ON
+ periodicBSR-Timer ENUMERATED {
+ sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1280, sf2560,
+ infinity, spare1} OPTIONAL, -- Need ON
+ retxBSR-Timer ENUMERATED {
+ sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240, spare2, spare1},
+ ttiBundling BOOLEAN
+ } OPTIONAL, -- Need ON
+ drx-Config DRX-Config OPTIONAL, -- Need ON
+ timeAlignmentTimerDedicated TimeAlignmentTimer,
+ phr-Config CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200,
+ sf500, sf1000, infinity},
+ prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100,
+ sf200, sf500, sf1000},
+ dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity}
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+DRX-Config ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ onDurationTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200, psf300, psf500, psf750,
+ psf1280, psf1920, psf2560, spare10,
+ spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ drx-RetransmissionTimer ENUMERATED {
+ psf1, psf2, psf4, psf6, psf8, psf16,
+ psf24, psf33},
+ longDRX-CycleStartOffset CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf1280 INTEGER(0..1279),
+ sf2048 INTEGER(0..2047),
+ sf2560 INTEGER(0..2559)
+ },
+ shortDRX SEQUENCE {
+ shortDRX-Cycle ENUMERATED {
+ sf2, sf5, sf8, sf10, sf16, sf20,
+ sf32, sf40, sf64, sf80, sf128, sf160,
+ sf256, sf320, sf512, sf640},
+ drxShortCycleTimer INTEGER (1..16)
+ } OPTIONAL -- Need OR
+ }
+}
+
+
+PDCP-Config ::= SEQUENCE {
+ discardTimer ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500,
+ ms750, ms1500, infinity
+ } OPTIONAL, -- Cond Setup
+ rlc-AM SEQUENCE {
+ statusReportRequired BOOLEAN
+ } OPTIONAL, -- Cond Rlc-AM
+ rlc-UM SEQUENCE {
+ pdcp-SN-Size ENUMERATED {len7bits, len12bits}
+ } OPTIONAL, -- Cond Rlc-UM
+ headerCompression CHOICE {
+ notUsed NULL,
+ rohc SEQUENCE {
+ maxCID INTEGER (1..16383) DEFAULT 15,
+ profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ ...
+ }
+ },
+ ...
+}
+
+
+PDSCH-ConfigCommon::= SEQUENCE {
+ referenceSignalPower INTEGER (-60..50),
+ p-b INTEGER (0..3)
+}
+
+PDSCH-ConfigDedicated::= SEQUENCE {
+ p-a ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3 }
+}
+
+
+PHICH-Config ::= SEQUENCE {
+ phich-Duration ENUMERATED {normal, extended},
+ phich-Resource ENUMERATED {oneSixth, half, one, two}
+}
+
+
+PhysicalConfigDedicated ::= SEQUENCE {
+ pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON
+ pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON
+ pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ antennaInfo CHOICE {
+ explicitValue AntennaInfoDedicated,
+ defaultValue NULL
+ } OPTIONAL, -- Need ON
+ schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
+ ...
+}
+
+
+P-Max ::= INTEGER (-30..33)
+
+
+PRACH-ConfigSIB ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo
+}
+
+PRACH-Config ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
+}
+
+PRACH-ConfigInfo ::= SEQUENCE {
+ prach-ConfigIndex INTEGER (0..63),
+ highSpeedFlag BOOLEAN,
+ zeroCorrelationZoneConfig INTEGER (0..15),
+ prach-FreqOffset INTEGER (0..94)
+}
+
+
+PresenceAntennaPort1 ::= BOOLEAN
+
+
+PUCCH-ConfigCommon ::= SEQUENCE {
+ deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3},
+ nRB-CQI INTEGER (0..98),
+ nCS-AN INTEGER (0..7),
+ n1PUCCH-AN INTEGER (0..2047)
+}
+
+PUCCH-ConfigDedicated ::= SEQUENCE {
+ ackNackRepetition CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ repetitionFactor ENUMERATED { n2, n4, n6, spare1},
+ n1PUCCH-AN-Rep INTEGER (0..2047)
+ }
+ },
+ tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD
+}
+
+
+PUSCH-ConfigCommon ::= SEQUENCE {
+ pusch-ConfigBasic SEQUENCE {
+ n-SB INTEGER (1..4),
+ hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame},
+ pusch-HoppingOffset INTEGER (0..98),
+ enable64QAM BOOLEAN
+ },
+ ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH
+}
+
+PUSCH-ConfigDedicated ::= SEQUENCE {
+ betaOffset-ACK-Index INTEGER (0..15),
+ betaOffset-RI-Index INTEGER (0..15),
+ betaOffset-CQI-Index INTEGER (0..15)
+}
+
+UL-ReferenceSignalsPUSCH ::= SEQUENCE {
+ groupHoppingEnabled BOOLEAN,
+ groupAssignmentPUSCH INTEGER (0..29),
+ sequenceHoppingEnabled BOOLEAN,
+ cyclicShift INTEGER (0..7)
+}
+
+
+RACH-ConfigCommon ::= SEQUENCE {
+ preambleInfo SEQUENCE {
+ numberOfRA-Preambles ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60, n64},
+ preamblesGroupAConfig SEQUENCE {
+ sizeOfRA-PreamblesGroupA ENUMERATED {
+ n4, n8, n12, n16 ,n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60},
+ messageSizeGroupA ENUMERATED {b56, b144, b208, b256},
+ messagePowerOffsetGroupB ENUMERATED {
+ minusinfinity, dB0, dB5, dB8, dB10, dB12,
+ dB15, dB18},
+ ...
+ } OPTIONAL -- Need OP
+ },
+ powerRampingParameters SEQUENCE {
+ powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6},
+ preambleInitialReceivedTargetPower ENUMERATED {
+ dBm-120, dBm-118, dBm-116, dBm-114, dBm-112,
+ dBm-110, dBm-108, dBm-106, dBm-104, dBm-102,
+ dBm-100, dBm-98, dBm-96, dBm-94,
+ dBm-92, dBm-90}
+ },
+ ra-SupervisionInfo SEQUENCE {
+ preambleTransMax ENUMERATED {
+ n3, n4, n5, n6, n7, n8, n10, n20, n50,
+ n100, n200},
+ ra-ResponseWindowSize ENUMERATED {
+ sf2, sf3, sf4, sf5, sf6, sf7,
+ sf8, sf10},
+ mac-ContentionResolutionTimer ENUMERATED {
+ sf8, sf16, sf24, sf32, sf40, sf48,
+ sf56, sf64}
+ },
+ maxHARQ-Msg3Tx INTEGER (1..8),
+ ...
+}
+
+
+RACH-ConfigDedicated ::= SEQUENCE {
+ ra-PreambleIndex INTEGER (0..63),
+ ra-PRACH-MaskIndex INTEGER (0..15)
+}
+
+
+RadioResourceConfigCommonSIB ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon,
+ bcch-Config BCCH-Config,
+ pcch-Config PCCH-Config,
+ prach-Config PRACH-ConfigSIB,
+ pdsch-ConfigCommon PDSCH-ConfigCommon,
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ pucch-ConfigCommon PUCCH-ConfigCommon,
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon,
+ uplinkPowerControlCommon UplinkPowerControlCommon,
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+RadioResourceConfigCommon ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON
+ prach-Config PRACH-Config,
+ pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ phich-Config PHICH-Config OPTIONAL, -- Need ON
+ pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON
+ uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON
+ antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...
+}
+
+BCCH-Config ::= SEQUENCE {
+ modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}
+}
+
+PCCH-Config ::= SEQUENCE {
+ defaultPagingCycle ENUMERATED {
+ rf32, rf64, rf128, rf256},
+ nB ENUMERATED {
+ fourT, twoT, oneT, halfT, quarterT, oneEighthT,
+ oneSixteenthT, oneThirtySecondT}
+}
+
+UL-CyclicPrefixLength ::= ENUMERATED {len1, len2}
+
+
+RadioResourceConfigDedicated ::= SEQUENCE {
+ srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn
+ drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA
+ drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON
+ mac-MainConfig CHOICE {
+ explicitValue MAC-MainConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond HO-toEUTRA2
+ sps-Config SPS-Config OPTIONAL, -- Need ON
+ physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON
+ ...
+}
+
+SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
+
+SRB-ToAddMod ::= SEQUENCE {
+ srb-Identity INTEGER (1..2),
+ rlc-Config CHOICE {
+ explicitValue RLC-Config,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ logicalChannelConfig CHOICE {
+ explicitValue LogicalChannelConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod
+
+DRB-ToAddMod ::= SEQUENCE {
+ eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity DRB-Identity,
+ pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP
+ rlc-Config RLC-Config OPTIONAL, -- Cond Setup
+ logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup
+ logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup
+ ...
+}
+
+DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
+
+
+RLC-Config ::= CHOICE {
+ am SEQUENCE {
+ ul-AM-RLC UL-AM-RLC,
+ dl-AM-RLC DL-AM-RLC
+ },
+ um-Bi-Directional SEQUENCE {
+ ul-UM-RLC UL-UM-RLC,
+ dl-UM-RLC DL-UM-RLC
+ },
+ um-Uni-Directional-UL SEQUENCE {
+ ul-UM-RLC UL-UM-RLC
+ },
+ um-Uni-Directional-DL SEQUENCE {
+ dl-UM-RLC DL-UM-RLC
+ },
+ ...
+}
+
+UL-AM-RLC ::= SEQUENCE {
+ t-PollRetransmit T-PollRetransmit,
+ pollPDU PollPDU,
+ pollByte PollByte,
+ maxRetxThreshold ENUMERATED {
+ t1, t2, t3, t4, t6, t8, t16, t32}
+}
+
+DL-AM-RLC ::= SEQUENCE {
+ t-Reordering T-Reordering,
+ t-StatusProhibit T-StatusProhibit
+}
+
+UL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength
+}
+
+DL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength,
+ t-Reordering T-Reordering
+}
+
+SN-FieldLength ::= ENUMERATED {size5, size10}
+
+T-PollRetransmit ::= ENUMERATED {
+ ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1}
+
+PollPDU ::= ENUMERATED {
+ p4, p8, p16, p32, p64, p128, p256, pInfinity}
+
+PollByte ::= ENUMERATED {
+ kB25, kB50, kB75, kB100, kB125, kB250, kB375,
+ kB500, kB750, kB1000, kB1250, kB1500, kB2000,
+ kB3000, kBinfinity, spare1}
+
+T-Reordering ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms110,
+ ms120, ms130, ms140, ms150, ms160, ms170,
+ ms180, ms190, ms200, spare1}
+
+T-StatusProhibit ::= ENUMERATED {
+ ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
+ ms40, ms45, ms50, ms55, ms60, ms65, ms70,
+ ms75, ms80, ms85, ms90, ms95, ms100, ms105,
+ ms110, ms115, ms120, ms125, ms130, ms135,
+ ms140, ms145, ms150, ms155, ms160, ms165,
+ ms170, ms175, ms180, ms185, ms190, ms195,
+ ms200, ms205, ms210, ms215, ms220, ms225,
+ ms230, ms235, ms240, ms245, ms250, ms300,
+ ms350, ms400, ms450, ms500, spare8, spare7,
+ spare6, spare5, spare4, spare3, spare2,
+ spare1}
+
+
+SchedulingRequestConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex INTEGER (0..2047),
+ sr-ConfigIndex INTEGER (0..155),
+ dsr-TransMax ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+
+SoundingRS-UL-ConfigCommon ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7},
+ srs-SubframeConfig ENUMERATED {
+ sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7,
+ sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15},
+ ackNackSRS-SimultaneousTransmission BOOLEAN,
+ srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD
+ }
+}
+
+SoundingRS-UL-ConfigDedicated ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition INTEGER (0..23),
+ duration BOOLEAN,
+ srs-ConfigIndex INTEGER (0..1023),
+ transmissionComb INTEGER (0..1),
+ cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+ }
+}
+
+
+
+SPS-Config ::= SEQUENCE {
+ semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON
+ sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON
+}
+
+SPS-ConfigDL ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalDL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ numberOfConfSPS-Processes INTEGER (1..8),
+ n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList,
+ ...
+ }
+}
+
+SPS-ConfigUL ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalUL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ implicitReleaseAfter ENUMERATED {e2, e3, e4, e8},
+ p0-Persistent SEQUENCE {
+ p0-NominalPUSCH-Persistent INTEGER (-126..24),
+ p0-UE-PUSCH-Persistent INTEGER (-8..7)
+ } OPTIONAL, -- Need OP
+ twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD
+ ...
+ }
+}
+
+N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+
+TDD-Config ::= SEQUENCE {
+ subframeAssignment ENUMERATED {
+ sa0, sa1, sa2, sa3, sa4, sa5, sa6},
+ specialSubframePatterns ENUMERATED {
+ ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7,
+ ssp8}
+}
+
+
+TimeAlignmentTimer ::= ENUMERATED {
+ sf500, sf750, sf1280, sf1920, sf2560, sf5120,
+ sf10240, infinity}
+
+TPC-PDCCH-Config::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-RNTI BIT STRING (SIZE (16)),
+ tpc-Index TPC-Index
+ }
+}
+
+TPC-Index ::= CHOICE {
+ indexOfFormat3 INTEGER (1..15),
+ indexOfFormat3A INTEGER (1..31)
+}
+
+
+UplinkPowerControlCommon ::= SEQUENCE {
+ p0-NominalPUSCH INTEGER (-126..24),
+ alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1},
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaPreambleMsg3 INTEGER (-1..6)
+}
+
+UplinkPowerControlDedicated ::= SEQUENCE {
+ p0-UE-PUSCH INTEGER (-8..7),
+ deltaMCS-Enabled ENUMERATED {en0, en1},
+ accumulationEnabled BOOLEAN,
+ p0-UE-PUCCH INTEGER (-8..7),
+ pSRS-Offset INTEGER (0..15),
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+DeltaFList-PUCCH ::= SEQUENCE {
+ deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5},
+ deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2},
+ deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2}
+}
+
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+
+SecurityAlgorithmConfig ::= SEQUENCE {
+ cipheringAlgorithm ENUMERATED {
+ eea0, eea1, eea2, spare5, spare4, spare3,
+ spare2, spare1, ...},
+ integrityProtAlgorithm ENUMERATED {
+ reserved, eia1, eia2, spare5, spare4, spare3,
+ spare2, spare1, ...}
+}
+
+
+ShortMAC-I ::= BIT STRING (SIZE (16))
+
+
+AdditionalSpectrumEmission ::= INTEGER (1..32)
+
+
+ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
+
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+
+ARFCN-ValueGERAN ::= INTEGER (0..1023)
+
+
+ARFCN-ValueUTRA ::= INTEGER (0..16383)
+
+
+BandclassCDMA2000 ::= ENUMERATED {
+ bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8,
+ bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16,
+ bc17, spare14, spare13, spare12, spare11, spare10,
+ spare9, spare8, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1, ...}
+
+
+BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900}
+
+
+CarrierFreqCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ arfcn ARFCN-ValueCDMA2000
+}
+
+
+CarrierFreqGERAN ::= SEQUENCE {
+ arfcn ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN
+}
+
+
+CarrierFreqsGERAN ::= SEQUENCE {
+ startingARFCN ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN,
+ followingARFCNs CHOICE {
+ explicitListOfARFCNs ExplicitListOfARFCNs,
+ equallySpacedARFCNs SEQUENCE {
+ arfcn-Spacing INTEGER (1..8),
+ numberOfFollowingARFCNs INTEGER (0..31)
+ },
+ variableBitMapOfARFCNs OCTET STRING (SIZE (1..16))
+ }
+}
+
+ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN
+
+
+CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD}
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+
+CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex
+
+CellIndex ::= INTEGER (1..maxCellMeas)
+
+
+CellReselectionPriority ::= INTEGER (0..7)
+
+
+CSFB-RegistrationParam1XRTT ::= SEQUENCE {
+ sid BIT STRING (SIZE (15)),
+ nid BIT STRING (SIZE (16)),
+ multipleSID BOOLEAN,
+ multipleNID BOOLEAN,
+ homeReg BOOLEAN,
+ foreignSIDReg BOOLEAN,
+ foreignNIDReg BOOLEAN,
+ parameterReg BOOLEAN,
+ powerUpReg BOOLEAN,
+ registrationPeriod BIT STRING (SIZE (7)),
+ registrationZone BIT STRING (SIZE (12)),
+ totalZone BIT STRING (SIZE (3)),
+ zoneTimer BIT STRING (SIZE (3))
+}
+
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity
+}
+
+
+CellGlobalIdUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28))
+}
+
+
+CellGlobalIdGERAN ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16))
+}
+
+
+CellGlobalIdCDMA2000 ::= CHOICE {
+ cellGlobalId1XRTT BIT STRING (SIZE (47)),
+ cellGlobalIdHRPD BIT STRING (SIZE (128))
+}
+
+
+MobilityControlInfo ::= SEQUENCE {
+ targetPhysCellId PhysCellId,
+ carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA
+ t304 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, spare1},
+ newUE-Identity C-RNTI,
+ radioResourceConfigCommon RadioResourceConfigCommon,
+ rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierBandwidthEUTRA ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1},
+ ul-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL -- Need OP
+}
+
+CarrierFreqEUTRA ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD
+}
+
+
+MobilityParametersCDMA2000 ::= OCTET STRING
+
+
+MobilityStateParameters ::= SEQUENCE {
+ t-Evaluation ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ t-HystNormal ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ n-CellChangeMedium INTEGER (1..16),
+ n-CellChangeHigh INTEGER (1..16)
+}
+
+
+PhysCellId ::= INTEGER (0..503)
+
+
+PhysCellIdRange ::= SEQUENCE {
+ start PhysCellId,
+ range ENUMERATED {
+ n4, n8, n12, n16, n24, n32, n48, n64, n84,
+ n96, n128, n168, n252, n504, spare2,
+ spare1} OPTIONAL -- Need OP
+}
+
+
+PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset)
+
+
+PhysCellIdGERAN ::= SEQUENCE {
+ networkColourCode BIT STRING (SIZE (3)),
+ baseStationColourCode BIT STRING (SIZE (3))
+}
+
+
+PhysCellIdUTRA-FDD ::= INTEGER (0..511)
+
+
+PhysCellIdUTRA-TDD ::= INTEGER (0..127)
+
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL, -- Cond MCC
+ mnc MNC
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+ MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+
+
+PreRegistrationInfoHRPD ::= SEQUENCE {
+ preRegistrationAllowed BOOLEAN,
+ preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed
+ secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR
+}
+
+SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD
+
+PreRegistrationZoneIdHRPD ::= INTEGER (0..255)
+
+
+Q-RxLevMin ::= INTEGER (-70..-22)
+
+
+Q-OffsetRange ::= ENUMERATED {
+ dB-24, dB-22, dB-20, dB-18, dB-16, dB-14,
+ dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3,
+ dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5,
+ dB6, dB8, dB10, dB12, dB14, dB16, dB18,
+ dB20, dB22, dB24}
+
+
+Q-OffsetRangeInterRAT ::= INTEGER (-15..15)
+
+
+ReselectionThreshold ::= INTEGER (0..31)
+
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+
+SystemTimeInfoCDMA2000 ::= SEQUENCE {
+ cdma-EUTRA-Synchronisation BOOLEAN,
+ cdma-SystemTime CHOICE {
+ synchronousSystemTime BIT STRING (SIZE (39)),
+ asynchronousSystemTime BIT STRING (SIZE (49))
+ }
+}
+
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+
+
+T-Reselection ::= INTEGER (0..7)
+
+
+AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
+
+
+Hysteresis ::= INTEGER (0..30)
+
+
+MeasConfig ::= SEQUENCE {
+ -- Measurement objects
+ measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON
+ measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON
+ -- Reporting configurations
+ reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON
+ reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON
+ -- Measurement identities
+ measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON
+ measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL, -- Need ON
+ measGapConfig MeasGapConfig OPTIONAL, -- Need ON
+ s-Measure RSRP-Range OPTIONAL, -- Need ON
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
+
+MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
+
+ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
+
+
+MeasGapConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffset CHOICE {
+ gp0 INTEGER (0..39),
+ gp1 INTEGER (0..79),
+ ...
+ }
+ }
+}
+
+
+MeasId ::= INTEGER (1..maxMeasId)
+
+
+MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
+
+MeasIdToAddMod ::= SEQUENCE {
+ measId MeasId,
+ measObjectId MeasObjectId,
+ reportConfigId ReportConfigId
+}
+
+
+MeasObjectCDMA2000 ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ carrierFreq CarrierFreqCDMA2000,
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000
+
+CellsToAddModCDMA2000 ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdCDMA2000
+}
+
+
+MeasObjectEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ offsetFreq Q-OffsetRange DEFAULT dB0,
+ -- Neighbour cell list
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON
+ -- Black list
+ blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod
+
+CellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellId,
+ cellIndividualOffset Q-OffsetRange
+}
+
+BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod
+
+BlackCellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellIdRange PhysCellIdRange
+}
+
+
+MeasObjectGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B,
+ cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON
+ ...
+}
+
+
+MeasObjectId ::= INTEGER (1..maxObjectId)
+
+
+MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectEUTRA MeasObjectEUTRA,
+ measObjectUTRA MeasObjectUTRA,
+ measObjectGERAN MeasObjectGERAN,
+ measObjectCDMA2000 MeasObjectCDMA2000,
+ ...
+ }
+}
+
+
+MeasObjectUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CHOICE {
+ cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD,
+ cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD
+ } OPTIONAL, -- Need ON
+ cellForWhichToReportCGI CHOICE {
+ utra-FDD PhysCellIdUTRA-FDD,
+ utra-TDD PhysCellIdUTRA-TDD
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD
+
+CellsToAddModUTRA-FDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-FDD
+}
+
+CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD
+
+CellsToAddModUTRA-TDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-TDD
+}
+
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultServCell SEQUENCE {
+ rsrpResult RSRP-Range,
+ rsrqResult RSRQ-Range
+ },
+ measResultNeighCells CHOICE {
+ measResultListEUTRA MeasResultListEUTRA,
+ measResultListUTRA MeasResultListUTRA,
+ measResultListGERAN MeasResultListGERAN,
+ measResultsCDMA2000 MeasResultsCDMA2000,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA
+
+MeasResultUTRA ::= SEQUENCE {
+ physCellId CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdUTRA,
+ locationAreaCode BIT STRING (SIZE (16)) OPTIONAL,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ utra-RSCP INTEGER (-5..91) OPTIONAL,
+ utra-EcN0 INTEGER (0..49) OPTIONAL,
+ ...
+ }
+}
+
+MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN
+
+MeasResultGERAN ::= SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdGERAN,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rssi INTEGER (0..63),
+ ...
+ }
+}
+
+MeasResultsCDMA2000 ::= SEQUENCE {
+ preRegistrationStatusHRPD BOOLEAN,
+ measResultListCDMA2000 MeasResultListCDMA2000
+}
+
+MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000
+
+MeasResultCDMA2000 ::= SEQUENCE {
+ physCellId PhysCellIdCDMA2000,
+ cgi-Info CellGlobalIdCDMA2000 OPTIONAL,
+ measResult SEQUENCE {
+ pilotPnPhase INTEGER (0..32767) OPTIONAL,
+ pilotStrength INTEGER (0..63),
+ ...
+ }
+}
+
+PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
+ quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
+ quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
+ quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+QuantityConfigEUTRA ::= SEQUENCE {
+ filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
+ filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA ::= SEQUENCE {
+ measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
+ measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigGERAN ::= SEQUENCE {
+ measQuantityGERAN ENUMERATED {rssi},
+ filterCoefficient FilterCoefficient DEFAULT fc2
+}
+
+QuantityConfigCDMA2000 ::= SEQUENCE {
+ measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength}
+}
+
+
+ReportConfigEUTRA ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventA1 SEQUENCE {
+ a1-Threshold ThresholdEUTRA
+ },
+ eventA2 SEQUENCE {
+ a2-Threshold ThresholdEUTRA
+ },
+ eventA3 SEQUENCE {
+ a3-Offset INTEGER (-30..30),
+ reportOnLeave BOOLEAN
+ },
+ eventA4 SEQUENCE {
+ a4-Threshold ThresholdEUTRA
+ },
+ eventA5 SEQUENCE {
+ a5-Threshold1 ThresholdEUTRA,
+ a5-Threshold2 ThresholdEUTRA
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells, reportCGI}
+ }
+ },
+ triggerQuantity ENUMERATED {rsrp, rsrq},
+ reportQuantity ENUMERATED {sameAsTriggerQuantity, both},
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdEUTRA ::= CHOICE{
+ threshold-RSRP RSRP-Range,
+ threshold-RSRQ RSRQ-Range
+}
+
+
+ReportConfigId ::= INTEGER (1..maxReportConfigId)
+
+
+ReportConfigInterRAT ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventB1 SEQUENCE {
+ b1-Threshold CHOICE {
+ b1-ThresholdUTRA ThresholdUTRA,
+ b1-ThresholdGERAN ThresholdGERAN,
+ b1-ThresholdCDMA2000 ThresholdCDMA2000
+ }
+ },
+ eventB2 SEQUENCE {
+ b2-Threshold1 ThresholdEUTRA,
+ b2-Threshold2 CHOICE {
+ b2-Threshold2UTRA ThresholdUTRA,
+ b2-Threshold2GERAN ThresholdGERAN,
+ b2-Threshold2CDMA2000 ThresholdCDMA2000
+ }
+ },
+ ...
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells,
+ reportStrongestCellsForSON,
+ reportCGI}
+ }
+ },
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...
+}
+
+ThresholdUTRA ::= CHOICE{
+ utra-RSCP INTEGER (-5..91),
+ utra-EcN0 INTEGER (0..49)
+}
+
+ThresholdGERAN ::= INTEGER (0..63)
+
+ThresholdCDMA2000 ::= INTEGER (0..63)
+
+
+ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod
+
+ReportConfigToAddMod ::= SEQUENCE {
+ reportConfigId ReportConfigId,
+ reportConfig CHOICE {
+ reportConfigEUTRA ReportConfigEUTRA,
+ reportConfigInterRAT ReportConfigInterRAT
+ }
+}
+
+
+
+ReportInterval ::= ENUMERATED {
+ ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240,
+ min1, min6, min12, min30, min60, spare3, spare2, spare1}
+
+
+RSRP-Range ::= INTEGER(0..97)
+
+
+RSRQ-Range ::= INTEGER(0..34)
+
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+
+DedicatedInfoCDMA2000 ::= OCTET STRING
+
+
+DedicatedInfoNAS ::= OCTET STRING
+
+
+FilterCoefficient ::= ENUMERATED {
+ fc0, fc1, fc2, fc3, fc4, fc5,
+ fc6, fc7, fc8, fc9, fc11, fc13,
+ fc15, fc17, fc19, spare1, ...}
+
+
+MMEC ::= BIT STRING (SIZE (8))
+
+
+NeighCellConfig ::= BIT STRING (SIZE (2))
+
+
+RAND-CDMA2000 ::= BIT STRING (SIZE (32))
+
+
+RAT-Type ::= ENUMERATED {
+ eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
+ spare3, spare2, spare1, ...}
+
+
+RRC-TransactionIdentifier ::= INTEGER (0..3)
+
+
+S-TMSI ::= SEQUENCE {
+ mmec MMEC,
+ m-TMSI BIT STRING (SIZE (32))
+}
+
+
+UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container
+
+UE-CapabilityRAT-Container ::= SEQUENCE {
+ rat-Type RAT-Type,
+ ueCapabilityRAT-Container OCTET STRING
+}
+
+
+UE-EUTRA-Capability ::= SEQUENCE {
+ accessStratumRelease AccessStratumRelease,
+ ue-Category INTEGER (1..5),
+ pdcp-Parameters PDCP-Parameters,
+ phyLayerParameters PhyLayerParameters,
+ rf-Parameters RF-Parameters,
+ measParameters MeasParameters,
+ featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-Parameters SEQUENCE {
+ utraFDD IRAT-ParametersUTRA-FDD OPTIONAL,
+ utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL,
+ utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL,
+ utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL,
+ geran IRAT-ParametersGERAN OPTIONAL,
+ cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL,
+ cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AccessStratumRelease ::= ENUMERATED {
+ rel8, spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1, ...}
+
+PDCP-Parameters ::= SEQUENCE {
+ supportedROHC-Profiles SEQUENCE {
+ profile0x0001 BOOLEAN,
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0101 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ maxNumberROHC-ContextSessions ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16,
+ ...
+}
+
+PhyLayerParameters ::= SEQUENCE {
+ ue-TxAntennaSelectionSupported BOOLEAN,
+ ue-SpecificRefSigsSupported BOOLEAN
+}
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SupportedBandListEUTRA
+}
+
+SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA INTEGER (1..64),
+ halfDuplex BOOLEAN
+}
+
+MeasParameters ::= SEQUENCE {
+ bandListEUTRA BandListEUTRA
+}
+
+BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
+
+BandInfoEUTRA ::= SEQUENCE {
+ interFreqBandList InterFreqBandList,
+ interRAT-BandList InterRAT-BandList OPTIONAL
+}
+
+InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo
+
+InterFreqBandInfo ::= SEQUENCE {
+ interFreqNeedForGaps BOOLEAN
+}
+
+InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo
+
+InterRAT-BandInfo ::= SEQUENCE {
+ interRAT-NeedForGaps BOOLEAN
+}
+
+IRAT-ParametersUTRA-FDD ::= SEQUENCE {
+ supportedBandListUTRA-FDD SupportedBandListUTRA-FDD
+}
+
+SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD
+
+SupportedBandUTRA-FDD ::= ENUMERATED {
+ bandI, bandII, bandIII, bandIV, bandV, bandVI,
+ bandVII, bandVIII, bandIX, bandX, bandXI,
+ bandXII, bandXIII, bandXIV, bandXV, bandXVI, ...}
+
+IRAT-ParametersUTRA-TDD128 ::= SEQUENCE {
+ supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128
+}
+
+SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128
+
+SupportedBandUTRA-TDD128 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD384 ::= SEQUENCE {
+ supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384
+}
+
+SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384
+
+SupportedBandUTRA-TDD384 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD768 ::= SEQUENCE {
+ supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768
+}
+
+SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768
+
+SupportedBandUTRA-TDD768 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersGERAN ::= SEQUENCE {
+ supportedBandListGERAN SupportedBandListGERAN,
+ interRAT-PS-HO-ToGERAN BOOLEAN
+}
+
+SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN
+
+SupportedBandGERAN ::= ENUMERATED {
+ gsm450, gsm480, gsm710, gsm750, gsm810, gsm850,
+ gsm900P, gsm900E, gsm900R, gsm1800, gsm1900,
+ spare5, spare4, spare3, spare2, spare1, ...}
+
+IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE {
+ supportedBandListHRPD SupportedBandListHRPD,
+ tx-ConfigHRPD ENUMERATED {single, dual},
+ rx-ConfigHRPD ENUMERATED {single, dual}
+}
+
+SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE {
+ supportedBandList1XRTT SupportedBandList1XRTT,
+ tx-Config1XRTT ENUMERATED {single, dual},
+ rx-Config1XRTT ENUMERATED {single, dual}
+}
+
+SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+
+UE-TimersAndConstants ::= SEQUENCE {
+ t300 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t301 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+}
+
+
+maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
+maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
+maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells
+ -- listed in SIB type 4 and 5
+maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency
+ -- cells listed in SIB type 5
+maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency
+ -- cells listed in SIB type 4
+maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the neighbour
+ -- cell lists in a measurement object
+maxCellReport INTEGER ::= 8 -- Maximum number of reported cells
+maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier fequency
+maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier frequencies
+maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be
+ -- provided as part of NACC information
+maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups
+maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
+ -- different offset
+maxMCS-1 INTEGER ::= 16 -- Maximum number of PUCCH formats (MCS)
+maxMeasId INTEGER ::= 32
+maxObjectId INTEGER ::= 32
+maxPageRec INTEGER ::= 16 --
+maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
+maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
+maxReportConfigId INTEGER ::= 32
+maxSIB INTEGER ::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER ::= 31
+maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
+maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
+maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-UE-Variables.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-UE-Variables.asn
new file mode 100644
index 0000000000..414140a6fb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-UE-Variables.asn
@@ -0,0 +1,49 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12)
+-- $Id$
+--
+EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+VarMeasConfig ::= SEQUENCE {
+ -- Measurement identities
+ measIdList MeasIdToAddModList OPTIONAL,
+ -- Measurement objects
+ measObjectList MeasObjectToAddModList OPTIONAL,
+ -- Reporting configurations
+ reportConfigList ReportConfigToAddModList OPTIONAL,
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL,
+ s-Measure RSRP-Range OPTIONAL,
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL
+}
+
+
+VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
+
+VarMeasReport ::= SEQUENCE {
+ -- List of measurement that have been triggered
+ measId MeasId,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
+ numberOfReportsSent INTEGER
+}
+
+CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
+
+
+VarShortMAC-Input ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ physCellId PhysCellId,
+ c-RNTI C-RNTI
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-55.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-55.asn
new file mode 100644
index 0000000000..248e6963c9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-55.asn
@@ -0,0 +1,47 @@
+EUTRA-extract-55 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..5)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...
+ },
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SystemInformationBlockType2 ::= INTEGER
+SystemInformationBlockType3 ::= INTEGER
+SystemInformationBlockType4 ::= INTEGER
+SystemInformationBlockType5 ::= INTEGER
+SystemInformationBlockType6 ::= INTEGER
+SystemInformationBlockType7 ::= INTEGER
+SystemInformationBlockType8 ::= INTEGER
+SystemInformationBlockType9 ::= INTEGER
+SystemInformationBlockType10 ::= INTEGER
+SystemInformationBlockType11 ::= INTEGER
+
+-- OTP-7763
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b1 BIT STRING (SIZE (8)),
+ b2 BIT STRING (SIZE (1)),
+ b CellIdentity,
+ c INTEGER,
+ d BOOLEAN
+}
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-7407.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-7407.asn1
new file mode 100644
index 0000000000..fb81c42251
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EUTRA-extract-7407.asn1
@@ -0,0 +1,109 @@
+-- 3GPP TS 36.331 V8.8.0 (2009-12) modified
+-- $Id$
+--
+EUTRA-extract-7407 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformation1 SystemInformation1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensions SEQUENCE {}
+ }
+}
+
+maxSIB INTEGER ::= 1
+maxSI-Message INTEGER ::= 1
+
+SystemInformation-r8-IEs ::= SEQUENCE (SIZE (1..maxSIB)) OF SEQUENCE
+ { -- Size is FFS
+ sib-Type SIB-Type, -- FFS
+ sib-Info OCTET STRING, -- FFS
+ ...
+ }
+
+SIB-Type ::= ENUMERATED {
+ sibType1, -- FFS if SIB1 need explicit indication
+ sibType2, sibType3, sibType4, sibType5,
+ sibType6, sibType7, sibType8,
+ spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+
+SystemInformationMaster ::= MasterInformationBlock
+
+
+SystemInformation1 ::= SystemInformationBlockType1
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInformation SEQUENCE {
+ plmn-IdentityList SEQUENCE (SIZE (1..6)) OF SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse BOOLEAN
+ },
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred BOOLEAN,
+ intraFrequencyCellReselection BOOLEAN OPTIONAL, -- Cond CellBarred
+ cellReservationExtension BOOLEAN,
+ csg-Indication BOOLEAN
+ },
+ cellSelectionInfo SEQUENCE {
+ q-Rxlevmin INTEGER (-60..-28) -- value range FFS
+ }, -- need FFS
+ frequencyBandIndicator INTEGER (1..64),
+ schedulinInformation SEQUENCE (SIZE (1..maxSI-Message)) OF SEQUENCE {
+ si-MessageType SEQUENCE {}, -- FFS
+ si-Periodicity ENUMERATED {
+ ms80, ms160, ms320, ms640}, -- value range FFS
+ sib-MappingInfo SEQUENCE {} -- FFS
+ },
+ systemInformationValueTag INTEGER (0), -- value is 3..5 bits FFS
+ ...
+}
+
+PLMN-Identity ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+TrackingAreaCode ::= SEQUENCE {
+ -- Enter other IEs here.
+}
+CellIdentity ::= SEQUENCE {
+ -- Enter the IEs here.
+}
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-SystemBandwidth BIT STRING (SIZE (4)),
+ numberOfTransmitAntennas BIT STRING (SIZE (4)),
+ phich-Configuration PHICH-Configuration,
+ systemFrameNumber BIT STRING (SIZE (8))
+}
+
+PHICH-Configuration ::= SEQUENCE {
+ phich-Duration ENUMERATED {short, long},
+ phich-Resource ENUMERATED {ffs} -- 2-bit field FFS
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Enum.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Enum.py
new file mode 100644
index 0000000000..3fb0ee3297
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Enum.py
@@ -0,0 +1,46 @@
+Enum DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+-- EXPORTS P1, P2;
+
+-- F.2.3.1
+-- Use an enumerated type to model the values of a variable
+-- with three or more states.
+-- Assign values starting with zero if their only
+-- constraint is distinctness.
+-- EXAMPLE
+
+DayOfTheWeek ::= ENUMERATED {sunday(0), monday(1), tuesday(2),
+ wednesday(3), thursday(4), friday(5), saturday(6)}
+
+firstDay DayOfTheWeek ::= sunday
+
+-- F.2.3.2
+-- Use an enumerated type to model the values of a variable that
+-- has just two states now,
+-- but that may have additional states in a future version of the protocol.
+-- EXAMPLE
+
+MaritalStatus ::= ENUMERATED {single(0), married(1)}
+
+-- in anticipation of
+
+MaritalStatus2 ::= ENUMERATED {single(0), married(1), widowed(2)}
+
+
+E1 ::= ENUMERATED {blue,green,yellow}
+
+E2 ::= ENUMERATED {monday(0),thuesday(1),wednesday(2),thursday(3),friday(4)}
+
+E3 ::= ENUMERATED {monday,thuesday(0)}
+
+S ::= SEQUENCE {
+ e1 ENUMERATED {hej,hopp},
+ e2 [2] EXPLICIT ENUMERATED {san,sa}
+ }
+
+enumVal E3 ::= monday
+--enumWrongVal E3 ::= sunday
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumExt.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumExt.asn1
new file mode 100644
index 0000000000..9ad1f6299e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumExt.asn1
@@ -0,0 +1,28 @@
+EnumExt DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+Ext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...
+}
+
+Ext1 ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2),
+ ...,
+ orange(7)
+}
+
+Noext ::= ENUMERATED {
+ blue(0),
+ red(1),
+ green(2)
+}
+
+Globalstate ::= ENUMERATED {def(1),com(2),preop(3),oper(4),noop(5),fail(6)}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumerationBadExtension.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumerationBadExtension.asn1
new file mode 100644
index 0000000000..471f92d7b6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/EnumerationBadExtension.asn1
@@ -0,0 +1,20 @@
+EnumerationBadExtension DEFINITIONS ::=
+BEGIN
+
+Enum1 ::= ENUMERATED {
+ first,
+ second}
+
+Enum2 ::= ENUMERATED {
+ first,
+ ...,
+ second}
+
+Enum3 ::= ENUMERATED {
+ first,
+ second,
+ ...}
+
+ENum3 ::= ENUMERATED {...,first,second}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ErrorClass.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/ErrorClass.asn
new file mode 100644
index 0000000000..ab0f25ae4f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ErrorClass.asn
@@ -0,0 +1,15 @@
+ErrorClass DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ERROR;
+
+
+ERROR ::= CLASS {
+ &errorCode INTEGER UNIQUE,
+ &ParameterType OPTIONAL
+ }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Example.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Example.asn1
new file mode 100644
index 0000000000..2639f63940
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Example.asn1
@@ -0,0 +1,20 @@
+Example DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c Typ}
+--ECLASS ::= CLASS {
+-- &num INTEGER UNIQUE,
+-- &Typo
+-- } WITH SYNTAX {
+-- &Typo DETERMINED BY &num
+-- }
+
+--v1 ECLASS ::= {INTEGER DETERMINED BY 12}
+
+--v2 INTEGER ::= 13
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Export1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Export1.asn
new file mode 100644
index 0000000000..78ead8f4d2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Export1.asn
@@ -0,0 +1,7 @@
+Export1 DEFINITIONS ::=
+BEGIN
+EXPORTS T
+
+T ::= Typ
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/External.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/External.asn1
new file mode 100644
index 0000000000..07b2c6aced
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/External.asn1
@@ -0,0 +1,132 @@
+External DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+XSeq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 XSeqIn
+}
+
+XSeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XSet1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 XSetIn
+}
+
+XSetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+XBool ::= BOOLEAN
+XBoolImp ::= [22] BOOLEAN
+XBoolExp ::= [23] EXPLICIT BOOLEAN
+
+XCho ::= CHOICE
+{
+ boolCho [44] BOOLEAN,
+ intCho [45] INTEGER
+}
+
+
+XSetExt1 ::= SET
+{
+ ...
+}
+
+XSetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSetExt3 ::= SET
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSetExt4 ::= SET
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+XSeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+XSeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+-- XSeqExt3 ::= SEQUENCE
+-- {
+-- ...,
+-- bool BOOLEAN,
+-- int INTEGER
+-- }
+
+-- XSeqExt4 ::= SEQUENCE
+-- {
+-- bool BOOLEAN,
+-- ...,
+-- int INTEGER
+-- }
+
+
+
+XNT ::= OCTET STRING
+XImp ::= [1] OCTET STRING
+XExp ::= [2] EXPLICIT OCTET STRING
+
+XChoNT ::= CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XChoExp ::= [2] EXPLICIT CHOICE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSetNT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetImp ::= [1] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSetExp ::= [2] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+XSeqNT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqImp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+XSeqExp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/From.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/From.py
new file mode 100644
index 0000000000..882d0b20be
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/From.py
@@ -0,0 +1,15 @@
+From DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+AreaCode ::= SEQUENCE
+{
+
+ firstDigit IA5String
+ (FROM ( "2" | "3" ) ),
+ secondDigit IA5String
+ (FROM ( "3" | "4" ) )
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/H235-SECURITY-MESSAGES.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/H235-SECURITY-MESSAGES.asn
new file mode 100644
index 0000000000..3401f9599f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/H235-SECURITY-MESSAGES.asn
@@ -0,0 +1,170 @@
+H235-SECURITY-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+
+ChallengeString ::= OCTET STRING (SIZE(8..128))
+TimeStamp ::= INTEGER(1..4294967295) -- seconds since 00:00 1/1/1970 UTC
+RandomVal ::= INTEGER
+Password ::= BMPString (SIZE (1..128))
+Identifier ::= BMPString (SIZE (1..128))
+KeyMaterial ::= BIT STRING(SIZE(1..2048))
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier OBJECT IDENTIFIER,
+ data OCTET STRING
+}
+
+-- if local octet representations of these bit strings are used they shall
+-- utilize standard Network Octet ordering (e.g. Big Endian)
+DHset ::= SEQUENCE
+{
+ halfkey BIT STRING (SIZE(0..2048)), -- = g^x mod n
+ modSize BIT STRING (SIZE(0..2048)), -- n
+ generator BIT STRING (SIZE(0..2048)), -- g
+ ...
+}
+
+TypedCertificate ::= SEQUENCE
+{
+ type OBJECT IDENTIFIER,
+ certificate OCTET STRING,
+ ...
+}
+
+AuthenticationMechanism ::=CHOICE
+{
+ dhExch NULL, -- Diffe-Hellman
+ pwdSymEnc NULL, -- password with symmetric encryption
+ pwdHash NULL, -- password with hashing
+ certSign NULL, -- Certificate with signature
+ ipsec NULL, -- IPSEC based connection
+ tls NULL,
+ nonStandard NonStandardParameter, -- something else.
+ ...
+}
+
+ClearToken ::= SEQUENCE -- a `token' may contain multiple value types.
+{
+ timeStamp TimeStamp OPTIONAL,
+ password Password OPTIONAL,
+ dhkey DHset OPTIONAL,
+ challenge ChallengeString OPTIONAL,
+ random RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL,
+ generalID Identifier OPTIONAL,
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+--
+-- Start all the cryptographic parameterized types here....
+--
+
+
+SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ signature BIT STRING
+} ( CONSTRAINED BY { -- Verify or Sign Certificate -- } )
+
+
+ENCRYPTED { ToBeEncrypted } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ encryptedData OCTET STRING
+} ( CONSTRAINED BY { -- Encrypt or Decrypt -- ToBeEncrypted } )
+
+HASHED { ToBeHashed } ::= SEQUENCE {
+ algorithmOID OBJECT IDENTIFIER,
+ paramS Params, -- any 'runtime' parameters
+ hash BIT STRING
+} ( CONSTRAINED BY { -- Hash -- ToBeHashed } )
+
+IV8 ::= OCTET STRING (SIZE(8))
+
+-- signing algorithm used must select one of these types of parameters
+-- needed by receiving end of signature.
+
+Params ::= SEQUENCE {
+ ranInt INTEGER OPTIONAL, -- some integer value
+ iv8 IV8 OPTIONAL, -- 8 octet initialization vector
+ ...
+}
+
+EncodedGeneralToken ::= TYPE-IDENTIFIER.&Type (ClearToken -- general usage token -- )
+PwdCertToken ::= ClearToken (WITH COMPONENTS {..., timeStamp PRESENT, generalID PRESENT})
+EncodedPwdCertToken ::= TYPE-IDENTIFIER.&Type (PwdCertToken)
+
+CryptoToken::= CHOICE
+{
+
+ cryptoEncryptedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token ENCRYPTED { EncodedGeneralToken }
+ },
+ cryptoSignedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ token SIGNED { EncodedGeneralToken }
+ },
+ cryptoHashedToken SEQUENCE -- General purpose/application specific token
+ {
+ tokenOID OBJECT IDENTIFIER,
+ hashedVals ClearToken,
+ token HASHED { EncodedGeneralToken }
+ },
+ cryptoPwdEncr ENCRYPTED { EncodedPwdCertToken },
+ ...
+}
+
+-- These allow the passing of session keys within the H.245 OLC structure.
+-- They are encoded as standalone ASN.1 and based as an OCTET STRING within H.245
+H235Key ::=CHOICE -- this is used with the H.245 'h235Key' field
+{
+ secureChannel KeyMaterial,
+ sharedSecret ENCRYPTED {EncodedKeySyncMaterial},
+ certProtectedKey SIGNED { EncodedKeySignedMaterial },
+ ...
+}
+
+KeySignedMaterial ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ mrandom RandomVal, -- master's random value
+ srandom RandomVal OPTIONAL, -- slave's random value
+ timeStamp TimeStamp OPTIONAL, -- master's timestamp for unsolicted EU
+ encrptval ENCRYPTED {EncodedKeySyncMaterial }
+}
+EncodedKeySignedMaterial ::= TYPE-IDENTIFIER.&Type (KeySignedMaterial)
+
+KeySyncMaterial ::=SEQUENCE
+{
+ generalID Identifier,
+ keyMaterial KeyMaterial,
+ ...
+}
+EncodedKeySyncMaterial ::=TYPE-IDENTIFIER.&Type (KeySyncMaterial)
+
+H235CertificateSignature ::=SEQUENCE
+{
+ certificate TypedCertificate,
+ responseRandom RandomVal,
+ requesterRandom RandomVal OPTIONAL,
+ signature SIGNED { EncodedReturnSig },
+ ...
+}
+
+ReturnSig ::= SEQUENCE {
+ generalId Identifier, -- slave's alias
+ responseRandom RandomVal,
+ requestRandom RandomVal OPTIONAL,
+ certificate TypedCertificate OPTIONAL -- requested certificate
+}
+
+EncodedReturnSig ::= TYPE-IDENTIFIER.&Type (ReturnSig)
+
+
+END -- End of H235-SECURITY-MESSAGES DEFINITIONS
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/H323-MESSAGES.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/H323-MESSAGES.asn
new file mode 100644
index 0000000000..ba6802f122
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/H323-MESSAGES.asn
@@ -0,0 +1,1341 @@
+H323-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+
+IMPORTS
+ SIGNED{},
+ ENCRYPTED{},
+ HASHED{},
+ ChallengeString,
+ TimeStamp,
+ RandomVal,
+ Password,
+ EncodedPwdCertToken,
+ ClearToken,
+ CryptoToken,
+ AuthenticationMechanism
+ FROM H235-SECURITY-MESSAGES;
+
+H323-UserInformation ::= SEQUENCE -- root for all Q.931 related ASN.1
+{
+ h323-uu-pdu H323-UU-PDU,
+ user-data SEQUENCE
+ {
+ protocol-discriminator INTEGER (0..255),
+ user-information OCTET STRING (SIZE(1..131)),
+ ...
+ } OPTIONAL,
+ ...
+}
+
+H323-UU-PDU ::= SEQUENCE
+{
+ h323-message-body CHOICE
+ {
+ setup Setup-UUIE,
+ callProceeding CallProceeding-UUIE,
+ connect Connect-UUIE,
+ alerting Alerting-UUIE,
+ userInformation UI-UUIE,
+ releaseComplete ReleaseComplete-UUIE,
+ facility Facility-UUIE,
+ ...,
+ progress Progress-UUIE,
+ empty NULL -- used when a FACILITY message is sent,
+-- but the Facility-UUIE is not to be invoked
+-- (possible when transporting supplementary
+-- services messages)
+ },
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ h4501SupplementaryService SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each sequence of octet string is defined as one
+ -- H4501SupplementaryService APDU as defined in
+ -- Table 3/H.450.1
+ h245Tunneling BOOLEAN,
+ -- if TRUE, tunneling of H.245 messages is enabled
+ h245Control SEQUENCE OF OCTET STRING OPTIONAL,
+ -- each octet string may contain exactly
+ -- one H.245 PDU
+ nonStandardControl SEQUENCE OF NonStandardParameter OPTIONAL
+}
+
+Alerting-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+CallProceeding-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+Connect-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ destinationInfo EndpointType,
+ conferenceID ConferenceIdentifier,
+ ...,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+UI-UUIE ::=SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseComplete-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ reason ReleaseCompleteReason OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier
+}
+
+ReleaseCompleteReason ::= CHOICE
+{
+ noBandwidth NULL, -- bandwidth taken away or ARQ denied
+ gatekeeperResources NULL, -- exhausted
+ unreachableDestination NULL, -- no transport path to the destination
+ destinationRejection NULL, -- rejected at destination
+ invalidRevision NULL,
+ noPermission NULL, -- called party's gatekeeper rejects
+ unreachableGatekeeper NULL, -- terminal cannot reach gatekeeper for ARQ
+ gatewayResources NULL,
+ badFormatAddress NULL,
+ adaptiveBusy NULL, -- call is dropping due to LAN crowding
+ inConf NULL, -- no address in AlternativeAddress
+ undefinedReason NULL,
+ ...,
+ facilityCallDeflection NULL, -- call was deflected using a Facility message
+ securityDenied NULL, -- incompatible security settings
+ calledPartyNotRegistered NULL, -- used by gatekeeper when endpoint has
+ -- preGrantedARQ to bypass ARQ/ACF
+ callerNotregistered NULL -- used by gatekeeper when endpoint has
+ -- preGrantedArq to bypass ARQ/ACF
+}
+
+Setup-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ h245Address TransportAddress OPTIONAL,
+ sourceAddress SEQUENCE OF AliasAddress OPTIONAL,
+ sourceInfo EndpointType,
+ destinationAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destCallSignalAddress TransportAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL, -- Note(1)
+ destExtraCRV SEQUENCE OF CallReferenceValue OPTIONAL,-- Note(1)
+ activeMC BOOLEAN,
+ conferenceID ConferenceIdentifier,
+ conferenceGoal CHOICE
+ {
+ create NULL,
+ join NULL,
+ invite NULL,
+ ...,
+ capability-negotiation NULL,
+ callIndependentSupplementaryService NULL
+ },
+ callServices QseriesOptions OPTIONAL,
+ callType CallType,
+ ...,
+ sourceCallSignalAddress TransportAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityCapability SEQUENCE OF H245Security OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL,
+ mediaWaitForConnect BOOLEAN,
+ canOverlapSend BOOLEAN
+}
+
+Facility-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ alternativeAddress TransportAddress OPTIONAL,
+ alternativeAliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ conferenceID ConferenceIdentifier OPTIONAL,
+ reason FacilityReason,
+ ...,
+ callIdentifier CallIdentifier,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ remoteExtensionAddress AliasAddress OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ conferences SEQUENCE OF ConferenceList OPTIONAL,
+ h245Address TransportAddress OPTIONAL
+}
+
+ConferenceList ::= SEQUENCE
+{
+ conferenceID ConferenceIdentifier OPTIONAL,
+ conferenceAlias AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+FacilityReason ::= CHOICE
+{
+ routeCallToGatekeeper NULL, -- call must use gatekeeper model
+ -- gatekeeper is alternativeAddress
+ callForwarded NULL,
+ routeCallToMC NULL,
+ undefinedReason NULL,
+ ...,
+ conferenceListChoice NULL,
+ startH245 NULL -- recipient should connect to h245Address
+}
+
+Progress-UUIE ::= SEQUENCE
+{
+ protocolIdentifier ProtocolIdentifier,
+ destinationInfo EndpointType,
+ h245Address TransportAddress OPTIONAL,
+ callIdentifier CallIdentifier,
+ h245SecurityMode H245Security OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ fastStart SEQUENCE OF OCTET STRING OPTIONAL
+}
+
+TransportAddress ::= CHOICE
+{
+ ipAddress SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535)
+ },
+ ipSourceRoute SEQUENCE
+ {
+ ip OCTET STRING (SIZE(4)),
+ port INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING(SIZE(4)),
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL,
+ ...
+ },
+ ...
+ },
+ ipxAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ port OCTET STRING (SIZE(2))
+ },
+ ip6Address SEQUENCE
+ {
+ ip OCTET STRING (SIZE(16)),
+ port INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter,
+ ...
+}
+
+EndpointType ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ vendor VendorIdentifier OPTIONAL,
+ gatekeeper GatekeeperInfo OPTIONAL,
+ gateway GatewayInfo OPTIONAL,
+ mcu McuInfo OPTIONAL, -- mc must be set as well
+ terminal TerminalInfo OPTIONAL,
+ mc BOOLEAN, -- shall not be set by itself
+ undefinedNode BOOLEAN,
+ ...
+}
+
+GatewayInfo ::= SEQUENCE
+{
+ protocol SEQUENCE OF SupportedProtocols OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+SupportedProtocols ::= CHOICE
+{
+ nonStandardData NonStandardParameter,
+ h310 H310Caps,
+ h320 H320Caps,
+ h321 H321Caps,
+ h322 H322Caps,
+ h323 H323Caps,
+ h324 H324Caps,
+ voice VoiceCaps,
+ t120-only T120OnlyCaps,
+ ...,
+ nonStandardProtocol NonStandardProtocol
+}
+
+H310Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H320Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H321Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H322Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H323Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+H324Caps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+VoiceCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+T120OnlyCaps ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix
+}
+
+NonStandardProtocol ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ dataRatesSupported SEQUENCE OF DataRate OPTIONAL,
+ supportedPrefixes SEQUENCE OF SupportedPrefix,
+ ...
+}
+
+McuInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+TerminalInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+GatekeeperInfo ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...
+}
+
+VendorIdentifier ::= SEQUENCE
+{
+ vendor H221NonStandard,
+ productId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionId OCTET STRING (SIZE(1..256)) OPTIONAL, -- per product
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{ t35CountryCode INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ ...
+}
+
+AliasAddress ::= CHOICE
+{
+ e164 IA5String (SIZE (1..128)) (FROM ("0123456789#*,")),
+ h323-ID BMPString (SIZE (1..256)), -- Basic ISO/IEC 10646-1 (Unicode)
+ ...,
+ url-ID IA5String (SIZE(1..512)), -- URL style address
+ transportID TransportAddress,
+ email-ID IA5String (SIZE(1..512)), -- rfc822-compliant email address
+ partyNumber PartyNumber
+}
+
+PartyNumber ::= CHOICE
+{
+ publicNumber PublicPartyNumber,
+ -- the numbering plan is according to
+ -- Recommendations E.163 and E.164.
+ dataPartyNumber NumberDigits,
+ -- not used, value reserved.
+ telexPartyNumber NumberDigits,
+ -- not used, value reserved.
+ privateNumber PrivatePartyNumber,
+ nationalStandardPartyNumber NumberDigits,
+ -- not used, value reserved.
+ ...
+}
+
+PublicPartyNumber ::= SEQUENCE
+{
+ publicTypeOfNumber PublicTypeOfNumber,
+ publicNumberDigits NumberDigits
+}
+
+PrivatePartyNumber ::= SEQUENCE
+{
+ privateTypeOfNumber PrivateTypeOfNumber,
+ privateNumberDigits NumberDigits
+}
+
+NumberDigits ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+PublicTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ -- if used number digits carry prefix indicating type
+ -- of number according to national recommendations.
+ internationalNumber NULL,
+ nationalNumber NULL,
+ networkSpecificNumber NULL,
+ -- not used, value reserved
+ subscriberNumber NULL,
+ abbreviatedNumber NULL,
+ -- valid only for called party number at the outgoing
+ -- access, network substitutes appropriate number.
+...
+}
+
+PrivateTypeOfNumber ::= CHOICE
+{
+ unknown NULL,
+ level2RegionalNumber NULL,
+ level1RegionalNumber NULL,
+ pISNSpecificNumber NULL,
+ localNumber NULL,
+ abbreviatedNumber NULL,
+ ...
+}
+
+Endpoint ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ aliasAddress SEQUENCE OF AliasAddress OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ rasAddress SEQUENCE OF TransportAddress OPTIONAL,
+ endpointType EndpointType OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ priority INTEGER(0..127) OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ ...
+}
+
+AlternateGK ::= SEQUENCE
+{
+ rasAddress TransportAddress,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ needToRegister BOOLEAN,
+ priority INTEGER (0..127),
+ ...
+}
+
+AltGKInfo ::= SEQUENCE
+{
+ alternateGatekeeper SEQUENCE OF AlternateGK,
+ altGKisPermanent BOOLEAN,
+ ...
+}
+
+SecurityServiceMode ::= CHOICE
+{
+nonStandard NonStandardParameter,
+none NULL,
+default NULL,
+... -- can be extended with other specific modes
+}
+
+SecurityCapabilities ::= SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ encryption SecurityServiceMode,
+ authenticaton SecurityServiceMode,
+ integrity SecurityServiceMode,
+...
+}
+
+H245Security ::= CHOICE
+{
+ nonStandard NonStandardParameter,
+ noSecurity NULL,
+ tls SecurityCapabilities,
+ ipsec SecurityCapabilities,
+ ...
+}
+
+QseriesOptions ::= SEQUENCE
+{
+ q932Full BOOLEAN, -- if true, indicates full support for Q.932
+ q951Full BOOLEAN, -- if true, indicates full support for Q.951
+ q952Full BOOLEAN, -- if true, indicates full support for Q.952
+ q953Full BOOLEAN, -- if true, indicates full support for Q.953
+ q955Full BOOLEAN, -- if true, indicates full support for Q.955
+ q956Full BOOLEAN, -- if true, indicates full support for Q.956
+ q957Full BOOLEAN, -- if true, indicates full support for Q.957
+ q954Info Q954Details,
+ ...
+}
+
+Q954Details ::= SEQUENCE
+{
+ conferenceCalling BOOLEAN,
+ threePartyService BOOLEAN,
+ ...
+}
+
+GloballyUniqueID ::= OCTET STRING (SIZE(16))
+ConferenceIdentifier ::= GloballyUniqueID
+RequestSeqNum ::= INTEGER (1..65535)
+GatekeeperIdentifier ::= BMPString (SIZE(1..128))
+BandWidth ::= INTEGER (0.. 4294967295) -- in 100s of bits
+CallReferenceValue ::= INTEGER (0..65535)
+EndpointIdentifier ::= BMPString (SIZE(1..128))
+ProtocolIdentifier ::= OBJECT IDENTIFIER
+ -- shall be set to
+ -- {itu-t (0) recommendation (0) h (8) 2250 version (0) 2}
+TimeToLive ::= INTEGER (1..4294967295) --in seconds
+
+CallIdentifier ::= SEQUENCE
+{
+ guid GloballyUniqueID,
+ ...
+}
+
+
+EncryptIntAlg ::= CHOICE
+{ -- core encryption algorithms for RAS message integrity
+ nonStandard NonStandardParameter,
+ isoAlgorithm OBJECT IDENTIFIER, -- defined in ISO/IEC 9979
+ ...
+}
+NonIsoIntegrityMechanism ::= CHOICE
+{ -- HMAC mechanism used, no truncation, tagging may be necessary!
+ hMAC-MD5 NULL,
+ hMAC-iso10118-2-s EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (short MAC)
+ hMAC-iso10118-2-l EncryptIntAlg, -- according to ISO/IEC 10118-2 using
+ -- EncryptIntAlg as core block encryption algorithm
+ -- (long MAC)
+ hMAC-iso10118-3 OBJECT IDENTIFIER, -- according to ISO/IEC 10118-3 using
+ -- OID as hash function (OID is SHA-1, RIPE-MD160,
+ -- RIPE-MD128)
+ ...
+}
+
+IntegrityMechanism ::= CHOICE
+{ -- for RAS message integrity
+ nonStandard NonStandardParameter,
+ digSig NULL, -- indicates to apply a digital signature
+ iso9797 OBJECT IDENTIFIER, -- according to ISO/IEC 9797 using OID as
+ -- core encryption algorithm (X-CBC MAC)
+ nonIsoIM NonIsoIntegrityMechanism,
+ ...
+}
+
+ICV ::= SEQUENCE
+{
+ algorithmOID OBJECT IDENTIFIER, -- the algorithm used to compute the signature
+ icv BIT STRING -- the computed cryptographic integrity check value
+-- or signature
+}
+
+FastStartToken ::= ClearToken (WITH COMPONENTS {..., timeStamp, dhkey, generalID -- set to 'alias' -- })
+EncodedFastStartToken ::= TYPE-IDENTIFIER.&Type (FastStartToken)
+CryptoH323Token::= CHOICE
+{
+ cryptoEPPwdHash SEQUENCE
+{
+ alias AliasAddress, -- alias of entity generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to 'alias' -- }
+ },
+ cryptoGKPwdHash SEQUENCE
+{
+gatekeeperId GatekeeperIdentifier, -- GatekeeperID of GK generating hash
+ timeStamp TimeStamp, -- timestamp used in hash
+token HASHED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- }
+ },
+ cryptoEPPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoGKPwdEncr ENCRYPTED
+{ EncodedPwdCertToken -- generalID set to Gatekeeperid --},
+ cryptoEPCert SIGNED { EncodedPwdCertToken -- generalID set to Gatekeeperid -- },
+ cryptoGKCert SIGNED { EncodedPwdCertToken -- generalID set to alias -- },
+ cryptoFastStart SIGNED { EncodedFastStartToken },
+ nestedcryptoToken CryptoH323Token,
+ ...
+}
+
+
+DataRate ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ channelRate BandWidth,
+ channelMultiplier INTEGER (1..256) OPTIONAL,
+ ...
+}
+
+SupportedPrefix ::= SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ prefix AliasAddress,
+ ...
+}
+
+
+RasMessage ::= CHOICE
+{
+ gatekeeperRequest GatekeeperRequest,
+ gatekeeperConfirm GatekeeperConfirm,
+ gatekeeperReject GatekeeperReject,
+ registrationRequest RegistrationRequest,
+ registrationConfirm RegistrationConfirm,
+ registrationReject RegistrationReject,
+ unregistrationRequest UnregistrationRequest,
+ unregistrationConfirm UnregistrationConfirm,
+ unregistrationReject UnregistrationReject,
+ admissionRequest AdmissionRequest,
+ admissionConfirm AdmissionConfirm,
+ admissionReject AdmissionReject,
+ bandwidthRequest BandwidthRequest,
+ bandwidthConfirm BandwidthConfirm,
+ bandwidthReject BandwidthReject,
+ disengageRequest DisengageRequest,
+ disengageConfirm DisengageConfirm,
+ disengageReject DisengageReject,
+ locationRequest LocationRequest,
+ locationConfirm LocationConfirm,
+ locationReject LocationReject,
+ infoRequest InfoRequest,
+ infoRequestResponse InfoRequestResponse,
+ nonStandardMessage NonStandardMessage,
+ unknownMessageResponse UnknownMessageResponse,
+ ...,
+ requestInProgress RequestInProgress,
+ resourcesAvailableIndicate ResourcesAvailableIndicate,
+ resourcesAvailableConfirm ResourcesAvailableConfirm,
+ infoRequestAck InfoRequestAck,
+ infoRequestNak InfoRequestNak
+}
+
+GatekeeperRequest ::= SEQUENCE --(GRQ)
+{
+
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rasAddress TransportAddress,
+ endpointType EndpointType,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ authenticationCapability SEQUENCE OF AuthenticationMechanism OPTIONAL,
+ algorithmOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperConfirm ::= SEQUENCE --(GCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rasAddress TransportAddress,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ authenticationMode AuthenticationMechanism OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ algorithmOID OBJECT IDENTIFIER OPTIONAL,
+ integrity SEQUENCE OF IntegrityMechanism OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperReject ::= SEQUENCE --(GRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ rejectReason GatekeeperRejectReason,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+GatekeeperRejectReason ::= CHOICE
+{
+ resourceUnavailable NULL,
+ terminalExcluded NULL, -- permission failure, not a resource failure
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+RegistrationRequest ::= SEQUENCE --(RRQ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ discoveryComplete BOOLEAN,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ rasAddress SEQUENCE OF TransportAddress,
+ terminalType EndpointType,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointVendor VendorIdentifier,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ keepAlive BOOLEAN,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+RegistrationConfirm ::= SEQUENCE --(RCF)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ terminalAlias SEQUENCE OF AliasAddress OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ ...,
+ alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL,
+ timeToLive TimeToLive OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ preGrantedARQ SEQUENCE
+ {
+ makeCall BOOLEAN,
+ useGKCallSignalAddressToMakeCall BOOLEAN,
+ answerCall BOOLEAN,
+ useGKCallSignalAddressToAnswer BOOLEAN,
+ ...
+ } OPTIONAL
+}
+
+RegistrationReject ::= SEQUENCE --(RRJ)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ rejectReason RegistrationRejectReason,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RegistrationRejectReason ::= CHOICE
+{
+ discoveryRequired NULL, -- registration permission has aged
+ invalidRevision NULL,
+ invalidCallSignalAddress NULL,
+ invalidRASAddress NULL, -- supplied address is invalid
+ duplicateAlias SEQUENCE OF AliasAddress,
+ -- alias registered to another endpoint
+ invalidTerminalType NULL,
+ undefinedReason NULL,
+ transportNotSupported NULL, -- one or more of the transports
+ ...,
+ transportQOSNotSupported NULL, -- endpoint QoS not supported
+ resourceUnavailable NULL, -- gatekeeper resources exhausted
+ invalidAlias NULL, -- alias not consistent with gatekeeper rules
+ securityDenial NULL
+}
+
+UnregistrationRequest ::= SEQUENCE --(URQ)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ ...,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ reason UnregRequestReason OPTIONAL
+}
+
+UnregRequestReason ::= CHOICE
+{
+ reregistrationRequired NULL,
+ ttlExpired NULL,
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+UnregistrationConfirm ::= SEQUENCE --(UCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregistrationReject ::= SEQUENCE --(URJ)
+{
+
+ requestSeqNum RequestSeqNum,
+ rejectReason UnregRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnregRejectReason ::= CHOICE
+{
+ notCurrentlyRegistered NULL,
+ callInProgress NULL,
+ undefinedReason NULL,
+ ...,
+ permissionDenied NULL, -- requesting user not allowed to unregister
+ -- specified user
+ securityDenial NULL
+}
+
+AdmissionRequest ::= SEQUENCE --(ARQ)
+{
+ requestSeqNum RequestSeqNum,
+ callType CallType,
+ callModel CallModel OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL, --Note 1
+ destCallSignalAddress TransportAddress OPTIONAL, --Note 1
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ srcInfo SEQUENCE OF AliasAddress,
+ srcCallSignalAddress TransportAddress OPTIONAL,
+ bandWidth BandWidth,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ callServices QseriesOptions OPTIONAL,
+ conferenceID ConferenceIdentifier,
+ activeMC BOOLEAN,
+ answerCall BOOLEAN, -- answering a call
+ ...,
+ canMapAlias BOOLEAN, -- can handle alias address
+ callIdentifier CallIdentifier,
+ srcAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ destAlternatives SEQUENCE OF Endpoint OPTIONAL,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willSupplyUUIEs BOOLEAN
+}
+
+CallType ::= CHOICE
+{
+ pointToPoint NULL, -- Point to point
+ oneToN NULL, -- no interaction (FFS)
+ nToOne NULL, -- no interaction (FFS)
+ nToN NULL, -- interactive (multipoint)
+ ...
+}
+
+CallModel ::= CHOICE
+{
+ direct NULL,
+ gatekeeperRouted NULL,
+ ...
+}
+
+TransportQOS ::= CHOICE
+{
+ endpointControlled NULL,
+ gatekeeperControlled NULL,
+ noControl NULL,
+ ...
+}
+
+AdmissionConfirm ::= SEQUENCE --(ACF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ callModel CallModel,
+ destCallSignalAddress TransportAddress,
+ irrFrequency INTEGER (1..65535) OPTIONAL,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ transportQOS TransportQOS OPTIONAL,
+ willRespondToIRR BOOLEAN,
+ uuiesRequested UUIEsRequested
+}
+
+UUIEsRequested ::= SEQUENCE
+{
+ setup BOOLEAN,
+ callProceeding BOOLEAN,
+ connect BOOLEAN,
+ alerting BOOLEAN,
+ userInformation BOOLEAN,
+ releaseComplete BOOLEAN,
+ facility BOOLEAN,
+ progress BOOLEAN,
+ empty BOOLEAN,
+ ...
+}
+
+AdmissionReject ::= SEQUENCE --(ARJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason AdmissionRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ callSignalAddress SEQUENCE OF TransportAddress OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+AdmissionRejectReason ::= CHOICE
+{
+ calledPartyNotRegistered NULL, -- can't translate address
+ invalidPermission NULL, -- permission has expired
+ requestDenied NULL, -- no bandwidth available
+ undefinedReason NULL,
+ callerNotRegistered NULL,
+ routeCallToGatekeeper NULL,
+ invalidEndpointIdentifier NULL,
+ resourceUnavailable NULL,
+ ...,
+ securityDenial NULL,
+ qosControlNotSupported NULL,
+ incompleteAddress NULL
+}
+
+BandwidthRequest ::= SEQUENCE --(BRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ callType CallType OPTIONAL,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+BandwidthConfirm ::= SEQUENCE --(BCF)
+{
+ requestSeqNum RequestSeqNum,
+ bandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandwidthReject ::= SEQUENCE --(BRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason BandRejectReason,
+ allowedBandWidth BandWidth,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+BandRejectReason ::= CHOICE
+{
+ notBound NULL, -- discovery permission has aged
+ invalidConferenceID NULL, -- possible revision
+ invalidPermission NULL, -- true permission violation
+ insufficientResources NULL,
+ invalidRevision NULL,
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+LocationRequest ::= SEQUENCE --(LRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier OPTIONAL,
+ destinationInfo SEQUENCE OF AliasAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress,
+ ...,
+ sourceInfo SEQUENCE OF AliasAddress OPTIONAL,
+ canMapAlias BOOLEAN, -- can handle alias address
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationConfirm ::= SEQUENCE --(LCF)
+{
+ requestSeqNum RequestSeqNum,
+ callSignalAddress TransportAddress,
+ rasAddress TransportAddress,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ destinationInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destExtraCallInfo SEQUENCE OF AliasAddress OPTIONAL,
+ destinationType EndpointType OPTIONAL,
+ remoteExtensionAddress SEQUENCE OF AliasAddress OPTIONAL,
+ alternateEndpoints SEQUENCE OF Endpoint OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+LocationReject ::= SEQUENCE --(LRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason LocationRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+
+LocationRejectReason ::= CHOICE
+{
+ notRegistered NULL,
+ invalidPermission NULL, -- exclusion by administrator or feature
+ requestDenied NULL, -- can't find location
+ undefinedReason NULL,
+ ...,
+ securityDenial NULL
+}
+
+DisengageRequest ::= SEQUENCE --(DRQ)
+{
+ requestSeqNum RequestSeqNum,
+ endpointIdentifier EndpointIdentifier,
+ conferenceID ConferenceIdentifier,
+ callReferenceValue CallReferenceValue,
+ disengageReason DisengageReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ gatekeeperIdentifier GatekeeperIdentifier OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ answeredCall BOOLEAN
+}
+
+DisengageReason ::= CHOICE
+{
+ forcedDrop NULL, -- gatekeeper is forcing the drop
+ normalDrop NULL, -- associated with normal drop
+ undefinedReason NULL,
+ ...
+}
+
+DisengageConfirm ::= SEQUENCE --(DCF)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageReject ::= SEQUENCE --(DRJ)
+{
+ requestSeqNum RequestSeqNum,
+ rejectReason DisengageRejectReason,
+ nonStandardData NonStandardParameter OPTIONAL,
+ ...,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+DisengageRejectReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ requestToDropOther NULL, -- can't request drop for others
+ ...,
+ securityDenial NULL
+}
+
+InfoRequest ::= SEQUENCE --(IRQ)
+{
+ requestSeqNum RequestSeqNum,
+ callReferenceValue CallReferenceValue,
+ nonStandardData NonStandardParameter OPTIONAL,
+ replyAddress TransportAddress OPTIONAL,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ uuiesRequested UUIEsRequested OPTIONAL
+}
+InfoRequestResponse ::= SEQUENCE --(IRR)
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ requestSeqNum RequestSeqNum,
+ endpointType EndpointType,
+ endpointIdentifier EndpointIdentifier,
+ rasAddress TransportAddress,
+ callSignalAddress SEQUENCE OF TransportAddress,
+ endpointAlias SEQUENCE OF AliasAddress OPTIONAL,
+ perCallInfo SEQUENCE OF SEQUENCE
+ {
+ nonStandardData NonStandardParameter OPTIONAL,
+ callReferenceValue CallReferenceValue,
+ conferenceID ConferenceIdentifier,
+ originator BOOLEAN OPTIONAL,
+ audio SEQUENCE OF RTPSession OPTIONAL,
+ video SEQUENCE OF RTPSession OPTIONAL,
+ data SEQUENCE OF TransportChannelInfo OPTIONAL,
+ h245 TransportChannelInfo,
+ callSignaling TransportChannelInfo,
+ callType CallType,
+ bandWidth BandWidth,
+ callModel CallModel,
+ ...,
+ callIdentifier CallIdentifier,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ substituteConfIDs SEQUENCE OF ConferenceIdentifier,
+ pdu SEQUENCE OF SEQUENCE
+ {
+ h323pdu H323-UU-PDU,
+ sent BOOLEAN -- TRUE is sent, FALSE is received
+ } OPTIONAL
+ } OPTIONAL,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ needResponse BOOLEAN
+}
+
+TransportChannelInfo ::= SEQUENCE
+{
+ sendAddress TransportAddress OPTIONAL,
+ recvAddress TransportAddress OPTIONAL,
+ ...
+}
+
+RTPSession ::= SEQUENCE
+{
+ rtpAddress TransportChannelInfo,
+ rtcpAddress TransportChannelInfo,
+ cname PrintableString,
+ ssrc INTEGER (1..4294967295),
+ sessionId INTEGER (1..255),
+ associatedSessionIds SEQUENCE OF INTEGER (1..255),
+ ...
+}
+
+InfoRequestAck ::= SEQUENCE --(IACK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNak ::= SEQUENCE --(INAK)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ nakReason InfoRequestNakReason,
+ altGKInfo AltGKInfo OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+InfoRequestNakReason ::= CHOICE
+{
+ notRegistered NULL, -- not registered with gatekeeper
+ securityDenial NULL,
+ undefinedReason NULL,
+ ...
+}
+
+NonStandardMessage ::= SEQUENCE
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+UnknownMessageResponse ::= SEQUENCE -- (XRS)
+{
+ requestSeqNum RequestSeqNum,
+ ...,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL
+}
+
+RequestInProgress ::= SEQUENCE -- (RIP)
+{
+ requestSeqNum RequestSeqNum,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ delay INTEGER(1..65535),
+ ...
+}
+
+ResourcesAvailableIndicate ::= SEQUENCE --(RAI)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ endpointIdentifier EndpointIdentifier,
+ protocols SEQUENCE OF SupportedProtocols,
+ almostOutOfResources BOOLEAN,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+ResourcesAvailableConfirm ::= SEQUENCE --(RAC)
+{
+ requestSeqNum RequestSeqNum,
+ protocolIdentifier ProtocolIdentifier,
+ nonStandardData NonStandardParameter OPTIONAL,
+ tokens SEQUENCE OF ClearToken OPTIONAL,
+ cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL,
+ integrityCheckValue ICV OPTIONAL,
+ ...
+}
+
+END -- of ASN.1
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/IMP.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/IMP.asn1
new file mode 100644
index 0000000000..8d7546fa15
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/IMP.asn1
@@ -0,0 +1,7 @@
+IMP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+T ::= INTEGER
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/IN-CS-1-Datatypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/IN-CS-1-Datatypes.asn
new file mode 100644
index 0000000000..ff0361f5c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/IN-CS-1-Datatypes.asn
@@ -0,0 +1,1630 @@
+-- Module IN-CS-1-Datatypes (Q.1218:10/1995)
+-- Example of addition of an extension named 'Some Network Specific Indicator' of type
+-- BOOLEAN, with criticality 'abort' and to be identified as extension number 1.
+-- Example of definition using the above macro:
+--
+-- SomeNetworkSpecificIndicator ::= EXTENSION {
+-- EXTENSION-SYNTAX BOOLEAN
+-- CRITICALITY abort
+-- IDENTIFIED BY 1
+-- }
+--
+--
+-- Example of transfer syntax, using the ExtensionField datatype as specified in the module
+-- below. Assuming the value of the extension is set to TRUE, the extensions parameter
+-- becomes a Sequence of type INTEGER ::= 1, criticality ENUMERATED ::= 1 and value [1]
+-- EXPLICIT BOOLEAN ::= TRUE.
+--
+-- Use of Q.1400 defined Extension is ffs.
+-- In addition the extension mechanism marker is used to identify the future minor additions to INAP.
+IN-CS-1-Datatypes {itu-t recommendation q 1218 modules(0) cs-1-datatypes(2)
+ version1(0)}
+-- This module contains the type definitions for the IN CS-1 data types.
+-- Where a parameter of type CHOICE is tagged with a specific tag value, the tag is automatically
+-- replaced with an EXPLICIT tag of the same value.
+-- The following parameters map onto bearer protocol (i.e. Q.931, case 2 and ISUP) parameters:
+-- CallingPartySubaddress, CalledPartyNumber,
+-- Prefix (derived from dialled digits), DestinationRoutingAddress,
+-- DialledDigits, ISDNAccessRelatedInformation, CallingPartysCategory, LocationNumber,
+-- TravellingClassMark, AssistingSSPIPRoutingAddress, AlertingPattern (Q.931 only),
+-- ReleaseCause (and other Cause parameters), ServiceProfileIdentifier (Q.932 only),
+-- BearerCapability, CallingPartyNumber, HighLayerCompatibility, OriginalCalledPartyID,
+-- RedirectingPartyID, and RedirectionInformation.
+-- The procedures for mapping of parameters onto bearer protocol are ffs.
+-- The following SSF parameters do not map onto bearer protocol (i.e. Q.931, case 2 and ISUP)
+-- parameters and therefore are assumed to be local to the switching system: CallingPartyBusinessGroupID
+-- FacilityGroup, FacilityGroupMember, RouteList, LegID, IPSSPCapabilities, IPAvailable, CGEncountered,
+-- ForwardingCondition, CorrelationID, ApplicationTimer, TerminalType, MiscCallInfo, TriggerType and
+-- ServiceKey.
+-- Where possible, Administrations should specify the maximum size within their network of
+-- parameters specified in this Recommendation that are of an indeterminate length.
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- TYPE DEFINITIONS FOR IN CS-1 DATA TYPES FOLLOWS
+-- Argument data types
+InvokeIdType ::= INTEGER(-128..127)
+
+-- The ordering of parameters in the argument sequences has been arbitrary. Further study may be
+-- required to order arguments in a manner which will facilitate efficient encoding and decoding.
+ActivateServiceFilteringArg ::= SEQUENCE {
+ filteredCallTreatment [0] FilteredCallTreatment,
+ filteringCharacteristics [1] FilteringCharacteristics,
+ filteringTimeOut [2] FilteringTimeOut,
+ filteringCriteria [3] FilteringCriteria,
+ startTime [4] DateAndTime OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+AnalysedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ featureCode [13] FeatureCode OPTIONAL,
+ accessCode [14] AccessCode OPTIONAL,
+ carrier [15] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+AnalyseInformationArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [3] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [6] CallingPartysCategory OPTIONAL,
+ calledPartyNumber [7] CalledPartyNumber OPTIONAL,
+ chargeNumber [8] ChargeNumber OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ carrier [10] Carrier OPTIONAL,
+ ...
+}
+
+ApplyChargingArg ::= SEQUENCE {
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics,
+ partyToCharge [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The partyToCharge parameter indicates the party in the call to which the ApplyCharging operation
+-- should be applied. If it is not present, then it is applied to the A-party.
+ApplyChargingReportArg ::=
+ CallResult
+
+AssistRequestInstructionsArg ::= SEQUENCE {
+ correlationID [0] CorrelationID,
+ iPAvailable [1] IPAvailable OPTIONAL,
+ iPSSPCapabilities [2] IPSSPCapabilities OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
+-- Called Party Number supplied by the initiating SSF.
+CallGapArg ::= SEQUENCE {
+ gapCriteria [0] GapCriteria,
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional. If gapTreatment is not present, the SSF will use
+-- a default treatment depending on network operator implementation.
+CallInformationReportArg ::= SEQUENCE {
+ requestedInformationList [0] RequestedInformationList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CallInformationRequestArg ::= SEQUENCE {
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ correlationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL denotes network operator optional.
+CancelArg ::= CHOICE {invokeID [0] InvokeID,
+ allRequests [1] NULL
+}
+
+-- The InvokeID has the same value as that which was used for the operation to be cancelled.
+CancelStatusReportRequestArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ extensions
+ [1] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+CollectedInformationArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ [11] ExtensionField{{SupportedExtensions}},
+ featureCode [12] FeatureCode OPTIONAL,
+ accessCode [13] AccessCode OPTIONAL,
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+CollectInformationArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ numberingPlan [1] NumberingPlan OPTIONAL,
+ originalCalledPartyID [2] OriginalCalledPartyID OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ callingPartyNumber [5] CallingPartyNumber OPTIONAL,
+ dialledDigits [6] CalledPartyNumber OPTIONAL,
+ ...
+}
+
+ConnectArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ cutAndPaste [3] CutAndPaste OPTIONAL,
+ forwardingCondition [4] ForwardingCondition OPTIONAL,
+ iSDNAccessRelatedInformation [5] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ scfID [8] ScfID OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [11] Carrier OPTIONAL,
+ serviceInteractionIndicators [26] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [27] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- For alerting pattern, OPTIONAL denotes that this parameter only applies if SSF is the terminating
+-- local exchange for the subscriber.
+ConnectToResourceArg ::= SEQUENCE {
+ resourceAddress
+ CHOICE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID,
+ both
+ [2] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress,
+ legID [1] LegID},
+ none [3] NULL},
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+DpSpecificCommonParameters ::= SEQUENCE {
+ serviceAddressInformation [0] ServiceAddressInformation,
+ bearerCapability [1] BearerCapability OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [4] CallingPartysCategory OPTIONAL,
+ iPSSPCapabilities [5] IPSSPCapabilities OPTIONAL,
+ iPAvailable [6] IPAvailable OPTIONAL,
+ iSDNAccessRelatedInformation [7] ISDNAccessRelatedInformation OPTIONAL,
+ cGEncountered [8] CGEncountered OPTIONAL,
+ locationNumber [9] LocationNumber OPTIONAL,
+ serviceProfileIdentifier [10] ServiceProfileIdentifier OPTIONAL,
+ terminalType [11] TerminalType OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ [12] ExtensionField{{SupportedExtensions}},
+ chargeNumber [13] ChargeNumber OPTIONAL,
+ servingAreaID [14] ServingAreaID OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, and cGEncountered denotes network operator
+-- specific use. OPTIONAL for callingPartyNumber, and callingPartysCategory refer to clause 3 for
+-- the trigger detection point processing rules to specify when these parameters are included in the
+-- message. bearerCapability should be appropriately coded as speech.
+EstablishTemporaryConnectionArg ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [4] ExtensionField{{SupportedExtensions}},
+ carrier [5] Carrier OPTIONAL,
+ serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL,
+ ...
+}
+
+EventNotificationChargingArg ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ eventSpecificInformationCharging
+ [1] EventSpecificInformationCharging OPTIONAL,
+ legID [2] LegID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ monitorMode [30] MonitorMode DEFAULT notifyAndContinue,
+ ...
+}
+
+-- OPTIONAL denotes network operator specific use.
+EventReportBCSMArg ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL,
+ legID [3] LegID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo DEFAULT {messageType request},
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+FurnishChargingInformationArg ::= FCIBillingChargingCharacteristics
+
+HoldCallInNetworkArg ::= CHOICE {
+ holdcause [0] HoldCause,
+ empty [1] NULL
+}
+
+-- holdcause is optional and denotes network operator specific use.
+InitialDPArg ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ callingPartySubaddress [6] CallingPartySubaddress OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL,
+ iPAvailable [9] IPAvailable OPTIONAL,
+ locationNumber [10] LocationNumber OPTIONAL,
+ miscCallInfo [11] MiscCallInfo OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL,
+ serviceProfileIdentifier [13] ServiceProfileIdentifier OPTIONAL,
+ terminalType [14] TerminalType OPTIONAL,
+ extensions
+ [15] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ triggerType [16] TriggerType OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ serviceInteractionIndicators [24] ServiceInteractionIndicators OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL,
+ forwardCallIndicators [26] ForwardCallIndicators OPTIONAL,
+ bearerCapability [27] BearerCapability OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ ...
+}
+
+-- OPTIONAL for iPSSPCapabilities, iPAvailable, cGEncountered, and miscCallInfo denotes network
+-- operator specific use.
+-- OPTIONAL for dialledDigits, callingPartyNumber, and callingPartysCategory refer to clause 3 for the
+-- trigger detection point processing rules to specify when these parameters are included in the message.
+-- OPTIONAL for terminalType indicates that this parameter applies only at originating or terminating
+-- local exchanges if the SSF has this information.
+InitiateCallAttemptArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ travellingClassMark [3] TravellingClassMark OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ serviceInteractionIndicators [29] ServiceInteractionIndicators OPTIONAL,
+ callingPartyNumber [30] CallingPartyNumber OPTIONAL,
+ ...
+}
+
+MidCallArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [4] CallingPartySubaddress OPTIONAL,
+ featureRequestIndicator [5] FeatureRequestIndicator OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [7] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ routeList [8] RouteList OPTIONAL,
+ travellingClassMark [9] TravellingClassMark OPTIONAL,
+ extensions
+ [10] SEQUENCE SIZE (1..numOfExtensions) OF
+ [5] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OCalledPartyBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ prefix [7] Digits OPTIONAL,
+ redirectingPartyID [8] RedirectingPartyID OPTIONAL,
+ redirectionInformation [9] RedirectionInformation OPTIONAL,
+ routeList [10] RouteList OPTIONAL,
+ travellingClassMark [11] TravellingClassMark OPTIONAL,
+ extensions
+ [12] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [13] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ODisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ routeList [6] RouteList OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ connectTime [9] Integer4 OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+ONoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [2] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [3] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ prefix [6] Digits OPTIONAL,
+ redirectingPartyID [7] RedirectingPartyID OPTIONAL,
+ redirectionInformation [8] RedirectionInformation OPTIONAL,
+ routeList [9] RouteList OPTIONAL,
+ travellingClassMark [10] TravellingClassMark OPTIONAL,
+ extensions
+ [11] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [12] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+OriginationAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ travellingClassMark [6] TravellingClassMark OPTIONAL,
+ extensions
+ [7] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [8] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+PlayAnnouncementArg ::= SEQUENCE {
+ informationToSend [0] InformationToSend,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+PromptAndCollectUserInformationArg ::= SEQUENCE {
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ReceivedInformationArg ::= CHOICE {
+ digitsResponse [0] Digits,
+ iA5Response [1] IA5String
+}
+
+ReleaseCallArg ::= Cause
+
+-- A default value of decimal 31 (normal unspecified) should be coded appropriately.
+RequestCurrentStatusReportArg ::=
+ ResourceID
+
+RequestCurrentStatusReportResultArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus,
+ resourceID [1] ResourceID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RequestEveryStatusChangeReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID,
+ correlationID [1] CorrelationID OPTIONAL,
+ monitorDuration [2] Duration OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestFirstStatusMatchReportArg ::= SEQUENCE {
+ resourceID [0] ResourceID OPTIONAL,
+ resourceStatus [1] ResourceStatus OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ monitorDuration [3] Duration OPTIONAL,
+ extensions
+ [4] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ bearerCapability [5] BearerCapability OPTIONAL,
+ ...
+}
+
+-- For correlationID OPTIONAL denotes network operator optional.
+-- monitorDuration is required if outside the context of a call. It is not expected if we are in the context
+-- of a call, because in that case the end of the call implicitly means the end of the monitoring.
+RequestNotificationChargingEventArg ::=
+ SEQUENCE SIZE (1..numOfChargingEvents) OF ChargingEvent
+
+RequestReportBCSMEventArg ::= SEQUENCE {
+ bcsmEvents [0] SEQUENCE SIZE (1..numOfBCSMEvents) OF BCSMEvent,
+ bcsmEventCorrelationID [1] CorrelationID OPTIONAL,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- Indicates the BCSM related events for notification.
+-- For correlationID OPTIONAL denotes network operator optional.
+ResetTimerArg ::= SEQUENCE {
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+RouteSelectFailureArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ dialledDigits [1] CalledPartyNumber OPTIONAL,
+ callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL,
+ callingPartySubaddress [3] CallingPartySubaddress OPTIONAL,
+ callingFacilityGroup [4] FacilityGroup OPTIONAL,
+ callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL,
+ failureCause [6] Cause OPTIONAL,
+ originalCalledPartyID [7] OriginalCalledPartyID OPTIONAL,
+ prefix [8] Digits OPTIONAL,
+ redirectingPartyID [9] RedirectingPartyID OPTIONAL,
+ redirectionInformation [10] RedirectionInformation OPTIONAL,
+ routeList [11] RouteList OPTIONAL,
+ travellingClassMark [12] TravellingClassMark OPTIONAL,
+ extensions
+ [13] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [14] Carrier OPTIONAL,
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing
+-- rules to specify when these parameters are included in the message.
+SelectFacilityArg ::= SEQUENCE {
+ alertingPattern [0] AlertingPattern OPTIONAL,
+ destinationNumberRoutingAddress [1] CalledPartyNumber OPTIONAL,
+ iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SelectRouteArg ::= SEQUENCE {
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ correlationID [2] CorrelationID OPTIONAL,
+ iSDNAccessRelatedInformation [3] ISDNAccessRelatedInformation OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ routeList [5] RouteList OPTIONAL,
+ scfID [6] ScfID OPTIONAL,
+ travellingClassMark [7] TravellingClassMark OPTIONAL,
+ extensions
+ [8] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ carrier [9] Carrier OPTIONAL,
+ ...
+}
+
+-- OPTIONAL parameters are only provided if modifications desired to basic call processing values.
+SendChargingInformationArg ::= SEQUENCE {
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics,
+ partyToCharge [1] LegID,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+ServiceFilteringResponseArg ::= SEQUENCE {
+ countersValue [0] CountersValue,
+ filteringCriteria [1] FilteringCriteria,
+ extensions
+ [2] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ responseCondition [3] ResponseCondition OPTIONAL,
+ ...
+}
+
+SpecializedResourceReportArg ::= NULL
+
+StatusReportArg ::= SEQUENCE {
+ resourceStatus [0] ResourceStatus OPTIONAL,
+ correlationID [1] CorrelationID OPTIONAL,
+ resourceID [2] ResourceID OPTIONAL,
+ extensions
+ [3] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ reportCondition [4] ReportCondition OPTIONAL,
+ ...
+}
+
+-- For correlationID, OPTIONAL denotes network operator optional.
+-- resourceID is required when the SSF sends a report as an answer to a previous request when the
+-- correlationID was present.
+TAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ extensions
+ [5] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TBusyArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ busyCause [1] Cause OPTIONAL,
+ calledPartyBusinessGroupID [2] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [3] CalledPartySubaddress OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- For the OPTIONAL parameters, refer to clause 3 for the trigger detection point processing rules
+-- to specify when these parameters are included in the message.
+TDisconnectArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ releaseCause [5] Cause OPTIONAL,
+ extensions
+ [6] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ connectTime [7] Integer4 OPTIONAL,
+ ...
+}
+
+TermAttemptAuthorizedArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL,
+ originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [5] RedirectingPartyID OPTIONAL,
+ redirectionInformation [6] RedirectionInformation OPTIONAL,
+ routeList [7] RouteList OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+TNoAnswerArg ::= SEQUENCE {
+ dpSpecificCommonParameters [0] DpSpecificCommonParameters,
+ calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL,
+ calledPartySubaddress [2] CalledPartySubaddress OPTIONAL,
+ calledFacilityGroup [3] FacilityGroup OPTIONAL,
+ calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL,
+ originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL,
+ redirectingPartyID [6] RedirectingPartyID OPTIONAL,
+ redirectionInformation [7] RedirectionInformation OPTIONAL,
+ travellingClassMark [8] TravellingClassMark OPTIONAL,
+ extensions
+ [9] SEQUENCE SIZE (1..numOfExtensions) OF
+ [3] ExtensionField{{SupportedExtensions}},
+ ...
+}
+
+-- The Definition of Common Data Types
+AccessCode ::= LocationNumber
+
+-- An access code from a business group dialling plan attendant access codes, access codes to escape
+-- to the public network, access code to access a private facility/network, and feature access codes.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Of local significance.
+AChBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minAChBillingChargingLength..maxAChBillingChargingLength))
+
+-- The AChBillingChargingCharacteristics parameter specifies the charging related information
+-- to be provided by the SSF and the conditions on which this information has to be reported
+-- back to the SCF with the ApplyChargingReport operation.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter
+-- values, costs, tariff change and time of charge, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+AdditionalCallingPartyNumber ::=
+ Digits
+
+-- Indicates the Additional Calling Party Number. Refer to Recommendation Q.763 for encoding.
+AlertingPattern ::= OCTET STRING(SIZE (3))
+
+-- Indicates a specific pattern that is used to alert a subscriber (e.g. distinctive ringing, tones, etc.).
+-- Only applies if SSF is the terminating local exchange for the subscriber. Refer to the Q.931
+-- Signal parameter for encoding.
+ApplicationTimer ::= INTEGER(0..2047)
+
+-- Used by the SCF to set a timer in the SSF. The timer is in seconds.
+AssistingSSPIPRoutingAddress ::=
+ Digits
+
+-- Indicates the destination address of the SRF for the assist procedure.
+BCSMEvent ::= SEQUENCE {
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL
+}
+
+-- Indicates the BCSM Event information for monitoring.
+BearerCapability ::= CHOICE {
+ bearerCap [0] OCTET STRING(SIZE (2..maxBearerCapabilityLength)),
+ tmr [1] OCTET STRING(SIZE (1))
+}
+
+-- Indicates the type of bearer capability connection to the user. For bearerCapability, either
+-- DSS 1 (Q.931) or the ISUP User Service Information (Q.763) encoding can be used. Refer
+-- to the Q.763 Transmission Medium Requirement parameter for tmr encoding.
+CalledPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the called party. The value of this octet string is network
+-- operator specific.
+CalledPartyNumber ::=
+ OCTET STRING(SIZE (minCalledPartyNumberLength..maxCalledPartyNumberLength))
+
+-- Indicates the Called Party Number. Refer to Recommendation Q.763 for encoding.
+CalledPartySubaddress ::= OCTET STRING
+
+-- Indicates the Called Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartyBusinessGroupID ::= OCTET STRING
+
+-- Indicates the business group of the calling party. The value of this octet string is network
+-- operator specific.
+CallingPartyNumber ::=
+ OCTET STRING(SIZE (minCallingPartyNumberLength..maxCallingPartyNumberLength))
+
+-- Indicates the Calling Party Number. Refer to Recommendation Q.763 for encoding.
+CallingPartySubaddress ::= OCTET STRING
+
+-- Indicates the Calling Party Subaddress. Refer to Recommendation Q.931 for encoding.
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+
+-- Indicates the type of calling party (e.g. operator, payphone, ordinary subscriber).
+-- Refer to Recommendation Q.763 for encoding.
+CallResult ::= OCTET STRING(SIZE (minCallResultLength..maxCallResultLength))
+
+-- This parameter provides the SCF with the charging related information previously requested
+-- using the ApplyCharging operation. This shall include the partyToCharge parameter as
+-- received in the related ApplyCharging operation to correlate the result to the request.
+-- The remaining content is network operator specific.
+-- Examples of charging related information to be provided by the SSF may be: bulk counter values,
+-- costs, tariff change and time of change, time stamps, durations, etc.
+-- Examples of conditions on which the charging related information are to be reported may be:
+-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc.
+Carrier ::= OCTET STRING
+
+-- Contains the carrier selection and carrier ID fields.
+-- Carrier selection is one octet and is encoded as:
+-- 00000000 No indication
+-- 00000001 Selected carrier code pre subscribed and not input by calling party
+-- 00000010 Selected carrier identification code pre subscribed and input by calling party
+-- 00000011 Selected carrier identification code pre subscribed, no indication of whether input by calling party
+-- 00000100 Selected carrier identification code not pre subscribed and input by calling party
+-- 00000101
+-- to Spare
+-- 11111110
+-- 11111111 Reserved
+--
+-- Carrier ID has a one octet field indicating the number of digits followed by the digits encoded using BCD.
+-- Detailed coding is for further study. It is of local significance and carrying it through the ISUP is for further
+-- study.
+Cause ::= OCTET STRING(SIZE (minCauseLength..maxCauseLength))
+
+-- Indicates the cause for interface related information. Refer to the Q.763 Cause parameter for
+-- encoding.
+-- For the use of cause and location values refer to Recommendation Q.850.
+CGEncountered ::= ENUMERATED {
+ noCGencountered(0), manualCGencountered(1), scpOverload(2)}
+
+-- Indicates the type of automatic call gapping encountered, if any.
+ChargeNumber ::=
+ LocationNumber
+
+-- Information sent in either direction indicating the chargeable number for the call and consisting
+-- of the odd/even indicator, nature of address indicator, numbering plan indicator, and address signals.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- For example, the ChargeNumber may be a third party number to which a call is billed for the 3rd party
+-- billing service. In this case, the calling party may request operator assistance to charge the call to,
+-- for example, their home number.
+ChargingEvent ::= SEQUENCE {
+ eventTypeCharging [0] EventTypeCharging,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL
+}
+
+-- This parameter indicates the charging event type and corresponding
+-- monitor mode and LedID.
+CollectedDigits ::= SEQUENCE {
+ minimumNbOfDigits [0] INTEGER(1..127) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER(1..127),
+ endOfReplyDigit [2] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ cancelDigit [3] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ startDigit [4] OCTET STRING(SIZE (1..2)) OPTIONAL,
+ firstDigitTimeOut [5] INTEGER(1..127) OPTIONAL,
+ interDigitTimeOut [6] INTEGER(1..127) OPTIONAL,
+ errorTreatment [7] ErrorTreatment DEFAULT reportErrorToScf,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+}
+
+-- The use of voiceBack is network operator specific.
+-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been designated as OCTET STRING,
+-- and are to be encoded as BCD, one digit per octet only, contained
+-- in the four least significant bits of each OCTET. The usage is service dependent.
+CollectedInfo ::= CHOICE {
+ collectedDigits [0] CollectedDigits,
+ iA5Information [1] BOOLEAN
+}
+
+ControlType ::= ENUMERATED {
+ sCPOverloaded(0), manuallyInitiated(1), destinationOverload(2)
+ -- other values FFS
+ }
+
+CorrelationID ::= Digits
+
+-- used by SCF for correlation with a previous operation. Refer to clause 3 for a description of the
+-- procedures associated with this parameter.
+CounterAndValue ::= SEQUENCE {
+ counterID [0] CounterID,
+ counterValue [1] Integer4
+}
+
+CounterID ::= INTEGER(0..99)
+
+-- Indicates the counters to be incremented.
+-- The counterIDs can be addressed by using the last digits of the dialled number.
+CountersValue ::= SEQUENCE SIZE (0..numOfCounters) OF CounterAndValue
+
+CutAndPaste ::= INTEGER(0..22)
+
+-- Indicates the number of digits to be deleted. Refer to 6.4.2.16/Q.1214 for additional information.
+DateAndTime ::= OCTET STRING(SIZE (6))
+
+-- Indicates, amongst others, the start time for activate service filtering. Coded as YYMMDDHHMMSS
+-- with each digit coded BCD.
+-- The first octet contains YY and the remaining items are sequenced following.
+-- For example, 1993 September 30th, 12:15:01 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- 2 1
+-- 5 1
+-- 1 0
+DestinationRoutingAddress ::= SEQUENCE SIZE (1..3) OF CalledPartyNumber
+
+-- Indicates the list of Called Party Numbers (primary and alternates).
+Digits ::= OCTET STRING(SIZE (minDigitsLength..maxDigitsLength))
+
+-- Indicates the address signalling digits. Refer to the Q.763 Generic Number and Generic Digits parameters
+-- for encoding. The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+-- Generic Digits are irrelevant to the INAP, the ASN.1 tags are sufficient to identify the parameter.
+-- The ISUP format does not allow to exclude these subfields, therefore the value is network operator specific.
+-- The following parameters should use Generic Number:
+-- CorrelationID for AssistRequestInstructions, AssistingSSPIPRoutingAddress for
+-- EstablishTemporaryConnection, calledAddressValue for all occurrences, callingAddressValue for all
+-- occurrences. The following parameters should use Generic Digits: prefix, all
+-- other CorrelationID occurrences, dialledNumber filtering criteria, callingLineID filtering criteria, lineID
+-- for ResourceID type, digitResponse for ReceivedInformationArg.
+DisplayInformation ::=
+ IA5String(SIZE (minDisplayInformationLength..maxDisplayInformationLength))
+
+-- Indicates the display information.
+DpSpecificCriteria ::= CHOICE {
+ numberOfDigits [0] NumberOfDigits,
+ applicationTimer [1] ApplicationTimer
+}
+
+-- The SCF may specify the number of digits to be collected by the SSF for the CollectedInfo event.
+-- When all digits are collected, the SSF reports the event to the SCF.
+-- The SCF may set a timer in the SSF for the No Answer event. If the user does not answer the call
+-- within the allotted time, the SSF reports the event to the SCF.
+Duration ::= INTEGER(-2..86400)
+
+-- Values are seconds.
+ErrorTreatment ::= ENUMERATED {reportErrorToScf(0), help(1), repeatPrompt(2)
+}
+
+-- reportErrorToScf means returning the "ImproperCallerResponse" error in the event of an error
+-- condition during collection of user info.
+EventSpecificInformationBCSM ::= CHOICE {
+ collectedInfoSpecificInfo
+ [0] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ analyzedInfoSpecificInfo
+ [1] SEQUENCE {calledPartynumber [0] CalledPartyNumber,
+ ...},
+ routeSelectFailureSpecificInfo
+ [2] SEQUENCE {failureCause [0] Cause OPTIONAL,
+ ...},
+ oCalledPartyBusySpecificInfo
+ [3] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ oNoAnswerSpecificInfo
+ [4] SEQUENCE {-- no specific info defined
+ ...},
+ oAnswerSpecificInfo
+ [5] SEQUENCE {-- no specific info defined
+ ...},
+ oMidCallSpecificInfo
+ [6] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ oDisconnectSpecificInfo
+ [7] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...},
+ tBusySpecificInfo
+ [8] SEQUENCE {busyCause [0] Cause OPTIONAL,
+ ...},
+ tNoAnswerSpecificInfo
+ [9] SEQUENCE {-- no specific info defined
+ ...},
+ tAnswerSpecificInfo
+ [10] SEQUENCE {-- no specific info defined
+ ...},
+ tMidCallSpecificInfo
+ [11] SEQUENCE {connectTime [0] Integer4 OPTIONAL,
+ ...},
+ tDisconnectSpecificInfo
+ [12] SEQUENCE {releaseCause [0] Cause OPTIONAL,
+ connectTime [1] Integer4 OPTIONAL,
+ ...}
+}
+
+-- Indicates the call related information specific to the event.
+-- The connectTime indicates the duration between the received answer indication from the called party side
+-- and the release of the connection for ODisconnect, OException, TDisconnect, or TException events.
+-- The unit for the connectTime is 100 milliseconds.
+EventSpecificInformationCharging ::=
+ OCTET STRING
+ (SIZE (minEventSpecificInformationChargingLength..
+ maxEventSpecificInformationChargingLength))
+
+-- defined by network operator.
+-- Indicates the charging related information specific to the event.
+-- An example data type definition for this parameter is given below:
+-- chargePulses [0] Integer4,
+-- chargeMessages [1] OCTET STRING (SIZE (min..max))
+EventTypeBCSM ::= ENUMERATED {
+ origAttemptAuthorized(1), collectedInfo(2), analysedInformation(3),
+ routeSelectFailure(4), oCalledPartyBusy(5), oNoAnswer(6), oAnswer(7),
+ oMidCall(8), oDisconnect(9), oAbandon(10), termAttemptAuthorized(12),
+ tBusy(13), tNoAnswer(14), tAnswer(15), tMidCall(16), tDisconnect(17),
+ tAbandon(18)}
+
+-- Indicates the BCSM detection point event. Refer to 4.2.2.2/Q.1214 for additional information on the
+-- events. Values origAttemptAuthorized and termAttemptAuthorized can only be used for TDPs.
+EventTypeCharging ::=
+ OCTET STRING(SIZE (minEventTypeChargingLength..maxEventTypeChargingLength))
+
+-- This parameter indicates the charging event type. Its content is network operator specific.
+--
+-- An example data type definition for this parameter is given below:
+-- EventTypeCharging ::= ENUMERATED {
+-- chargePulses (0),
+-- chargeMessages (1)
+-- }
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &criticality Criticality DEFAULT ignored
+}
+WITH SYNTAX {
+ [EXTENSION-SYNTAX &Type
+ [IF ABSENT &absent]]
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= INTEGER(0..MAX)
+
+Criticality ::= ENUMERATED {ignored(0), abort(1)}
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality Criticality DEFAULT ignored,
+ value [1] EXTENSION.&Type({ChosenFrom}{@type})
+}
+
+-- This parameter indicates an extension of an argument data type. Its content is network operator specific.
+SupportedExtensions EXTENSION ::=
+ {...}
+
+FacilityGroup ::= CHOICE {
+ trunkGroupID [0] INTEGER,
+ privateFacilityID [1] INTEGER,
+ huntGroup [2] OCTET STRING,
+ routeIndex [3] OCTET STRING
+}
+
+-- Indicates the particular group of facilities to route the call. huntGroup and routeIndex are encoded as
+-- network operator specific.
+FacilityGroupMember ::= INTEGER
+
+-- Indicates the specific member of a trunk group or multi-line hunt group.
+FCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minFCIBillingChargingLength..maxFCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- FCIBillingChargingCharacteristics ::= CHOICE {
+-- completeChargingrecord [0] OCTET STRING (SIZE (min..max)),
+-- correlationID [1] CorrelationID,
+-- scenario2Dot3 [2] SEQUENCE {
+-- chargeParty [0] LegID OPTIONAL,
+-- chargeLevel [1] OCTET STRING (SIZE (min..max))
+-- OPTIONAL,
+-- chargeItems [2] SET OF Attribute OPTIONAL
+-- }
+-- }
+-- Depending on the applied charging scenario, the following information elements can be included
+-- (refer to Q.1214 Appendix II):
+-- complete charging record (scenario 2.2)
+-- charge party (scenario 2.3)
+-- charge level (scenario 2.3)
+-- charge items (scenario 2.3)
+-- correlationID (scenario 2.4)
+FeatureCode ::=
+ LocationNumber
+
+-- The two-digit feature code preceded by "*" or "11".
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Used for stimulus signalling (Q.932).
+FeatureRequestIndicator ::= ENUMERATED {
+ hold(0), retrieve(1), featureActivation(2), spare1(3), sparen(127)}
+
+-- Indicates the feature activated (e.g. a switch-hook flash, feature activation). Spare values reserved
+-- for future use.
+FilteredCallTreatment ::= SEQUENCE {
+ sFBillingChargingCharacteristics [0] SFBillingChargingCharacteristics,
+ informationToSend [1] InformationToSend OPTIONAL,
+ maximumNumberOfCounters [2] MaximumNumberOfCounters OPTIONAL,
+ releaseCause [3] Cause OPTIONAL
+}
+
+-- If releaseCause is not present, the default value is the same as the ISUP cause value decimal 31.
+-- If informationToSend is present, the call will be released after the end of the announcement
+-- with the indicated or default releaseCause.
+-- If maximumNumberOfCounters is not present, ServiceFilteringResponse will be sent with
+-- CountersValue::= SEQUENCE SIZE (0) OF CountersAndValue.
+FilteringCharacteristics ::= CHOICE {
+ interval [0] INTEGER(-1..32000),
+ numberOfCalls [1] Integer4
+}
+
+-- Indicates the severity of the filtering and the point in time when the ServiceFilteringResponse is to be sent.
+-- If = interval, every interval of time the next call leads to an InitialDP and a ServiceFilteringResponse is
+-- sent to the SCF. The interval is specified in seconds.
+-- If = NumberOfCalls, every N calls the Nth call leads to an InitialDP and a ServiceFilteringResponse
+-- is sent to the SCF.
+-- If ActivateServiceFiltering implies several counters - filtering on several dialled numbers -,
+-- the numberOfCalls would include calls to all the dialled numbers.
+FilteringCriteria ::= CHOICE {
+ dialledNumber [0] Digits,
+ callingLineID [1] Digits,
+ serviceKey [2] ServiceKey,
+ addressAndService
+ [30] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ callingAddressValue [2] Digits OPTIONAL,
+ locationNumber [3] LocationNumber OPTIONAL
+ }
+}
+
+-- In case calledAddressValue is specified, the numbers to be filtered are from calledAddressValue
+-- up to and including calledAddressValue + maximumNumberOfCounters-1.
+-- The last two digits of calledAddressvalue can not exceed 100-maximumNumberOfCounters.
+FilteringTimeOut ::= CHOICE {
+ duration [0] Duration,
+ stopTime [1] DateAndTime
+}
+
+-- Indicates the maximum duration of the filtering. When the timer expires, a ServiceFilteringResponse
+-- is sent to the SCF.
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+
+-- Indicates the Forward Call Indicators. Refer to Recommendation Q.763 for encoding.
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+
+-- Indicates the condition that must be met to complete the connect.
+GapCriteria ::= CHOICE {
+ calledAddressValue [0] Digits,
+ gapOnService [2] GapOnService,
+ calledAddressAndService
+ [29] SEQUENCE {calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey},
+ callingAddressAndService
+ [30] SEQUENCE {callingAddressValue [0] Digits,
+ serviceKey [1] ServiceKey,
+ locationNumber [2] LocationNumber OPTIONAL
+ }
+}
+
+-- Both calledAddressValue and callingAddressValue can be
+-- incomplete numbers, in the sense that a limited amount of digits can be given.
+--
+-- For the handling of numbers starting with the same digit string, refer to the detailed procedure
+-- of the CallGap operation in 3.3.
+GapOnService ::= SEQUENCE {
+ serviceKey [0] ServiceKey,
+ dpCriteria [1] EventTypeBCSM OPTIONAL
+}
+
+--Recommendation Q.1218 (10/95)
+GapIndicators ::= SEQUENCE {
+ duration [0] Duration,
+ gapInterval [1] Interval
+}
+
+-- Indicates the gapping characteristics. No gapping when gapInterval equals 0, and gap all calls when
+-- gapInterval equals 1.
+GapTreatment ::= CHOICE {
+ informationToSend [0] InformationToSend,
+ releaseCause [1] Cause,
+ both
+ [2] SEQUENCE {informationToSend [0] InformationToSend,
+ releaseCause [1] Cause}
+}
+
+-- The default value for Cause is the same as in ISUP.
+HighLayerCompatibility ::= OCTET STRING(SIZE (highLayerCompatibilityLength))
+
+-- Indicates the teleservice. For encoding, DSS 1 (Q.931) is used.
+HoldCause ::= OCTET STRING -- defined by network operator.
+
+-- Indicates the cause for holding the call.
+InbandInfo ::= SEQUENCE {
+ messageID [0] MessageID,
+ numberOfRepetitions [1] INTEGER(1..127) OPTIONAL,
+ duration [2] INTEGER(0..32767) OPTIONAL,
+ interval [3] INTEGER(0..32767) OPTIONAL
+}
+
+-- Interval is the time in seconds between each repeated announcement. Duration is the total
+-- amount of time in seconds, including repetitions and intervals.
+-- The end of announcement is either the end of duration or numberOfRepetitions, whatever comes first.
+-- Duration with value 0 indicates infinite duration.
+InformationToSend ::= CHOICE {
+ inbandInfo [0] InbandInfo,
+ tone [1] Tone,
+ displayInformation [2] DisplayInformation
+}
+
+Integer4 ::= INTEGER(0..2147483647)
+
+Interval ::= INTEGER(-1..60000)
+
+-- Units are milliseconds. A -1 value denotes infinite.
+InvokeID ::=
+ InvokeIdType
+
+-- Operation invoke identifier.
+IPAvailable ::= OCTET STRING(SIZE (minIPAvailableLength..maxIPAvailableLength))
+
+-- defined by network operator.
+-- Indicates that the resource is available.
+IPRoutingAddress ::=
+ CalledPartyNumber
+
+-- Indicates the routing address for the IP.
+IPSSPCapabilities ::=
+ OCTET STRING(SIZE (minIPSSPCapabilitiesLength..maxIPSSPCapabilitiesLength))
+
+-- defined by network operator.
+-- Indicates the SRF resources available at the SSP.
+ISDNAccessRelatedInformation ::= OCTET STRING
+
+-- Indicates the destination user network interface related information. Refer to the Q.763 Access
+-- Transport parameter for encoding.
+LegID ::= CHOICE {sendingSideID [0] LegType,
+ receivingSideID [1] LegType
+}
+
+-- Indicates a reference to a specific party in a call. OPTIONAL denotes network operator specific use
+-- with a choice of unilateral ID assignment or bilateral ID assignment.
+-- OPTIONAL for LegID also denotes the following:
+-- - when only one party exists in the call, this parameter is not needed (as no ambiguity exists);
+-- - when more than one party exists in the call, one of the following alternatives applies:
+-- 1. LegID is present and indicates which party is concerned.
+-- 2. LegID is not present and a default value is assumed (e.g. calling party in the case of the
+-- ApplyCharging operation).
+-- Choice between these two alternatives is kept a network operator option.
+LegType ::= OCTET STRING(SIZE (1))
+
+leg1 LegType ::= '01'H
+
+leg2 LegType ::= '02'H
+
+LocationNumber ::=
+ OCTET STRING(SIZE (minLocationNumberLength..maxLocationNumberLength))
+
+-- Indicates the Location Number for the calling party. Refer to Recommendation Q.763 (White book) for encoding.
+MaximumNumberOfCounters ::= INTEGER(1..numOfCounters)
+
+MessageID ::= CHOICE {
+ elementaryMessageID [0] Integer4,
+ text
+ [1] SEQUENCE {messageContent
+ [0] IA5String
+ (SIZE (minMessageContentLength..
+ maxMessageContentLength)),
+ attributes
+ [1] OCTET STRING
+ (SIZE (minAttributesLength..maxAttributesLength))
+ OPTIONAL},
+ elementaryMessageIDs [29] SEQUENCE SIZE (1..numOfMessageIDs) OF Integer4,
+ variableMessage
+ [30] SEQUENCE {elementaryMessageID [0] Integer4,
+ variableParts
+ [1] SEQUENCE SIZE (1..5) OF VariablePart}
+}
+
+-- OPTIONAL denotes network operator specific use.
+MiscCallInfo ::= SEQUENCE {
+ messageType [0] ENUMERATED {request(0), notification(1)},
+ dpAssignment
+ [1] ENUMERATED {individualLine(0), groupBased(1), officeBased(2)} OPTIONAL
+}
+
+-- Indicates detection point related information.
+MonitorMode ::= ENUMERATED {
+ interrupted(0), notifyAndContinue(1), transparent(2)}
+
+-- Indicates the event is relayed and/or processed by the SSP.
+-- If this parameter is used in the context of charging events, the following definitions apply for the
+-- handling of charging events:
+-- Interrupted means that the SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, does not process the event but discard it.
+-- NotifyAndContinue means that SSF notifies the SCF of the charging event using
+-- EventNotificationCharging, and continues processing the event or signal without waiting for SCF
+-- instructions. Transparent means that the SSF does not notify the SCF of the event. This value is used to
+-- end the monitoring of a previously requested charging event. Previously requested charging events are
+-- monitored until ended by a transparent monitor mode, or until the end of the connection configuration.
+-- For the use of this parameter in the context of BCSM events refer to 3.3.39.
+NumberingPlan ::= OCTET STRING(SIZE (1))
+
+-- Indicates the numbering plan for collecting the user information. Refer to the Q.763 Numbering Plan.
+-- Indicator field for encoding.
+NumberOfDigits ::= INTEGER(1..255)
+
+-- Indicates the number of digits to be collected
+OriginalCalledPartyID ::=
+ OCTET STRING
+ (SIZE (minOriginalCalledPartyIDLength..maxOriginalCalledPartyIDLength))
+
+-- Indicates the original called number. Refer to the Q.763 Original Called Number for encoding.
+RedirectingPartyID ::=
+ OCTET STRING(SIZE (minRedirectingPartyIDLength..maxRedirectingPartyIDLength))
+
+-- Indicates redirecting number. Refer to the Q.763 Redirecting number for encoding.
+RedirectionInformation ::= OCTET STRING(SIZE (2))
+
+-- Indicates redirection information. Refer to the Q.763 Redirection Information for encoding.
+ReportCondition ::= ENUMERATED {statusReport(0), timerExpired(1), canceled(2)
+}
+
+-- ReportCondition specifies the cause of sending "StatusReport" operation to the SCF.
+RequestedInformationList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation
+
+RequestedInformationTypeList ::=
+ SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+RequestedInformation ::= SEQUENCE {
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue
+}
+
+RequestedInformationType ::= ENUMERATED {
+ callAttemptElapsedTime(0), callStopTime(1), callConnectedElapsedTime(2),
+ calledAddress(3), releaseCause(30)}
+
+RequestedInformationValue ::= CHOICE {
+ callAttemptElapsedTimeValue [0] INTEGER(0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ calledAddressValue [3] Digits,
+ releaseCauseValue [30] Cause
+}
+
+-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the
+-- callConnectedElapsedTimeValue is 100 milliseconds.
+ResourceID ::= CHOICE {
+ lineID [0] Digits,
+ facilityGroupID [1] FacilityGroup,
+ facilityGroupMemberID [2] INTEGER,
+ trunkGroupID [3] INTEGER
+}
+
+-- Indicates a logical identifier for the physical termination resource.
+ResourceStatus ::= ENUMERATED {busy(0), idle(1)}
+
+ResponseCondition ::= ENUMERATED {intermediateResponse(0), lastResponse(1)
+
+-- additional values are for further study.
+}
+
+-- ResponseCondition is used to identify the reason why ServiceFilteringResponse operation is sent.
+-- intermediateresponse identifies that service filtering is running and the interval time is expired and
+-- a call is received, or that service filtering is running and the threshold value is reached.
+-- lastResponse identifies that the duration time is expired and service filtering has been finished or
+-- that the stop time is met and service filtering has been finished.
+RouteList ::=
+ SEQUENCE SIZE (1..3) OF
+ OCTET STRING(SIZE (minRouteListLength..maxRouteListLength))
+
+-- Indicates a list of trunk groups or a route index. See Recommendation Q.1214 for additional information on this item.
+ScfID ::= OCTET STRING(SIZE (minScfIDLength..maxScfIDLength))
+
+-- defined by network operator.
+-- Indicates the SCF identifier.
+SCIBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSCIBillingChargingLength..maxSCIBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics. Its content is network operator
+-- specific. An example datatype definition for this parameter is given below:
+-- SCIBillingChargingCharacteristics ::= CHOICE {
+-- chargeLevel [0] OCTET STRING (SIZE (min..max),
+-- chargePulses [1] Integer4,
+-- chargeMessages [2] OCTET STRING (SIZE (min..max)
+-- }
+-- Depending on the applied charging scenario the following information elements
+-- can be included (refer to Appendix II/Q.1214):
+-- chargeLevel (scenario 3.2)
+-- chargePulses (scenario 3.2)
+-- chargeMessages (scenario 3.2)
+ServiceAddressInformation ::= SEQUENCE {
+ serviceKey [0] ServiceKey OPTIONAL,
+ miscCallInfo [1] MiscCallInfo,
+ triggerType [2] TriggerType OPTIONAL
+}
+
+-- Information that represents the result of trigger analysis and allows the SCF to choose the appropriate
+-- service logic.
+ServiceInteractionIndicators ::=
+ OCTET STRING
+ (SIZE (minServiceInteractionIndicatorsLength..
+ maxServiceInteractionIndicatorsLength))
+
+-- Indicators which are exchanged between SSP and SCP to resolve interactions between IN based services
+-- and network based services, respectively between different IN based services.
+-- The contents are network specific and identified as a subject for further study with respect to INAP.
+-- The following example is listed to illustrate the use of this parameter:
+-- CallToBeDiverted Allowed/NotAllowed Indicator
+-- If the CallToBeDiverted indicator is set to NotAllowed, the destination exchange shall not allow any
+-- divertion on the subjected call. By this, each service can pass the applicable indicators to inform the
+-- destination exchange of how specific services are to be handled.
+ServiceKey ::=
+ Integer4
+
+-- Information that allows the SCF to choose the appropriate service logic.
+ServiceProfileIdentifier ::= OCTET STRING
+
+-- Indicates a particular ISDN terminal. Refer to Recommendation Q.932 for encoding.
+ServingAreaID ::=
+ LocationNumber
+
+-- Identifies the local serving area where a network provider operates. Uses the LocationNumber
+-- format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Defined by the network operator.
+SFBillingChargingCharacteristics ::=
+ OCTET STRING(SIZE (minSFBillingChargingLength..maxSFBillingChargingLength))
+
+-- This parameter indicates the billing and/or charging characteristics for filtered calls.
+-- Its content is network operator specific.
+TerminalType ::= ENUMERATED {
+ unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16)
+}
+
+-- Identifies the terminal type so that the SCF can specify, to the SRF, the appropriate type of capability
+-- (voice recognition, DTMF, display capability, etc.). Since present signalling systems do not convey
+-- terminal type, this parameter applies only at originating or terminating local exchanges.
+TimerID ::= ENUMERATED {tssf(0)
+ -- others ffs
+ }
+
+-- Indicates the timer to be reset.
+TimerValue ::= Integer4
+
+-- Indicates the timer value (in seconds).
+Tone ::= SEQUENCE {toneID [0] Integer4,
+ duration [1] Integer4 OPTIONAL
+}
+
+-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration.
+TravellingClassMark ::=
+ LocationNumber
+
+-- Indicates travelling class mark information.
+-- Uses the LocationNumber format which is based on the Q.763 Location Number format.
+-- The Nature of Address indicator field shall be set to "Spare" (value 00000000).
+-- The Numbering Plan Indicator field shall be set to "Spare" (value 000).
+-- Maximum 2 digits.
+TriggerType ::= ENUMERATED {
+ featureActivation(0), verticalServiceCode(1), customizedAccess(2),
+ customizedIntercom(3), emergencyService(12), aFR(13), sharedIOTrunk(14),
+ offHookDelay(17), channelSetupPRI(18), tNoAnswer(25), tBusy(26),
+ oCalledPartyBusy(27), oNoAnswer(29), originationAttemptAuthorized(30),
+ oAnswer(31), oDisconnect(32), termAttemptAuthorized(33), tAnswer(34),
+ tDisconnect(35)
+ -- Private (ffs)
+ }
+
+-- The type of trigger which caused call suspension
+-- 4-11: Reserved; 15,16: Reserved; 19-24: Reserved
+UnavailableNetworkResource ::= ENUMERATED {
+ unavailableResources(0), componentFailure(1),
+ basicCallProcessingException(2), resourceStatusFailure(3), endUserFailure(4)
+}
+
+-- Indicates the network resource that failed.
+VariablePart ::= CHOICE {
+ integer [0] Integer4,
+ number [1] Digits, -- Generic digits
+ time [2] OCTET STRING(SIZE (2)), -- HH:MM, BCD coded
+ date [3] OCTET STRING(SIZE (3)), -- YYMMDD, BCD coded
+ price [4] OCTET STRING(SIZE (4))
+}
+
+-- Indicates the variable part of the message.
+-- BCD coded variable parts are encoded as described in the examples below.
+-- For example, time = 12:15 would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 2 1
+-- 5 1
+-- date = 1993 September 30th would be encoded as:
+-- Bits HGFE DCBA
+-- leading octet 3 9
+-- 9 0
+-- 0 3
+-- The Definition of range of constants Follows
+highLayerCompatibilityLength INTEGER ::=
+ 2
+
+minAChBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxAChBillingChargingLength INTEGER ::= 1 -- network specific
+
+minAttributesLength INTEGER ::= 0 -- network specific
+
+maxAttributesLength INTEGER ::= 1 -- network specific
+
+maxBearerCapabilityLength INTEGER ::= 2 -- network specific
+
+minCalledPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCalledPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallingPartyNumberLength INTEGER ::= 0 -- network specific
+
+maxCallingPartyNumberLength INTEGER ::= 1 -- network specific
+
+minCallResultLength INTEGER ::= 0 -- network specific
+
+maxCallResultLength INTEGER ::= 1 -- network specific
+
+minCauseLength INTEGER ::= 2
+
+maxCauseLength INTEGER ::= 2 -- network specific
+
+minDigitsLength INTEGER ::= 0 -- network specific
+
+maxDigitsLength INTEGER ::= 1 -- network specific
+
+minDisplayInformationLength INTEGER ::= 0 -- network specific
+
+maxDisplayInformationLength INTEGER ::= 1 -- network specific
+
+minEventSpecificInformationChargingLength INTEGER ::= 0 -- network specific
+
+maxEventSpecificInformationChargingLength INTEGER ::= 1 -- network specific
+
+minEventTypeChargingLength INTEGER ::= 0 -- network specific
+
+maxEventTypeChargingLength INTEGER ::= 1 -- network specific
+
+minFCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxFCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minIPAvailableLength INTEGER ::= 0 -- network specific
+
+maxIPAvailableLength INTEGER ::= 1 -- network specific
+
+minIPSSPCapabilitiesLength INTEGER ::= 0 -- network specific
+
+maxIPSSPCapabilitiesLength INTEGER ::= 1 -- network specific
+
+minLocationNumberLength INTEGER ::= 0 -- network specific
+
+maxLocationNumberLength INTEGER ::= 1 -- network specific
+
+minMessageContentLength INTEGER ::= 0 -- network specific
+
+maxMessageContentLength INTEGER ::= 1 -- network specific
+
+minOriginalCalledPartyIDLength INTEGER ::= 0 -- network specific
+
+maxOriginalCalledPartyIDLength INTEGER ::= 1 -- network specific
+
+minRedirectingPartyIDLength INTEGER ::= 0 -- network specific
+
+maxRedirectingPartyIDLength INTEGER ::= 1 -- network specific
+
+minRouteListLength INTEGER ::= 0 -- network specific
+
+maxRouteListLength INTEGER ::= 1 -- network specific
+
+minScfIDLength INTEGER ::= 0 -- network specific
+
+maxScfIDLength INTEGER ::= 1 -- network specific
+
+minSCIBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSCIBillingChargingLength INTEGER ::= 1 -- network specific
+
+minServiceInteractionIndicatorsLength INTEGER ::= 0 -- network specific
+
+maxServiceInteractionIndicatorsLength INTEGER ::= 1 -- network specific
+
+minSFBillingChargingLength INTEGER ::= 0 -- network specific
+
+maxSFBillingChargingLength INTEGER ::= 1 -- network specific
+
+numOfBCSMEvents INTEGER ::= 1 -- network specific
+
+numOfChargingEvents INTEGER ::= 1 -- network specific
+
+numOfCounters INTEGER ::= 100
+
+numOfExtensions INTEGER ::= 1 -- network specific
+
+numOfInfoItems INTEGER ::= 5
+
+numOfMessageIDs INTEGER ::= 1 -- network specific
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/INAPv2extract.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/INAPv2extract.asn
new file mode 100644
index 0000000000..8eaecbd0a7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/INAPv2extract.asn
@@ -0,0 +1,112 @@
+INAPv2extract DEFINITIONS
+
+EXPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXTENSION ::= CLASS {
+ &ExtensionType ,
+ &criticality CriticalityType DEFAULT ignore,
+ &id Code
+}
+WITH SYNTAX {
+ EXTENSION-SYNTAX &ExtensionType
+ [CRITICALITY &criticality]
+ IDENTIFIED BY &id
+}
+
+CriticalityType ::= ENUMERATED {ignore(0), abort(1)}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+--3b parameteriserad object set
+SupportedExtensions{PARAMETERS-BOUND:bound} EXTENSION ::=
+{firstExtension |
+ boundedExtension {bound}, --4a instans av parameteriserat object
+ ...
+}
+
+firstExtension EXTENSION ::= {
+ EXTENSION-SYNTAX NULL
+ CRITICALITY ignore
+ IDENTIFIED BY local:1
+}
+
+--4b parameteriserat object
+boundedExtension{PARAMETERS-BOUND:bound} EXTENSION ::= {
+ EXTENSION-SYNTAX BoundedExtensionSyntax {bound} --5a instans av parameteriserad typ
+ CRITICALITY ignore
+ IDENTIFIED BY local:2
+}
+
+--1b parameteriserad typ
+InitialDPArg{PARAMETERS-BOUND:bound} ::= SEQUENCE {
+ dialledDigits [1] CalledPartyNumber{bound} OPTIONAL, --2a instans av parameteriserad typ
+ extensions [15] SEQUENCE SIZE (1..bound.&numOfExtensions) OF ExtensionField{ {SupportedExtensions {bound}}} OPTIONAL --3a instans av parameteriserad objectset
+}
+
+ExtensionField{EXTENSION:SupportedExtensions} ::= SEQUENCE {
+ type EXTENSION.&id({SupportedExtensions}),
+ -- shall identify the value of an EXTENSION type
+ criticality CriticalityType DEFAULT ignore,
+ value [1] EXTENSION.&ExtensionType({SupportedExtensions}{@type})
+}
+
+--2b parameteriserad typ
+CalledPartyNumber{PARAMETERS-BOUND:bound} ::=
+ OCTET STRING
+ (SIZE (bound.&minCalledPartyNumberLength..bound.&maxCalledPartyNumberLength))
+
+--5b parameteriserad typ
+BoundedExtensionSyntax{PARAMETERS-BOUND:bound} ::= SEQUENCE { --5
+ digits OCTET STRING(SIZE (bound.&minDigitsLength..bound.&maxDigitsLength))
+}
+
+PARAMETERS-BOUND ::= CLASS {
+ &minAChBillingChargingLength INTEGER,
+ &maxAChBillingChargingLength INTEGER,
+ &minAttributesLength INTEGER,
+ &maxAttributesLength INTEGER,
+ &minBackwardGVNSLength INTEGER,
+ &minDigitsLength INTEGER,
+ &maxDigitsLength INTEGER,
+ &minCalledPartyNumberLength INTEGER,
+ &maxCalledPartyNumberLength INTEGER,
+ &numOfExtensions INTEGER
+}
+WITH SYNTAX {
+ MINIMUM-FOR-ACH-BILLING-CHARGING &minAChBillingChargingLength
+ MAXIMUM-FOR-ACH-BILLING-CHARGING &maxAChBillingChargingLength
+ MINIMUM-FOR-ATTRIBUTES &minAttributesLength
+ MAXIMUM-FOR-ATTRIBUTES &maxAttributesLength
+ MINIMUM-FOR-BACKWARD-GVNS &minBackwardGVNSLength
+ MINIMUM-FOR-DIGITS &minDigitsLength
+ MAXIMUM-FOR-DIGITS &maxDigitsLength
+ MINIMUM-FOR-CALLED-PARTY-NUMBER &minCalledPartyNumberLength
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER &maxCalledPartyNumberLength
+ NUM-OF-EXTENSIONS &numOfExtensions
+ }
+
+--1a instans av parameteriserad typ
+ActivityTest2 ::= InitialDPArg{networkSpecificBoundSet}
+
+networkSpecificBoundSet PARAMETERS-BOUND ::= {
+ MINIMUM-FOR-ACH-BILLING-CHARGING 1 -- example value
+ MAXIMUM-FOR-ACH-BILLING-CHARGING 5 -- example value
+ MINIMUM-FOR-ATTRIBUTES 1 -- example value
+ MAXIMUM-FOR-ATTRIBUTES 5 -- example value
+ MINIMUM-FOR-BACKWARD-GVNS 1
+ MINIMUM-FOR-DIGITS 1
+ MAXIMUM-FOR-DIGITS 5
+ MINIMUM-FOR-CALLED-PARTY-NUMBER 1 -- example value
+ MAXIMUM-FOR-CALLED-PARTY-NUMBER 5 -- example value
+ NUM-OF-EXTENSIONS 1 -- example value
+}
+
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/INSTANCEOF.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/INSTANCEOF.asn1
new file mode 100644
index 0000000000..8c4f3a8f7e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/INSTANCEOF.asn1
@@ -0,0 +1,34 @@
+INSTANCEOF DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ lastName [3] INSTANCE OF OTHER-NAME ({TI})
+}
+
+Names ::= SEQUENCE {
+ firstName [0] INSTANCE OF OTHER-NAME,
+ secondName [1] PrintableString,
+ thirdName [2] INSTANCE OF OTHER-NAME ({TI})
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+TI OTHER-NAME ::= {{INTEGER IDENTIFIED BY {2 4}} |
+ {Seq IDENTIFIED BY {2 3 4}} |
+ {SEQUENCE{a INTEGER,b ENUMERATED{a,b,c}} IDENTIFIED BY {2 3 4 5}} }
+
+Int ::= INTEGER
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/IllegalExport.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/IllegalExport.asn1
new file mode 100644
index 0000000000..1b5e42ad3c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/IllegalExport.asn1
@@ -0,0 +1,7 @@
+IllegalExport DEFINITIONS ::=
+BEGIN
+EXPORTS T, KalleAnka;
+
+T ::= INTEGER
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Import.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Import.py
new file mode 100644
index 0000000000..91841c1c9f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Import.py
@@ -0,0 +1,14 @@
+Import DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+--IMPORTS
+-- OPERATION, ERROR FROM Remote-Operations-Notation
+-- {joint-iso-ccitt(2) remote-operations(4) notation(0)};
+-- {joint-iso-ccitt remote-operations notation};
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ImportsFrom.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ImportsFrom.asn1
new file mode 100644
index 0000000000..896a35d627
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ImportsFrom.asn1
@@ -0,0 +1,17 @@
+ImportsFrom DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+Type1, Type2, Type3
+FROM RemoteFile1 objid
+val1, val2, val3
+FROM RemoteFile2;
+
+objid OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) remote-operations(4) notation(0)}
+
+LocalType ::= INTEGER
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/InfClass.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfClass.asn
new file mode 100644
index 0000000000..ecc6764402
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfClass.asn
@@ -0,0 +1,56 @@
+InfClass DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ ERROR
+FROM ErrorClass;
+
+FUNCTION ::= CLASS {
+ &ArgumentType,
+ &ResultType DEFAULT NULL,
+ &error ERROR OPTIONAL,
+ &code INTEGER UNIQUE
+ }
+
+OTHER-FUNCTION ::= CLASS {
+ &code INTEGER UNIQUE,
+ &Alphabet DEFAULT NULL,
+ &ArgumentType,
+ &SupportedArguments &ArgumentType OPTIONAL,
+ &ResultType DEFAULT NULL,
+ &result-if-error &ResultType DEFAULT NULL,
+ &associated-function OTHER-FUNCTION OPTIONAL,
+ &NumberSet INTEGER,
+ &ObjectSet OTHER-FUNCTION
+ }
+
+ObjSet1 FUNCTION ::= { ... }
+
+val1 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 3
+ }
+
+val2 FUNCTION ::= {
+ &ArgumentType INTEGER,
+ &ResultType INTEGER,
+ &code 2
+ }
+
+int1 INTEGER ::= 3
+
+ObjSet2 FUNCTION ::= {
+ val1 | val2 }
+
+
+-- added for OTP-4591
+
+Seq ::= SEQUENCE {
+ arg FUNCTION.&ArgumentType ({ObjSet2}{@val1}),
+ res FUNCTION.&ResultType ({ObjSet2}{@val1}),
+ val1 FUNCTION.&code ({ObjSet2})
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj.asn
new file mode 100644
index 0000000000..0a437e12df
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj.asn
@@ -0,0 +1,153 @@
+InfObj DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome OPTIONAL,
+ &FixTypeValSet PrintableString OPTIONAL,
+ &VarTypeValSet &InitiatingMessage OPTIONAL,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE OPTIONAL,
+ &InfObjectSet CLASS2 OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+ [VARTYPEVALUE &vartypvalue]
+ [FIXT &FixTypeValSet]
+ [VART &VarTypeValSet]
+ [INFOOBJECT &infoObject]
+ [INFOOBJECTSET &InfObjectSet]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj2.asn
new file mode 100644
index 0000000000..faba7371a4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/InfObj2.asn
@@ -0,0 +1,156 @@
+InfObj2 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &Outcome DEFAULT NULL,
+ &vartypvalue &Outcome,
+ &FixTypeValSet PrintableString,
+ &VarTypeValSet &InitiatingMessage,
+ &infoObject RANAP-ELEMENTARY-PROCEDURE,
+ &InfObjectSet CLASS2,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage [0] InitiatingMessage,
+ substrings [1] SEQUENCE {
+ type RANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] RANAP-ELEMENTARY-PROCEDURE.&Outcome({
+ RANAP-ELEMENTARY-PROCEDURES}{@substrings.type}),
+ final [1] RANAP-ELEMENTARY-PROCEDURE.&Outcome({RANAP-ELEMENTARY-PROCEDURES}{@substrings.type})
+ }
+ },
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+ }
+
+CLASS2 ::= RANAP-ELEMENTARY-PROCEDURE
+
+MY-CLASS ::= CLASS {
+ &integerValue INTEGER UNIQUE,
+ &booleanValue BOOLEAN,
+ &stringValue PrintableString
+ }
+
+myobject MY-CLASS ::= {
+ &integerValue 12,
+ &booleanValue TRUE,
+ &stringValue "hejsan"
+ }
+MyObjectSet MY-CLASS ::= {
+ myobject
+ }
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release1
+ CRITICALITY ignore
+ }
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE INTEGER --Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release2
+ CRITICALITY notify
+ }
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release3,
+ &criticality reject
+ }
+
+object4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &procedureCode id-Iu-Release4,
+ &criticality reject
+ }
+
+object5 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage INTEGER,
+ &SuccessfulOutcome PrintableString,
+ &Outcome ProcedureCode,
+ &vartypvalue 12,
+ &infoObject object4,
+ &InfObjectSet MyObjectSet,
+ &procedureCode id-Iu-Release5,
+ &criticality reject
+ }
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+RANAP-ELEMENTARY-PROCEDURES2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation
+ }
+
+
+OBJECTSET1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release1 CRITICALITY ignore} | {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release2}
+ }
+
+OBJECTSET2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ {INITIATING MESSAGE Iu-ReleaseCommand SUCCESSFUL OUTCOME Iu-ReleaseComplete PROCEDURE CODE id-Iu-Release4 CRITICALITY ignore} |
+ relocationPreparation |
+ {INITIATING MESSAGE Iu-ReleaseCommand PROCEDURE CODE id-Iu-Release5} ,
+ ...
+ }
+
+OBJECTSET3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release,
+ ...
+ }
+
+OBJECTSET4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release
+ }
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release1 INTEGER ::= 1
+id-Iu-Release2 INTEGER ::= 2
+id-Iu-Release3 INTEGER ::= 3
+id-Iu-Release4 INTEGER ::= 4
+id-Iu-Release5 INTEGER ::= 5
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/InformationFramework.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/InformationFramework.asn
new file mode 100755
index 0000000000..ef236e98a9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id -- OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Int.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Int.py
new file mode 100644
index 0000000000..dd218b8dbd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Int.py
@@ -0,0 +1,12 @@
+Int DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Int ::= INTEGER
+Int2 ::= INTEGER (1..10)
+
+-- OTP-5457
+int11 INTEGER ::= 11
+int11-2 INTEGER ::= int11 --correct should not cause crash or warning
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/LDAP.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/LDAP.asn1
new file mode 100755
index 0000000000..4d845942e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/LDAP.asn1
@@ -0,0 +1,283 @@
+ --Lightweight-Directory-Access-Protocol-V3 {1 3 6 1 1 18}
+ -- Copyright (C) The Internet Society (2006). This version of
+ -- this ASN.1 module is part of RFC 4511; see the RFC itself
+ -- for full legal notices.
+ LDAP
+ DEFINITIONS
+ IMPLICIT TAGS
+ EXTENSIBILITY IMPLIED
+ ::=
+
+ BEGIN
+
+ LDAPMessage ::= SEQUENCE {
+ messageID MessageID,
+ protocolOp CHOICE {
+ bindRequest BindRequest,
+ bindResponse BindResponse,
+ unbindRequest UnbindRequest,
+ searchRequest SearchRequest,
+ searchResEntry SearchResultEntry,
+ searchResDone SearchResultDone,
+ searchResRef SearchResultReference,
+ modifyRequest ModifyRequest,
+ modifyResponse ModifyResponse,
+ addRequest AddRequest,
+ addResponse AddResponse,
+ delRequest DelRequest,
+ delResponse DelResponse,
+ modDNRequest ModifyDNRequest,
+ modDNResponse ModifyDNResponse,
+ compareRequest CompareRequest,
+ compareResponse CompareResponse,
+ abandonRequest AbandonRequest,
+ extendedReq ExtendedRequest,
+ extendedResp ExtendedResponse,
+ ...,
+ intermediateResponse IntermediateResponse },
+ controls [0] Controls OPTIONAL }
+
+ MessageID ::= INTEGER (0 .. maxInt)
+
+ maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
+
+ LDAPString ::= OCTET STRING -- UTF-8 encoded,
+ -- [ISO10646] characters
+
+ LDAPOID ::= OCTET STRING -- Constrained to <numericoid>
+ -- [RFC4512]
+
+
+ LDAPDN ::= LDAPString -- Constrained to <distinguishedName>
+ -- [RFC4514]
+
+ RelativeLDAPDN ::= LDAPString -- Constrained to <name-component>
+ -- [RFC4514]
+
+ AttributeDescription ::= LDAPString
+ -- Constrained to <attributedescription>
+ -- [RFC4512]
+
+ AttributeValue ::= OCTET STRING
+
+ AttributeValueAssertion ::= SEQUENCE {
+ attributeDesc AttributeDescription,
+ assertionValue AssertionValue }
+
+ AssertionValue ::= OCTET STRING
+
+ PartialAttribute ::= SEQUENCE {
+ type AttributeDescription,
+ vals SET OF value AttributeValue }
+
+ Attribute ::= PartialAttribute(WITH COMPONENTS {
+ ...,
+ vals (SIZE(1..MAX))})
+
+ MatchingRuleId ::= LDAPString
+
+ LDAPResult ::= SEQUENCE {
+ resultCode ENUMERATED {
+ success (0),
+ operationsError (1),
+ protocolError (2),
+ timeLimitExceeded (3),
+ sizeLimitExceeded (4),
+ compareFalse (5),
+ compareTrue (6),
+ authMethodNotSupported (7),
+ strongerAuthRequired (8),
+ -- 9 reserved --
+ referral (10),
+ adminLimitExceeded (11),
+ unavailableCriticalExtension (12),
+ confidentialityRequired (13),
+ saslBindInProgress (14),
+
+ noSuchAttribute (16),
+ undefinedAttributeType (17),
+ inappropriateMatching (18),
+ constraintViolation (19),
+ attributeOrValueExists (20),
+ invalidAttributeSyntax (21),
+ -- 22-31 unused --
+ noSuchObject (32),
+ aliasProblem (33),
+ invalidDNSyntax (34),
+ -- 35 reserved for undefined isLeaf --
+ aliasDereferencingProblem (36),
+ -- 37-47 unused --
+ inappropriateAuthentication (48),
+ invalidCredentials (49),
+ insufficientAccessRights (50),
+ busy (51),
+ unavailable (52),
+ unwillingToPerform (53),
+ loopDetect (54),
+ -- 55-63 unused --
+ namingViolation (64),
+ objectClassViolation (65),
+ notAllowedOnNonLeaf (66),
+ notAllowedOnRDN (67),
+ entryAlreadyExists (68),
+ objectClassModsProhibited (69),
+ -- 70 reserved for CLDAP --
+ affectsMultipleDSAs (71),
+ -- 72-79 unused --
+ other (80),
+ ... },
+ matchedDN LDAPDN,
+ diagnosticMessage LDAPString,
+ referral [3] Referral OPTIONAL }
+
+ Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI
+
+ URI ::= LDAPString -- limited to characters permitted in
+ -- URIs
+
+ Controls ::= SEQUENCE OF control Control
+
+ Control ::= SEQUENCE {
+ controlType LDAPOID,
+ criticality BOOLEAN DEFAULT FALSE,
+ controlValue OCTET STRING OPTIONAL }
+
+
+ BindRequest ::= [APPLICATION 0] SEQUENCE {
+ version INTEGER (1 .. 127),
+ name LDAPDN,
+ authentication AuthenticationChoice }
+
+ AuthenticationChoice ::= CHOICE {
+ simple [0] OCTET STRING,
+ -- 1 and 2 reserved
+ sasl [3] SaslCredentials,
+ ... }
+
+ SaslCredentials ::= SEQUENCE {
+ mechanism LDAPString,
+ credentials OCTET STRING OPTIONAL }
+
+ BindResponse ::= [APPLICATION 1] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ serverSaslCreds [7] OCTET STRING OPTIONAL }
+
+ UnbindRequest ::= [APPLICATION 2] NULL
+
+ SearchRequest ::= [APPLICATION 3] SEQUENCE {
+ baseObject LDAPDN,
+ scope ENUMERATED {
+ baseObject (0),
+ singleLevel (1),
+ wholeSubtree (2),
+ ... },
+ derefAliases ENUMERATED {
+ neverDerefAliases (0),
+ derefInSearching (1),
+ derefFindingBaseObj (2),
+ derefAlways (3) },
+ sizeLimit INTEGER (0 .. maxInt),
+ timeLimit INTEGER (0 .. maxInt),
+ typesOnly BOOLEAN,
+ filter Filter,
+ attributes AttributeSelection }
+
+ AttributeSelection ::= SEQUENCE OF selector LDAPString
+ -- The LDAPString is constrained to
+ -- <attributeSelector> in Section 4.5.1.8
+
+ Filter ::= CHOICE {
+ and [0] SET SIZE (1..MAX) OF filter Filter,
+ or [1] SET SIZE (1..MAX) OF filter Filter,
+ not [2] Filter,
+ equalityMatch [3] AttributeValueAssertion,
+ substrings [4] SubstringFilter,
+ greaterOrEqual [5] AttributeValueAssertion,
+ lessOrEqual [6] AttributeValueAssertion,
+ present [7] AttributeDescription,
+ approxMatch [8] AttributeValueAssertion,
+ extensibleMatch [9] MatchingRuleAssertion,
+ ... }
+
+ SubstringFilter ::= SEQUENCE {
+ type AttributeDescription,
+ substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE {
+ initial [0] AssertionValue, -- can occur at most once
+ any [1] AssertionValue,
+ final [2] AssertionValue } -- can occur at most once
+ }
+
+ MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] MatchingRuleId OPTIONAL,
+ type [2] AttributeDescription OPTIONAL,
+ matchValue [3] AssertionValue,
+ dnAttributes [4] BOOLEAN DEFAULT FALSE }
+
+ SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
+ objectName LDAPDN,
+ attributes PartialAttributeList }
+
+ PartialAttributeList ::= SEQUENCE OF
+ partialAttribute PartialAttribute
+
+ SearchResultReference ::= [APPLICATION 19] SEQUENCE
+ SIZE (1..MAX) OF uri URI
+
+ SearchResultDone ::= [APPLICATION 5] LDAPResult
+
+ ModifyRequest ::= [APPLICATION 6] SEQUENCE {
+ object LDAPDN,
+ changes SEQUENCE OF change SEQUENCE {
+ operation ENUMERATED {
+ add (0),
+ delete (1),
+ replace (2),
+ ... },
+ modification PartialAttribute } }
+
+ ModifyResponse ::= [APPLICATION 7] LDAPResult
+
+ AddRequest ::= [APPLICATION 8] SEQUENCE {
+ entry LDAPDN,
+ attributes AttributeList }
+
+ AttributeList ::= SEQUENCE OF attribute Attribute
+
+ AddResponse ::= [APPLICATION 9] LDAPResult
+
+ DelRequest ::= [APPLICATION 10] LDAPDN
+
+ DelResponse ::= [APPLICATION 11] LDAPResult
+
+ ModifyDNRequest ::= [APPLICATION 12] SEQUENCE {
+ entry LDAPDN,
+ newrdn RelativeLDAPDN,
+ deleteoldrdn BOOLEAN,
+ newSuperior [0] LDAPDN OPTIONAL }
+
+ ModifyDNResponse ::= [APPLICATION 13] LDAPResult
+
+ CompareRequest ::= [APPLICATION 14] SEQUENCE {
+ entry LDAPDN,
+ ava AttributeValueAssertion }
+
+ CompareResponse ::= [APPLICATION 15] LDAPResult
+
+ AbandonRequest ::= [APPLICATION 16] MessageID
+
+ ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
+ requestName [0] LDAPOID,
+ requestValue [1] OCTET STRING OPTIONAL }
+
+ ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
+ COMPONENTS OF LDAPResult,
+ responseName [10] LDAPOID OPTIONAL,
+ responseValue [11] OCTET STRING OPTIONAL }
+
+ IntermediateResponse ::= [APPLICATION 25] SEQUENCE {
+ responseName [0] LDAPOID OPTIONAL,
+ responseValue [1] OCTET STRING OPTIONAL }
+
+ END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/M1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/M1.asn
new file mode 100644
index 0000000000..f0575fb25f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/M1.asn
@@ -0,0 +1,24 @@
+M1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type6
+ FROM M2
+ ;
+
+Type1 ::= INTEGER (1..3)
+
+Type2 ::= ENUMERATED {one,two}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN
+}
+
+Type5 ::= OCTET STRING
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/M2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/M2.asn
new file mode 100644
index 0000000000..22d7fed6f1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/M2.asn
@@ -0,0 +1,29 @@
+M2 DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+ Type5
+ FROM M1
+ ;
+
+Type1 ::= INTEGER (1..8)
+
+Type2 ::= ENUMERATED {one,two,three}
+
+Type3 ::= BOOLEAN
+
+Type4 ::= SEQUENCE {
+ a Type1,
+ b BOOLEAN,
+ c Type2,
+ d Type5
+}
+
+Type6 ::= SET {
+ a Type1,
+ b Type5
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..2a90c4265a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,37 @@
+MAP-ExtensionDataTypes {
+ ccitt identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version6 (6)}
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+EXPORTS
+ PrivateExtension,
+ ExtensionContainer;
+-- IOC for private MAP extensions
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+-- data types
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+maxNumOfPrivateExtensions INTEGER ::= 10
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+PCS-Extensions ::= SEQUENCE {
+ ...}
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-commonDataTypes.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-commonDataTypes.py
new file mode 100644
index 0000000000..694abefa6a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-commonDataTypes.py
@@ -0,0 +1,31 @@
+MAP-commonDataTypes
+ { iso (1) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) }
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ TBCD-STRING,
+ AddressString,
+ ISDN-AddressString,
+ LMSI,
+ IMSI,
+ TMSI,
+-- IMSIBCD,
+ SubscriberID;
+
+
+ TBCD-STRING ::= OCTET STRING (SIZE(3..8))
+ AddressString ::= OCTET STRING (SIZE(1..20))
+ ISDN-AddressString ::= AddressString
+ LMSI ::= OCTET STRING (SIZE(4))
+ -- IMSIBCD ::= BCD-STRING
+ IMSI ::= TBCD-STRING
+ TMSI ::= OCTET STRING (SIZE(1..4))
+ SubscriberID ::= CHOICE{
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+
+END -- of MAP-commonDataTypes
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-insertSubscriberData-def.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-insertSubscriberData-def.py
new file mode 100644
index 0000000000..298319b0ed
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MAP-insertSubscriberData-def.py
@@ -0,0 +1,102 @@
+MAP-insertSubscriberData-def
+ { ccitt (0) identified-organization( 4) etsi( 0) mobileDomain(0)
+ gsm-Network( 1) modules( 3) map-Protocol( 4) version2(2) }
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS
+InsertSubsDataArg, InsertSubsDatRes;
+IMPORTS
+IMSI, ISDN-AddressString, LMSI FROM MAP-commonDataTypes;
+
+InsertSubsDataArg ::= SEQUENCE{
+ imsi [0] IMPLICIT IMSI OPTIONAL,
+ msisdn [1] IMPLICIT ISDN-AddressString OPTIONAL,
+ category [2] IMPLICIT OCTET STRING (SIZE(1)) OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ teleServiceList [6] IMPLICIT SEQUENCE OF
+ OCTET STRING(SIZE(1)) OPTIONAL,
+ provisionedSS [7] IMPLICIT SEQUENCE OF SS-Information OPTIONAL
+ }
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfoInfo [1] IMPLICIT CallBarringInfoInfo,
+ ss-Data [3] IMPLICIT SS-Data }
+
+SS-Data ::= SEQUENCE {
+ ss-Code OCTET STRING (SIZE(1)),
+ ss-Status [4] IMPLICIT OCTET STRING (SIZE(1))
+ }
+
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList
+ }
+
+CallBarringInfoInfo ::= SEQUENCE {
+ ss-Code OCTET STRING(SIZE(1)) OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeatureList ::= SEQUENCE OF CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [2] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL
+ }
+
+InsertSubsDatRes ::=
+ SEQUENCE {
+ teleServiceList [1] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ bearerServiceList [2] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ ss-List [3] IMPLICIT SEQUENCE OF
+ OCTET STRING (SIZE(1)) OPTIONAL,
+ odb-GeneralData [4] IMPLICIT BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5) } (SIZE(6)) OPTIONAL,
+ regionalSubscriptionResponse [5] IMPLICIT ENUMERATED{
+ msc-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodeConflict (2),
+ regionalSubscNotSupported (3) } OPTIONAL
+ }
+
+
+ForwardingFeatureList ::= SEQUENCE OF ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE{
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT OCTET STRING(SIZE(1)) OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT INTEGER(5..30) OPTIONAL
+ }
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT OCTET STRING(SIZE(1)),
+ teleService [3] IMPLICIT OCTET STRING(SIZE(1))
+ }
+
+
+BasicServiceGroupList ::= SEQUENCE OF
+ BasicServiceCode
+
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)
+ }
+
+END -- of MAP-insertSubscriberData-def
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..71b765f71d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,975 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE OF TransactionAck
+
+TransactionAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ error ErrorDescriptor,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= SEQUENCE
+{
+ terminationID TerminationID,
+ terminationAuditResult TerminationAudit
+}
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ } OPTIONAL,
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN OPTIONAL,
+ reserveGroup BOOLEAN OPTIONAL,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ -- IG 6.82 was withdrawn
+ -- requestID RequestID OPTIONAL,
+ -- RequestID must be present if eventList is non empty
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN OPTIONAL,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value,
+ -- For use of extraInfo see the comment related to propertyParm
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+-- Request ALL Value: 4294967295 (0xFFFFFFFF)
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm,
+ nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2..4)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value OPTIONAL
+}
+
+NonStandardData ::= SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::= CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandard,
+ experimental IA5String(SIZE(8)),
+ -- first two characters should be "X-" or "X+"
+ ...
+}
+
+H221NonStandard ::= SEQUENCE
+{
+ t35CountryCode1 INTEGER(0..255),
+ t35CountryCode2 INTEGER(0..255), -- country, as per T.35
+ t35Extension INTEGER(0..255), -- assigned nationally
+ manufacturerCode INTEGER(0..65535), -- assigned nationally
+ ...
+}
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= SEQUENCE OF OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
new file mode 100644
index 0000000000..b7dba3c95c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MEDIA-GATEWAY-CONTROL.asn1config
@@ -0,0 +1,7 @@
+{exclusive_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_exclusive,['MegacoMessage',[{authHeader,undecoded},{mess,[{mId,undecoded},{messageBody,undecoded}]}]]},
+ {decode_Message_version,['Message',[{mId,undecoded},{messageBody,undecoded}]]}]}}.
+{selective_decode,
+ {'MEDIA-GATEWAY-CONTROL',
+ [{decode_MegacoMessage_selective,['MegacoMessage',mess,version]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MS.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/MS.set.asn
new file mode 100644
index 0000000000..bcc74b2a96
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MS.set.asn
@@ -0,0 +1,2 @@
+M1.asn
+M2.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
new file mode 100644
index 0000000000..afbc7dc5ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MULTIMEDIA-SYSTEM-CONTROL.asn
@@ -0,0 +1,3084 @@
+MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+
+-- ===================================================================================
+-- Top level Messages
+-- ===================================================================================
+
+MultimediaSystemControlMessage ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage,
+ indication IndicationMessage,
+ ...
+}
+
+-- A RequestMessage results in action and requires an immediate response
+
+RequestMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDetermination MasterSlaveDetermination,
+
+ terminalCapabilitySet TerminalCapabilitySet,
+
+ openLogicalChannel OpenLogicalChannel,
+ closeLogicalChannel CloseLogicalChannel,
+
+ requestChannelClose RequestChannelClose,
+
+ multiplexEntrySend MultiplexEntrySend,
+
+ requestMultiplexEntry RequestMultiplexEntry,
+
+ requestMode RequestMode,
+
+ roundTripDelayRequest RoundTripDelayRequest,
+
+ maintenanceLoopRequest MaintenanceLoopRequest,
+
+ ...,
+ communicationModeRequest CommunicationModeRequest,
+ conferenceRequest ConferenceRequest
+}
+
+-- A ResponseMessage is the response to a request Message
+
+ResponseMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ masterSlaveDeterminationAck MasterSlaveDeterminationAck,
+ masterSlaveDeterminationReject MasterSlaveDeterminationReject,
+
+ terminalCapabilitySetAck TerminalCapabilitySetAck,
+ terminalCapabilitySetReject TerminalCapabilitySetReject,
+
+ openLogicalChannelAck OpenLogicalChannelAck,
+ openLogicalChannelReject OpenLogicalChannelReject,
+ closeLogicalChannelAck CloseLogicalChannelAck,
+
+ requestChannelCloseAck RequestChannelCloseAck,
+ requestChannelCloseReject RequestChannelCloseReject,
+
+ multiplexEntrySendAck MultiplexEntrySendAck,
+ multiplexEntrySendReject MultiplexEntrySendReject,
+
+ requestMultiplexEntryAck RequestMultiplexEntryAck,
+ requestMultiplexEntryReject RequestMultiplexEntryReject,
+
+ requestModeAck RequestModeAck,
+ requestModeReject RequestModeReject,
+
+ roundTripDelayResponse RoundTripDelayResponse,
+
+ maintenanceLoopAck MaintenanceLoopAck,
+ maintenanceLoopReject MaintenanceLoopReject,
+
+ ...,
+ communicationModeResponse CommunicationModeResponse,
+
+ conferenceResponse ConferenceResponse
+
+
+}
+
+-- A CommandMessage requires action, but no explicit response
+
+CommandMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ maintenanceLoopOffCommand MaintenanceLoopOffCommand,
+
+ sendTerminalCapabilitySet SendTerminalCapabilitySet,
+
+ encryptionCommand EncryptionCommand,
+
+ flowControlCommand FlowControlCommand,
+
+ endSessionCommand EndSessionCommand,
+
+ miscellaneousCommand MiscellaneousCommand,
+
+ ...,
+ communicationModeCommand CommunicationModeCommand,
+
+ conferenceCommand ConferenceCommand,
+
+ h223MultiplexReconfiguration H223MultiplexReconfiguration
+
+}
+
+-- An IndicationMessage is information that does not require action or response
+
+IndicationMessage ::=CHOICE
+{
+ nonStandard NonStandardMessage,
+
+ functionNotUnderstood FunctionNotUnderstood,
+
+ masterSlaveDeterminationRelease MasterSlaveDeterminationRelease,
+
+ terminalCapabilitySetRelease TerminalCapabilitySetRelease,
+
+ openLogicalChannelConfirm OpenLogicalChannelConfirm,
+
+ requestChannelCloseRelease RequestChannelCloseRelease,
+
+ multiplexEntrySendRelease MultiplexEntrySendRelease,
+
+ requestMultiplexEntryRelease RequestMultiplexEntryRelease,
+
+ requestModeRelease RequestModeRelease,
+
+ miscellaneousIndication MiscellaneousIndication,
+
+ jitterIndication JitterIndication,
+
+ h223SkewIndication H223SkewIndication,
+
+ newATMVCIndication NewATMVCIndication,
+
+ userInput UserInputIndication,
+ ...,
+ h2250MaximumSkewIndication H2250MaximumSkewIndication,
+
+ mcLocationIndication MCLocationIndication,
+
+ conferenceIndication ConferenceIndication,
+
+ vendorIdentification VendorIdentification,
+
+ functionNotSupported FunctionNotSupported
+
+}
+
+-- SequenceNumber is defined here as it is used in a number of Messages
+SequenceNumber ::=INTEGER (0..255)
+
+-- ===================================================================================
+-- Non standard Message definitions
+-- ===================================================================================
+
+NonStandardMessage ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter,
+ ...
+}
+
+NonStandardParameter ::=SEQUENCE
+{
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::=CHOICE
+{
+ object OBJECT IDENTIFIER,
+ h221NonStandard SEQUENCE
+ {
+ t35CountryCode INTEGER (0..255), -- country, per T.35
+ t35Extension INTEGER (0..255), -- assigned nationally
+ manufacturerCode INTEGER (0..65535) -- assigned nationally
+ }
+}
+
+-- ===================================================================================
+-- Master-slave determination definitions
+-- ===================================================================================
+
+MasterSlaveDetermination ::=SEQUENCE
+{
+ terminalType INTEGER (0..255),
+ statusDeterminationNumber INTEGER (0..16777215),
+ ...
+}
+
+MasterSlaveDeterminationAck ::=SEQUENCE
+{
+ decision CHOICE
+ {
+ master NULL,
+ slave NULL
+ },
+ ...
+}
+
+MasterSlaveDeterminationReject ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ identicalNumbers NULL,
+ ...
+ },
+ ...
+}
+
+MasterSlaveDeterminationRelease ::=SEQUENCE
+{
+ ...
+}
+
+ -- ===================================================================================
+-- Capability exchange definitions
+-- ===================================================================================
+
+TerminalCapabilitySet ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+
+ protocolIdentifier OBJECT IDENTIFIER,
+ -- shall be set to the value
+ -- {itu-t (0) recommendation (0) h (8) 245 version (0) 3}
+
+
+ multiplexCapability MultiplexCapability OPTIONAL,
+
+ capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL,
+
+ capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL,
+
+ ...
+}
+
+CapabilityTableEntry ::=SEQUENCE
+{
+ capabilityTableEntryNumber CapabilityTableEntryNumber,
+ capability Capability OPTIONAL
+}
+
+CapabilityDescriptor ::=SEQUENCE
+{
+ capabilityDescriptorNumber CapabilityDescriptorNumber,
+ simultaneousCapabilities SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL
+}
+
+AlternativeCapabilitySet ::=SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber
+
+CapabilityTableEntryNumber ::=INTEGER (1..65535)
+
+CapabilityDescriptorNumber ::=INTEGER (0..255)
+
+TerminalCapabilitySetAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+TerminalCapabilitySetReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ undefinedTableEntryUsed NULL,
+ descriptorCapacityExceeded NULL,
+ tableEntryCapacityExceeded CHOICE
+ {
+ highestEntryNumberProcessed CapabilityTableEntryNumber,
+ noneProcessed NULL
+ },
+ ...
+ },
+ ...
+}
+
+TerminalCapabilitySetRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: top level capability description
+-- ===================================================================================
+
+Capability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ receiveVideoCapability VideoCapability,
+ transmitVideoCapability VideoCapability,
+ receiveAndTransmitVideoCapability VideoCapability,
+
+ receiveAudioCapability AudioCapability,
+ transmitAudioCapability AudioCapability,
+ receiveAndTransmitAudioCapability AudioCapability,
+
+ receiveDataApplicationCapability DataApplicationCapability,
+ transmitDataApplicationCapability DataApplicationCapability,
+ receiveAndTransmitDataApplicationCapability DataApplicationCapability,
+
+ h233EncryptionTransmitCapability BOOLEAN,
+ h233EncryptionReceiveCapability SEQUENCE
+ {
+ h233IVResponseTime INTEGER (0..255), -- units milliseconds
+ ...
+ },
+ ...,
+ conferenceCapability ConferenceCapability,
+ h235SecurityCapability H235SecurityCapability,
+ maxPendingReplacementFor INTEGER (0..255),
+ receiveUserInputCapability UserInputCapability,
+ transmitUserInputCapability UserInputCapability,
+ receiveAndTransmitUserInputCapability UserInputCapability
+
+}
+
+H235SecurityCapability ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaCapability CapabilityTableEntryNumber,
+ -- Note: the mediaCapability shall refer to Capability Table Entries that do contain a transmit,
+ -- receive, or receiveAndTransmit AudioCapability, VideoCapability,
+ -- DataApplicationCapability, or similar capability indicated by a NonStandardParameter only
+
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Multiplex capabilities
+-- ===================================================================================
+
+MultiplexCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ v76Capability V76Capability,
+ ...,
+ h2250Capability H2250Capability
+
+}
+
+H222Capability ::= SEQUENCE
+{
+ numberOfVCs INTEGER (1..256),
+ vcCapability SET OF VCCapability,
+ ...
+}
+
+VCCapability ::=SEQUENCE
+{
+ aal1 SEQUENCE
+ {
+ nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ } OPTIONAL,
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ } OPTIONAL,
+ transportStream BOOLEAN,
+ programStream BOOLEAN,
+ availableBitRates SEQUENCE
+ {
+ type CHOICE
+ {
+ singleBitRate INTEGER (1..65535), -- units 64 kbit/s
+ rangeOfBitRates SEQUENCE
+ {
+ lowerBitRate INTEGER (1..65535), -- units 64 kbit/s
+ higherBitRate INTEGER (1..65535) -- units 64 kbit/s
+ }
+ },
+ ...
+ },
+ ...
+}
+
+H223Capability ::=SEQUENCE
+{
+ transportWithI-frames BOOLEAN, -- I-frame transport of H.245
+
+ videoWithAL1 BOOLEAN,
+ videoWithAL2 BOOLEAN,
+ videoWithAL3 BOOLEAN,
+ audioWithAL1 BOOLEAN,
+ audioWithAL2 BOOLEAN,
+ audioWithAL3 BOOLEAN,
+ dataWithAL1 BOOLEAN,
+ dataWithAL2 BOOLEAN,
+ dataWithAL3 BOOLEAN,
+
+ maximumAl2SDUSize INTEGER (0..65535), -- units octets
+ maximumAl3SDUSize INTEGER (0..65535), -- units octets
+
+ maximumDelayJitter INTEGER (0..1023), -- units milliseconds
+
+ h223MultiplexTableCapability CHOICE
+ {
+ basic NULL,
+ enhanced SEQUENCE
+ {
+ maximumNestingDepth INTEGER (1..15),
+ maximumElementListSize INTEGER (2..255),
+ maximumSubElementListSize INTEGER (2..255),
+ ...
+ }
+ },
+ ...,
+ maxMUXPDUSizeCapability BOOLEAN,
+ nsrpSupport BOOLEAN,
+ mobileOperationTransmitCapability SEQUENCE
+ {
+ modeChangeCapability BOOLEAN,
+ h223AnnexA BOOLEAN,
+ h223AnnexADoubleFlag BOOLEAN,
+ h223AnnexB BOOLEAN,
+ h223AnnexBwithHeader BOOLEAN,
+ ...
+ } OPTIONAL,
+ h223AnnexCCapability H223AnnexCCapability OPTIONAL
+
+}
+
+H223AnnexCCapability ::= SEQUENCE
+{
+ videoWithAL1M BOOLEAN,
+ videoWithAL2M BOOLEAN,
+ videoWithAL3M BOOLEAN,
+ audioWithAL1M BOOLEAN,
+ audioWithAL2M BOOLEAN,
+ audioWithAL3M BOOLEAN,
+ dataWithAL1M BOOLEAN,
+ dataWithAL2M BOOLEAN,
+ dataWithAL3M BOOLEAN,
+ alpduInterleaving BOOLEAN,
+
+ maximumAL1MPDUSize INTEGER (0..65535), -- units octets
+ maximumAL2MSDUSize INTEGER (0..65535), -- units octets
+ maximumAL3MSDUSize INTEGER (0..65535), -- units octets
+ ...
+}
+
+V76Capability ::=SEQUENCE
+{
+ suspendResumeCapabilitywAddress BOOLEAN,
+ suspendResumeCapabilitywoAddress BOOLEAN,
+ rejCapability BOOLEAN,
+ sREJCapability BOOLEAN,
+ mREJCapability BOOLEAN,
+ crc8bitCapability BOOLEAN,
+ crc16bitCapability BOOLEAN,
+ crc32bitCapability BOOLEAN,
+ uihCapability BOOLEAN,
+ numOfDLCS INTEGER (2..8191),
+ twoOctetAddressFieldCapability BOOLEAN,
+ loopBackTestCapability BOOLEAN,
+ n401Capability INTEGER (1..4095),
+ maxWindowSizeCapability INTEGER (1..127),
+ v75Capability V75Capability,
+ ...
+}
+
+V75Capability ::=SEQUENCE
+{
+ audioHeader BOOLEAN,
+ ...
+}
+
+H2250Capability ::=SEQUENCE
+{
+ maximumAudioDelayJitter INTEGER(0..1023), -- units in milliseconds
+ receiveMultipointCapability MultipointCapability,
+ transmitMultipointCapability MultipointCapability,
+ receiveAndTransmitMultipointCapability MultipointCapability,
+ mcCapability SEQUENCE
+ {
+ centralizedConferenceMC BOOLEAN,
+ decentralizedConferenceMC BOOLEAN,
+ ...
+ },
+ rtcpVideoControlCapability BOOLEAN, -- FIR and NACK
+ mediaPacketizationCapability MediaPacketizationCapability,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncodingCapability SEQUENCE SIZE(1..256) OF RedundancyEncodingCapability OPTIONAL,
+ logicalChannelSwitchingCapability BOOLEAN,
+ t120DynamicPortCapability BOOLEAN
+
+}
+
+MediaPacketizationCapability ::=SEQUENCE
+{
+ h261aVideoPacketization BOOLEAN,
+ ...,
+ rtpPayloadType SEQUENCE SIZE(1..256) OF RTPPayloadType OPTIONAL
+}
+
+RSVPParameters ::=SEQUENCE
+{
+ qosMode QOSMode OPTIONAL,
+ tokenRate INTEGER (1..4294967295) OPTIONAL,
+ -- rate in bytes/sec
+ bucketSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ peakRate INTEGER (1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/sec
+ minPoliced INTEGER (1..4294967295) OPTIONAL, --
+ maxPktSize INTEGER (1..4294967295) OPTIONAL, -- size in bytes
+ ...
+}
+
+QOSMode ::=CHOICE
+{
+ guaranteedQOS NULL,
+ controlledLoad NULL,
+ ...
+}
+
+-- Ed. Replace with ITU-T ATM Transfer Capability Types
+ATMParameters ::=SEQUENCE
+{
+ maxNTUSize INTEGER(0..65535), --units in octets
+ atmUBR BOOLEAN, --unspecified bit rate
+ atmrtVBR BOOLEAN, --real time variable bit rate
+ atmnrtVBR BOOLEAN, --non real time variable bit rate
+ atmABR BOOLEAN, --available bit rate
+ atmCBR BOOLEAN, --constant bit rate
+ ...
+}
+
+QOSCapability ::=SEQUENCE
+{
+ nonStandardData NonStandardParameter OPTIONAL,
+ rsvpParameters RSVPParameters OPTIONAL,
+ atmParameters ATMParameters OPTIONAL,
+ ...
+}
+
+MediaTransportType ::=CHOICE
+{
+ ip-UDP NULL,
+ ip-TCP NULL,
+ atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional
+ atm-AAL5-BIDIR NULL, -- virtual circuits used as bidirectional
+ ...
+}
+
+MediaChannelCapability ::=SEQUENCE
+{
+ mediaTransport MediaTransportType OPTIONAL,
+ ...
+}
+
+TransportCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ qOSCapabilities SEQUENCE SIZE(1..256) OF QOSCapability OPTIONAL,
+ mediaChannelCapabilities SEQUENCE SIZE(1..256) OF MediaChannelCapability OPTIONAL,
+ ...
+}
+
+RedundancyEncodingCapability ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primaryEncoding CapabilityTableEntryNumber,
+ secondaryEncoding SEQUENCE SIZE(1..256) OF CapabilityTableEntryNumber OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMethod ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ rtpAudioRedundancyEncoding NULL,
+ ...,
+ rtpH263VideoRedundancyEncoding RTPH263VideoRedundancyEncoding
+}
+
+RTPH263VideoRedundancyEncoding ::= SEQUENCE
+{
+ numberOfThreads INTEGER (1..16),
+ framesBetweenSyncPoints INTEGER (1..256),
+ frameToThreadMapping CHOICE
+ {
+ roundrobin NULL,
+ custom SEQUENCE SIZE(1..256) OF
+ RTPH263VideoRedundancyFrameMapping,
+-- empty SEQUENCE for capability negotiation
+-- meaningful contents only OpenLogicalChannel
+ ...
+ },
+ containedThreads SEQUENCE SIZE(1..256) OF INTEGER (0..15) OPTIONAL,
+ -- only used for opening of logical channels
+ ...
+}
+
+RTPH263VideoRedundancyFrameMapping ::= SEQUENCE
+{
+ threadNumber INTEGER (0..15),
+ frameSequence SEQUENCE SIZE(1..256) OF INTEGER (0..255),
+ ...
+}
+
+MultipointCapability ::=SEQUENCE
+{
+ multicastCapability BOOLEAN,
+ multiUniCastConference BOOLEAN,
+ mediaDistributionCapability SEQUENCE OF MediaDistributionCapability,
+ ...
+}
+
+MediaDistributionCapability ::=SEQUENCE
+{
+ centralizedControl BOOLEAN,
+ distributedControl BOOLEAN, -- for further study in H.323
+ centralizedAudio BOOLEAN,
+ distributedAudio BOOLEAN,
+ centralizedVideo BOOLEAN,
+ distributedVideo BOOLEAN,
+ centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ distributedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ -- for further study in H.323
+ ...
+}
+
+
+
+-- ===================================================================================
+-- Capability exchange definitions: Video capabilities
+-- ===================================================================================
+
+VideoCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter ,
+ h261VideoCapability H261VideoCapability,
+ h262VideoCapability H262VideoCapability,
+ h263VideoCapability H263VideoCapability,
+ is11172VideoCapability IS11172VideoCapability,
+ ...
+}
+
+H261VideoCapability ::=SEQUENCE
+{
+ qcifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..4) OPTIONAL, -- units 1/29.97 Hz
+ temporalSpatialTradeOffCapability BOOLEAN,
+ maxBitRate INTEGER (1..19200), -- units of 100 bit/s
+ stillImageTransmission BOOLEAN, -- Annex D of H.261
+ ...
+}
+
+H262VideoCapability ::=SEQUENCE
+{
+ profileAndLevel-SPatML BOOLEAN,
+ profileAndLevel-MPatLL BOOLEAN,
+ profileAndLevel-MPatML BOOLEAN,
+ profileAndLevel-MPatH-14 BOOLEAN,
+ profileAndLevel-MPatHL BOOLEAN,
+ profileAndLevel-SNRatLL BOOLEAN,
+ profileAndLevel-SNRatML BOOLEAN,
+ profileAndLevel-SpatialatH-14 BOOLEAN,
+ profileAndLevel-HPatML BOOLEAN,
+ profileAndLevel-HPatH-14 BOOLEAN,
+ profileAndLevel-HPatHL BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER (0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoCapability ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ hrd-B INTEGER (0..524287) OPTIONAL, -- units 128 bits
+ bppMaxKb INTEGER (0..65535) OPTIONAL, -- units 1024 bits
+ ...,
+
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units seconds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+
+}
+
+EnhancementLayerInfo ::=SEQUENCE
+{
+ baseBitRateConstrained BOOLEAN,
+ snrEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ spatialEnhancement SET SIZE(1..14) OF EnhancementOptions OPTIONAL,
+ bPictureEnhancement SET SIZE(1..14) OF BEnhancementParameters OPTIONAL,
+ ...
+}
+
+BEnhancementParameters ::=SEQUENCE
+{
+ enhancementOptions EnhancementOptions,
+ numberOfBPictures INTEGER (1..64),
+ ...
+}
+
+EnhancementOptions ::=SEQUENCE
+{
+ sqcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER (1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER (1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ slowSqcifMPI INTEGER (1..3600) OPTIONAL, -- units econds/frame
+ slowQcifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER (1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+ h263Options H263Options OPTIONAL,
+ ...
+}
+
+H263Options ::= SEQUENCE
+{
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+
+ unlimitedMotionVectors BOOLEAN,
+
+ fullPictureFreeze BOOLEAN,
+ partialPictureFreezeAndRelease BOOLEAN,
+ resizingPartPicFreezeAndRelease BOOLEAN,
+ fullPictureSnapshot BOOLEAN,
+ partialPictureSnapshot BOOLEAN,
+ videoSegmentTagging BOOLEAN,
+ progressiveRefinement BOOLEAN,
+
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+
+ independentSegmentDecoding BOOLEAN,
+
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+
+ transparencyParameters TransparencyParameters OPTIONAL,
+ separateVideoBackChannel BOOLEAN,
+ refPictureSelection RefPictureSelection OPTIONAL,
+ customPictureClockFrequency SET SIZE (1..16) OF CustomPictureClockFrequency OPTIONAL,
+ customPictureFormat SET SIZE (1..16) OF CustomPictureFormat OPTIONAL,
+ modeCombos SET SIZE (1..16) OF H263VideoModeCombos OPTIONAL,
+ ...
+}
+
+TransparencyParameters ::= SEQUENCE
+{
+ presentationOrder INTEGER(1..256),
+ offset-x INTEGER(-262144..262143), -- 1/8 pixels
+ offset-y INTEGER(-262144..262143), -- 1/8 pixels
+ scale-x INTEGER(1..255),
+ scale-y INTEGER(1..255),
+ ...
+}
+
+RefPictureSelection ::=SEQUENCE
+{
+ additionalPictureMemory SEQUENCE
+ {
+ sqcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ qcifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cifAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif4AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ cif16AdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ bigCpfAdditionalPictureMemory INTEGER (1..256) OPTIONAL, -- units frame
+ ...
+ } OPTIONAL,
+ videoMux BOOLEAN,
+ videoBackChannelSend CHOICE
+ {
+ none NULL,
+ ackMessageOnly NULL,
+ nackMessageOnly NULL,
+ ackOrNackMessageOnly NULL,
+ ackAndNackMessage NULL,
+ ...
+ },
+ ...
+}
+
+CustomPictureClockFrequency ::=SEQUENCE
+{
+ clockConversionCode INTEGER(1000..1001),
+ clockDivisor INTEGER(1..127),
+ sqcifMPI INTEGER (1..2048) OPTIONAL,
+ qcifMPI INTEGER (1..2048) OPTIONAL,
+ cifMPI INTEGER (1..2048) OPTIONAL,
+ cif4MPI INTEGER (1..2048) OPTIONAL,
+ cif16MPI INTEGER (1..2048) OPTIONAL,
+ ...
+}
+
+CustomPictureFormat ::=SEQUENCE
+{
+ maxCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ maxCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ mPI SEQUENCE
+ {
+ standardMPI INTEGER (1..31) OPTIONAL,
+ customPCF SET SIZE (1..16) OF SEQUENCE
+ {
+ clockConversionCode INTEGER (1000..1001),
+ clockDivisor INTEGER (1..127),
+ customMPI INTEGER (1..2048),
+ ...
+ } OPTIONAL,
+ ...
+ },
+
+ pixelAspectInformation CHOICE
+ {
+ anyPixelAspectRatio BOOLEAN,
+ pixelAspectCode SET SIZE (1..14) OF INTEGER(1..14),
+ extendedPAR SET SIZE (1..256) OF SEQUENCE
+ {
+ width INTEGER(1..255),
+ height INTEGER(1..255),
+ ...
+ },
+ ...
+ } ,
+ ...
+}
+
+H263VideoModeCombos ::= SEQUENCE
+{
+ h263VideoUncoupledModes H263ModeComboFlags,
+ h263VideoCoupledModes SET SIZE (1..16) OF H263ModeComboFlags,
+ ...
+}
+
+H263ModeComboFlags ::= SEQUENCE
+{
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ unlimitedMotionVectors BOOLEAN,
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+ referencePicSelect BOOLEAN,
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+ independentSegmentDecoding BOOLEAN,
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ ...
+}
+
+IS11172VideoCapability ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER (0.. 1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER (0.. 262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER (0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER (0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER (0..15) OPTIONAL,
+ luminanceSampleRate INTEGER (0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Audio capabilities
+-- ===================================================================================
+
+-- For an H.222 multiplex, the integers indicate the size of the STD buffer in units of 256 octets
+-- For an H.223 multiplex, the integers indicate the maximum number of audio frames per AL-SDU
+-- For an H.225.0 multiplex, the integers indicate the maximum number of audio frames per packet
+
+AudioCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k INTEGER (1..256),
+ g711Alaw56k INTEGER (1..256),
+ g711Ulaw64k INTEGER (1..256),
+ g711Ulaw56k INTEGER (1..256),
+
+ g722-64k INTEGER (1..256),
+ g722-56k INTEGER (1..256),
+ g722-48k INTEGER (1..256),
+
+ g7231 SEQUENCE
+ {
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN
+ },
+
+ g728 INTEGER (1..256),
+ g729 INTEGER (1..256),
+ g729AnnexA INTEGER (1..256),
+ is11172AudioCapability IS11172AudioCapability,
+ is13818AudioCapability IS13818AudioCapability,
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCCapability G7231AnnexCCapability,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+}
+
+G7231AnnexCCapability ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ } OPTIONAL,
+ ...
+}
+
+IS11172AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+
+ bitRate INTEGER (1..448), -- units kbit/s
+ ...
+}
+
+IS13818AudioCapability ::=SEQUENCE
+{
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+
+ audioSampling16k BOOLEAN,
+ audioSampling22k05 BOOLEAN,
+ audioSampling24k BOOLEAN,
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+ threeChannels2-1 BOOLEAN,
+ threeChannels3-0 BOOLEAN,
+ fourChannels2-0-2-0 BOOLEAN,
+ fourChannels2-2 BOOLEAN,
+ fourChannels3-1 BOOLEAN,
+ fiveChannels3-0-2-0 BOOLEAN,
+ fiveChannels3-2 BOOLEAN,
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), -- units kbit/s
+ ...
+}
+
+GSMAudioCapability ::= SEQUENCE
+{
+ audioUnitSize INTEGER (1..256),
+ comfortNoise BOOLEAN,
+ scrambled BOOLEAN,
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Data capabilities
+-- ===================================================================================
+
+DataApplicationCapability ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 SEQUENCE
+ {
+ t84Protocol DataProtocolCapability,
+ t84Profile T84Profile
+ },
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ maxBitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+DataProtocolCapability ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ v14buffered NULL,
+ v42lapm NULL, -- may negotiate to V.42bis
+ hdlcFrameTunnelling NULL,
+ h310SeparateVCStack NULL,
+ h310SingleVCStack NULL,
+ transparent NULL,
+ ...,
+ segmentationAndReassembly NULL,
+ hdlcFrameTunnelingwSAR NULL,
+ v120 NULL, -- as in H.230
+ separateLANStack NULL,
+ v76wCompression CHOICE
+ {
+ transmitCompression CompressionType,
+ receiveCompression CompressionType,
+ transmitAndReceiveCompression CompressionType,
+ ...
+ }
+}
+
+CompressionType ::=CHOICE
+{
+ v42bis V42bis,
+ ...
+}
+
+V42bis ::=SEQUENCE
+{
+ numberOfCodewords INTEGER (1..65536),
+ maximumStringLength INTEGER (1..256),
+ ...
+}
+
+T84Profile ::=CHOICE
+{
+ t84Unrestricted NULL,
+ t84Restricted SEQUENCE
+ {
+ qcif BOOLEAN,
+ cif BOOLEAN,
+ ccir601Seq BOOLEAN,
+ ccir601Prog BOOLEAN,
+ hdtvSeq BOOLEAN,
+ hdtvProg BOOLEAN,
+
+ g3FacsMH200x100 BOOLEAN,
+ g3FacsMH200x200 BOOLEAN,
+ g4FacsMMR200x100 BOOLEAN,
+ g4FacsMMR200x200 BOOLEAN,
+ jbig200x200Seq BOOLEAN,
+ jbig200x200Prog BOOLEAN,
+ jbig300x300Seq BOOLEAN,
+ jbig300x300Prog BOOLEAN,
+
+ digPhotoLow BOOLEAN,
+ digPhotoMedSeq BOOLEAN,
+ digPhotoMedProg BOOLEAN,
+ digPhotoHighSeq BOOLEAN,
+ digPhotoHighProg BOOLEAN,
+
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Encryption Capability Definitions:
+-- ===================================================================================
+
+EncryptionAuthenticationAndIntegrity ::=SEQUENCE
+{
+ encryptionCapability EncryptionCapability OPTIONAL,
+ authenticationCapability AuthenticationCapability OPTIONAL,
+ integrityCapability IntegrityCapability OPTIONAL,
+ ...
+}
+
+EncryptionCapability ::=SEQUENCE SIZE(1..256) OF MediaEncryptionAlgorithm
+
+MediaEncryptionAlgorithm ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ algorithm OBJECT IDENTIFIER, -- many defined in ISO/IEC 9979
+ ...
+}
+
+AuthenticationCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+IntegrityCapability ::=SEQUENCE
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+-- ================================================================================
+-- Capability Exchange Definitions: UserInput
+-- ================================================================================
+
+UserInputCapability ::= CHOICE
+{
+ nonStandard SEQUENCE SIZE(1..16) OF NonStandardParameter,
+ basicString NULL, -- alphanumeric
+ iA5String NULL, -- alphanumeric
+ generalString NULL, -- alphanumeric
+ dtmf NULL, -- supports dtmf using signal and signalUpdate
+ hookflash NULL, -- supports hookflash using signal
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Conference
+-- ===================================================================================
+
+ConferenceCapability ::=SEQUENCE
+{
+ nonStandardData SEQUENCE OF NonStandardParameter OPTIONAL,
+ chairControlCapability BOOLEAN,
+ ...
+}
+ -- ===================================================================================
+-- Logical channel signalling definitions
+-- ===================================================================================
+
+-- "Forward" is used to refer to transmission in the direction from the terminal making the
+-- original request for a logical channel to the other terminal, and "reverse" is used to refer
+-- to the opposite direction of transmission, in the case of a bi-directional channel request.
+
+OpenLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ forwardLogicalChannelParameters SEQUENCE
+ {
+ portNumber INTEGER (0..65535) OPTIONAL,
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters,
+ none NULL -- for use with Separate Stack when
+ -- multiplexParameters are not required
+ -- or appropriate
+
+ },
+ ...,
+ forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ },
+
+ -- Used to specify the reverse channel for bi-directional open request
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ dataType DataType,
+ multiplexParameters CHOICE
+ {
+ -- H.222 parameters are never present in reverse direction
+ h223LogicalChannelParameters H223LogicalChannelParameters,
+ v76LogicalChannelParameters V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.222
+ ...,
+ reverseLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open responder to establish the stack
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+
+
+}
+
+LogicalChannelNumber ::=INTEGER (1..65535)
+
+NetworkAccessParameters ::=SEQUENCE
+{
+ distribution CHOICE
+ {
+ unicast NULL,
+ multicast NULL, -- For Further Study in T.120
+ ...
+ } OPTIONAL,
+
+ networkAddress CHOICE
+ {
+ q2931Address Q2931Address,
+ e164Address IA5String(SIZE(1..128)) (FROM ("0123456789#*,")),
+ localAreaAddress TransportAddress,
+ ...
+ },
+ associateConference BOOLEAN,
+ externalReference OCTET STRING(SIZE(1..255)) OPTIONAL,
+ ...,
+ t120SetupProcedure CHOICE
+ {
+
+ originateCall NULL,
+ waitForCall NULL,
+ issueQuery NULL,
+ ...
+ } OPTIONAL
+}
+
+Q2931Address ::=SEQUENCE
+{
+ address CHOICE
+ {
+ internationalNumber NumericString(SIZE(1..16)),
+ nsapAddress OCTET STRING (SIZE(1..20)),
+ ...
+ },
+ subaddress OCTET STRING (SIZE(1..20)) OPTIONAL,
+ ...
+}
+
+V75Parameters ::= SEQUENCE
+{
+ audioHeaderPresent BOOLEAN,
+ ...
+}
+
+
+DataType ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ nullData NULL,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ encryptionData EncryptionMode,
+ ...,
+ h235Control NonStandardParameter,
+ h235Media H235Media
+}
+
+H235Media ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+
+ ...
+}
+
+H222LogicalChannelParameters ::=SEQUENCE
+{
+ resourceID INTEGER (0..65535),
+ subChannelID INTEGER (0..8191),
+ pcr-pid INTEGER (0..8191) OPTIONAL,
+ programDescriptors OCTET STRING OPTIONAL,
+ streamDescriptors OCTET STRING OPTIONAL,
+ ...
+}
+
+H223LogicalChannelParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER (0..2),
+ sendBufferSize INTEGER (0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+H223AL1MParameters ::=SEQUENCE
+{
+ transferMode CHOICE
+ {
+ framed NULL,
+ unframed NULL,
+ ...
+ },
+ headerFEC CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ alsduSplitting BOOLEAN,
+ ...
+}
+
+H223AL2MParameters ::=SEQUENCE
+{
+ headerFEC CHOICE
+ {
+ sebch16-5 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+H223AL3MParameters ::=SEQUENCE
+{
+ headerFormat CHOICE
+ {
+ sebch16-7 NULL,
+ golay24-12 NULL,
+ ...
+ },
+ crcLength CHOICE
+ {
+ crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...
+ },
+
+ rcpcCodeRate INTEGER (8..32),
+
+ arqType CHOICE
+ {
+ noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...
+ },
+
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+
+H223AnnexCArqParameters ::=SEQUENCE
+{
+ numberOfRetransmissions CHOICE
+ {
+ finite INTEGER (0..16),
+ infinite NULL,
+ ...
+ },
+ sendBufferSize INTEGER (0..16777215), -- units octets
+ ...
+}
+
+V76LogicalChannelParameters ::=SEQUENCE
+{
+ hdlcParameters V76HDLCParameters,
+ suspendResume CHOICE
+ {
+ noSuspendResume NULL,
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+ },
+ uIH BOOLEAN,
+ mode CHOICE
+ {
+ eRM SEQUENCE
+ {
+ windowSize INTEGER (1..127) ,
+ recovery CHOICE
+ {
+ rej NULL,
+ sREJ NULL,
+ mSREJ NULL,
+ ...
+ },
+ ...
+ },
+ uNERM NULL,
+ ...
+ },
+ v75Parameters V75Parameters,
+ ...
+}
+
+
+
+V76HDLCParameters ::=SEQUENCE
+{
+ crcLength CRCLength,
+ n401 INTEGER (1..4095),
+ loopbackTestProcedure BOOLEAN,
+ ...
+}
+
+
+CRCLength ::=CHOICE
+{
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ ...
+}
+
+H2250LogicalChannelParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(0..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ silenceSuppression BOOLEAN OPTIONAL,
+ destination TerminalLabel OPTIONAL,
+
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL,
+ mediaPacketization CHOICE
+ {
+ h261aVideoPacketization NULL,
+ ...,
+ rtpPayloadType RTPPayloadType
+ } OPTIONAL,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ source TerminalLabel OPTIONAL
+}
+
+RTPPayloadType ::= SEQUENCE
+{
+ payloadDescriptor CHOICE
+ {
+ nonStandardIdentifier NonStandardParameter,
+ rfc-number INTEGER (1..32768, ...),
+ oid OBJECT IDENTIFIER,
+ ...
+ },
+ payloadType INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+RedundancyEncoding ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding DataType OPTIONAL, -- depends on method
+ ...
+}
+
+TransportAddress ::=CHOICE
+{
+ unicastAddress UnicastAddress,
+ multicastAddress MulticastAddress,
+ ...
+}
+
+UnicastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iPXAddress SEQUENCE
+ {
+ node OCTET STRING (SIZE(6)),
+ netnum OCTET STRING (SIZE(4)),
+ tsapIdentifier OCTET STRING (SIZE(2)),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ netBios OCTET STRING (SIZE(16)),
+ iPSourceRouteAddress SEQUENCE
+ {
+ routing CHOICE
+ {
+ strict NULL,
+ loose NULL
+ },
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING (SIZE(4)),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+MulticastAddress ::=CHOICE
+{
+ iPAddress SEQUENCE
+ {
+ network OCTET STRING (SIZE(4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ iP6Address SEQUENCE
+ {
+ network OCTET STRING (SIZE(16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...
+ },
+ ...,
+ nsap OCTET STRING (SIZE(1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+EncryptionSync ::=SEQUENCE
+ -- used to supply new key and synchronization point
+{
+ nonStandard NonStandardParameter OPTIONAL,
+ synchFlag INTEGER(0..255) , -- may need to be larger for H.324, etc
+ -- shall be the Dynamic Payload# for H.323
+ h235Key OCTET STRING (SIZE(1..65535)), -- H.235 encoded value
+ escrowentry SEQUENCE SIZE(1..256) OF EscrowData OPTIONAL,
+ ...
+}
+
+EscrowData ::=SEQUENCE
+{
+ escrowID OBJECT IDENTIFIER,
+ escrowValue BIT STRING (SIZE(1..65535)),
+ ...
+}
+
+OpenLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+
+ reverseLogicalChannelParameters SEQUENCE
+ {
+ reverseLogicalChannelNumber LogicalChannelNumber,
+ portNumber INTEGER (0..65535) OPTIONAL,
+ multiplexParameters CHOICE
+ {
+ h222LogicalChannelParameters H222LogicalChannelParameters,
+ -- H.223 parameters are never present in reverse direction
+ ...,
+ h2250LogicalChannelParameters H2250LogicalChannelParameters
+
+ } OPTIONAL, -- Not present for H.223
+ ...,
+ replacementFor LogicalChannelNumber OPTIONAL
+
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open requester to establish the stack
+ forwardMultiplexAckParameters CHOICE
+ {
+ -- H.222 parameters are never present in the Ack
+ -- H.223 parameters are never present in the Ack
+ --V.76 parameters are never present in the Ack
+ h2250LogicalChannelAckParameters H2250LogicalChannelAckParameters,
+ ...
+ } OPTIONAL,
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+}
+
+OpenLogicalChannelReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ unsuitableReverseParameters NULL,
+ dataTypeNotSupported NULL,
+ dataTypeNotAvailable NULL,
+ unknownDataType NULL,
+ dataTypeALCombinationNotSupported NULL,
+ ...,
+ multicastChannelNotAllowed NULL,
+ insufficientBandwidth NULL,
+ separateStackEstablishmentFailed NULL,
+ invalidSessionID NULL,
+ masterSlaveConflict NULL,
+ waitForCommunicationMode NULL,
+ invalidDependentChannel NULL,
+ replacementForRejected NULL
+ },
+ ...
+}
+
+OpenLogicalChannelConfirm ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+H2250LogicalChannelAckParameters ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP channel
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by the master or MC
+ ...,
+ flowControlToZero BOOLEAN
+}
+
+
+
+CloseLogicalChannel ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ source CHOICE
+ {
+ user NULL,
+ lcse NULL
+ },
+ ...,
+ reason CHOICE
+ {
+ unknown NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+CloseLogicalChannelAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelClose ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ qosCapability QOSCapability OPTIONAL,
+ reason CHOICE
+ {
+ unknown NULL,
+ normal NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...
+ }
+}
+
+RequestChannelCloseAck ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelCloseReject ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE
+ {
+ unspecified NULL,
+ ...
+ },
+ ...
+}
+
+RequestChannelCloseRelease ::=SEQUENCE
+{
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- H.223 multiplex table definitions
+-- ===================================================================================
+
+MultiplexEntrySend ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexEntryDescriptors SET SIZE (1..15) OF MultiplexEntryDescriptor,
+ ...
+}
+
+MultiplexEntryDescriptor ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ elementList SEQUENCE SIZE (1..256) OF MultiplexElement OPTIONAL
+}
+
+MultiplexElement ::=SEQUENCE
+{
+ type CHOICE
+ {
+ logicalChannelNumber INTEGER(0..65535),
+ subElementList SEQUENCE SIZE (2..255) OF MultiplexElement
+ },
+ repeatCount CHOICE
+ {
+ finite INTEGER (1..65535), -- repeats of type
+ untilClosingFlag NULL -- used for last element
+ }
+}
+
+MultiplexTableEntryNumber ::=INTEGER (1..15)
+
+MultiplexEntrySendAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+MultiplexEntrySendReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ rejectionDescriptions SET SIZE (1..15) OF MultiplexEntryRejectionDescriptions,
+ ...
+}
+
+MultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ descriptorTooComplex NULL,
+ ...
+ },
+ ...
+}
+
+MultiplexEntrySendRelease ::=SEQUENCE
+{
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntry ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryAck ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryReject ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ rejectionDescriptions SET SIZE (1..15) OF RequestMultiplexEntryRejectionDescriptions,
+ ...
+}
+
+RequestMultiplexEntryRejectionDescriptions ::=SEQUENCE
+{
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE
+ {
+ unspecifiedCause NULL,
+ ...
+ },
+ ...
+}
+
+RequestMultiplexEntryRelease ::=SEQUENCE
+{
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+ -- ===================================================================================
+-- Request mode definitions
+-- ===================================================================================
+
+-- RequestMode is a list, in order or preference, of modes that a terminal would like
+-- to have transmitted to it.
+
+RequestMode ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ requestedModes SEQUENCE SIZE (1..256) OF ModeDescription,
+ ...
+}
+
+RequestModeAck ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ response CHOICE
+ {
+ willTransmitMostPreferredMode NULL,
+ willTransmitLessPreferredMode NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeReject ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ cause CHOICE
+ {
+ modeUnavailable NULL,
+ multipointConstraint NULL,
+ requestDenied NULL,
+ ...
+ },
+ ...
+}
+
+RequestModeRelease ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Mode description
+-- ===================================================================================
+
+ModeDescription ::=SET SIZE (1..256) OF ModeElement
+
+ModeElement ::= SEQUENCE
+{
+ type CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ ...,
+ h235Mode H235Mode
+ },
+
+ h223ModeParameters H223ModeParameters OPTIONAL,
+ ...,
+ v76ModeParameters V76ModeParameters OPTIONAL,
+ h2250ModeParameters H2250ModeParameters OPTIONAL
+
+
+}
+
+H235Mode ::=SEQUENCE
+{
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+
+ mediaMode CHOICE
+ {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ ...
+ },
+ ...
+}
+
+H223ModeParameters ::=SEQUENCE
+{
+ adaptationLayerType CHOICE
+ {
+ nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 SEQUENCE
+ {
+ controlFieldOctets INTEGER(0..2),
+ sendBufferSize INTEGER(0..16777215) -- units octets
+ },
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters
+
+ },
+
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+V76ModeParameters ::=CHOICE
+{
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+}
+
+H2250ModeParameters ::=SEQUENCE
+{
+ redundancyEncodingMode RedundancyEncodingMode OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMode ::=SEQUENCE
+{
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding CHOICE
+ {
+ nonStandard NonStandardParameter,
+ audioData AudioMode,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Video modes
+-- ===================================================================================
+
+VideoMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h261VideoMode H261VideoMode,
+ h262VideoMode H262VideoMode,
+ h263VideoMode H263VideoMode,
+ is11172VideoMode IS11172VideoMode,
+ ...
+}
+
+H261VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ qcif NULL,
+ cif NULL
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ stillImageTransmission BOOLEAN,
+ ...
+}
+
+H262VideoMode ::=SEQUENCE
+{
+ profileAndLevel CHOICE
+ {
+ profileAndLevel-SPatML NULL,
+ profileAndLevel-MPatLL NULL,
+ profileAndLevel-MPatML NULL,
+ profileAndLevel-MPatH-14 NULL,
+ profileAndLevel-MPatHL NULL,
+ profileAndLevel-SNRatLL NULL,
+ profileAndLevel-SNRatML NULL,
+ profileAndLevel-SpatialatH-14 NULL,
+ profileAndLevel-HPatML NULL,
+ profileAndLevel-HPatH-14 NULL,
+ profileAndLevel-HPatHL NULL,
+ ...
+ },
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoMode ::=SEQUENCE
+{
+ resolution CHOICE
+ {
+ sqcif NULL,
+ qcif NULL,
+ cif NULL,
+ cif4 NULL,
+ cif16 NULL,
+ ...
+ },
+ bitRate INTEGER (1..19200), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ ...,
+
+ errorCompensation BOOLEAN,
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+}
+
+IS11172VideoMode ::=SEQUENCE
+{
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER(0..15) OPTIONAL,
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Audio modes
+-- ===================================================================================
+
+AudioMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ g711Alaw64k NULL,
+ g711Alaw56k NULL,
+ g711Ulaw64k NULL,
+ g711Ulaw56k NULL,
+
+ g722-64k NULL,
+ g722-56k NULL,
+ g722-48k NULL,
+
+ g728 NULL,
+ g729 NULL,
+ g729AnnexA NULL,
+
+ g7231 CHOICE
+ {
+ noSilenceSuppressionLowRate NULL,
+ noSilenceSuppressionHighRate NULL,
+ silenceSuppressionLowRate NULL,
+ silenceSuppressionHighRate NULL
+ },
+
+ is11172AudioMode IS11172AudioMode,
+ is13818AudioMode IS13818AudioMode,
+
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCMode G7231AnnexCMode,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability
+
+}
+
+IS11172AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL
+ },
+
+ bitRate INTEGER (1..448), --units kbit/s
+ ...
+}
+
+IS13818AudioMode ::=SEQUENCE
+{
+ audioLayer CHOICE
+ {
+ audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL
+ },
+
+ audioSampling CHOICE
+ {
+ audioSampling16k NULL,
+ audioSampling22k05 NULL,
+ audioSampling24k NULL,
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL
+ },
+
+ multichannelType CHOICE
+ {
+ singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL,
+ threeChannels2-1 NULL,
+ threeChannels3-0 NULL,
+ fourChannels2-0-2-0 NULL,
+ fourChannels2-2 NULL,
+ fourChannels3-1 NULL,
+ fiveChannels3-0-2-0 NULL,
+ fiveChannels3-2 NULL
+ },
+
+ lowFrequencyEnhancement BOOLEAN,
+
+ multilingual BOOLEAN,
+
+ bitRate INTEGER (1..1130), --units kbit/s
+ ...
+}
+
+G7231AnnexCMode ::= SEQUENCE
+{
+ maxAl-sduAudioFrames INTEGER (1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode SEQUENCE
+ {
+ highRateMode0 INTEGER (27..78), -- units octets
+ highRateMode1 INTEGER (27..78), -- units octets
+ lowRateMode0 INTEGER (23..66), -- units octets
+ lowRateMode1 INTEGER (23..66), -- units octets
+ sidMode0 INTEGER (6..17), -- units octets
+ sidMode1 INTEGER (6..17), -- units octets
+ ...
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Data modes
+-- ===================================================================================
+
+DataMode ::=SEQUENCE
+{
+ application CHOICE
+ {
+ nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 DataProtocolCapability,
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid SEQUENCE
+ {
+ nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING
+ },
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability
+ },
+ bitRate INTEGER (0..4294967295), -- units 100 bit/s
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Encryption modes
+-- ===================================================================================
+
+EncryptionMode ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ h233Encryption NULL,
+ ...
+}
+
+ -- ===================================================================================
+-- Round Trip Delay definitions
+-- ===================================================================================
+
+RoundTripDelayRequest ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+RoundTripDelayResponse ::=SEQUENCE
+{
+ sequenceNumber SequenceNumber,
+ ...
+}
+
+-- ===================================================================================
+-- Maintenance Loop definitions
+-- ===================================================================================
+
+MaintenanceLoopRequest ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopAck ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopReject ::=SEQUENCE
+{
+ type CHOICE
+ {
+ systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...
+ },
+ cause CHOICE
+ {
+ canNotPerformLoop NULL,
+ ...
+ },
+ ...
+}
+
+MaintenanceLoopOffCommand ::=SEQUENCE
+{
+ ...
+}
+
+-- ===================================================================================
+-- Communication Mode definitions
+-- ===================================================================================
+
+CommunicationModeCommand ::=SEQUENCE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeRequest ::=SEQUENCE
+{
+ ...
+}
+
+CommunicationModeResponse ::=CHOICE
+{
+ communicationModeTable SET SIZE(1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeTableEntry ::=SEQUENCE
+{
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+
+ terminalLabel TerminalLabel OPTIONAL, -- if not present,
+ -- it refers to all participants
+ -- in the conference
+ sessionDescription BMPString (SIZE(1..128)) ,
+ -- Basic ISO/IEC 10646-1 (Unicode)
+ dataType CHOICE
+ {
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...
+ },
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ ...,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ sessionDependency INTEGER (1..255) OPTIONAL,
+ destination TerminalLabel OPTIONAL
+}
+
+-- ===================================================================================
+-- Conference Request definitions
+-- ===================================================================================
+
+ConferenceRequest ::=CHOICE
+{
+
+ terminalListRequest NULL, -- same as H.230 TCU (term->MC)
+
+ makeMeChair NULL, -- same as H.230 CCA (term->MC)
+ cancelMakeMeChair NULL, -- same as H.230 CIS (term->MC)
+
+ dropTerminal TerminalLabel, -- same as H.230 CCD(term->MC)
+
+ requestTerminalID TerminalLabel, -- sames as TCP (term->MC)
+
+ enterH243Password NULL, -- same as H.230 TCS1(MC->term)
+ enterH243TerminalID NULL, -- same as H.230 TCS2/TCI
+ -- (MC->term)
+ enterH243ConferenceID NULL, -- same as H.230 TCS3 (MC->term)
+ ...,
+ enterExtensionAddress NULL, -- same as H.230 TCS4 (GW->term)
+ requestChairTokenOwner NULL, -- same as H.230 TCA (term->MC)
+ requestTerminalCertificate SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certSelectionCriteria CertSelectionCriteria OPTIONAL,
+ sRandom INTEGER (1..4294967295) OPTIONAL,
+ -- this is the requester's challenge
+ ...
+ },
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ makeTerminalBroadcaster TerminalLabel, -- similar to H.230 VCB
+ sendThisSource TerminalLabel, -- similar to H.230 VCS
+ requestAllTerminalIDs NULL,
+ remoteMCRequest RemoteMCRequest
+}
+
+CertSelectionCriteria ::=SEQUENCE SIZE (1..16) OF Criteria
+
+Criteria ::=SEQUENCE
+{
+ field OBJECT IDENTIFIER, -- may include certificate type
+ value OCTET STRING (SIZE(1..65535)),
+ ...
+}
+
+TerminalLabel ::=SEQUENCE
+{
+ mcuNumber McuNumber,
+ terminalNumber TerminalNumber,
+ ...
+}
+
+McuNumber ::=INTEGER(0..192)
+TerminalNumber ::=INTEGER(0..192)
+
+-- ===================================================================================
+-- Conference Response definitions
+-- ===================================================================================
+
+ConferenceResponse ::=CHOICE
+{
+ mCTerminalIDResponse SEQUENCE -- response to TCP(same as TIP)
+ { -- sent by MC only
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+
+ terminalIDResponse SEQUENCE -- response to TCS2 or TCI
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ terminalID TerminalID,
+ ...
+ },
+
+ conferenceIDResponse SEQUENCE -- response to TCS3
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ conferenceID ConferenceID,
+ ...
+ },
+
+ passwordResponse SEQUENCE -- response to TCS1
+ { -- same as IIS
+ terminalLabel TerminalLabel, -- (term->MC)
+ password Password,
+ ...
+ },
+
+ terminalListResponse SET SIZE (1..256) OF TerminalLabel,
+
+ videoCommandReject NULL, -- same as H.230 VCR
+ terminalDropReject NULL, -- same as H.230 CIR
+
+ makeMeChairResponse CHOICE -- same as H.230 CCR
+ {
+ grantedChairToken NULL, -- same as H.230 CIT
+ deniedChairToken NULL, -- same as H.230 CCR
+ ...
+ },
+ ...,
+ extensionAddressResponse SEQUENCE -- response to TCS4
+ {
+ extensionAddress TerminalID, -- same as IIS (term->GW)
+ ...
+ },
+ chairTokenOwnerResponse SEQUENCE -- response to TCA(same as TIR) sent by MC only
+ {
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+ },
+ terminalCertificateResponse SEQUENCE
+ {
+ terminalLabel TerminalLabel OPTIONAL,
+ certificateResponse OCTET STRING (SIZE(1..65535)) OPTIONAL,
+ ...
+ },
+ broadcastMyLogicalChannelResponse CHOICE
+ {
+ grantedBroadcastMyLogicalChannel NULL,
+ deniedBroadcastMyLogicalChannel NULL,
+ ...
+ },
+ makeTerminalBroadcasterResponse CHOICE
+ {
+ grantedMakeTerminalBroadcaster NULL,
+ deniedMakeTerminalBroadcaster NULL,
+ ...
+ },
+ sendThisSourceResponse CHOICE
+ {
+ grantedSendThisSource NULL,
+ deniedSendThisSource NULL,
+ ...
+ },
+ requestAllTerminalIDsResponse RequestAllTerminalIDsResponse,
+ remoteMCResponse RemoteMCResponse
+}
+
+TerminalID ::=OCTET STRING (SIZE(1..128)) -- as per H.230
+ConferenceID ::=OCTET STRING (SIZE(1..32))
+Password ::=OCTET STRING (SIZE(1..32))
+
+RequestAllTerminalIDsResponse ::=SEQUENCE
+{
+ terminalInformation SEQUENCE OF TerminalInformation,
+ ...
+}
+
+TerminalInformation ::=SEQUENCE
+{
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+}
+
+-- ===================================================================================
+-- Remote MC Request definitions
+-- ===================================================================================
+
+ RemoteMCRequest ::=CHOICE
+ {
+ masterActivate NULL,
+ slaveActivate NULL,
+ deActivate NULL,
+ ...
+ }
+
+ RemoteMCResponse ::=CHOICE
+ {
+ accept NULL,
+ reject CHOICE
+ {
+ unspecified NULL,
+ functionNotSupported NULL,
+ ...
+ },
+ ...
+ }
+
+-- ===================================================================================
+-- Command Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Command Message : Send Terminal Capability Set
+-- ===================================================================================
+
+SendTerminalCapabilitySet ::=CHOICE
+{
+ specificRequest SEQUENCE
+ {
+ multiplexCapability BOOLEAN,
+
+ capabilityTableEntryNumbers SET SIZE (1..65535) OF CapabilityTableEntryNumber OPTIONAL,
+
+ capabilityDescriptorNumbers SET SIZE (1..256) OF CapabilityDescriptorNumber OPTIONAL,
+ ...
+ },
+ genericRequest NULL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Encryption
+-- ===================================================================================
+
+EncryptionCommand ::=CHOICE
+{
+ encryptionSE OCTET STRING, -- per H.233, but no error protection
+ encryptionIVRequest NULL, -- requests new IV
+ encryptionAlgorithmID SEQUENCE
+ {
+ h233AlgorithmIdentifier SequenceNumber,
+ associatedAlgorithm NonStandardParameter
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Flow Control
+-- ===================================================================================
+
+FlowControlCommand ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ restriction CHOICE
+ {
+ maximumBitRate INTEGER (0..16777215), -- units 100 bit/s
+ noRestriction NULL
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Change or End Session
+-- ===================================================================================
+
+EndSessionCommand ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+
+ disconnect NULL,
+
+ gstnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v8bis NULL,
+ v34DSVD NULL,
+ v34DuplexFAX NULL,
+ v34H324 NULL,
+ ...
+ },
+
+ ...,
+ isdnOptions CHOICE
+ {
+ telephonyMode NULL,
+ v140 NULL,
+ terminalOnHold NULL,
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Command Message : Conference Commands
+-- ===================================================================================
+
+ConferenceCommand ::=CHOICE
+{
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 Cancel-MCV
+
+ makeTerminalBroadcaster TerminalLabel, -- same as H.230 VCB
+ cancelMakeTerminalBroadcaster NULL, -- same as H.230 Cancel-VCB
+
+ sendThisSource TerminalLabel, -- same as H.230 VCS
+ cancelSendThisSource NULL, -- same as H.230 cancel VCS
+
+ dropConference NULL, -- same as H.230 CCK
+ ...,
+ substituteConferenceIDCommand SubstituteConferenceIDCommand
+}
+
+SubstituteConferenceIDCommand ::=SEQUENCE
+{
+ conferenceIdentifier OCTET STRING (SIZE(16)),
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Miscellaneous H.230-like commands
+-- ===================================================================================
+
+MiscellaneousCommand ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ equaliseDelay NULL, -- same as H.230 ACE
+ zeroDelay NULL, -- same as H.230 ACZ
+ multipointModeCommand NULL,
+ cancelMultipointModeCommand NULL,
+ videoFreezePicture NULL,
+ videoFastUpdatePicture NULL,
+
+ videoFastUpdateGOB SEQUENCE
+ {
+ firstGOB INTEGER (0..17),
+ numberOfGOBs INTEGER (1..18)
+ },
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- commands a trade-off value
+
+ videoSendSyncEveryGOB NULL,
+ videoSendSyncEveryGOBCancel NULL,
+
+ ...,
+ videoFastUpdateMB SEQUENCE
+ {
+ firstGOB INTEGER (0..255) OPTIONAL,
+ firstMB INTEGER (1..8192) OPTIONAL,
+ numberOfMBs INTEGER (1..8192),
+ ...
+ },
+ maxH223MUXPDUsize INTEGER(1..65535), -- units octets
+ encryptionUpdate EncryptionSync,
+ encryptionUpdateRequest EncryptionUpdateRequest,
+ switchReceiveMediaOff NULL,
+ switchReceiveMediaOn NULL,
+
+ progressiveRefinementStart SEQUENCE
+ {
+ repeatCount CHOICE
+ {
+ doOneProgression NULL,
+ doContinuousProgressions NULL,
+ doOneIndependentProgression NULL,
+ doContinuousIndependentProgressions NULL,
+ ...
+ },
+ ...
+ },
+ progressiveRefinementAbortOne NULL,
+ progressiveRefinementAbortContinuous NULL
+
+ },
+
+ ...
+}
+
+KeyProtectionMethod ::=SEQUENCE -- specify how the new key is to be protected
+{
+ secureChannel BOOLEAN,
+ sharedSecret BOOLEAN,
+ certProtectedKey BOOLEAN,
+ ...
+}
+
+EncryptionUpdateRequest ::=SEQUENCE
+{
+ keyProtectionMethod KeyProtectionMethod OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : H.223 Multiplex Reconfiguration
+-- ===================================================================================
+
+H223MultiplexReconfiguration ::=CHOICE
+{
+ h223ModeChange CHOICE
+ {
+ toLevel0 NULL,
+ toLevel1 NULL,
+ toLevel2 NULL,
+ toLevel2withOptionalHeader NULL,
+ ...
+ },
+
+ h223AnnexADoubleFlag CHOICE
+ {
+ start NULL,
+ stop NULL,
+ ...
+ },
+
+ ...
+}
+ -- ===================================================================================
+-- Indication Message definitions
+-- ===================================================================================
+
+-- ===================================================================================
+-- Indication Message : Function not understood
+-- ===================================================================================
+
+-- This is used to return a request, response or command that is not understood
+
+FunctionNotUnderstood ::=CHOICE
+{
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage
+}
+
+-- ===================================================================================
+-- Indication Message : Function not Supported
+-- ===================================================================================
+
+-- This is used to return a complete request, response or command that is not recognized
+
+FunctionNotSupported ::=SEQUENCE
+{
+ cause CHOICE
+ {
+ syntaxError NULL,
+ semanticError NULL,
+ unknownFunction NULL,
+ ...
+ },
+ returnedFunction OCTET STRING OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Conference
+-- ===================================================================================
+
+ConferenceIndication ::=CHOICE
+{
+ sbeNumber INTEGER (0..9), -- same as H.230 SBE Number
+
+ terminalNumberAssign TerminalLabel, -- same as H.230 TIA
+
+ terminalJoinedConference TerminalLabel, -- same as H.230 TIN
+
+ terminalLeftConference TerminalLabel, -- same as H.230 TID
+
+ seenByAtLeastOneOther NULL, -- same as H.230 MIV
+ cancelSeenByAtLeastOneOther NULL, -- same as H.230 cancel MIV
+
+ seenByAll NULL, -- like H.230 MIV
+ cancelSeenByAll NULL, -- like H.230 MIV
+
+ terminalYouAreSeeing TerminalLabel, -- same as H.230 VIN
+
+ requestForFloor NULL, -- same as H.230 TIF
+
+ ...,
+ withdrawChairToken NULL, -- same as H.230 CCR
+ -- MC-> chair
+ floorRequested TerminalLabel -- same as H.230 TIF
+ -- MC-> chair
+}
+
+
+-- ===================================================================================
+-- Indication Message : Miscellaneous H.230-like indication
+-- ===================================================================================
+
+MiscellaneousIndication ::=SEQUENCE
+{
+ logicalChannelNumber LogicalChannelNumber,
+ type CHOICE
+ {
+ logicalChannelActive NULL, -- same as H.230 AIA and VIA
+ logicalChannelInactive NULL, -- same as H.230 AIM and VIS
+
+ multipointConference NULL,
+ cancelMultipointConference NULL,
+
+ multipointZeroComm NULL, -- same as H.230 MIZ
+ cancelMultipointZeroComm NULL, -- same as H.230 cancel MIZ
+
+ multipointSecondaryStatus NULL, -- same as H.230 MIS
+ cancelMultipointSecondaryStatus NULL, -- same as H.230 cancel MIS
+
+ videoIndicateReadyToActivate NULL, -- same as H.230 VIR
+
+ videoTemporalSpatialTradeOff INTEGER (0..31), -- indicates current trade-off
+
+ ...,
+ videoNotDecodedMBs SEQUENCE
+ {
+ firstMB INTEGER (1..8192),
+ numberOfMBs INTEGER (1..8192),
+ temporalReference INTEGER (0..255),
+ ...
+ },
+ transportCapability TransportCapability
+ },
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Jitter Indication
+-- ===================================================================================
+
+JitterIndication ::=SEQUENCE
+{
+ scope CHOICE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER (0..65535),
+ wholeMultiplex NULL
+ },
+ estimatedReceivedJitterMantissa INTEGER (0..3),
+ estimatedReceivedJitterExponent INTEGER (0..7),
+ skippedFrameCount INTEGER (0..15) OPTIONAL,
+ additionalDecoderBuffer INTEGER (0..262143) OPTIONAL, -- 262143 is 2^18 - 1
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.223 logical channel skew
+-- ===================================================================================
+
+H223SkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ skew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.225.0 maximum logical channel skew
+-- ===================================================================================
+
+H2250MaximumSkewIndication ::=SEQUENCE
+{
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ maximumSkew INTEGER (0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : MC Location Indication
+-- ===================================================================================
+
+MCLocationIndication ::=SEQUENCE
+{
+ signalAddress TransportAddress, -- this is the H.323 Call Signalling
+ -- address of the entity which
+ -- contains the MC
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Vendor Identification
+-- ===================================================================================
+
+ VendorIdentification ::=SEQUENCE
+ {
+ vendor NonStandardIdentifier,
+ productNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per vendor
+ versionNumber OCTET STRING (SIZE(1..256)) OPTIONAL, -- per productNumber
+ ...
+ }
+
+
+-- ===================================================================================
+-- Indication Message : New ATM virtual channel indication
+-- ===================================================================================
+
+NewATMVCIndication ::=SEQUENCE
+{
+ resourceID INTEGER(0..65535),
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ aal CHOICE
+ {
+ aal1 SEQUENCE
+ {
+ clockRecovery CHOICE
+ {
+ nullClockRecovery NULL,
+ srtsClockRecovery NULL,
+ adaptiveClockRecovery NULL,
+ ...
+ },
+ errorCorrection CHOICE
+ {
+ nullErrorCorrection NULL,
+ longInterleaver NULL,
+ shortInterleaver NULL,
+ errorCorrectionOnly NULL,
+ ...
+ },
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...
+ },
+ aal5 SEQUENCE
+ {
+ forwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ backwardMaximumSDUSize INTEGER (0..65535), -- units octets
+ ...
+ },
+ ...
+ },
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...,
+ reverseParameters SEQUENCE
+ {
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ multiplex CHOICE
+ {
+ noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...
+ },
+ ...
+ }
+}
+
+-- ===================================================================================
+-- Indication Message : user input
+-- ===================================================================================
+
+UserInputIndication ::=CHOICE
+{
+ nonStandard NonStandardParameter,
+ alphanumeric GeneralString,
+ ...,
+ userInputSupportIndication CHOICE
+ {
+ nonStandard NonStandardParameter,
+ basicString NULL,
+ iA5String NULL,
+ generalString NULL,
+ ...
+ },
+ signal SEQUENCE
+ {
+ signalType IA5String (SIZE (1) ^ FROM ("0123456789#*ABCD!")),
+-- signalType IA5String (SIZE (1)) (FROM ("0123456789#*ABCD!")),
+ duration INTEGER (1..65535) OPTIONAL, -- milliseconds
+ rtp SEQUENCE
+ {
+ timestamp INTEGER (0..4294967295) OPTIONAL,
+ expirationTime INTEGER (0..4294967295) OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ },
+ signalUpdate SEQUENCE
+ {
+ duration INTEGER (1..65535), -- milliseconds
+ rtp SEQUENCE
+ {
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+ } OPTIONAL,
+ ...
+ }
+}
+
+
+END
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MissingEnd.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/MissingEnd.asn1
new file mode 100644
index 0000000000..66912ef693
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MissingEnd.asn1
@@ -0,0 +1,5 @@
+MissingEnd DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod.set.asn
new file mode 100644
index 0000000000..5dcd8706ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod.set.asn
@@ -0,0 +1,5 @@
+Mod1.asn
+Mod2.asn
+Mod3.asn
+Mod4.asn
+Mod5.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod1.asn
new file mode 100644
index 0000000000..cb29997985
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod1.asn
@@ -0,0 +1,18 @@
+Mod1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Co,Reg
+ FROM Mod5
+ Name
+ FROM Mod4;
+
+
+L ::= SEQUENCE {
+ country Co,
+ region Reg,
+ name Name
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod2.asn
new file mode 100644
index 0000000000..cc22c6f13c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod2.asn
@@ -0,0 +1,43 @@
+Mod2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Stat,Country
+ FROM Mod3
+ L
+ FROM Mod1
+ Time,LocName,ThingName,Name
+ FROM Mod4;
+
+T ::= SEQUENCE {
+ unit ENUMERATED{celsius,fahrenheit,kelvin},
+ degree INTEGER,
+ location L,
+ time Time,
+ statistics Stat
+}
+
+OtherName ::= SEQUENCE {
+ locationName LocName,
+ thingName ThingName
+}
+
+FirstName ::= CHOICE {
+ firstname PrintableString,
+ nickname PrintableString
+}
+
+FamilyName ::= SEQUENCE{
+ prefix ENUMERATED{none,von,af},
+ secondname PrintableString
+}
+
+Lang ::= SEQUENCE{
+ l PrintableString}
+
+Inhabitant ::= SEQUENCE {
+ name Name,
+ country Country}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod3.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod3.asn
new file mode 100644
index 0000000000..8069bedcf9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod3.asn
@@ -0,0 +1,33 @@
+Mod3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Name
+ FROM Mod4
+ Lang, Inhabitant,FirstName,FamilyName
+ FROM Mod2
+ TS, RFS, WS, HS
+ FROM Mod5;
+
+Stat ::= SEQUENCE {
+ tempstat TS,
+ rainfallstat RFS,
+ windstat WS,
+ humiditystat HS
+}
+
+Country ::= SEQUENCE{
+ name Name,
+ language Lang
+}
+
+RegionName ::= Name
+Inhabitants ::= SEQUENCE OF Inhabitant
+
+PersonName ::= SEQUENCE {
+ name1 FirstName,
+ name2 FamilyName
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod4.asn
new file mode 100644
index 0000000000..4a1aaff9dc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod4.asn
@@ -0,0 +1,33 @@
+Mod4 DEFINITIONS AUTOMATIC TAGS ::=
+
+
+BEGIN
+
+IMPORTS
+ PersonName
+ FROM Mod3
+ OtherName,FirstName,FamilyName
+ FROM Mod2;
+
+Time ::= SEQUENCE {
+ year OCTET STRING(SIZE(4)),
+ month OCTET STRING(SIZE(2)),
+ hour INTEGER,
+ minute INTEGER
+}
+
+Name ::= CHOICE {
+ person PersonName,
+ othername OtherName
+}
+
+
+
+LocName ::= SEQUENCE {
+ region ENUMERATED{gotaland,svealand,norrland},
+ name PrintableString
+}
+
+ThingName ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod5.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod5.asn
new file mode 100644
index 0000000000..71b483d0e0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mod5.asn
@@ -0,0 +1,37 @@
+Mod5 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Country,RegionName,Inhabitants
+ FROM Mod3;
+TS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+RFS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+WS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER
+}
+
+HS ::= SEQUENCE {
+ average INTEGER,
+ highest INTEGER,
+ lowest INTEGER
+}
+
+Co ::= Country
+
+Reg ::= SEQUENCE {
+ name RegionName,
+ inhabitants Inhabitants
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-4.asn
new file mode 100644
index 0000000000..81c07a2dab
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-4.asn
@@ -0,0 +1,675 @@
+-- module(Mvrasn-11-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- .... ....... ........ ........................................
+-- PA2 990112 eedkbu Insertion of all Data types relevant for
+-- DSD operation.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes
+;
+
+IMPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+FROM Mvrasn-14-4
+
+ SS-Code
+FROM Mvrasn-15-4
+
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info
+FROM Mvrasn-18-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+-- location registration types
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Indentity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Indentity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GSN-Address ::= OCTET STRING (SIZE (4..16))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+
+-- =========================================================
+-- EEDKBU:
+--
+-- the line:
+--
+-- "COMPONENTS OF SubscriberData,
+--
+-- has been removed due to insufficiencies of the used ASN.1-ERLANG
+-- compiler. Instead of this line the complete definition of
+-- "Subscriberdata" has been inserted.
+--
+-- This results in the same behaviour of the deocder/encoder but
+-- means only a replication of the ASN.1 definiton here.
+--
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL,
+
+-- =========================================================
+
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present
+ -- only in the first sequence if the seqmentation is used
+
+-- =========================================================
+--
+-- EEDKBU: This data type 'NetworkAccessMode' has been included manually
+-- as it was not in the ASN.1 definitions in 09.02 6.1.0.
+-- This definition has been taken from the CR xxx.
+--
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+--
+-- =========================================================
+
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ...}
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be
+ -- present in the first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+APN ::= IA5String (SIZE (1..63))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+-- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (4..16))
+-- Octets are coded according to TS GSM 09.60
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 6.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 6.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: 0 (unused)
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE
+ (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) OF
+ ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL}
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL
+ }
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 2:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- all other SS codes shall be ignored
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL
+ }
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-Criteria [3] O-BcsmCamelTDP-Criteria OPTIONAL
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ... }
+-- exception handling:
+-- For O-BcsmCamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- O-BcsmCamelTDPDatasequence.
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ ... }
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+-- The receiving entity shall not check the format of a number in
+-- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE
+-- (1..maxNumOfCamelDestinationNumberLengths) OF
+ (1..maxISDN-AddressLength) OF
+-- INTEGER(1..maxISDN-AddressLength)
+ INTEGER(1..maxNumOfSS)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueCall"
+-- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+-- value 1 = CAMEL phase 1,
+-- value 2 = CAMEL phase 2:
+-- reception of values greater than 2 shall be treated as CAMEL phase 2
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) } (SIZE (1..16))
+
+-- VBS/VGCS types
+
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-6.asn
new file mode 100644
index 0000000000..d826c1398f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-11-6.asn
@@ -0,0 +1,1776 @@
+-- module(Mvrasn-11-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Mobile Service data types".
+--
+-- ASN.1 module: "MAP-MS-DataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010201 etord First draft, based on GSM 29.002 v. 3.5.2.
+-- PA2 010813 etord Updated according to GSM 29.002 v. 3.8.0.
+-- .... ....... ........ ........................................
+
+Mvrasn-11-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ EquipmentStatus,
+ Kc,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+GeographicalInformation,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ SubscriberState,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ -- error in spec detected by our compiler SendRoutingInfoForGprsArg,
+ -- SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM Mvrasn-14-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+
+ AddressString,
+ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status
+
+FROM Mvrasn-18-6
+
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+;
+
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... }
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- if segmentation is used, numberOfRequestedVectors shall be present in
+ -- the first segment and shall not be present in subsequent segments. If received
+ -- in a subsequent segment it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the previous VLR shall not send the result
+ -- within a TC-CONTINUE message.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI must be present if SendIdentificationRes is not segmented.
+ -- If the TC-Continue segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendIdentificationRes.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3G TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS GSM 03.03
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- Refers to the Target RNC-ID in the Target ID in 3G TS 25.413, where the encoding is
+ -- defined.
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (5..10))
+ -- Octets are coded according the Channel Type information element in GSM 08.08
+
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (17..maxNumOfIntegrityInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (17..maxNumOfEncryptionInfo))
+ -- Octets are coded according to 3G TS 25.413
+
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ -- if segmentation is prohibited the HLR shall not send the result within
+ -- a TC-CONTINUE message.
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ -- if present, the HLR may send an immediate response with the available authentication
+ -- vectors (see � 8.5.2 for more information).
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- security management types
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...}
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL }
+ -- qos-Subscribed shall be discarded if ext-QoS-Subscribed is received and supported
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS GSM 03.03
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS GSM 09.60
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS GSM 09.60
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 04.08.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3G TS 24.008 Quality of Service Octets
+ -- 6-13.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3G TS 32.015.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS GSM 03.03
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS GSM 08.08
+
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in CCITT Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser is expected only for
+ -- SS-code = callunrelated or SS-code = callrelated
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList is expected only for SS-code = callunrelated
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList is expected only for SS-code = plmn operator
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+ ...}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS GSM 03.03
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ sms-csi (5),
+ m-csi (6),
+ gprs-csi(7)} (SIZE(8..32))
+-- exception handling:
+-- bits 8 to 31 shall be ignored if received
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL}
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, dp-AnalysedInfoCriteriaList and camelCapabilityHandling shall be
+-- present in the first segment
+
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... }
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths)
+OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3:
+ -- reception of values greater than 3 shall be treated as CAMEL phase 3.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1) ,
+ phase3 (2) } (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when SMS-CSI is sent to VLR/SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ... }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- SMS-CAMEL-TDP-Data sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following M-Code values are defined in CAMEL Phase 3:
+--
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- If any other MM-code is received in M-CSI, then that MM-code shall be
+-- ignored.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is
+ --- allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP�s are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= OCTET STRING (SIZE (3))
+ -- Refers to the Group Identification as specified in GSM TS 03.03
+ -- and 03.68/ 03.69
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL }
+-- currentLocation shall not be present if locationInformation
+-- is not present in the RequestedInfo parameter
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in GSM 03.32.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in GSM 03.32 is allowed to be used
+-- The internal structure according to GSM 03.32 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in CCITT Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...}
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter,
+ notificationToCSE [4] NULL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-4.asn
new file mode 100644
index 0000000000..d545a746ec
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-14-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-14-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ SS-SubscriptionOption,
+ SS-List,
+ maxNumOfSS
+;
+
+IMPORTS
+
+ SS-Code
+FROM Mvrasn-15-4
+
+;
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-6.asn
new file mode 100644
index 0000000000..3b4a827776
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-14-6.asn
@@ -0,0 +1,352 @@
+-- module(Mvrasn-14-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary Service data types".
+--
+-- ASN.1 module: "MAP-SS-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-14-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM Mvrasn-18-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ SS-Code
+FROM Mvrasn-15-6
+;
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS GSM 03.38
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS GSM 03.38.
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-4.asn
new file mode 100644
index 0000000000..fed9f38d1a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-4.asn
@@ -0,0 +1,42 @@
+-- module(Mvrasn-15-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-15-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-6.asn
new file mode 100644
index 0000000000..b9813e8481
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-15-6.asn
@@ -0,0 +1,202 @@
+-- module(Mvrasn-15-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Supplementary service codes".
+--
+-- ASN.1 module: "MAP-SS-Code".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-15-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS GSM 02.04. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callrelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call
+ -- is established from the target MS
+callunrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-17-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-17-4.asn
new file mode 100644
index 0000000000..29f3a0ff3b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-17-4.asn
@@ -0,0 +1,100 @@
+-- module(Mvrasn-17-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Error data types".
+--
+-- ASN.1 module: "MAP-ER-DataTypes".
+--
+-- =============================================================================
+
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-17-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ UnknownSubscriberParam,
+ UnidentifiedSubParam
+
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ NetworkResource
+FROM Mvrasn-18-4
+
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...}
+ -- if unknown values are received in
+ -- unknownSubscriberDiagnostic they shall be discarded
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-4.asn
new file mode 100644
index 0000000000..f14ad46c5f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-4.asn
@@ -0,0 +1,215 @@
+-- module(Mvrasn-18-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-18-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ ISDN-SubaddressString,
+-- ExternalSignalInfo,
+ LMSI,
+
+ -- data types for numbering and identification
+ IMSI,
+ NetworkResource,
+ NAEA-PreferredCI,
+
+ -- data types for subscriber management
+ Ext-BasicServiceCode,
+ EMLPP-Info
+;
+
+IMPORTS
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+
+ Ext-BearerServiceCode
+FROM Mvrasn-20-4
+
+ Ext-TeleserviceCode
+FROM Mvrasn-19-4
+
+;
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+
+-- data types for subscriber management
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-6.asn
new file mode 100644
index 0000000000..901fc0e057
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-18-6.asn
@@ -0,0 +1,515 @@
+-- module(Mvrasn-18-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Common data types".
+--
+-- ASN.1 module: "MAP-CommonDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-18-6
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM Mvrasn-19-6
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM Mvrasn-20-6
+
+ SS-Code
+FROM Mvrasn-15-6
+
+ ExtensionContainer
+FROM Mvrasn-21-4
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (CCITT Rec X.121)
+ -- 0100 telex numbering plan (CCITT Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (CCITT Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see CCITT Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- subclause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ gsm-0806 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS GSM 03.03.
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS GSM 03.03.
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+ -- octets 6 and 7 Cell Identity (CI) according to TS GSM 04.08
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between �000� and �999� may
+ -- be encoded as 3 digits using �000� to �999� or as 4 digits using
+ -- �0000� to �0999�. Carrier codes between �1000� and �9999� are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3G TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3G TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3G TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS GSM 03.03.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS GSM 04.08
+
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS GSM 03.11
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value �0� indicates that the MS is currently in contact with the
+-- network
+-- value �32767� indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-4.asn
new file mode 100644
index 0000000000..3cb60d7131
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-4.asn
@@ -0,0 +1,53 @@
+-- module(Mvrasn-19-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-19-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allShortMessageServices Ext-TeleserviceCode ::= '00100000'B
+shortMessageMT-PP Ext-TeleserviceCode ::= '00100001'B
+shortMessageMO-PP Ext-TeleserviceCode ::= '00100010'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-6.asn
new file mode 100644
index 0000000000..4a7c550deb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-19-6.asn
@@ -0,0 +1,109 @@
+-- module(Mvrasn-19-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Teleservice Codes".
+--
+-- ASN.1 module: "MAP-TS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+
+Mvrasn-19-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 02.03.
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS GSM 02.30:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-4.asn
new file mode 100644
index 0000000000..8b74c07b5a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-4.asn
@@ -0,0 +1,54 @@
+-- module(Mvrasn-20-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+Mvrasn-20-4
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-6.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-6.asn
new file mode 100644
index 0000000000..6b56cb211f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-20-6.asn
@@ -0,0 +1,147 @@
+-- module(Mvrasn-20-6).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('etord').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Bearer Service Codes".
+--
+-- ASN.1 module: "MAP-BS-Code".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 010813 etord First draft, based on GSM 29.002 v. 3.8.0.
+-- ..............................................................
+
+Mvrasn-20-6
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS GSM 02.02.
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS GSM 02.30:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-21-4.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-21-4.asn
new file mode 100644
index 0000000000..44e77a559d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-21-4.asn
@@ -0,0 +1,66 @@
+-- module(Mvrasn-21-4).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "Extension data types".
+--
+-- ASN.1 module: "MAP-ExtensionDataTypes".
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft including changes due to
+-- incompatibilities of the ASN.1-ERLANG
+-- compiler from OTP.
+-- Based on GSM 09.02 v. 6.1.0.
+-- ..............................................................
+
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- This module was changed compared to the original in the ETSI
+-- standard GSM 09.02 v. 6.1.0. The reason for this change was an
+-- incompatibility of the used ASN.1-ERLANG compiler from OTP.
+--
+-- In GSM 09.02 v. 6.1.0 the data type 'ExtensionContainer' is partly
+-- defined by the ASN.1 type 'CLASS', but the ASN.1-ERLANG compiler is
+-- not able to handle such a 'CLASS' construct correctly. Therefore, and
+-- since the content of a received 'ExtensionContainer' is not of further
+-- interest at this stage of the project, the data type 'ExtensionContainer'
+-- has been changed here.
+--
+-- The new definition of 'ExtensionContainer' is simply an ASN.1 'Extension'
+-- ('...'). This definition allows to receive any kind of information
+-- within the 'ExtensionContainer' without causing a crash of the
+-- decoder when handling the respective message.
+--
+-- =============================================================================
+
+Mvrasn-21-4
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ ExtensionContainer;
+
+ExtensionContainer ::= SEQUENCE {
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-Constants-1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-Constants-1.asn
new file mode 100644
index 0000000000..7eaacdd335
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-Constants-1.asn
@@ -0,0 +1,85 @@
+-- module(Mvrasn-Constants-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Constants".
+--
+-- ASN.1 module: "MAP-Constants"
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981015 eedkbu First draft. Based on GSM 09.02 v. 3.11.0)
+-- ..............................................................
+
+
+Mvrasn-Constants-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+maxNumberOfTeleServices,
+maxNumberOfBearerServices,
+maxNumberOfSupplServices,
+
+maxNumberOfCUG,
+maxNumberOfForwardingFeatures,
+maxNumberOfCallBarringFeatures,
+maxNumberOfHlrId,
+maxAddressLength,
+maxNumberOfSentParameters
+
+;
+
+-- value assignment
+
+maxNumberOfTeleServices INTEGER ::= 20
+maxNumberOfBearerServices INTEGER ::= 50
+maxNumberOfSupplServices INTEGER ::= 30
+
+maxNumberOfCUG INTEGER ::= 10
+maxNumberOfForwardingFeatures INTEGER ::= 13
+maxNumberOfCallBarringFeatures INTEGER ::= 13
+maxNumberOfHlrId INTEGER ::= 50
+maxAddressLength INTEGER ::= 20
+
+
+maxNumberOfSentParameters INTEGER ::= 10
+-- this named value should correspond to the maximum of
+-- the maxNumberOfCUG and the maximum number of authentication
+-- set which may be returned by a HLR plus 1.
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-DataTypes-1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-DataTypes-1.asn
new file mode 100644
index 0000000000..56b11852ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn-DataTypes-1.asn
@@ -0,0 +1,454 @@
+-- module(Mvrasn-DataTypes-1).
+-- vsn('%CCaseRev: %').
+-- date('%CCaseDate: %').
+-- author('eedkbu').
+-- =============================================================================
+
+-- =============================================================================
+--
+-- Title : "MAP Data Types".
+--
+-- ASN.1 module: "MAP-DataTypes".
+--
+-- =============================================================================
+
+-- =============================================================================
+--
+-- NOTE:
+--
+-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
+-- to indicate these modules uniquely. To have a same kind of definite naming
+-- convention, parts of the these 'Object Identifier' have been included in
+-- the file names that store the respective ASN.1 modules.
+--
+-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
+-- version '4' (PHASE 3).
+--
+-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
+-- the names for the ASN.1 files of the ASN.1 modules from
+-- this standard version are selected by the author. They are chosen the way
+-- that they are indicating the relation to those modules
+-- from GSM 09.02 v. 3.11.0.
+--
+-- =============================================================================
+
+-- ==============================================================
+-- #1. REVISION LOG
+-- ==============================================================
+-- Rev Date Name What
+-- .... ....... ....... ........................................
+-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 3.11.0.
+-- ..............................................................
+-- PA2 990114 etord Included Reset operation
+-- ..............................................................
+
+Mvrasn-DataTypes-1
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+-- imports upper boundaries for data types
+
+ maxNumberOfTeleServices,
+ maxNumberOfBearerServices,
+ maxNumberOfSupplServices,
+ maxNumberOfCUG,
+ maxNumberOfForwardingFeatures,
+ maxNumberOfCallBarringFeatures,
+ maxNumberOfHlrId,
+ maxAddressLength,
+ maxNumberOfSentParameters
+FROM Mvrasn-Constants-1
+
+;
+
+
+-- =========================================================
+--
+-- NOTE:
+--
+-- The data type "SendParameterArg" and "ResetArg" are not given in the
+-- original GSM 09.02 v. 3.11.0 standard, but have been
+-- introduced here for two reasons:
+--
+-- 1. In the OPERATION MACRO "SendParameters" is a PARAMETER (=ARGument) and
+-- a RESULT defined. The ASN.1 en/decoder is not able to handle
+-- the MACRO definition. Therefore, the new data type has been
+-- introduced
+--
+-- 2. To align the documentation of the ASN.1 data types in
+-- GSM 09.02 v. 3.11.0 with those of GSM 09.02 v. 6.1.0.
+--
+-- =========================================================
+
+SendParametersArg ::= SEQUENCE {
+ subscriberId SubscriberId,
+ requestParameters RequestParameters
+ }
+
+ResetArg ::= SEQUENCE {
+ networkResource NetworkResource,
+ originatingEntityNumber IsdnAddressString,
+ hlrId HlrList OPTIONAL
+ }
+
+
+-- common data types
+
+SentParameters ::= SEQUENCE
+ SIZE(1..maxNumberOfSentParameters)
+ OF SentParameter
+
+
+TBCD-STRING ::= OCTET STRING
+ -- digits 0 through 9, two digits per octet,
+ -- each digit encoded 0000 to 1001,
+ -- 1111 used as filler when there is an odd number of digit.
+
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- see internal description in section 6.4.1
+
+IsdnAddressString ::= AddressString (SIZE (1..10))
+
+IMSI ::= TBCD-STRING (SIZE (2..8))
+ -- MCC, MNC, MSIN concatenated in this order
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMPLICIT IMSI,
+ tmsi [1] IMPLICIT TMSI}
+
+
+-- data types for numbering and identification
+
+HlrId ::= IMSI
+ -- leading digits of IMSI
+
+HlrList ::= SEQUENCE
+ SIZE(1.. maxNumberOfHlrId)
+ OF HlrId
+
+
+-- data types for subscriber management
+
+--
+Category ::= OCTET STRING (SIZE (1))
+ -- internal structure defined in CCITT Rec Q.763
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/1
+ -- BIT 8 Transparency indicator (if applicable)
+ -- 0 transparent
+ -- 1 non transparent
+
+ -- BIT 7654 Bearer service group
+ -- 0001 3.1 kHz ex PLMN
+ -- 0010 Circuit data asynchronous
+ -- 0011 Circuit data synchronous
+ -- 0100 PAD access c.d.a
+ -- 0101 Packet data synchrounous
+ -- 0110 Alternate speech/c.d.a
+ -- 0111 Alternate speech c.d.s
+ -- 1000 Speech followed by data c.d.a
+ -- 1001 Speech followed by data c.d.s
+ -- 1111 12.6 kb/s unrestricted digital
+
+ -- BIT 321 Rate (when applicable)
+ -- 000 Any
+ -- 001 300-300 b/s
+ -- 010 1200-1200 b/s
+ -- 011 1200-75 b/s
+ -- 100 2400-2400 b/s
+ -- 101 4800-4800 b/s
+ -- 110 9600-9600 b/s
+
+
+ -- Bits 321 = 000 can be used to refer to all
+ -- the bearer services of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- bearer services.
+ -- For the codes referring to a group or all bearer services
+ -- the Transparency Indicator is not applicable and has to be set to "0"
+
+
+BearerServiceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfBearerServices)
+ OF BearerServiceCode
+
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- Internal structure according to table 6.4/2
+ -- Bit 8-5 encode the teleservice group
+
+ -- Bit 4-1 = 0000 can be used to refer to all the
+ -- teleservices of the corresponding group.
+ -- Value "00000000" can be used to refer to all the defined
+ -- teleservices
+
+TeleserviceList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfTeleServices)
+ OF TeleserviceCode
+
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] IMPLICIT BearerServiceCode,
+ teleservice [3] IMPLICIT TeleserviceCode}
+
+--
+SubscriberStatus ::= ENUMERATED{
+ serviceGranted (0),
+ operatorOGCallBarring (1)}
+
+ -- Data types for supplementary services
+
+SS-Code ::= OCTET STRING (SIZE(1))
+ -- Internal structure according to
+ -- table 6.4/3
+ -- Bit 8-5
+ -- 0001 Number Identification services
+ -- 0010 Forwarding services
+ -- 0011 Call offering services
+ -- 0100 Call completion services
+ -- 0101 Multi-party services
+ -- 0110 Community of interest services
+ -- 0111 Charging services
+ -- 1000 Additional information transfer services
+ -- 1001 Call restriction services
+ -- Bit 4-1 = 0000 can be use to refer to
+ -- a group of supplementary services
+ -- eg, "00100000" can be used to refer to all
+ -- forwarding services
+ -- "00101000" can be used to refer to all
+ -- conditional forwarding services
+ -- "00000000" can be used to refer to all
+ -- supplementary services
+
+SS-Status ::= OCTET STRING (SIZE (1))
+ -- Bit 8-4 Unused
+ -- Bit 3 Provision indicator
+ -- 0 : Not provisioned
+ -- 1 : Provisioned
+ -- Bit 2 Registration indicator (if applicable)
+ -- 0 : Not Registered
+ -- 1 : Registered
+ -- Bit 1 Activation indicator (If applicable)
+ -- 0 : Not Active
+ -- 1 : Active
+
+SS-Information ::= CHOICE{
+ forwardingInfo [0] IMPLICIT ForwardingInfo,
+ callBarringInfo [1] IMPLICIT CallBarringInfo,
+ cug-Information [2] IMPLICIT CUG-Information,
+ ss-Data [3] IMPLICIT SS-Data}
+
+SS-InfoList ::= SEQUENCE
+ SIZE(1 .. maxNumberOfSupplServices)
+ OF SS-Information
+
+
+--
+SS-Data ::= SEQUENCE{
+ ss-Code SS-Code,
+ ss-Status [4] IMPLICIT SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL}
+
+SS-SubscriptionOption ::= CHOICE{
+ perCallBasis [5] IMPLICIT BOOLEAN,
+ notificationToHeldRetrievedParty [6] IMPLICIT BOOLEAN,
+ userToUserServiceIndicator [7] IMPLICIT UserToUserServiceIndicator,
+ maximumConfereesNumber [8] IMPLICIT MaximumConfereesNumber,
+ huntGroupAccessSelectionOrder [9] IMPLICIT HuntGroupAccessSelectionOrder}
+
+
+
+ForwardingOptions ::= OCTET STRING (SIZE(1))
+ -- Bit 8-7 Notification to forwarding party
+ -- 00 No notification
+ -- 01 notification with calling number identity
+ -- 10 notification without calling number identity
+ -- Bit 6-5 Notification to calling party
+ -- 00 No notification
+ -- 01 Notification with forwarded-to number
+ -- 10 Notification without forwarded-to number
+
+
+UserToUserServiceIndicator ::= OCTET STRING (SIZE(1))
+ -- Bit 8 : service 1
+ -- Bit 7 : service 2
+ -- Bit 6 : service 3
+ -- Bit 5-1 : Reserved
+ -- Bit 8 to 6 coded "1" if the service
+ -- is available to the subscriber
+
+
+MaximumConfereesNumber ::= INTEGER (1..10)
+
+
+
+HuntGroupAccessSelectionOrder ::= ENUMERATED{
+ random (0),
+ sequential (1)}
+
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+
+CUG-Facilities ::= OCTET STRING (SIZE (1))
+ -- Bit 8-3 000000 (Unused)
+ -- Bit 2-1
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Index ::= OCTET STRING (SIZE (1))
+ -- Internal structure defined in Rec CCITT Q.763
+
+CUG-Options ::= OCTET STRING (SIZE (1))
+ -- BIT 8-4 00000 (Unused)
+ -- BIT 3 preferential CUG indicator
+ -- 0 no preferential
+ -- 1 preferential CUG
+ -- BIT 2 barring of incoming calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+ -- BIT 1 barring of outgoing calls within the CUG
+ -- 0 no barring
+ -- 1 barring
+
+CUG-Feature ::= SEQUENCE {
+ cug-interlock CUG-Interlock,
+ cug-Index CUG-Index,
+ cug-Options CUG-Options,
+ ss-Status SS-Status}
+
+
+CUG-FeatureList ::= SEQUENCE SIZE (
+ 1..maxNumberOfCUG) OF CUG-Feature
+
+
+-- =========================================================
+--
+-- EEDKBU:
+--
+-- The original CUG-Information data type has been:
+--
+-- ------------------
+--
+-- CUG-Information ::= SEQUENCE{
+-- cug-Facilities CUG-Facilities,
+-- CHOICE{
+-- cug-Feature [0] IMPLICIT CUG-Feature,
+-- cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+--
+-- ------------------
+--
+-- This is incorrect ASN.1 notation! The CHOICE has also to be a named
+-- type. Therefore, the definition was changed and can be seen below:
+--
+-- =========================================================
+
+
+CUG-Information ::= SEQUENCE{
+ cug-Facilities CUG-Facilities,
+ cug-FeatureChoice CHOICE{
+ cug-Feature [0] IMPLICIT CUG-Feature,
+ cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
+ -- the first alternative of the choice should be used
+ -- for the preferred CUG.
+
+--
+ForwardingInfo ::= SEQUENCE{
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList}
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status,
+ forwardedToNumber [5] IMPLICIT IsdnAddressString OPTIONAL,
+ forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] IMPLICIT NoReplyConditionTime OPTIONAL}
+
+ForwardingFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfForwardingFeatures)
+ OF ForwardingFeature
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList CallBarringFeatureList}
+
+CallBarringFeature ::= SEQUENCE{
+ basicServiceCode BasicServiceCode OPTIONAL,
+ ss-Status [4] IMPLICIT SS-Status }
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfCallBarringFeatures)
+OF CallBarringFeature
+
+SubscriberData ::= SEQUENCE{
+ msIsdn [1] IMPLICIT IsdnAddressString OPTIONAL,
+ category [2] IMPLICIT Category OPTIONAL,
+ subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
+ bearerServiceList [4] IMPLICIT BearerServiceList OPTIONAL,
+ teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL,
+ provisonedSupplServices [7] IMPLICIT SS-InfoList OPTIONAL}
+
+-- Data types for security procedures
+
+AuthenticationSet ::= SEQUENCE {
+ rand Rand,
+ sres Sres,
+ kc Kc}
+
+
+Rand ::= OCTET STRING (SIZE (16))
+
+Sres ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+Ki ::= OCTET STRING (SIZE (16))
+
+
+-- Data types for fault recovery, call tracing
+
+NetworkResource ::= ENUMERATED {
+ pLMN (0),
+ hLR (1),
+ vLR (2),
+ previous-VLR (3),
+ controlling-MSC (4),
+ vMSC (5),
+ eIR (6),
+ radioSubSystem (7)}
+
+
+-- other data types
+
+RequestParameter ::= ENUMERATED{
+ request-IMSI (0),
+ request-AuthenticationSet (1),
+ request-SubscriberData (2),
+ request-CUG-Information (3),
+ request-Ki (4)}
+
+RequestParameters ::= SEQUENCE SIZE (1..2) OF RequestParameter
+
+SentParameter ::= CHOICE{
+ imsi [0] IMPLICIT IMSI,
+ authenticationSet [1] IMPLICIT AuthenticationSet,
+ subscriberData [2] IMPLICIT SubscriberData,
+ cug-information [3] IMPLICIT CUG-Information,
+ ki [4] IMPLICIT Ki}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn.set.asn
new file mode 100644
index 0000000000..8a61da0160
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-11-6.asn
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn4.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn4.set.asn
new file mode 100644
index 0000000000..76e8147d12
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn4.set.asn
@@ -0,0 +1,10 @@
+Mvrasn-Constants-1.asn
+Mvrasn-DataTypes-1.asn
+Mvrasn-21-4.asn
+Mvrasn-20-4.asn
+Mvrasn-19-4.asn
+Mvrasn-18-4.asn
+Mvrasn-17-4.asn
+Mvrasn-15-4.asn
+Mvrasn-14-4.asn
+Mvrasn-11-4.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn6.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn6.set.asn
new file mode 100644
index 0000000000..2a3f54ca9a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Mvrasn6.set.asn
@@ -0,0 +1,7 @@
+Mvrasn-21-4.asn
+Mvrasn-20-6.asn
+Mvrasn-19-6.asn
+Mvrasn-15-6.asn
+Mvrasn-18-6.asn
+Mvrasn-14-6.asn
+Mvrasn-11-6.asn
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/MyMerge.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/MyMerge.set.asn
new file mode 100644
index 0000000000..32c562b43f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/MyMerge.set.asn
@@ -0,0 +1,2 @@
+MySO
+IMP
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/NoImport.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/NoImport.asn
new file mode 100644
index 0000000000..2ab09d91fd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/NoImport.asn
@@ -0,0 +1,14 @@
+NoImport DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Typ
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a Typ,
+ b INTEGER}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Nortel.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Nortel.asn
new file mode 100755
index 0000000000..a27c78a0b5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Nortel.asn
@@ -0,0 +1,592 @@
+Nortel DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS Nortel;
+
+--IMPORTS
+
+-- IMSI, IMEI
+-- FROM MAP-commonDataTypes { iso (1) identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version2 (2) };
+
+--
+-- Note that the syntax of AE-title to be used is from
+-- CCITT Rec. X.227 / ISO 8650 corrigendum and not "ANY"
+--
+------------------------------------------------------------------------------
+--
+-- CALL AND EVENT RECORDS
+--
+------------------------------------------------------------------------------
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS GSM 04.08
+--
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+MessageReference ::= OCTET STRING
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+CalledNumber ::= BCDDirectoryNumber
+
+DMI-EXTENSION ::= DMI-TYPE-IDENTIFIER
+
+DMI-TYPE-IDENTIFIER ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+} WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+
+-- ManagementExtension ::= OCTET STRING
+
+ ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+ }
+
+ManagementExtensionSet DMI-EXTENSION ::= {...}
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1)
+ }
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+BCDDirectoryNumber ::= OCTET STRING
+ -- This type contains the binary coded decimal representation of
+ -- a directory number e.g. calling/called/connected/translated number.
+ -- The encoding of the octet string is in accordance with the
+ -- the elements "Calling party BCD number", "Called party BCD number"
+ -- and "Connected number" defined in TS GSM 04.08.
+ -- This encoding includes type of number and number plan information
+ -- together with a BCD encoded digit string.
+ -- It may also contain both a presentation and screening indicator
+ -- (octet 3a).
+ -- For the avoidance of doubt, this field does not include
+ -- octets 1 and 2, the element name and length, as this would be
+ -- redundant.
+
+
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS GSM 04.08
+ gsm0902MapErrorValue [1] INTEGER,
+ -- Note: The value to be stored here corresponds to
+ -- the local values defined in the MAP-Errors and
+ -- MAP-DialogueInformation modules, for full details
+ -- see TS GSM 09.02.
+ ccittQ767Cause [2] INTEGER,
+ -- See CCITT Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension
+ -- To be defined by manufacturer
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS GSM 04.08
+ --
+
+CallEventRecord ::= CHOICE
+{
+-- Record values 0..16 are 3G curcuit switch specifick
+--
+-- sgsnPDPRecord [20] SGSNPDPRecord,
+ ggsnPDPRecord [21] GGSNPDPRecord
+-- sgsnMMRecord [22] SGSNMMRecord,
+-- sgsnSMORecord [23] SGSNSMORecord,
+-- sgsnSMTRecord [24] SGSNSMTRecord
+}
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration in seconds.
+ -- For successful calls this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+
+TimeStamp ::= OCTET STRING (SIZE(9))
+ --
+ -- The contents of this field are a compact form of the UTCTime format
+ -- containing local time plus an offset to universal time. Binary coded
+ -- decimal encoding is employed for the digits to reduce the storage and
+ -- transmission overhead
+ -- e.g. YYMMDDhhmmssShhmm
+ -- where
+ -- YY = Year 00 to 99 BCD encoded
+ -- MM = Month 01 to 12 BCD encoded
+ -- DD = Day 01 to 31 BCD encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ -- ss = second 00 to 59 BCD encoded
+ -- S = Sign 0 = "+", "-" ASCII encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ --
+
+MSISDN ::= ISDN-AddressString
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+GGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI,
+ pdpType [8] PDPType,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics OPTIONAL
+}
+
+-- sgsnPLMNIdentifier [27] PLMN-Id
+
+
+
+
+------------------------------------------------------------------------------
+--
+-- OBJECT IDENTIFIERS
+--
+------------------------------------------------------------------------------
+
+gsm1205InformationModel OBJECT IDENTIFIER ::=
+ { ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Operation-Maintenance (3) gsm-12-05 (5) informationModel (0) }
+
+gsm1205ASN1Module OBJECT IDENTIFIER ::=
+ { gsm1205InformationModel asn1Module(2) }
+
+------------------------------------------------------------------------------
+--
+-- COMMON DATA TYPES
+--
+------------------------------------------------------------------------------
+
+AccessPointNameNI ::= IA5String (SIZE(1..63))
+ --
+ -- Network Identifier part of APN in "dot" representation
+ -- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
+ -- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR.
+
+AccessPointNameOI ::= IA5String (SIZE(1..37))
+ --
+ -- Operator Identifier part of APN in "dot" representation
+ -- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
+ -- and is presented in this form in the CDR.
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- in GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- cause codes 0 to 15 are defined in TS 32.005 as 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2)
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- used in PDP context record only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp
+}
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Descriptions for the bits of the flag set:
+ --
+ -- Bit 1: H (Hot billing) := '00000001'B
+ -- Bit 2: F (Flat rate) := '00000010'B
+ -- Bit 3: P (Prepaid service) := '00000100'B
+ -- Bit 4: N (Normal billing) := '00001000'B
+ -- Bit 5: - (Reserved, set to 0) := '00010000'B
+ -- Bit 6: - (Reserved, set to 0) := '00100000'B
+ -- Bit 7: - (Reserved, set to 0) := '01000000'B
+ -- Bit 8: - (Reserved, set to 0) := '10000000'B
+ --
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+ETSIAddress ::= AddressString
+ --
+ --first octet for nature of address, and numbering plan indicator (3 for X.121)
+ --other octets TBCD
+ -- See TS 29.002
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formated data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078
+ --
+
+GSNAddress ::= IPAddress
+
+GSMQoSInformation ::=SEQUENCE
+{
+ reliability [0] QoSReliability,
+ delay [1] QoSDelay,
+ precedence [2] QoSPrecedence,
+ peakThroughput [3] QoSPeakThroughput,
+ meanThroughput [4] QoSMeanThroughput
+}
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] OCTET STRING (SIZE(4)),
+ iPBinV6Address [1] OCTET STRING (SIZE(16))
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LocalSequenceNumber ::= INTEGER (0..4294967295)
+ --
+ -- Sequence number of the record in this node
+ -- 0.. 4294967295 is equivalent to 0..2**32-1, unsigned integer in four octets
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ eTSIAddress [1] ETSIAddress
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ --OCTET 1: PDP Type Organization
+ --OCTET 2: PDP Type Number
+ -- See TS 29.060
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060
+ -- as follows:
+ -- OCTET 1 of PLMN-Id = OCTET 2 of RAI
+ -- OCTET 2 of PLMN-Id = OCTET 3 of RAI
+ -- OCTET 3 of PLMN-Id = OCTET 4 of RAI
+
+
+QoSDelay ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ delayClass1 (1),
+ delayClass2 (2),
+ delayClass3 (3),
+ delayClass4 (4)
+}
+
+QoSInformation ::= CHOICE
+{
+ gsmQosInformation [0] GSMQoSInformation,
+ umtsQosInformation [1] OCTET STRING (SIZE (4..12))
+}
+-- When dealing with a pre R99 QoS profile the GSN may either choose the "GSMQoSInformation" or the
+-- "umtsQoSInformation" encoding. Dealing with R99 QoS profiles the GSN shall apply the
+-- "umtsQoSInformation" encoding. The umtsQosInformation octet string is a 1:1 copy of the contents
+-- (starting with octet 4) of the "Quality of service Profile" information element specified in
+-- 3GPP TS 29.060 [22] for R99 and GSM TS 09.60 for pre R99 cases.
+--}
+
+QoSMeanThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ subscribedMeanThroughput (0), -- MS to network direction
+ -- Network to MS direction needs not to be covered since value (0) = "reserved"
+ mean100octetPh (1),
+ mean200octetPh (2),
+ mean500octetPh (3),
+ mean1000octetPh (4),
+ mean2000octetPh (5),
+ mean5000octetPh (6),
+ mean10000octetPh (7),
+ mean20000octetPh (8),
+ mean50000octetPh (9),
+ mean100000octetPh (10),
+ mean200000octetPh (11),
+ mean500000octetPh (12),
+ mean1000000octetPh (13),
+ mean2000000octetPh (14),
+ mean5000000octetPh (15),
+ mean10000000octetPh (16),
+ mean20000000octetPh (17),
+ mean50000000octetPh (18),
+ reserved (30),
+ bestEffort (31)
+}
+
+QoSPeakThroughput ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ upTo1000octetPs (1),
+ upTo2000octetPs (2),
+ upTo4000octetPs (3),
+ upTo8000octetPs (4),
+ upTo16000octetPs (5),
+ upTo32000octetPs (6),
+ upTo64000octetPs (7),
+ upTo128000octetPs (8),
+ upTo256000octetPs (9)
+}
+
+QoSPrecedence ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecified (0),
+ highPriority (1),
+ normalPriority (2),
+ lowPriority (3)
+}
+
+QoSReliability ::= ENUMERATED
+{
+ --
+ -- See Quality of service TS 24.008
+ --
+ unspecifiedReliability (0),
+ acknowledgedGTP (1),
+ unackGTPAcknowLLC (2),
+ unackGTPLLCAcknowRLC (3),
+ unackGTPLLCRLC (4),
+ unacknowUnprotectedData (5)
+}
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008
+ --
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002
+ --
+
+NumberOfDPEncountered ::= INTEGER
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+SystemType ::= ENUMERATED
+{
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+CallEventRecordType ::= INTEGER
+{
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15),
+ mtTraceRecord (16),
+ termCAMELRecord (17),
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22)
+
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Null.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Null.py
new file mode 100644
index 0000000000..23e5f38140
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Null.py
@@ -0,0 +1,22 @@
+Null DEFINITIONS ::=
+BEGIN
+
+-- F.2.9 Null
+-- Use a null type to indicate the effective absence of a component
+-- of a sequence.
+-- EXAMPLE
+
+PatientIdentifier ::= SEQUENCE {
+ name VisibleString,
+ roomNumber CHOICE {
+ room INTEGER,
+ outPatient NULL -- if an out-patient --
+ }
+}
+
+lastPatient PatientIdentifier ::= {
+ name "Jane Doe",
+ roomNumber outPatient : NULL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
new file mode 100644
index 0000000000..35a54aaac5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/OLD-MEDIA-GATEWAY-CONTROL.asn
@@ -0,0 +1,950 @@
+-- This ASN.1 spec has been extracted from the Megaco/H.248 spec
+-- http://www.ietf.org/internet-drafts/draft-ietf-megaco-merged-01.txt
+--
+-- o Removed stuff named nonStandard
+-- o Major enhancements of the indentation has been performed.
+--
+-- Hakan Mattsson <[email protected]>
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- ANNEX A: BINARY ENCODING OF THE PROTOCOL (NORMATIVE)
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This Annex specifies the syntax of messages using the notation
+-- defined in ASN.1 [ITU-T Recommendation X.680 (1997): Information
+-- Technology - Abstract Syntax Notation One (ASN.1) - Specification of
+-- basic notation.]. Messages shall be encoded for transmission by
+-- applying the basic encoding rules specified in [ITU-T Recommendation
+-- X.690(1994) Information Technology - ASN.1 Encoding Rules:
+-- Specification of Basic Encoding Rules (BER)].
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.1 Coding of wildcards
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- The use of wildcards ALL and CHOOSE is allowed in the protocol.
+-- This allows a MGC to partially specify Termination IDs and let the
+-- MG choose from the values that conform to the partial specification.
+-- Termination IDs may encode a hierarchy of names. This hierarchy is
+-- provisioned. For instance, a TerminationID may consist of a trunk
+-- group, a trunk within the group and a circuit. Wildcarding must be
+-- possible at all levels. The following paragraphs explain how this
+-- is achieved.
+--
+-- The ASN.1 description uses octet strings of up to 8 octets in length
+-- for Termination IDs. This means that Termination IDs consist of at
+-- most 64 bits. A fully specified Termination ID may be preceded by a
+-- sequence of wildcarding fields. A wildcarding field is one octet in
+-- length. Bit 7 (the most significant bit) of this octet specifies
+-- what type of wildcarding is invoked: if the bit value equals 1,
+-- then the ALL wildcard is used; if the bit value if 0, then the
+-- CHOOSE wildcard is used. Bit 6 of the wildcarding field specifies
+-- whether the wildcarding pertains to one level in the hierarchical
+-- naming scheme (bit value 0) or to the level of the hierarchy
+-- specified in the wildcarding field plus all lower levels (bit value
+-- 1). Bits 0 through 5 of the wildcarding field specify the bit
+-- position in the Termination ID at which the starts.
+--
+-- We illustrate this scheme with some examples. In these examples,
+-- the most significant bit in a string of bits appears on the left
+-- hand side.
+--
+-- Assume that Termination IDs are three octets long and that each
+-- octet represents a level in a hierarchical naming scheme. A valid
+-- Termination ID is
+-- 00000001 00011110 01010101.
+--
+-- Addressing ALL names with prefix 00000001 00011110 is done as
+-- follows:
+-- wildcarding field: 10000111
+-- Termination ID: 00000001 00011110 xxxxxxxx.
+--
+-- The values of the bits labeled "x" is irrelevant and shall be
+-- ignored by the receiver.
+--
+-- Indicating to the receiver that is must choose a name with 00011110
+-- as the second octet is done as follows:
+-- wildcarding fields: 00010111 followed by 00000111
+-- Termination ID: xxxxxxxx 00011110 xxxxxxxx.
+--
+-- The first wildcard field indicates a CHOOSE wildcard for the level
+-- in the naming hierarchy starting at bit 23, the highest level in our
+-- assumed naming scheme. The second wildcard field indicates a CHOOSE
+-- wildcard for the level in the naming hierarchy starting at bit 7,
+-- the lowest level in our assumed naming scheme.
+--
+-- Finally, a CHOOSE-wildcarded name with the highest level of the name
+-- equal to 00000001 is specified as follows:
+-- wildcard field: 01001111
+-- Termination ID: 0000001 xxxxxxxx xxxxxxxx .
+--
+-- Bit value 1 at bit position 6 of the first octet of the wildcard
+-- field indicates that the wildcarding pertains to the specified level
+-- in the naming hierarchy and all lower levels.
+--
+-- Context IDs may also be wildcarded. In the case of Context IDs,
+-- however, specifying partial names is not allowed. Context ID 0x0
+-- SHALL be used to indicate the NULL Context, Context ID 0xFFFFFFFE
+-- SHALL be used to indicate a CHOOSE wildcard, and Context ID
+-- 0xFFFFFFFF SHALL be used to indicate an ALL wildcard.
+--
+-- TerminationID 0xFFFFFFFFFFFFFFFF SHALL be used to indicate the ROOT
+-- Termination.
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- Digit maps and path names
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- From a syntactic viewpoint, digit maps are strings with syntactic
+-- restrictions imposed upon them. The syntax of valid digit maps is
+-- specified in ABNF [RFC 2234]. The syntax for digit maps presented
+-- in this section is for illustrative purposes only. The definition of
+-- digitMap in Annex B takes precedence in the case of differences
+-- between the two.
+--
+-- digitMap = (digitString / LWSP "(" LWSP digitStringList LWSP ")"
+-- LWSP)
+-- digitStringList = digitString *( LWSP "/" LWSP digitString )
+-- digitString = 1*(digitStringElement)
+-- digitStringElement = digitPosition [DOT]
+-- digitPosition = digitMapLetter / digitMapRange
+-- digitMapRange = ("x" / LWSP "[" LWSP digitLetter LWSP "]" LWSP)
+-- digitLetter = *((DIGIT "-" DIGIT) /digitMapLetter)
+-- digitMapLetter = DIGIT ;digits 0-9
+-- / %x41-4B / %x61-6B ;a-k and A-K
+-- / "L" / "S" ;Inter-event timers
+-- ;(long, short)
+-- / "Z" ;Long duration event
+-- DOT = %x2E ; "."
+-- LWSP = *(WSP / COMMENT / EOL)
+-- WSP = SP / HTAB
+-- COMMENT = ";" *(SafeChar / RestChar / WSP) EOL
+-- EOL = (CR [LF]) / LF
+-- SP = %x20
+-- HTAB = %x09
+-- CR = %x0D
+-- LF = %x0A
+-- SafeChar = DIGIT / ALPHA / "+" / "-" / "&" / "!" / "_" / "/" /
+-- "'" / "?" / "@" / "^" / "`" / "~" / "*" / "$" / "\" /
+-- "(" / ")" / "%" / "."
+-- RestChar = ";" / "[" / "]" / "{" / "}" / ":" / "," / "#" /
+-- "<" / ">" / "=" / %x22
+-- DIGIT = %x30-39 ; digits 0 through 9
+-- ALPHA = %x41-5A / %x61-7A ; A-Z, a-z
+-- A path name is also a string with syntactic restrictions imposed
+-- upon it. The ABNF production defining it is copied from Annex B.
+--
+-- PathName = NAME *(["/"] ["*"] ["@"] (ALPHA / DIGIT)) ["*"]
+-- NAME = ALPHA *63(ALPHA / DIGIT / "_" )
+--
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+-- A.2 ASN.1 syntax specification
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+--
+-- This section contains the ASN.1 specification of the H.248 protocol
+-- syntax.
+--
+-- NOTE - In case a transport mechanism is used that employs
+-- application level framing, the definition of Transaction below
+-- changes. Refer to the annex defining the transport mechanism for
+-- the definition that applies in that case.
+--
+-- NOTE - The ASN.1 specification below contains a clause defining
+-- TerminationIDList as a sequence of TerminationIDs. The length of
+-- this sequence SHALL be one, except possibly when used in
+-- contextAuditResult.
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+OLD-MEDIA-GATEWAY-CONTROL DEFINITIONS AUTOMATIC TAGS::=
+BEGIN
+
+MegacoMessage ::= SEQUENCE
+{
+ authHeader AuthenticationHeader OPTIONAL,
+ mess Message
+}
+
+AuthenticationHeader ::= SEQUENCE
+{
+ secParmIndex SecurityParmIndex,
+ seqNum SequenceNum,
+ ad AuthData
+}
+
+SecurityParmIndex ::= OCTET STRING(SIZE(4))
+
+SequenceNum ::= OCTET STRING(SIZE(4))
+
+AuthData ::= OCTET STRING (SIZE (12..32))
+
+Message ::= SEQUENCE
+{
+ version INTEGER(0..99),
+ -- The version of the protocol defined here is equal to 1.
+ mId MId, -- Name/address of message originator
+ messageBody CHOICE
+ {
+ messageError ErrorDescriptor,
+ transactions SEQUENCE OF Transaction
+ },
+ ...
+}
+
+MId ::= CHOICE
+{
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ -- Addressing structure of mtpAddress:
+ -- 15 0
+ -- | PC | NI |
+ -- 14 bits 2 bits
+ ...
+}
+
+DomainName ::= SEQUENCE
+{
+ name IA5String,
+ -- The name starts with an alphanumeric digit followed by a
+ -- sequence of alphanumeric digits, hyphens and dots. No two
+ -- dots shall occur consecutively.
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP4Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(4)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+IP6Address ::= SEQUENCE
+{
+ address OCTET STRING (SIZE(16)),
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+PathName ::= IA5String(SIZE (1..64))
+-- See section A.3
+
+Transaction ::= CHOICE
+{
+ transactionRequest TransactionRequest,
+ transactionPending TransactionPending,
+ transactionReply TransactionReply,
+ transactionResponseAck TransactionResponseAck,
+ -- use of response acks is dependent on underlying transport
+ ...
+}
+
+TransactionId ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+TransactionRequest ::= SEQUENCE
+{
+ transactionId TransactionId,
+ actions SEQUENCE OF ActionRequest,
+ ...
+}
+
+TransactionPending ::= SEQUENCE
+{
+ transactionId TransactionId,
+ ...
+}
+
+TransactionReply ::= SEQUENCE
+{
+ transactionId TransactionId,
+ immAckRequired NULL OPTIONAL,
+ transactionResult CHOICE
+ {
+ transactionError ErrorDescriptor,
+ actionReplies SEQUENCE OF ActionReply
+ },
+ ...
+}
+
+TransactionResponseAck ::= SEQUENCE
+{
+ firstAck TransactionId,
+ lastAck TransactionId OPTIONAL
+}
+
+ErrorDescriptor ::= SEQUENCE
+{
+ errorCode ErrorCode,
+ errorText ErrorText OPTIONAL
+}
+
+ErrorCode ::= INTEGER(0..65535)
+-- See section 13 for IANA considerations w.r.t. error codes
+
+ErrorText ::= IA5String
+
+ContextID ::= INTEGER(0..4294967295)
+
+-- Context NULL Value: 0
+-- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
+-- Context ALL Value: 4294967295 (0xFFFFFFFF)
+
+
+ActionRequest ::= SEQUENCE
+{
+ contextId ContextID,
+ contextRequest ContextRequest OPTIONAL,
+ contextAttrAuditReq ContextAttrAuditRequest OPTIONAL,
+ commandRequests SEQUENCE OF CommandRequest
+}
+
+ActionReply ::= SEQUENCE
+{
+ contextId ContextID,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ contextReply ContextRequest OPTIONAL,
+ commandReply SEQUENCE OF CommandReply
+}
+
+ContextRequest ::= SEQUENCE
+{
+ priority INTEGER(0..15) OPTIONAL,
+ emergency BOOLEAN OPTIONAL,
+ topologyReq SEQUENCE OF TopologyRequest OPTIONAL,
+ ...
+}
+
+ContextAttrAuditRequest ::= SEQUENCE
+{
+ topology NULL OPTIONAL,
+ emergency NULL OPTIONAL,
+ priority NULL OPTIONAL,
+ ...
+}
+
+CommandRequest ::= SEQUENCE
+{
+ command Command,
+ optional NULL OPTIONAL,
+ wildcardReturn NULL OPTIONAL,
+ ...
+}
+
+Command ::= CHOICE
+{
+ addReq AmmRequest,
+ moveReq AmmRequest,
+ modReq AmmRequest,
+ -- Add, Move, Modify requests have the same parameters
+ subtractReq SubtractRequest,
+ auditCapRequest AuditRequest,
+ auditValueRequest AuditRequest,
+ notifyReq NotifyRequest,
+ serviceChangeReq ServiceChangeRequest,
+ ...
+}
+
+CommandReply ::= CHOICE
+{
+ addReply AmmsReply,
+ moveReply AmmsReply,
+ modReply AmmsReply,
+ subtractReply AmmsReply,
+ -- Add, Move, Modify, Subtract replies have the same parameters
+ auditCapReply AuditReply,
+ auditValueReply AuditReply,
+ notifyReply NotifyReply,
+ serviceChangeReply ServiceChangeReply,
+ ...
+}
+
+TopologyRequest ::= SEQUENCE
+{
+ terminationFrom TerminationID,
+ terminationTo TerminationID,
+ topologyDirection ENUMERATED
+ {
+ bothway(0),
+ isolate(1),
+ oneway(2)
+ }
+}
+
+AmmRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ descriptors SEQUENCE OF AmmDescriptor,
+ -- At most one descriptor of each type (see AmmDescriptor)
+ -- allowed in the sequence.
+ ...
+}
+
+AmmDescriptor ::= CHOICE
+{
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ auditDescriptor AuditDescriptor,
+...
+}
+
+AmmsReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ terminationAudit TerminationAudit OPTIONAL,
+ ...
+}
+
+SubtractRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ auditDescriptor AuditDescriptor OPTIONAL,
+ ...
+}
+
+AuditRequest ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditDescriptor AuditDescriptor,
+ ...
+}
+
+AuditReply ::= SEQUENCE
+{
+ terminationID TerminationID,
+ auditResult AuditResult,
+ ...
+}
+
+AuditResult ::= CHOICE
+{
+ contextAuditResult TerminationIDList,
+ terminationAuditResult TerminationAudit
+}
+
+
+
+TerminationAudit ::= SEQUENCE OF AuditReturnParameter
+
+AuditReturnParameter ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ mediaDescriptor MediaDescriptor,
+ modemDescriptor ModemDescriptor,
+ muxDescriptor MuxDescriptor,
+ eventsDescriptor EventsDescriptor,
+ eventBufferDescriptor EventBufferDescriptor,
+ signalsDescriptor SignalsDescriptor,
+ digitMapDescriptor DigitMapDescriptor,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ statisticsDescriptor StatisticsDescriptor,
+ packagesDescriptor PackagesDescriptor,
+ emptyDescriptors AuditDescriptor,
+ ...
+}
+
+AuditDescriptor ::= SEQUENCE
+{
+ auditToken BIT STRING
+ {
+ muxToken(0),
+ modemToken(1),
+ mediaToken(2),
+ eventsToken(3),
+ signalsToken(4),
+ digitMapToken(5),
+ statsToken(6),
+ observedEventsToken(7),
+ packagesToken(8),
+ eventBufferToken(9)
+ } OPTIONAL,
+ ...
+}
+
+NotifyRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ observedEventsDescriptor ObservedEventsDescriptor,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+NotifyReply ::= SEQUENCE
+{
+ terminationID TerminationIDList OPTIONAL,
+ errorDescriptor ErrorDescriptor OPTIONAL,
+ ...
+}
+
+ObservedEventsDescriptor ::= SEQUENCE
+{
+ requestId RequestID,
+ observedEventLst SEQUENCE OF ObservedEvent
+}
+
+ObservedEvent ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ timeNotation TimeNotation OPTIONAL,
+ ...
+}
+
+EventName ::= PkgdName
+
+EventParameter ::= SEQUENCE
+{
+ eventParameterName Name,
+ value Value
+}
+
+ServiceChangeRequest ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeParms ServiceChangeParm,
+ ...
+}
+
+ServiceChangeReply ::= SEQUENCE
+{
+ terminationID TerminationIDList,
+ serviceChangeResult ServiceChangeResult,
+ ...
+}
+
+-- For ServiceChangeResult, no parameters are mandatory. Hence the
+-- distinction between ServiceChangeParm and ServiceChangeResParm.
+
+ServiceChangeResult ::= CHOICE
+{
+ errorDescriptor ErrorDescriptor,
+ serviceChangeResParms ServiceChangeResParm
+}
+
+WildcardField ::= OCTET STRING(SIZE(1))
+
+TerminationID ::= SEQUENCE
+{
+ wildcard SEQUENCE OF WildcardField,
+ id OCTET STRING(SIZE(1..8)),
+ ...
+}
+-- See Section A.1 for explanation of wildcarding mechanism.
+-- Termination ID 0xFFFFFFFFFFFFFFFF indicates the ROOT Termination.
+
+TerminationIDList ::= SEQUENCE OF TerminationID
+
+MediaDescriptor ::= SEQUENCE
+{
+
+ termStateDescr TerminationStateDescriptor OPTIONAL,
+ streams CHOICE
+ {
+ oneStream StreamParms,
+ multiStream SEQUENCE OF StreamDescriptor
+ },
+ ...
+}
+
+StreamDescriptor ::= SEQUENCE
+{
+ streamID StreamID,
+ streamParms StreamParms
+}
+
+StreamParms ::= SEQUENCE
+{
+ localControlDescriptor LocalControlDescriptor OPTIONAL,
+ localDescriptor LocalRemoteDescriptor OPTIONAL,
+ remoteDescriptor LocalRemoteDescriptor OPTIONAL,
+ ...
+}
+
+LocalControlDescriptor ::= SEQUENCE
+{
+ streamMode StreamMode OPTIONAL,
+ reserveValue BOOLEAN,
+ reserveGroup BOOLEAN,
+ propertyParms SEQUENCE OF PropertyParm,
+ ...
+}
+
+StreamMode ::= ENUMERATED
+{
+ sendOnly(0),
+ recvOnly(1),
+ sendRecv(2),
+ inactive(3),
+ loopBack(4),
+ ...
+}
+
+-- In PropertyParm, value is a SEQUENCE OF octet string. When sent
+-- by an MGC the interpretation is as follows:
+-- empty sequence means CHOOSE
+-- one element sequence specifies value
+-- If the sublist field is not selected, a longer sequence means
+-- "choose one of the values" (i.e. value1 OR value2 OR ...)
+-- If the sublist field is selected,
+-- a sequence with more than one element encodes the value of a
+-- list-valued property (i.e. value1 AND value2 AND ...).
+-- The relation field may only be selected if the value sequence
+-- has length 1. It indicates that the MG has to choose a value
+-- for the property. E.g., x > 3 (using the greaterThan
+-- value for relation) instructs the MG to choose any value larger
+-- than 3 for property x.
+-- The range field may only be selected if the value sequence
+-- has length 2. It indicates that the MG has to choose a value
+-- in the range between the first octet in the value sequence and
+-- the trailing octet in the value sequence, including the
+-- boundary values.
+-- When sent by the MG, only responses to an AuditCapability request
+-- may contain multiple values, a range, or a relation field.
+
+PropertyParm ::= SEQUENCE
+{
+ name PkgdName,
+ value SEQUENCE OF OCTET STRING,
+ extraInfo CHOICE
+ {
+ relation Relation,
+ range BOOLEAN,
+ sublist BOOLEAN
+ } OPTIONAL,
+ ...
+}
+
+Name ::= OCTET STRING(SIZE(2))
+
+PkgdName ::= OCTET STRING(SIZE(4))
+-- represents Package Name (2 octets) plus Property Name (2 octets)
+-- To wildcard a package use 0xFFFF for first two octets, choose
+-- is not allowed. To reference native property tag specified in
+-- Annex C, use 0x0000 as first two octets.
+-- Wildcarding of Package Name is permitted only if Property Name is
+-- also wildcarded.
+
+Relation ::= ENUMERATED
+{
+ greaterThan(0),
+ smallerThan(1),
+ unequalTo(2),
+ ...
+}
+
+LocalRemoteDescriptor ::= SEQUENCE
+{
+ propGrps SEQUENCE OF PropertyGroup,
+ ...
+}
+
+PropertyGroup ::= SEQUENCE OF PropertyParm
+
+TerminationStateDescriptor ::= SEQUENCE
+{
+ propertyParms SEQUENCE OF PropertyParm,
+ eventBufferControl EventBufferControl OPTIONAL,
+ serviceState ServiceState OPTIONAL,
+ ...
+}
+
+EventBufferControl ::= ENUMERATED
+{
+ off(0),
+ lockStep(1),
+ ...
+}
+
+ServiceState ::= ENUMERATED
+{
+ test(0),
+ outOfSvc(1),
+ inSvc(2),
+ ...
+}
+
+MuxDescriptor ::= SEQUENCE
+{
+ muxType MuxType,
+ termList SEQUENCE OF TerminationID,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+MuxType ::= ENUMERATED
+{
+ h221(0),
+ h223(1),
+ h226(2),
+ v76(3),
+ ...
+}
+
+StreamID ::= INTEGER(0..65535) -- 16 bit unsigned integer
+
+EventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF RequestedEvent,
+ ...
+}
+
+RequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction RequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+RequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ secondEvent SecondEventsDescriptor OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+
+EventDM ::= CHOICE
+{
+ digitMapName DigitMapName,
+ digitMapValue DigitMapValue
+}
+
+SecondEventsDescriptor ::= SEQUENCE
+{
+ requestID RequestID,
+ eventList SEQUENCE OF SecondRequestedEvent,
+ ...
+}
+
+SecondRequestedEvent ::= SEQUENCE
+{
+ pkgdName PkgdName,
+ streamID StreamID OPTIONAL,
+ eventAction SecondRequestedActions OPTIONAL,
+ evParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SecondRequestedActions ::= SEQUENCE
+{
+ keepActive BOOLEAN,
+ eventDM EventDM OPTIONAL,
+ signalsDescriptor SignalsDescriptor OPTIONAL,
+ ...
+}
+
+EventBufferDescriptor ::= SEQUENCE OF EventSpec
+
+EventSpec ::= SEQUENCE
+{
+ eventName EventName,
+ streamID StreamID OPTIONAL,
+ eventParList SEQUENCE OF EventParameter,
+ ...
+}
+
+SignalsDescriptor ::= SEQUENCE OF SignalRequest
+
+SignalRequest ::= CHOICE
+{
+ signal Signal,
+ seqSigList SeqSigList,
+ ...
+}
+
+SeqSigList ::= SEQUENCE
+{
+ id INTEGER(0..65535),
+ signalList SEQUENCE OF Signal
+}
+
+Signal ::= SEQUENCE
+{
+ signalName SignalName,
+ streamID StreamID OPTIONAL,
+ sigType SignalType OPTIONAL,
+ duration INTEGER (0..65535) OPTIONAL,
+ notifyCompletion NotifyCompletion OPTIONAL,
+ keepActive BOOLEAN OPTIONAL,
+ sigParList SEQUENCE OF SigParameter,
+ ...
+}
+
+SignalType ::= ENUMERATED
+{
+ brief(0),
+ onOff(1),
+ timeOut(2),
+ ...
+}
+
+SignalName ::= PkgdName
+
+NotifyCompletion ::= BIT STRING
+{
+ onTimeOut(0),
+ onInterruptByEvent(1),
+ onInterruptByNewSignalDescr(2),
+ otherReason(3)
+}
+
+SigParameter ::= SEQUENCE
+{
+ sigParameterName Name,
+ value Value
+}
+
+RequestID ::= INTEGER(0..4294967295) -- 32 bit unsigned integer
+
+ModemDescriptor ::= SEQUENCE
+{
+ mtl SEQUENCE OF ModemType,
+ mpl SEQUENCE OF PropertyParm
+-- nonStandardData NonStandardData OPTIONAL
+}
+
+ModemType ::= ENUMERATED
+{
+ v18(0),
+ v22(1),
+ v22bis(2),
+ v32(3),
+ v32bis(4),
+ v34(5),
+ v90(6),
+ v91(7),
+ synchISDN(8),
+ ...
+}
+
+DigitMapDescriptor ::= SEQUENCE
+{
+ digitMapName DigitMapName OPTIONAL,
+ digitMapValue DigitMapValue OPTIONAL
+}
+
+DigitMapName ::= Name
+
+DigitMapValue ::= SEQUENCE
+{
+ startTimer INTEGER(0..99) OPTIONAL,
+ shortTimer INTEGER(0..99) OPTIONAL,
+ longTimer INTEGER(0..99) OPTIONAL,
+ digitMapBody IA5String,
+ -- See Section A.3 for explanation of digit map syntax
+ ...
+}
+
+ServiceChangeParm ::= SEQUENCE
+{
+ serviceChangeMethod ServiceChangeMethod,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ serviceChangeReason Value,
+ serviceChangeDelay INTEGER(0..4294967295) OPTIONAL,
+ -- 32 bit unsigned integer
+ serviceChangeMgcId MId OPTIONAL,
+ timeStamp TimeNotation OPTIONAL,
+-- nonStandardData NonStandardData OPTIONAL,
+ ...
+}
+
+ServiceChangeAddress ::= CHOICE
+{
+ portNumber INTEGER(0..65535), -- TCP/UDP port number
+ ip4Address IP4Address,
+ ip6Address IP6Address,
+ domainName DomainName,
+ deviceName PathName,
+ mtpAddress OCTET STRING(SIZE(2)),
+ ...
+}
+
+ServiceChangeResParm ::= SEQUENCE
+{
+ serviceChangeMgcId MId OPTIONAL,
+ serviceChangeAddress ServiceChangeAddress OPTIONAL,
+ serviceChangeVersion INTEGER(0..99) OPTIONAL,
+ serviceChangeProfile ServiceChangeProfile OPTIONAL,
+ ...
+}
+
+ServiceChangeMethod ::= ENUMERATED
+{
+ failover(0),
+ forced(1),
+ graceful(2),
+ restart(3),
+ disconnected(4),
+ handOff(5),
+ ...
+}
+
+ServiceChangeProfile ::= SEQUENCE
+{
+ profileName Name,
+ version INTEGER(0..99)
+}
+
+PackagesDescriptor ::= SEQUENCE OF PackagesItem
+
+PackagesItem ::= SEQUENCE
+{
+ packageName Name,
+ packageVersion INTEGER(0..99),
+ ...
+}
+
+StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
+
+StatisticsParameter ::= SEQUENCE
+{
+ statName PkgdName,
+ statValue Value
+}
+
+-- NonStandardData ::= SEQUENCE
+-- {
+-- nonStandardIdentifier NonStandardIdentifier,
+-- data OCTET STRING
+-- }
+--
+-- NonStandardIdentifier ::= CHOICE
+-- {
+-- object OBJECT IDENTIFIER,
+-- h221NonStandard H221NonStandard,
+-- experimental IA5String(SIZE(8)),
+-- first two characters should be "X-" or "X+"
+-- ...
+-- }
+--
+-- H221NonStandard ::= SEQUENCE
+-- {
+-- t35CountryCode1 INTEGER(0..255),
+-- t35CountryCode2 INTEGER(0..255), country, as per T.35
+-- t35Extension INTEGER(0..255), assigned nationally
+-- manufacturerCode INTEGER(0..65535), assigned nationally
+-- ...
+-- }
+
+TimeNotation ::= SEQUENCE
+{
+ date IA5String(SIZE(8)), -- yyyymmdd format
+ time IA5String(SIZE(8)) -- hhmmssss format
+}
+
+Value ::= OCTET STRING
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.asn1config
new file mode 100644
index 0000000000..8d96aaecf1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'OTP-PKIX',
+ [{decode_TBSCert_exclusive,['CertificatePKIX1Explicit88',[{tbsCertificate,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.set.asn
new file mode 100644
index 0000000000..1b198d3b91
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/OTP-PKIX.set.asn
@@ -0,0 +1,5 @@
+SSL-PKIX.asn1
+PKIX1Explicit88.asn1
+PKIX1Implicit88.asn1
+PKIXAttributeCertificate.asn1
+PKIX1Algorithms88.asn1
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ObjIdValues.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ObjIdValues.asn1
new file mode 100644
index 0000000000..9368e8dceb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ObjIdValues.asn1
@@ -0,0 +1,66 @@
+
+ObjIdValues
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+ObjIdType ::= OBJECT IDENTIFIER
+
+mobileDomainId OBJECT IDENTIFIER ::=
+ {ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)}
+mobileDomainId-Alt1 OBJECT IDENTIFIER ::=
+ {ccitt identified-organization etsi (0) mobileDomain (0)}
+mobileDomainId-Alt2 OBJECT IDENTIFIER ::=
+ {0 4 0 0}
+
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+CommonComponentId ::= INTEGER (0..9)
+
+as-Id CommonComponentId ::= 1
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+{gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+-- test for OTP-4354
+-- But it only caused a warning
+objid OBJECT IDENTIFIER ::= {mobileDomainId-Alt2 as-Id}
+
+itu-t-a OBJECT IDENTIFIER ::= {itu-t recommendation a}
+itu-t-b OBJECT IDENTIFIER ::= {itu-t recommendation b}
+itu-t-c OBJECT IDENTIFIER ::= {itu-t recommendation c}
+itu-t-d OBJECT IDENTIFIER ::= {itu-t recommendation d}
+itu-t-e OBJECT IDENTIFIER ::= {itu-t recommendation e}
+itu-t-f OBJECT IDENTIFIER ::= {itu-t recommendation f}
+itu-t-g OBJECT IDENTIFIER ::= {itu-t recommendation g}
+itu-t-h OBJECT IDENTIFIER ::= {itu-t recommendation h}
+itu-t-i OBJECT IDENTIFIER ::= {itu-t recommendation i}
+itu-t-j OBJECT IDENTIFIER ::= {itu-t recommendation j}
+itu-t-k OBJECT IDENTIFIER ::= {itu-t recommendation k}
+itu-t-l OBJECT IDENTIFIER ::= {itu-t recommendation l}
+itu-t-m OBJECT IDENTIFIER ::= {itu-t recommendation m}
+itu-t-n OBJECT IDENTIFIER ::= {itu-t recommendation n}
+itu-t-o OBJECT IDENTIFIER ::= {itu-t recommendation o}
+itu-t-p OBJECT IDENTIFIER ::= {itu-t recommendation p}
+itu-t-q OBJECT IDENTIFIER ::= {itu-t recommendation q}
+itu-t-r OBJECT IDENTIFIER ::= {itu-t recommendation r}
+itu-t-t OBJECT IDENTIFIER ::= {itu-t recommendation t}
+itu-t-u OBJECT IDENTIFIER ::= {itu-t recommendation u}
+itu-t-v OBJECT IDENTIFIER ::= {itu-t recommendation v}
+itu-t-w OBJECT IDENTIFIER ::= {itu-t recommendation w}
+itu-t-x OBJECT IDENTIFIER ::= {itu-t recommendation x}
+itu-t-y OBJECT IDENTIFIER ::= {itu-t recommendation y}
+itu-t-z OBJECT IDENTIFIER ::= {itu-t recommendation z}
+ccitt-q OBJECT IDENTIFIER ::= {ccitt question}
+ccitt-a OBJECT IDENTIFIER ::= {ccitt administration}
+ccitt-n OBJECT IDENTIFIER ::= {ccitt network-operator}
+iso-i OBJECT IDENTIFIER ::= {iso identified-organization}
+joint-iso OBJECT IDENTIFIER ::= {joint-iso-ccitt}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Objects.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Objects.asn
new file mode 100644
index 0000000000..f911acbbe9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Objects.asn
@@ -0,0 +1,61 @@
+Objects DEFINITIONS ::=
+BEGIN
+
+OPERATION ::= CLASS
+ {
+ &ArgumentType OPTIONAL,
+ &ResultType OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &resultReturned BOOLEAN DEFAULT TRUE,
+ &operationCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType]
+ [RESULT &ResultType]
+ [RETURN RESULT &resultReturned]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ CODE &operationCode
+ }
+
+ERROR ::= CLASS
+ {
+ &ParameterType OPTIONAL,
+ &errorCode INTEGER UNIQUE
+ }
+WITH SYNTAX
+ {
+ [PARAMETER &ParameterType]
+ CODE &errorCode
+ }
+
+My-Operations OPERATION ::= { operationA | operationB }
+
+operationA OPERATION ::= {
+ ARGUMENT INTEGER
+ ERRORS { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } }
+ CODE 1
+}
+
+operationB OPERATION ::= {
+ ARGUMENT IA5String
+ RESULT BOOLEAN
+ ERRORS { { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+ CODE 2
+}
+
+My-OperationErrors ERROR ::= { My-Operations.&Errors }
+
+My-OperationAERror ERROR ::= {operationA.&Errors}
+-- Equals:
+-- My-OperationErrors ERROR ::= { { PARAMETER INTEGER CODE 1000 } | { CODE 1001 } | { CODE 1002 } | { PARAMETER IA5String CODE 1003 } }
+
+My-OperationErrorCodes INTEGER ::= { My-Operations.&Errors.&errorCode }
+-- Equals:
+-- My-OperationErrorCodes INTEGER ::= { 1000 | 1001 | 1002 | 1003 }
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Octetstr.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Octetstr.py
new file mode 100644
index 0000000000..e971acf192
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Octetstr.py
@@ -0,0 +1,15 @@
+Octetstr DEFINITIONS ::=
+BEGIN
+
+-- F.2.6.1
+-- Use an octet string type to model binary data whose format and length are
+-- unspecified, or specified elsewhere, and whose length in bits is a
+-- multiple of eight.
+-- EXAMPLE
+
+G4FacsimileImage ::= OCTET STRING
+-- a sequence of octets conforming to
+-- Recommendations T.5 and T.6
+image G4FacsimileImage ::= '3FE2EBAD471005'H
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/One.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/One.py
new file mode 100644
index 0000000000..89083fbd66
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/One.py
@@ -0,0 +1,52 @@
+One DEFINITIONS ::=
+
+BEGIN
+EXPORTS Boo,Foo,Bar;
+--IMPORTS
+--Fooo , Abba FROM Bobby
+--Robbe FROM Tst;
+
+Boo ::= [1] INTEGER (0..200)
+
+Foo ::= One.Boo
+
+Bar ::= SEQUENCE {
+ ff One.Foo,
+ aa One.Boo }
+
+
+ S ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ INTEGER, -- defined by authentication protocol
+ authData
+ Boo
+ }
+
+
+--S::= Jojo
+--T ::= S
+--U ::= T
+--Jojo ::= [PRIVATE 21] SET {
+-- Boo ,x
+-- d SEQUENCE {
+-- [0] INTEGER OPTIONAL,
+-- [1] INTEGER DEFAULT 55 },
+-- g [2] INTEGER (0..10) }
+--
+--J ::= [PRIVATE 22] EXPLICIT SEQUENCE {
+-- y SEQUENCE {
+-- one INTEGER,
+-- two INTEGER },
+-- x INTEGER (1..3),
+-- a Boo OPTIONAL,
+-- b INTEGER }
+--
+--Noo ::= [PRIVATE 23] SEQUENCE {
+-- [0] Jojo,
+-- [1] J }
+
+
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenType.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenType.asn1
new file mode 100644
index 0000000000..8016f3663c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenType.asn1
@@ -0,0 +1,12 @@
+OpenType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Stype ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+Ot ::= TYPE-IDENTIFIER.&Type (Stype)
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenTypeImplicitTag.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenTypeImplicitTag.asn
new file mode 100644
index 0000000000..ee25b5cf3c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/OpenTypeImplicitTag.asn
@@ -0,0 +1,19 @@
+OpenTypeImplicitTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a [1] A OPTIONAL,
+ b [2] ANY OPTIONAL,
+ c [3] INTEGER,
+ d [4] C.&Type OPTIONAL
+}
+
+C ::= CLASS {
+ &Type,
+ &id INTEGER
+}
+
+A ::= ANY
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.asn1
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.asn1
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.py
new file mode 100644
index 0000000000..48c2a09b64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Opt.py
@@ -0,0 +1,31 @@
+Opt DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Opt1 ::= SEQUENCE
+{
+ bool0 [0] BOOLEAN,
+ bool1 [1] BOOLEAN OPTIONAL,
+ bool2 [2] BOOLEAN OPTIONAL,
+ bool3 [3] BOOLEAN OPTIONAL
+}
+
+
+Opt2 ::= SEQUENCE
+{
+ bool10 [10] BOOLEAN,
+ bool11 [11] BOOLEAN OPTIONAL,
+ bool12 [12] BOOLEAN OPTIONAL,
+ bool13 [13] BOOLEAN
+}
+
+
+Opt3 ::= SEQUENCE
+{
+ bool30 [30] BOOLEAN OPTIONAL,
+ bool31 [31] BOOLEAN OPTIONAL,
+ bool32 [32] BOOLEAN OPTIONAL,
+ bool33 [33] BOOLEAN OPTIONAL
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1config
new file mode 100644
index 0000000000..45405da8bf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'P-Record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1db b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1db
new file mode 100644
index 0000000000..13e1162c64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.asn1db
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.erl
new file mode 100644
index 0000000000..9fc6f50d64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.erl
@@ -0,0 +1,244 @@
+%% Generated by the Erlang ASN.1 BER-compiler version, utilizing bit-syntax:1.3.1.4
+%% Purpose: encoder and decoder to the types in mod P-Record
+
+-module('P-Record').
+-include("P-Record.hrl").
+-define('RT_PER',asn1rt_per_bin).
+-export([encoding_rule/0]).
+-export([
+'enc_PersonnelRecord'/1,
+'enc_ChildInformation'/1,
+'enc_Name'/1,
+'enc_EmployeeNumber'/1,
+'enc_Date'/1
+]).
+
+-export([
+'dec_PersonnelRecord'/2,
+'dec_ChildInformation'/2,
+'dec_Name'/2,
+'dec_EmployeeNumber'/2,
+'dec_Date'/2
+]).
+
+-export([
+'v'/0
+]).
+
+
+
+-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).
+
+encoding_rule() ->
+ per_bin.
+
+encode(Type,Data) ->
+case catch ?RT_PER:complete(encode_disp(Type,Data)) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {Bytes,Len} ->
+ {ok,Bytes};
+ X ->
+ {ok,X}
+end.
+
+decode(Type,Data) ->
+case catch decode_disp(Type,Data) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {X,_Rest} ->
+ {ok,X};
+ {X,_Rest,_Len} ->
+ {ok,X}
+end.
+
+encode_disp('PersonnelRecord',Data) -> 'enc_PersonnelRecord'(Data);
+encode_disp('ChildInformation',Data) -> 'enc_ChildInformation'(Data);
+encode_disp('Name',Data) -> 'enc_Name'(Data);
+encode_disp('EmployeeNumber',Data) -> 'enc_EmployeeNumber'(Data);
+encode_disp('Date',Data) -> 'enc_Date'(Data);
+encode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+decode_disp('PersonnelRecord',Data) -> 'dec_PersonnelRecord'(Data,mandatory);
+decode_disp('ChildInformation',Data) -> 'dec_ChildInformation'(Data,mandatory);
+decode_disp('Name',Data) -> 'dec_Name'(Data,mandatory);
+decode_disp('EmployeeNumber',Data) -> 'dec_EmployeeNumber'(Data,mandatory);
+decode_disp('Date',Data) -> 'dec_Date'(Data,mandatory);
+decode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+
+
+
+'enc_PersonnelRecord'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{children,6}],Val),
+[
+?RT_PER:setoptionals(Opt),
+
+%% attribute number 1 with type Externaltypereference6P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,title)),
+
+%% attribute number 3 with type INTEGER
+?RT_PER:encode_integer([],?RT_PER:cindex(4,Val1,number)),
+
+%% attribute number 4 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(5,Val1,dateOfHire)),
+
+%% attribute number 5 with type Externaltypereference10P-RecordName
+'enc_Name'(?RT_PER:cindex(6,Val1,nameOfSpouse)),
+case ?RT_PER:cindex(7,Val1,children) of
+asn1_DEFAULT -> [];
+_ ->
+
+%% attribute number 6 with type SEQUENCE OF
+'enc_PersonnelRecord_children'(?RT_PER:cindex(7,Val1,children))
+end].
+
+'enc_PersonnelRecord_children'({'PersonnelRecord_children',Val}) ->
+'enc_PersonnelRecord_children'(Val);
+
+'enc_PersonnelRecord_children'(Val) ->
+[
+
+ ?RT_PER:encode_length(undefined,length(Val)),
+ 'enc_PersonnelRecord_children_components'(Val, [])
+].
+'enc_PersonnelRecord_children_components'([], Acc) -> lists:reverse(Acc);
+
+'enc_PersonnelRecord_children_components'([H|T], Acc) ->
+'enc_PersonnelRecord_children_components'(T, ['enc_ChildInformation'(H)
+
+ | Acc]).
+
+'dec_PersonnelRecord_children'(Bytes,Telltype) ->
+
+{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),
+'dec_PersonnelRecord_children_components'(Num, Bytes1, Telltype, []).
+'dec_PersonnelRecord_children_components'(0, Bytes, Telltype, Acc) ->
+ {lists:reverse(Acc), Bytes};
+'dec_PersonnelRecord_children_components'(Num, Bytes, Telltype, Acc) ->
+ {Term,Remain} = 'P-Record':'dec_ChildInformation'(Bytes,Telltype),
+ 'dec_PersonnelRecord_children_components'(Num-1, Remain, Telltype, [Term|Acc]).
+
+
+'dec_PersonnelRecord'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,1),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = 'dec_Name'(Bytes1,telltype),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+
+%% attribute number 3 with type INTEGER
+{Term3,Bytes4} = ?RT_PER:decode_integer(Bytes3,[]),
+
+%% attribute number 4 with type VisibleString
+{Term4,Bytes5} = ?RT_PER:decode_VisibleString(Bytes4,[]),
+
+%% attribute number 5 with type Name
+{Term5,Bytes6} = 'dec_Name'(Bytes5,telltype),
+
+%% attribute number 6 with type SEQUENCE OF
+{Term6,Bytes7} = case element(1,Opt) of
+1 ->'dec_PersonnelRecord_children'(Bytes6, Telltype);
+0 ->{[],Bytes6}
+
+end,
+{{'PersonnelRecord',Term1,Term2,Term3,Term4,Term5,Term6},Bytes7}.
+
+'enc_ChildInformation'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{name,1},{dateOfBirth,2}],Val),
+[
+?RT_PER:setoptionals(Opt),
+case ?RT_PER:cindex(2,Val1,name) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 1 with type Externaltypereference15P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name))
+end,
+case ?RT_PER:cindex(3,Val1,dateOfBirth) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,dateOfBirth))
+end].
+
+
+'dec_ChildInformation'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,2),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = case element(1,Opt) of
+1 ->'dec_Name'(Bytes1,telltype);
+0 ->{asn1_NOVALUE,Bytes1}
+
+end,
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = case element(2,Opt) of
+1 ->?RT_PER:decode_VisibleString(Bytes2,[]);
+0 ->{asn1_NOVALUE,Bytes2}
+
+end,
+{{'ChildInformation',Term1,Term2},Bytes3}.
+
+'enc_Name'(Val) ->
+Val1 = ?RT_PER:list_to_record('Name', Val),
+[
+
+%% attribute number 1 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(2,Val1,givenName)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,initial)),
+
+%% attribute number 3 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(4,Val1,familyName))].
+
+
+'dec_Name'(Bytes,Telltype) ->
+
+%% attribute number 1 with type VisibleString
+{Term1,Bytes1} = ?RT_PER:decode_VisibleString(Bytes,[]),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes2} = ?RT_PER:decode_VisibleString(Bytes1,[]),
+
+%% attribute number 3 with type VisibleString
+{Term3,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+{{'Name',Term1,Term2,Term3},Bytes3}.
+
+
+'enc_EmployeeNumber'({'EmployeeNumber',Val}) ->
+'enc_EmployeeNumber'(Val);
+
+'enc_EmployeeNumber'(Val) ->
+?RT_PER:encode_integer([],Val).
+
+
+'dec_EmployeeNumber'(Bytes,Telltype) ->
+?RT_PER:decode_integer(Bytes,[]).
+
+
+'enc_Date'({'Date',Val}) ->
+'enc_Date'(Val);
+
+'enc_Date'(Val) ->
+?RT_PER:encode_VisibleString([],Val).
+
+
+'dec_Date'(Bytes,Telltype) ->
+?RT_PER:decode_VisibleString(Bytes,[]).
+
+'v'() ->
+{'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}.
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.hrl b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.hrl
new file mode 100644
index 0000000000..92aa1a44e2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.hrl
@@ -0,0 +1,17 @@
+%% Generated by the Erlang ASN.1 compiler version:1.3.1.4
+%% Purpose: Erlang record definitions for each named and unnamed
+%% SEQUENCE and SET, and macro definitions for each value
+%% definition,in module P-Record
+
+
+
+-record('PersonnelRecord',{
+name, title, number, dateOfHire, nameOfSpouse, children = asn1_DEFAULT}).
+
+-record('ChildInformation',{
+name = asn1_NOVALUE, dateOfBirth = asn1_NOVALUE}).
+
+-record('Name',{
+givenName, initial, familyName}).
+
+-define('v', {'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}).
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.py
new file mode 100644
index 0000000000..f1db09ac6c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-Record.py
@@ -0,0 +1,59 @@
+P-Record DEFINITIONS ::=
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] SET
+{ name Name,
+ title VisibleString,
+ number EmployeeNumber,
+ dateOfHire Date,
+ nameOfSpouse [1] Name,
+ children SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET
+{ name Name,
+ dateOfBirth Date
+}
+
+Name ::= [APPLICATION 1] SEQUENCE
+{ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] INTEGER
+Date ::= [APPLICATION 3] VisibleString -- YYYY MMDD
+
+v PersonnelRecord ::=
+{
+ name {
+ givenName "John",
+ initial "P",
+ familyName "Smith"
+ },
+ title "Director",
+ number 51,
+ dateOfHire "19710917",
+ nameOfSpouse {
+ givenName "Mary",
+ initial "T",
+ familyName "Smith"
+ },
+ children {
+ {name {
+ givenName "Ralph",
+ initial "T",
+ familyName "Smith"
+ } ,
+ dateOfBirth "19571111"},
+ {name {
+ givenName "Susan",
+ initial "B",
+ familyName "Jones"
+ } ,
+ dateOfBirth "19590717" }
+ }
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA1.asn
new file mode 100644
index 0000000000..33ba690e1e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA1.asn
@@ -0,0 +1,29 @@
+P-RecordA1 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString -- YYYYMMDD
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA2.asn
new file mode 100644
index 0000000000..50ae419399
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA2.asn
@@ -0,0 +1,33 @@
+P-RecordA2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA3.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA3.asn
new file mode 100644
index 0000000000..74023140e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P-RecordA3.asn
@@ -0,0 +1,40 @@
+P-RecordA3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
+ name Name,
+ title [0] VisibleString,
+ number EmployeeNumber,
+ dateOfHire [1] Date,
+ nameOfSpouse [2] Name,
+ children [3] IMPLICIT SEQUENCE (SIZE(2, ...)) OF ChildInformation OPTIONAL,
+ ...
+}
+
+ChildInformation ::= SET {
+ name Name,
+ dateOfBirth [0] Date,
+ ...,
+ sex [1] IMPLICIT ENUMERATED {
+ male(1),
+ female(2),
+ unknown(3)
+ } OPTIONAL
+}
+
+Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ givenName NameString,
+ initial NameString (SIZE(1)),
+ familyName NameString,
+ ...
+}
+
+EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER (0..9999, ...)
+
+Date ::= [APPLICATION 3] IMPLICIT VisibleString (FROM("0".."9") ^ SIZE(8, ..., 9..20)) -- YYYYMMDD
+
+NameString ::= VisibleString (FROM("a".."z" | "A".."Z" | "-.") ^ SIZE(1..64, ...))
+
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/P.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/P.py
new file mode 100644
index 0000000000..1431ae07b9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/P.py
@@ -0,0 +1,19 @@
+P DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS P1, P2;
+
+P1 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+
+P2 ::= SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL,
+ nr BOOLEAN
+ }
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PDUs.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/PDUs.py
new file mode 100644
index 0000000000..907348193f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PDUs.py
@@ -0,0 +1,325 @@
+PDUs DEFINITIONS ::=
+
+-- Search for 'org' to find changes for erlang.
+
+-- SnmpMgmtCom and PDUs only for dbg.
+
+
+BEGIN
+EXPORTS SnmpPrivMsg, SnmpAuthMsg, SnmpMgmtCom, PDUs;
+
+-- From RFC 1442
+
+ -- names of objects
+
+ ObjectName ::=
+ OBJECT IDENTIFIER
+
+
+ -- syntax of objects
+
+ ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ applicationWide
+ ApplicationSyntax
+ }
+
+
+ -- built-in ASN.1 types
+
+ SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integerValue
+ INTEGER,
+
+ stringValue
+ OCTET STRING,
+
+ objectIDValue
+ OBJECT IDENTIFIER,
+
+ -- only the enumerated form is allowed
+ bitValue
+ BIT STRING
+ }
+
+
+ -- indistinguishable from INTEGER, but never needs more than
+ -- 32Bits for a two's complement representation
+ Integer32 ::=
+ [UNIVERSAL 2]
+ IMPLICIT INTEGER (-2147483648..2147483647)
+
+
+ -- applicationWide types
+
+ ApplicationSyntax ::=
+ CHOICE {
+ ipAddressValue
+ IpAddress,
+
+ counterValue
+ Counter32,
+
+ gaugeValue
+ Gauge32,
+
+ timeticksValue
+ TimeTicks,
+
+ arbitraryValue
+ Opaque,
+
+ nsapAddressValue
+ NsapAddress,
+
+ bigCounterValue
+ Counter64,
+
+ unsignedIntegerValue
+ UInteger32
+ }
+
+ -- in networkByte order
+ -- (this is a tagged type for historical reasons)
+ IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+
+
+
+
+ -- this wraps
+ Counter32 ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- this doesn't wrap
+ Gauge32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- hundredths of seconds since an epoch
+ TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+ -- for backwardCompatibility only
+ Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+ -- for OSI NSAP addresses
+ -- (this is a tagged type for historical reasons)
+ NsapAddress ::=
+ [APPLICATION 5]
+-- org: IMPLICIT OCTET STRING (SIZE (1 | 4..21))
+ IMPLICIT OCTET STRING
+
+ -- for counters that wrap in less than one hour with only 32 bits
+ Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+ -- an unsigned 32Bit quantity
+ UInteger32 ::=
+ [APPLICATION 7]
+ IMPLICIT INTEGER (0..4294967295)
+
+
+-- From RFC 1445
+
+ SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
+ privDst
+ OBJECT IDENTIFIER,
+ privData
+ [1] IMPLICIT OCTET STRING
+ }
+
+ SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
+ authInfo
+ ANY, -- defined by authentication protocol
+ authData
+ SnmpMgmtCom
+ }
+
+ SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
+ dstParty
+ OBJECT IDENTIFIER,
+ srcParty
+ OBJECT IDENTIFIER,
+ context
+ OBJECT IDENTIFIER,
+ pdu
+ PDUs
+ }
+
+
+-- From RFC 1448
+
+ -- org: no tag at all. we need a tag to test 'PDUs'.
+ PDUs ::= [PRIVATE 1]
+ -- remove tag when 'PDUs' only is used in another type.
+ CHOICE {
+ getRequest
+ GetRequestPdu,
+
+ getNextRequest
+ GetNextRequestPdu,
+
+ getBulkRequest
+ GetBulkRequestPdu,
+
+ response
+ ResponsePdu,
+
+ setRequest
+ SetRequestPdu,
+
+ informRequest
+ InformRequestPdu,
+
+ snmpV2Trap
+ SNMPv2TrapPdu
+ }
+
+ -- PDUs
+
+ GetRequestPdu ::=
+ [0]
+ IMPLICIT PDU
+
+ GetNextRequestPdu ::=
+ [1]
+ IMPLICIT PDU
+
+ ResponsePdu ::=
+ [2]
+ IMPLICIT PDU
+
+ SetRequestPdu ::=
+ [3]
+ IMPLICIT PDU
+
+ -- [4] is obsolete
+
+ GetBulkRequestPdu ::=
+ [5]
+ IMPLICIT BulkPDU
+
+ InformRequestPdu ::=
+ [6]
+ IMPLICIT PDU
+
+ SNMPv2TrapPdu ::=
+ [7]
+ IMPLICIT PDU
+
+
+ maxBindings
+ INTEGER ::= 2147483647
+
+ PDU ::=
+ SEQUENCE {
+ requestId
+ Integer32,
+
+ errorStatus -- sometimes ignored
+ INTEGER {
+ noError(0),
+ tooBig(1),
+ noSuchName(2), -- for proxy compatibility
+ badValue(3), -- for proxy compatibility
+ readOnly(4), -- for proxy compatibility
+ genErr(5),
+ noAccess(6),
+ wrongType(7),
+ wrongLength(8),
+ wrongEncoding(9),
+ wrongValue(10),
+ noCreation(11),
+ inconsistentValue(12),
+ resourceUnavailable(13),
+ commitFailed(14),
+ undoFailed(15),
+ authorizationError(16),
+ notWritable(17),
+ inconsistentName(18)
+ },
+
+ errorIndex -- sometimes ignored
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are sometimes ignored
+ VarBindList
+ }
+
+
+ BulkPDU ::= -- MUST be identical in
+ SEQUENCE { -- structure to PDU
+ requestId
+ Integer32,
+
+ nonRepeaters
+ INTEGER (0..maxBindings),
+
+ maxRepetitions
+ INTEGER (0..maxBindings),
+
+ variableBindings -- values are ignored
+ VarBindList
+ }
+
+
+ VarBind ::=
+ SEQUENCE {
+ name
+ ObjectName,
+
+ data CHOICE {
+ value
+ ObjectSyntax,
+
+ unSpecified -- in retrieval requests
+ NULL,
+
+ -- exceptions in responses
+ noSuchObject[0]
+ IMPLICIT NULL,
+
+ noSuchInstance[1]
+ IMPLICIT NULL,
+
+ endOfMibView[2]
+ IMPLICIT NULL
+ }
+ }
+
+
+ -- variableBinding list
+
+ VarBindList ::=
+ SEQUENCE OF VarBind
+
+-- org:
+-- VarBindList ::=
+-- SEQUENCE (SIZE (0..maxBindings)) OF
+-- VarBind
+
+END
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Algorithms88.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Algorithms88.asn1
new file mode 100644
index 0000000000..e78de69b0e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Algorithms88.asn1
@@ -0,0 +1,274 @@
+ PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) }
+
+ DEFINITIONS EXPLICIT TAGS ::= BEGIN
+
+ -- EXPORTS All;
+
+ -- IMPORTS NONE;
+
+ --
+ -- One-way Hash Functions
+ --
+
+ md2 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 2 }
+
+ md5 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 5 }
+
+ id-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) oiw(14) secsig(3)
+ algorithms(2) 26 }
+
+ --
+ -- DSA Keys and Signatures
+ --
+
+ -- OID for DSA public key
+
+ id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+ -- encoding for DSA public key
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- OID for DSA signature generated with SHA-1 hash
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+ -- encoding for DSA signature generated with SHA-1 hash
+
+ Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- arc for RSA public key and RSA signature OIDs
+
+ pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+ -- OID for RSA public keys
+
+ rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+ -- OID for RSA signature generated with MD2 hash
+
+ md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+ -- OID for RSA signature generated with MD5 hash
+
+ md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+ -- OID for RSA signature generated with SHA-1 hash
+
+ sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+ -- encoding for RSA public key
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046)
+ number-type(2) 1 }
+
+ -- encoding for DSA public key
+
+ DHPublicKey ::= INTEGER -- public key, y = g^x mod p
+
+ DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+ --
+ -- KEA Keys
+ --
+
+ id-keyExchangeAlgorithm OBJECT IDENTIFIER ::=
+ { 2 16 840 1 101 2 1 1 22 }
+
+ KEA-Parms-Id ::= OCTET STRING
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ ansi-X9-62 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) 10045 }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY fieldType }
+
+ -- Arc for ECDSA signature OIDS
+
+ id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
+
+ -- OID for ECDSA signatures with SHA-1
+
+ ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
+
+ -- OID for an elliptic curve signature
+ -- format for the value of an ECDSA signature value
+
+ ECDSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ -- recognized field type OIDs are defined in the following arc
+
+ id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1) }
+
+ -- where fieldType is prime-field, the parameters are of type Prime-p
+
+ prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
+
+ Prime-p ::= INTEGER -- Finite field F(p), where p is an odd prime
+
+ -- where fieldType is characteristic-two-field, the parameters are
+ -- of type Characteristic-two
+
+ characteristic-two-field OBJECT IDENTIFIER ::= { id-fieldType 2 }
+
+ Characteristic-two ::= SEQUENCE {
+ m INTEGER, -- Field size 2^m
+ basis OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY basis }
+
+ -- recognized basis type OIDs are defined in the following arc
+
+ id-characteristic-two-basis OBJECT IDENTIFIER ::= {
+ characteristic-two-field basisType(3) }
+
+ -- gnbasis is identified by OID gnBasis and indicates
+ -- parameters are NULL
+
+ gnBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 1 }
+
+ -- parameters for this basis are NULL
+
+ -- trinomial basis is identified by OID tpBasis and indicates
+ -- parameters of type Pentanomial
+
+ tpBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 2 }
+
+ -- Trinomial basis representation of F2^m
+ -- Integer k for reduction polynomial xm + xk + 1
+
+ Trinomial ::= INTEGER
+
+ -- for pentanomial basis is identified by OID ppBasis and indicates
+ -- parameters of type Pentanomial
+
+ ppBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 3 }
+
+ -- Pentanomial basis representation of F2^m
+ -- reduction polynomial integers k1, k2, k3
+ -- f(x) = x**m + x**k3 + x**k2 + x**k1 + 1
+
+ Pentanomial ::= SEQUENCE {
+ k1 INTEGER,
+ k2 INTEGER,
+ k3 INTEGER }
+
+ -- The object identifiers gnBasis, tpBasis and ppBasis name
+ -- three kinds of basis for characteristic-two finite fields
+
+ FieldElement ::= OCTET STRING -- Finite field element
+
+ ECPoint ::= OCTET STRING -- Elliptic curve point
+
+ -- Elliptic Curve parameters may be specified explicitly,
+ -- specified implicitly through a "named curve", or
+ -- inherited from the CA
+
+ EcpkParameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve OBJECT IDENTIFIER,
+ implicitlyCA NULL }
+
+ ECParameters ::= SEQUENCE { -- Elliptic curve parameters
+ version ECPVer,
+ fieldID FieldID,
+ curve Curve,
+ base ECPoint, -- Base point G
+ order INTEGER, -- Order n of the base point
+ cofactor INTEGER OPTIONAL } -- The integer h = #E(Fq)/n
+
+ ECPVer ::= INTEGER {ecpVer1(1)}
+
+ Curve ::= SEQUENCE {
+ a FieldElement, -- Elliptic curve coefficient a
+ b FieldElement, -- Elliptic curve coefficient b
+ seed BIT STRING OPTIONAL }
+
+ id-publicKeyType OBJECT IDENTIFIER ::= { ansi-X9-62 keyType(2) }
+
+ id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
+
+ -- Named Elliptic Curves in ANSI X9.62.
+
+ ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
+
+ c-TwoCurve OBJECT IDENTIFIER ::= {
+ ellipticCurve characteristicTwo(0) }
+
+ c2pnb163v1 OBJECT IDENTIFIER ::= { c-TwoCurve 1 }
+ c2pnb163v2 OBJECT IDENTIFIER ::= { c-TwoCurve 2 }
+ c2pnb163v3 OBJECT IDENTIFIER ::= { c-TwoCurve 3 }
+ c2pnb176w1 OBJECT IDENTIFIER ::= { c-TwoCurve 4 }
+ c2tnb191v1 OBJECT IDENTIFIER ::= { c-TwoCurve 5 }
+ c2tnb191v2 OBJECT IDENTIFIER ::= { c-TwoCurve 6 }
+ c2tnb191v3 OBJECT IDENTIFIER ::= { c-TwoCurve 7 }
+ c2onb191v4 OBJECT IDENTIFIER ::= { c-TwoCurve 8 }
+ c2onb191v5 OBJECT IDENTIFIER ::= { c-TwoCurve 9 }
+ c2pnb208w1 OBJECT IDENTIFIER ::= { c-TwoCurve 10 }
+ c2tnb239v1 OBJECT IDENTIFIER ::= { c-TwoCurve 11 }
+ c2tnb239v2 OBJECT IDENTIFIER ::= { c-TwoCurve 12 }
+ c2tnb239v3 OBJECT IDENTIFIER ::= { c-TwoCurve 13 }
+ c2onb239v4 OBJECT IDENTIFIER ::= { c-TwoCurve 14 }
+ c2onb239v5 OBJECT IDENTIFIER ::= { c-TwoCurve 15 }
+ c2pnb272w1 OBJECT IDENTIFIER ::= { c-TwoCurve 16 }
+ c2pnb304w1 OBJECT IDENTIFIER ::= { c-TwoCurve 17 }
+ c2tnb359v1 OBJECT IDENTIFIER ::= { c-TwoCurve 18 }
+ c2pnb368w1 OBJECT IDENTIFIER ::= { c-TwoCurve 19 }
+ c2tnb431r1 OBJECT IDENTIFIER ::= { c-TwoCurve 20 }
+
+ primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
+
+ prime192v1 OBJECT IDENTIFIER ::= { primeCurve 1 }
+ prime192v2 OBJECT IDENTIFIER ::= { primeCurve 2 }
+ prime192v3 OBJECT IDENTIFIER ::= { primeCurve 3 }
+ prime239v1 OBJECT IDENTIFIER ::= { primeCurve 4 }
+ prime239v2 OBJECT IDENTIFIER ::= { primeCurve 5 }
+ prime239v3 OBJECT IDENTIFIER ::= { primeCurve 6 }
+ prime256v1 OBJECT IDENTIFIER ::= { primeCurve 7 }
+
+ END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit88.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit88.asn1
new file mode 100644
index 0000000000..7874679a38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit88.asn1
@@ -0,0 +1,619 @@
+PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+-- IMPORTS NONE --
+
+-- UNIVERSAL Types defined in 1993 and 1998 ASN.1
+-- and required by this specification
+
+-- UniversalString ::= [UNIVERSAL 28] IMPLICIT OCTET STRING
+ -- UniversalString is defined in ASN.1:1993
+
+-- BMPString ::= [UNIVERSAL 30] IMPLICIT OCTET STRING
+ -- BMPString is the subtype of UniversalString and models
+ -- the Basic Multilingual Plane of ISO/IEC/ITU 10646-1
+
+--UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+ -- The content of this type conforms to RFC 2279.
+
+-- PKIX specific OIDs
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for private certificate extensions
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ -- arc for policy qualifier types
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+ -- arc for extended key purpose OIDS
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ -- arc for access descriptors
+
+-- policyQualifierIds for Internet policy qualifiers
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- access descriptor definitions
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 }
+id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 }
+
+-- attribute data types
+
+Attribute ::= SEQUENCE {
+ type AttributeType,
+ values SET OF AttributeValue }
+ -- at least one value is required
+
+AttributeType ::= OBJECT IDENTIFIER
+
+AttributeValue ::= ANY
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type AttributeType,
+ value AttributeValue }
+
+-- suggested naming attributes: Definition of the following
+-- information object set may be augmented to meet local
+-- requirements. Note that deleting members of the set may
+-- prevent interoperability with conforming implementations.
+-- presented in pairs: the AttributeType followed by the
+-- type definition for the corresponding AttributeValue
+--Arc for standard naming attributes
+id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
+
+-- Naming attributes of type X520name
+
+id-at-name AttributeType ::= { id-at 41 }
+id-at-surname AttributeType ::= { id-at 4 }
+id-at-givenName AttributeType ::= { id-at 42 }
+id-at-initials AttributeType ::= { id-at 43 }
+id-at-generationQualifier AttributeType ::= { id-at 44 }
+
+X520name ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-name)),
+ printableString PrintableString (SIZE (1..ub-name)),
+ universalString UniversalString (SIZE (1..ub-name)),
+ utf8String UTF8String (SIZE (1..ub-name)),
+ bmpString BMPString (SIZE (1..ub-name)) }
+
+-- Naming attributes of type X520CommonName
+
+id-at-commonName AttributeType ::= { id-at 3 }
+
+X520CommonName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-common-name)),
+ printableString PrintableString (SIZE (1..ub-common-name)),
+ universalString UniversalString (SIZE (1..ub-common-name)),
+ utf8String UTF8String (SIZE (1..ub-common-name)),
+ bmpString BMPString (SIZE (1..ub-common-name)) }
+
+-- Naming attributes of type X520LocalityName
+
+id-at-localityName AttributeType ::= { id-at 7 }
+
+X520LocalityName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-locality-name)),
+ printableString PrintableString (SIZE (1..ub-locality-name)),
+ universalString UniversalString (SIZE (1..ub-locality-name)),
+ utf8String UTF8String (SIZE (1..ub-locality-name)),
+ bmpString BMPString (SIZE (1..ub-locality-name)) }
+
+-- Naming attributes of type X520StateOrProvinceName
+
+id-at-stateOrProvinceName AttributeType ::= { id-at 8 }
+
+X520StateOrProvinceName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-state-name)),
+ printableString PrintableString (SIZE (1..ub-state-name)),
+ universalString UniversalString (SIZE (1..ub-state-name)),
+ utf8String UTF8String (SIZE (1..ub-state-name)),
+ bmpString BMPString (SIZE(1..ub-state-name)) }
+
+-- Naming attributes of type X520OrganizationName
+
+id-at-organizationName AttributeType ::= { id-at 10 }
+
+X520OrganizationName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organization-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organization-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organization-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organization-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organization-name)) }
+
+-- Naming attributes of type X520OrganizationalUnitName
+
+id-at-organizationalUnitName AttributeType ::= { id-at 11 }
+
+X520OrganizationalUnitName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organizational-unit-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organizational-unit-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organizational-unit-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organizational-unit-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organizational-unit-name)) }
+
+-- Naming attributes of type X520Title
+
+id-at-title AttributeType ::= { id-at 12 }
+
+X520Title ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-title)),
+ printableString PrintableString (SIZE (1..ub-title)),
+ universalString UniversalString (SIZE (1..ub-title)),
+ utf8String UTF8String (SIZE (1..ub-title)),
+ bmpString BMPString (SIZE (1..ub-title)) }
+
+-- Naming attributes of type X520dnQualifier
+
+id-at-dnQualifier AttributeType ::= { id-at 46 }
+
+X520dnQualifier ::= PrintableString
+
+-- Naming attributes of type X520countryName (digraph from IS 3166)
+
+id-at-countryName AttributeType ::= { id-at 6 }
+
+X520countryName ::= PrintableString (SIZE (2))
+
+-- Naming attributes of type X520SerialNumber
+
+id-at-serialNumber AttributeType ::= { id-at 5 }
+
+X520SerialNumber ::= PrintableString (SIZE (1..ub-serial-number))
+
+-- Naming attributes of type X520Pseudonym
+
+id-at-pseudonym AttributeType ::= { id-at 65 }
+
+X520Pseudonym ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-pseudonym)),
+ printableString PrintableString (SIZE (1..ub-pseudonym)),
+ universalString UniversalString (SIZE (1..ub-pseudonym)),
+ utf8String UTF8String (SIZE (1..ub-pseudonym)),
+ bmpString BMPString (SIZE (1..ub-pseudonym)) }
+
+-- Naming attributes of type DomainComponent (from RFC 2247)
+
+id-domainComponent AttributeType ::=
+ { 0 9 2342 19200300 100 1 25 }
+
+DomainComponent ::= IA5String
+
+-- Legacy attributes
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+id-emailAddress AttributeType ::= { pkcs-9 1 }
+
+EmailAddress ::= IA5String (SIZE (1..ub-emailaddress-length))
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+-- Directory string type --
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+-- certificate and CRL specific structures begin here
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+UniqueIdentifier ::= BIT STRING
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING }
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+-- CRL structures
+
+CertificateList ::= SEQUENCE {
+ tbsCertList TBSCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertList ::= SEQUENCE {
+ version Version OPTIONAL,
+ -- if present, MUST be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, MUST be v2
+ } OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL }
+ -- if present, MUST be v2
+
+-- Version, Time, CertificateSerialNumber, and Extensions were
+-- defined earlier for use in the certificate structure
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+ -- contains a value of the type
+ -- registered for use with the
+ -- algorithm object identifier value
+
+-- X.400 address syntax starts here
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] IMPLICIT NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] IMPLICIT OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
+ OPTIONAL,
+ personal-name [5] IMPLICIT PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
+ OPTIONAL }
+ -- see also teletex-organizational-unit-names
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address -- see also extended-network-address
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE
+(1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+ -- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] IMPLICIT PrintableString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT PrintableString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+ -- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+ -- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
+ ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] IMPLICIT INTEGER
+ (0..ub-extension-attributes),
+ extension-attribute-value [1]
+ ANY DEFINED BY extension-attribute-type }
+
+-- Extension types and attribute values
+
+common-name INTEGER ::= 1
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name INTEGER ::= 2
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name INTEGER ::= 3
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name INTEGER ::= 4
+
+TeletexPersonalName ::= SET {
+ surname [0] IMPLICIT TeletexString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT TeletexString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT TeletexString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+
+teletex-organizational-unit-names INTEGER ::= 5
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name INTEGER ::= 7
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name INTEGER ::= 8
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE
+(ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code INTEGER ::= 9
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name INTEGER ::= 10
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number INTEGER ::= 11
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components INTEGER ::= 12
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name INTEGER ::= 13
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name INTEGER ::= 14
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components INTEGER ::= 15
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address INTEGER ::= 16
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
+ OF PrintableString (SIZE (1..ub-pds-parameter-length))
+ OPTIONAL,
+ teletex-string TeletexString
+ (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address INTEGER ::= 17
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address INTEGER ::= 18
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address INTEGER ::= 19
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name INTEGER ::= 20
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes INTEGER ::= 21
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address INTEGER ::= 22
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL },
+ psap-address [0] IMPLICIT PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
+
+terminal-type INTEGER ::= 23
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes INTEGER ::= 6
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds MUST be regarded as mandatory
+-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
+-- Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-serial-number INTEGER ::= 64
+ub-match INTEGER ::= 128
+ub-emailaddress-length INTEGER ::= 128
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-pseudonym INTEGER ::= 128
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on string types, such as TeletexString, are
+-- measured in characters. Excepting PrintableString or IA5String, a
+-- significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified
+-- upper bound, whichever is the larger, should be allowed for
+-- TeletexString. For UTF8String or UniversalString at least four
+-- times the upper bound should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit93.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit93.asn1
new file mode 100644
index 0000000000..714a682160
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Explicit93.asn1
@@ -0,0 +1,779 @@
+PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ authorityKeyIdentifier, subjectKeyIdentifier, keyUsage,
+ extendedKeyUsage, privateKeyUsagePeriod, certificatePolicies,
+ policyMappings, subjectAltName, issuerAltName,
+ basicConstraints, nameConstraints, policyConstraints,
+ cRLDistributionPoints, subjectDirectoryAttributes,
+ cRLNumber, reasonCode, instructionCode, invalidityDate,
+ issuingDistributionPoint, certificateIssuer,
+ deltaCRLIndicator, authorityInfoAccess, id-ce
+ FROM PKIX1Implicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-implicit-93(4)} ;
+
+--
+ -- Locally defined OIDs --
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+-- arc for private certificate extensions
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for policy qualifier types
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+-- arc for extended key purpose OIDS
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+-- arc for access descriptors
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+
+-- policyQualifierIds for Internet policy qualifiers
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- based on excerpts from AuthenticationFramework
+-- {joint-iso-ccitt ds(5) modules(1) authenticationFramework(7) 2}
+
+ -- Public Key Certificate --
+
+Certificate ::= SIGNED { SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ ---if present, version shall be v2 or v3--
+ extensions [3] Extensions OPTIONAL
+ --if present, version shall be v3--} }
+
+UniqueIdentifier ::= BIT STRING
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+SubjectPublicKeyInfo ::= SEQUENCE{
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING}
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal certificate extensions.
+
+ExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier |
+ keyUsage |
+ extendedKeyUsage |
+ privateKeyUsagePeriod |
+ certificatePolicies |
+ policyMappings |
+ subjectAltName |
+ issuerAltName |
+ basicConstraints |
+ nameConstraints |
+ policyConstraints |
+ cRLDistributionPoints |
+ subjectDirectoryAttributes |
+ authorityInfoAccess }
+
+EXTENSION ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType }
+WITH SYNTAX {
+ SYNTAX &ExtnType
+ IDENTIFIED BY &id }
+
+ -- Certificate Revocation List --
+
+CertificateList ::= SIGNED { SEQUENCE {
+ version Version OPTIONAL, -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions EntryExtensions OPTIONAL } OPTIONAL,
+ crlExtensions [0] CRLExtensions OPTIONAL }}
+
+CRLExtensions ::= SEQUENCE SIZE (1..MAX) OF CRLExtension
+
+CRLExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({CRLExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL extensions.
+
+CRLExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+ issuerAltName |
+ cRLNumber |
+ deltaCRLIndicator |
+ issuingDistributionPoint }
+
+-- EXTENSION defined above for certificates
+
+EntryExtensions ::= SEQUENCE SIZE (1..MAX) OF EntryExtension
+
+EntryExtension ::= SEQUENCE {
+ extnId EXTENSION.&id ({EntryExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+ -- contains a DER encoding of a value of type
+ -- &ExtnType for the
+ -- extension object identified by extnId --
+
+-- The following information object set is defined to constrain the
+-- set of legal CRL entry extensions.
+
+EntryExtensionSet EXTENSION ::= { reasonCode |
+ instructionCode |
+ invalidityDate |
+ certificateIssuer }
+
+ -- information object classes used in the defintion --
+ -- of certificates and CRLs --
+
+-- Parameterized Type SIGNED --
+
+ SIGNED { ToBeSigned } ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ algorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+-- Definition of AlgorithmIdentifier
+-- ISO definition was:
+--
+-- AlgorithmIdentifier ::= SEQUENCE {
+-- algorithm ALGORITHM.&id({SupportedAlgorithms}),
+-- parameters ALGORITHM.&Type({SupportedAlgorithms}
+-- { @algorithm}) OPTIONAL }
+-- Definition of ALGORITHM
+-- ALGORITHM ::= TYPE-IDENTIFIER
+
+-- The following PKIX definition replaces the X.509 definition
+--
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM-ID.&id({SupportedAlgorithms}),
+ parameters ALGORITHM-ID.&Type({SupportedAlgorithms}
+ { @algorithm}) OPTIONAL }
+
+-- Definition of ALGORITHM-ID
+
+ ALGORITHM-ID ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL
+ }
+ WITH SYNTAX { OID &id [PARMS &Type] }
+
+-- The definition of SupportedAlgorithms may be modified as this
+-- document does not specify a mandatory algorithm set. In addition,
+-- the set is specified as extensible, since additional algorithms
+-- may be supported
+
+SupportedAlgorithms ALGORITHM-ID ::= { ..., -- extensible
+ rsaPublicKey |
+ rsaSHA-1 |
+ rsaMD5 |
+ rsaMD2 |
+ dssPublicKey |
+ dsaSHA-1 |
+ dhPublicKey }
+
+-- OIDs and parameter structures for ALGORITHM-IDs used
+-- in this specification
+
+rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }
+
+rsaSHA-1 ALGORITHM-ID ::= { OID sha1WithRSAEncryption PARMS NULL }
+
+rsaMD5 ALGORITHM-ID ::= { OID md5WithRSAEncryption PARMS NULL }
+
+rsaMD2 ALGORITHM-ID ::= { OID md2WithRSAEncryption PARMS NULL }
+
+dssPublicKey ALGORITHM-ID ::= { OID id-dsa PARMS Dss-Parms }
+
+dsaSHA-1 ALGORITHM-ID ::= { OID id-dsa-with-sha1 }
+
+dhPublicKey ALGORITHM-ID ::= {OID dhpublicnumber PARMS DomainParameters}
+
+-- algorithm identifiers and parameter structures
+
+pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
+
+DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- The ASN.1 in this section supports the Name type
+ -- and the directoryAttribute extension
+
+-- attribute data types --
+
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type
+ ({SupportedAttributes}{@type})}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id ({SupportedAttributes}),
+ value ATTRIBUTE.&Type ({SupportedAttributes}{@type})}
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+ID ::= OBJECT IDENTIFIER
+
+-- ATTRIBUTE information object class specification
+-- Note: This has been greatly simplified for PKIX !!
+
+ATTRIBUTE ::= CLASS {
+ &Type,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ WITH SYNTAX &Type ID &id }
+
+-- suggested naming attributes
+-- Definition of the following information object set may be
+-- augmented to meet local requirements. Note that deleting
+-- members of the set may prevent interoperability with
+-- conforming implementations.
+
+SupportedAttributes ATTRIBUTE ::= {
+ name | commonName | surname | givenName | initials |
+ generationQualifier | dnQualifier | countryName |
+ localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | pkcs9email }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString { ub-name }
+ ID id-at-name }
+
+commonName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName }
+
+surname ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName }
+
+initials ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials }
+
+generationQualifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier}
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ ID id-at-dnQualifier }
+
+
+countryName ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString (SIZE (2))
+ -- IS 3166 codes only
+ ID id-at-countryName }
+
+localityName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName }
+
+stateOrProvinceName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName }
+
+organizationName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName }
+
+organizationalUnitName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName }
+
+title ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title }
+
+ -- Legacy attributes
+
+pkcs9email ATTRIBUTE ::= {
+ WITH SYNTAX PHGString
+ ID emailAddress }
+
+PHGString ::= IA5String (SIZE(1..ub-emailaddress-length))
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+emailAddress OBJECT IDENTIFIER ::= { pkcs-9 1 }
+
+ -- object identifiers for Name type and directory attribute support
+
+-- Object identifier assignments --
+
+id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
+
+-- Attributes --
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+-- Directory string type, used extensively in Name types --
+
+DirectoryString { INTEGER:maxSize } ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE(1..maxSize)),
+ utf8String UTF8String (SIZE(1..maxSize))
+ }
+
+ -- End of ASN.1 for Name type and directory attribute support --
+
+ -- The ASN.1 in this section supports X.400 style names --
+ -- for implementations that use the x400Address component --
+ -- of GeneralName. --
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- The OR-address is semantically absent from the OR-name if the
+-- built-in-standard-attribute sequence is empty and the
+-- built-in-domain-defined-attributes and extension-attributes are
+-- both omitted.
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names -- }
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address
+-- see also extended-network-address
+
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+-- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString (SIZE (1..ub-surname-length)),
+ given-name [1] PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] PrintableString
+ (SIZE (1..ub-generation-qualifier-length)) OPTIONAL}
+-- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+-- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes)
+ OF ExtensionAttribute
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
+ ({ExtensionAttributeTable}),
+ extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable} {@extension-attribute-type}) }
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER (0..ub-extension-attributes) UNIQUE,
+ &Type }
+WITH SYNTAX {&Type IDENTIFIED BY &id}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= {
+ common-name |
+ teletex-common-name |
+ teletex-organization-name |
+ teletex-personal-name |
+ teletex-organizational-unit-names |
+ teletex-domain-defined-attributes |
+ pds-name |
+ physical-delivery-country-name |
+ postal-code |
+ physical-delivery-office-name |
+ physical-delivery-office-number |
+ extension-OR-address-components |
+ physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ unformatted-postal-address |
+ street-address |
+ post-office-box-address |
+ poste-restante-address |
+ unique-postal-name |
+ local-postal-attributes |
+ extended-network-address |
+ terminal-type }
+
+-- Extension Standard Attributes
+
+common-name EXTENSION-ATTRIBUTE ::= {CommonName IDENTIFIED BY 1}
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::=
+ {TeletexCommonName IDENTIFIED BY 2}
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationName IDENTIFIED BY 3}
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::=
+ {TeletexPersonalName IDENTIFIED BY 4}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString (SIZE (1..ub-surname-length)),
+ given-name [1] TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] TeletexString (SIZE
+ (1..ub-generation-qualifier-length)) OPTIONAL }
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::=
+ {TeletexOrganizationalUnitNames IDENTIFIED BY 5}
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName IDENTIFIED BY 7}
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryCountryName IDENTIFIED BY 8}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode IDENTIFIED BY 9}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeName IDENTIFIED BY 10}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOfficeNumber IDENTIFIED BY 11}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionORAddressComponents IDENTIFIED BY 12}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryPersonalName IDENTIFIED BY 13}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+ {PhysicalDeliveryOrganizationName IDENTIFIED BY 14}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+ {ExtensionPhysicalDeliveryAddressComponents IDENTIFIED BY 15}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::=
+ {UnformattedPostalAddress IDENTIFIED BY 16}
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString (SIZE
+ (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address EXTENSION-ATTRIBUTE ::=
+ {StreetAddress IDENTIFIED BY 17}
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::=
+ {PostOfficeBoxAddress IDENTIFIED BY 18}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::=
+ {PosteRestanteAddress IDENTIFIED BY 19}
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::=
+ {UniquePostalName IDENTIFIED BY 20}
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::=
+ {LocalPostalAttributes IDENTIFIED BY 21}
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address EXTENSION-ATTRIBUTE ::=
+ {ExtendedNetworkAddress IDENTIFIED BY 22}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] NumericString
+ (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL},
+ psap-address [0] PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING}
+
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::=
+ {TeletexDomainDefinedAttributes IDENTIFIED BY 6}
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds
+-- shall be regarded as mandatory
+-- from Annex B of ITU-T X.411
+-- Reference Definition of MTS Parameter Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-match INTEGER ::= 128
+
+ub-emailaddress-length INTEGER ::= 128
+
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on TeletexString are measured in characters.
+-- A significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified upper
+-- bound, whichever is the larger, should be allowed.
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit88.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit88.asn1
new file mode 100644
index 0000000000..47362e9061
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit88.asn1
@@ -0,0 +1,349 @@
+PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-kp, id-qt-unotice, id-qt-cps,
+ -- delete following line if "new" types are supported --
+ -- BMPString,
+ -- UTF8String, end "new" types
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, Attribute, DirectoryString
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit(18) };
+
+
+-- ISO arc for standard certificate and CRL extensions
+
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+-- authority key identifier OID and syntax
+
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ -- authorityCertIssuer and authorityCertSerialNumber MUST both
+ -- be present or both be absent
+
+KeyIdentifier ::= OCTET STRING
+
+-- subject key identifier OID and syntax
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+-- key usage extension OID and syntax
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+-- private key usage period extension OID and syntax
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ -- either notBefore or notAfter MUST be present
+
+-- certificate policies extension OID and syntax
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
+
+anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
+
+CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+-- Implementations that recognize additional policy qualifiers MUST
+-- augment the following definition for PolicyQualifierId
+
+PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+-- CPS pointer qualifier
+
+CPSuri ::= IA5String
+
+-- user notice qualifier
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+-- policy mapping extension OID and syntax
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
+
+PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- subject alternative name extension OID and syntax
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
+
+SubjectAltName ::= GeneralNames
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] AnotherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
+-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
+
+AnotherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+-- issuer alternative name extension OID and syntax
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
+
+IssuerAltName ::= GeneralNames
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
+
+SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- basic constraints extension OID and syntax
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
+
+BasicConstraints ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+-- name constraints extension OID and syntax
+
+id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
+
+NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+-- policy constraints extension OID and syntax
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
+
+PolicyConstraints ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- CRL distribution points extension OID and syntax
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ privilegeWithdrawn (7),
+ aACompromise (8) }
+
+-- extended key usage extension OID and syntax
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- permit unspecified key uses
+
+anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
+
+-- extended key purpose OIDs
+
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
+
+-- inhibit any policy OID and syntax
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
+
+InhibitAnyPolicy ::= SkipCerts
+
+-- freshest (delta)CRL extension OID and syntax
+
+id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
+
+FreshestCRL ::= CRLDistributionPoints
+
+-- authority info access
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+-- subject info access
+
+id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
+
+SubjectInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+-- CRL number extension OID and syntax
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+-- issuing distribution point extension OID and syntax
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
+
+IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
+
+BaseCRLNumber ::= CRLNumber
+
+-- CRL reasons extension OID and syntax
+
+id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10) }
+
+-- certificate issuer CRL entry extension OID and syntax
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
+
+CertificateIssuer ::= GeneralNames
+
+-- hold instruction extension OID and syntax
+
+id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
+
+HoldInstructionCode ::= OBJECT IDENTIFIER
+
+-- ANSI x9 holdinstructions
+
+-- ANSI x9 arc holdinstruction arc
+
+holdInstruction OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+
+id-holdinstruction-none OBJECT IDENTIFIER ::=
+ {holdInstruction 1} -- deprecated
+
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
+ {holdInstruction 2}
+
+id-holdinstruction-reject OBJECT IDENTIFIER ::=
+ {holdInstruction 3}
+
+-- invalidity date CRL entry extension OID and syntax
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
+
+InvalidityDate ::= GeneralizedTime
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit93.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit93.asn1
new file mode 100644
index 0000000000..c90b5eb199
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIX1Implicit93.asn1
@@ -0,0 +1,357 @@
+PKIX1Implicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit-93(4)}
+
+DEFINITIONS IMPLICIT TAGS::=
+
+BEGIN
+
+--EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-qt, id-kp, id-ad, id-qt-unotice,
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, CertificateList,
+ AlgorithmIdentifier, ub-name, DirectoryString,
+ Attribute, EXTENSION
+ FROM PKIX1Explicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit-93(3)};
+
+-- Key and policy information extensions --
+
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ ( WITH COMPONENTS {..., authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT} |
+ WITH COMPONENTS {..., authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT} )
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {
+ SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+extendedKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage }
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- PKIX-defined extended key purpose OIDs
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-ipsecEndSystem OBJECT IDENTIFIER ::= { id-kp 5 }
+id-kp-ipsecTunnel OBJECT IDENTIFIER ::= { id-kp 6 }
+id-kp-ipsecUser OBJECT IDENTIFIER ::= { id-kp 7 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY { id-ce-privateKeyUsagePeriod } }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ ( WITH COMPONENTS {..., notBefore PRESENT} |
+ WITH COMPONENTS {..., notAfter PRESENT} )
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies }
+
+CertificatePoliciesSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id
+ ({SupportedPolicyQualifiers}),
+ qualifier CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}
+ {@policyQualifierId})OPTIONAL }
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::= { noticeToUser |
+ pointerToCPS }
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL }
+WITH SYNTAX {
+ POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier] }
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings }
+
+PolicyMappingsSyntax ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- Certificate subject and certificate issuer attributes extensions --
+
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName }
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString {ub-name} OPTIONAL,
+ partyName [1] DirectoryString {ub-name} }
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName }
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes }
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions --
+
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints }
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraints }
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints }
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- Basic CRL extensions --
+
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8) }
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode }
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+-- holdinstructions described in this specification, from ANSI x9
+
+-- ANSI x9 arc holdinstruction arc
+holdInstruction OBJECT IDENTIFIER ::= {
+ joint-iso-ccitt(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+id-holdinstruction-none OBJECT IDENTIFIER ::= {holdInstruction 1}
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::= {holdInstruction 2}
+id-holdinstruction-reject OBJECT IDENTIFIER ::= {holdInstruction 3}
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate }
+
+-- CRL distribution points and delta-CRL extensions --
+
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints }
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ caCompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6) }
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint }
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE }
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer }
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator }
+
+BaseCRLNumber ::= CRLNumber
+
+-- Object identifier assignments for ISO certificate extensions --
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+id-ce-nameConstraints OBJECT IDENTIFIER ::= {id-ce 30}
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 35}
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+-- PKIX 1 extensions
+
+authorityInfoAccess EXTENSION ::= {
+ SYNTAX AuthorityInfoAccessSyntax
+ IDENTIFIED BY id-pe-authorityInfoAccess }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+
+-- PKIX policy qualifier definitions
+
+noticeToUser CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-cps QUALIFIER-TYPE CPSuri}
+
+pointerToCPS CERT-POLICY-QUALIFIER ::= {
+ POLICY-QUALIFIER-ID id-qt-unotice QUALIFIER-TYPE UserNotice}
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+
+CPSuri ::= IA5String
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIXAttributeCertificate.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIXAttributeCertificate.asn1
new file mode 100644
index 0000000000..2d0997fdfc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PKIXAttributeCertificate.asn1
@@ -0,0 +1,189 @@
+ PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-attribute-cert(12)}
+
+ DEFINITIONS IMPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
+ -- PKIX Certificate Extensions
+ Attribute, AlgorithmIdentifier, CertificateSerialNumber,
+ Extensions, UniqueIdentifier,
+ id-pkix, id-pe, id-kp, id-ad, id-at
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
+
+ GeneralName, GeneralNames, id-ce
+ FROM PKIX1Implicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
+
+ id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
+ id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
+ id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
+ id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
+
+ id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
+ id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
+ id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
+ id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
+ id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
+ -- { id-aca 5 } is reserved
+ id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
+
+ id-at-role OBJECT IDENTIFIER ::= { id-at 72}
+ id-at-clearance OBJECT IDENTIFIER ::=
+ { joint-iso-ccitt(2) ds(5) module(1)
+ selected-attribute-types(5) clearance (55) }
+
+ -- Uncomment this if using a 1988 level ASN.1 compiler
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+
+ AttributeCertificate ::= SEQUENCE {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+ AttributeCertificateInfo ::= SEQUENCE {
+ version AttCertVersion, -- version is v2
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= INTEGER { v2(1) }
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the
+ -- holder, for example, an executable
+ }
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- MUST NOT be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+ V2Form ::= SEQUENCE {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST
+ -- NOT be present in this profile
+ }
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+ }
+
+ AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+ IetfAttrSyntax ::= SEQUENCE {
+ policyAuthority[0] GeneralNames OPTIONAL,
+ values SEQUENCE OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+ SvceAuthInfo ::= SEQUENCE {
+ service GeneralName,
+ ident GeneralName,
+ authInfo OCTET STRING OPTIONAL
+ }
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+ Clearance ::= SEQUENCE {
+ policyId [0] OBJECT IDENTIFIER,
+ classList [1] ClassList DEFAULT {unclassified},
+ securityCategories
+ [2] SET OF SecurityCategory OPTIONAL
+ }
+
+ ClassList ::= BIT STRING {
+ unmarked (0),
+ unclassified (1),
+ restricted (2),
+ confidential (3),
+ secret (4),
+ topSecret (5)
+ }
+
+ SecurityCategory ::= SEQUENCE {
+ type [0] IMPLICIT OBJECT IDENTIFIER,
+ value [1] ANY DEFINED BY type
+ }
+
+ AAControls ::= SEQUENCE {
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL,
+ permittedAttrs [0] AttrSpec OPTIONAL,
+ excludedAttrs [1] AttrSpec OPTIONAL,
+ permitUnSpecified BOOLEAN DEFAULT TRUE
+ }
+
+ AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
+
+ ACClearAttrs ::= SEQUENCE {
+ acIssuer GeneralName,
+ acSerial INTEGER,
+ attrs SEQUENCE OF Attribute
+ }
+
+ ProxyInfo ::= SEQUENCE OF Targets
+
+ END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Param.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Param.asn1
new file mode 100644
index 0000000000..b2987a7885
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Param.asn1
@@ -0,0 +1,93 @@
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+Param -- { object identifier to be allocated }--
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- A
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+RANAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..10)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel BOOLEAN,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+obj1 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-one
+ CRITICALITY ignore
+ EXTENSION INTEGER
+ PRESENCE optional
+}
+
+obj2 RANAP-PROTOCOL-EXTENSION ::= {
+ ID id-two
+ CRITICALITY ignore
+ EXTENSION BOOLEAN
+ PRESENCE optional
+}
+
+id-one INTEGER ::= 1
+id-two INTEGER ::= 2
+
+-- The following code for test of OTP-4242, ValueFromObject
+-- Similar use as in the Camel spec
+
+CONFIG-DATA ::= CLASS {
+ &minLevel INTEGER,
+ &maxLevel INTEGER
+}
+WITH SYNTAX {
+ MINLEVEL &minLevel
+ MAXLEVEL &maxLevel
+}
+
+config-data CONFIG-DATA ::= {MINLEVEL 1 MAXLEVEL 3}
+
+OS1 ::= OCTET STRING (SIZE (config-data.&minLevel .. config-data.&maxLevel))
+
+POS2 {CONFIG-DATA:obj} ::= OCTET STRING (SIZE(obj.&minLevel .. obj.&maxLevel))
+
+OS2 ::= POS2 {config-data}
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ParamBasic.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ParamBasic.asn1
new file mode 100644
index 0000000000..491bdf8956
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ParamBasic.asn1
@@ -0,0 +1,23 @@
+ParamBasic DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+General1{T,T:val} ::= SEQUENCE {
+ number INTEGER,
+ string T DEFAULT val
+}
+
+T11 ::= General1{PrintableString,"hej"}
+
+T12 ::= General1{BIT STRING,'1010'B}
+
+General2{T} ::= SEQUENCE {
+ number INTEGER,
+ string T
+}
+
+T21 ::= General2{PrintableString}
+
+T22 ::= General2{BIT STRING}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn
new file mode 100644
index 0000000000..aad3c4d833
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn
@@ -0,0 +1,19 @@
+PartialDecMyHTTP DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+GetRequest ::= SEQUENCE {
+ header-only BOOLEAN,
+ lock BOOLEAN,
+ accept-types AcceptTypes,
+ url Url, ...
+}
+
+AcceptTypes ::= SET {
+ standards BIT STRING {html(0), plain-text(1), gif(2), jpeg(3)} (SIZE (4)) OPTIONAL,
+ others SEQUENCE OF VisibleString (SIZE (4)) OPTIONAL
+}
+
+Url ::= VisibleString (FROM ("a".."z"|"A".."Z"|"0".."9"| "./-_~%#"))
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn1config
new file mode 100644
index 0000000000..bafd7f46ac
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecMyHTTP.asn1config
@@ -0,0 +1,3 @@
+{exclusive_decode,{'PartialDecMyHTTP',
+ [{decode_GetRequest_incomplete,
+ ['GetRequest',[{'accept-types',[{others,parts}]}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn
new file mode 100644
index 0000000000..17844f12b9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn
@@ -0,0 +1,34 @@
+PartialDecSeq DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b [0] B DEFAULT {a 12, b TRUE}
+}
+
+C ::= [11] EXPLICIT D
+B ::= [12] C
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+F ::= CHOICE {
+ fa INTEGER,
+ fb E --161
+}
+
+E ::= SEQUENCE {
+ a INTEGER, -- matched
+ b SEQUENCE OF D, -- matched value of component a of first D in E_b
+ c BOOLEAN OPTIONAL,
+ d CHOICE {
+ da SEQUENCE OF A,
+ db INTEGER,
+ dc [3] SET {dca INTEGER,dcb BOOLEAN, dcc SEQUENCE{dcca INTEGER,dccb INTEGER}}
+ }
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn1config
new file mode 100644
index 0000000000..19fa3c990e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq.asn1config
@@ -0,0 +1,22 @@
+{selective_decode,{'PartialDecSeq',
+ [{selected_decode_F1,['F',fb,b,[1],a]},
+ {selected_decode_F2,['F',fb,b]},
+ {selected_decode_F3,['F',fb,b,[1]]},
+ {selected_decode_F4,['F',fb,d,da,[1],b,a]},
+ {selected_decode_E1,['E',d,dc,dcc,dcca]}]}}.
+%% partial_incomplete_decode tuplen inneh�ller tv� element. Den
+%% f�rsta �r bara en nyckel den andra �r en tupel med modulnamnet i
+%% en tupel {module,Name} och det andra elementet �r en lista av tupler:
+%% D�r varje tupel beskriver en partiell ofullst�ndig dekod. F�rsta
+%% elementet i den tupeln �r namnet p� funktionen som ska g�ra den
+%% partiella dekodningen. Det andra elementet �r en lista av typnamn/
+%% komponentnamn som �r en sekvens (path) till de element som ej skall
+%% avkodas.
+{exclusive_decode,{'PartialDecSeq',
+ [{decode_F_fb_incomplete,['F',[{fb,[{b,parts},{d,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]},
+ {decode_F_fb_exclusive2,['F',[{fb,[{b,parts},{d,[{da,parts}]}]}]]}, {decode_F_fb_exclusive3,['F',[{fb,[{b,parts},{d,[{da,parts},{dc,[{dcc,undecoded}]}]}]}]]}]}}.
+{module_name,'Seq.asn1'}.
+{compile_options,[ber_bin,optimize,debug_info]}.
+{multifile_compile,['M1.asn','M2.asn']}.
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn
new file mode 100644
index 0000000000..2e77d250d2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn
@@ -0,0 +1,29 @@
+PartialDecSeq2 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+B ::= CHOICE {
+ a INTEGER,
+ b SEQUENCE {aa INTEGER, ba INTEGER},
+ c S
+}
+
+S ::= SEQUENCE {
+ a BOOLEAN,
+ b BOOLEAN
+}
+
+A ::= SEQUENCE {
+ a INTEGER DEFAULT 15,
+ b B DEFAULT b:{aa 13, ba 14},
+ c CHOICE {a INTEGER,b SEQUENCE{a BOOLEAN, b BOOLEAN}} DEFAULT b:{a TRUE, b FALSE}
+}
+
+C ::= D
+
+D ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn1config
new file mode 100644
index 0000000000..d9967d9958
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq2.asn1config
@@ -0,0 +1,4 @@
+%{partial_decode,{{module,'Seq2'},['F',fb,b,[1],a]}}.
+{exclusive_decode,{'PartialDecSeq2',
+ [{decode_A_c_b_incomplete,['A',[{c,[{a,undecoded},{b,undecoded}]}]]},
+ {decode_D_incomplete,['D',[{a,undecoded}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn
new file mode 100644
index 0000000000..3b530733ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn
@@ -0,0 +1,45 @@
+PartialDecSeq3 DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+S1 ::= SEQUENCE {
+ a INTEGER,
+ b S2 OPTIONAL,
+ c C1,
+ d SO1
+}
+
+S2 ::= SEQUENCE {
+ a BOOLEAN,
+ b INTEGER,
+ c SEQUENCE OF S3,
+ ...
+}
+
+C1 ::= CHOICE {
+ a SEQUENCE OF S3,
+ b SEQUENCE {a INTEGER, b BOOLEAN, c S4}
+}
+
+S3 ::= SEQUENCE {
+ first INTEGER,
+ second PrintableString,
+ third OCTET STRING (SIZE(2..100)),
+ fourth BIT STRING {one(0),two(1),three(2),four(3),five(4),six(5)}(SIZE(1..6)),
+ ...
+}
+
+S4 ::= SET {
+ name Name,
+ title VisibleString
+}
+
+Name ::= SEQUENCE {
+ givenName VisibleString,
+ initial VisibleString,
+ familyName VisibleString
+}
+
+SO1 ::= SEQUENCE (SIZE(2..6)) OF Name
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn1config
new file mode 100644
index 0000000000..44d22aa1d4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PartialDecSeq3.asn1config
@@ -0,0 +1,2 @@
+{exclusive_decode,{'PartialDecSeq3',
+ [{decode_S1_incomplete,['S1',[{b,[{c,parts}]},{c,[{a,parts}]},{d,parts}]]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Pattern.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/Pattern.asn
new file mode 100644
index 0000000000..730b4ba32a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Pattern.asn
@@ -0,0 +1,8 @@
+Pattern DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+DateAndTime ::= VisibleString (PATTERN "\d#2/\d#2/\d#4-\d#2:\d#2")
+-- DD/MM/YYY-HH:MM
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Person.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Person.py
new file mode 100644
index 0000000000..60c1e06391
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Person.py
@@ -0,0 +1,10 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Prim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Prim.asn1
new file mode 100644
index 0000000000..1a905988f5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Prim.asn1
@@ -0,0 +1,32 @@
+Prim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bool ::= BOOLEAN
+ BoolCon ::= [20] BOOLEAN
+ BoolPri ::= [PRIVATE 21] BOOLEAN
+ BoolApp ::= [APPLICATION 22] BOOLEAN
+ BoolExpCon ::= [30] EXPLICIT BOOLEAN
+ BoolExpPri ::= [PRIVATE 31] EXPLICIT BOOLEAN
+ BoolExpApp ::= [APPLICATION 32] EXPLICIT BOOLEAN
+
+ Int ::= INTEGER
+ IntCon ::= [40] INTEGER
+ IntPri ::= [PRIVATE 41] INTEGER
+ IntApp ::= [APPLICATION 42] INTEGER
+ IntExpCon ::= [50] EXPLICIT INTEGER
+ IntExpPri ::= [PRIVATE 51] EXPLICIT INTEGER
+ IntExpApp ::= [APPLICATION 52] EXPLICIT INTEGER
+
+ IntEnum ::= INTEGER {first(1),last(31)}
+
+ Enum ::= ENUMERATED {monday(1),tuesday(2),wednesday(3),thursday(4),
+ friday(5),saturday(6),sunday(7)}
+
+ ObjId ::= OBJECT IDENTIFIER
+
+ RelOid ::= RELATIVE-OID
+
+ Null ::= NULL
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimExternal.asn1
new file mode 100644
index 0000000000..2db685896d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimExternal.asn1
@@ -0,0 +1,39 @@
+PrimExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XNT, XImp, XExp FROM External;
+
+
+
+NT ::= OCTET STRING
+Imp ::= [1] OCTET STRING
+Exp ::= [2] EXPLICIT OCTET STRING
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XNT
+XImpNT ::= [3] XNT
+XExpNT ::= [4] EXPLICIT XNT
+
+XNTImp ::= XImp
+XImpImp ::= [5] XImp
+XExpImp ::= [6] EXPLICIT XImp
+
+XNTExp ::= XExp
+XImpExp ::= [7] XExp
+XExpExp ::= [8] EXPLICIT XExp
+
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimStrings.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimStrings.asn1
new file mode 100644
index 0000000000..d287840f30
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/PrimStrings.asn1
@@ -0,0 +1,97 @@
+PrimStrings DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+ Bs1 ::= BIT STRING
+ Bs2 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (7))
+ Bs3 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..7))
+ Bs4 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs5 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..32))
+ Bs6 ::= BIT STRING {su(0), mo(17), tu(2), we(3), th(4), fr(5), sa(6)} (SIZE (16..32))
+ Bs7 ::= BIT STRING (SIZE (24))
+ BsPri ::= [PRIVATE 61] BIT STRING
+ BsExpPri ::= [PRIVATE 61] EXPLICIT BIT STRING
+ ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+
+ TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+ --TestS is to test OTP-4353. See also x691 15.3 and x680 21.7
+ TestS ::= BIT STRING {a(0),b(1)} (SIZE (3..8))
+
+ -- OTP-5932
+ BSMAX ::= BIT STRING (SIZE (5..MAX))
+
+ -- OTP-7602
+
+BS255 ::= BIT STRING (SIZE (255))
+
+BS256 ::= BIT STRING (SIZE (256))
+
+BS1024 ::= BIT STRING (SIZE (1024))
+
+
+
+ Os ::= OCTET STRING
+ OsCon ::= [60] OCTET STRING
+ OsPri ::= [PRIVATE 61] OCTET STRING
+ OsApp ::= [APPLICATION 62] OCTET STRING
+ OsExpCon ::= [60] EXPLICIT OCTET STRING
+ OsExpPri ::= [PRIVATE 61] EXPLICIT OCTET STRING
+ OsExpApp ::= [APPLICATION 62] EXPLICIT OCTET STRING
+
+ Ns ::= NumericString
+ NsCon ::= [70] NumericString
+ NsExpCon ::= [71] EXPLICIT NumericString
+
+ Ps ::= PrintableString
+
+ Ts ::= TeletexString
+
+ Vxs ::= VideotexString
+
+ Vis ::= VisibleString
+
+ IA5 ::= IA5String
+
+ Grs ::= GraphicString
+
+ ODesc ::= ObjectDescriptor
+
+ ODescSeq ::= SEQUENCE {
+ o ObjectDescriptor OPTIONAL,
+ i INTEGER
+ }
+
+ Ges ::= GeneralString
+
+ Us ::= UniversalString
+ UsCon ::= [70] UniversalString
+ UsExpCon ::= [71] EXPLICIT UniversalString
+
+ BMP ::= BMPString
+
+ Gt ::= GeneralizedTime
+
+ UTC ::= UTCTime
+
+ UTF ::= UTF8String
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-CommonDataTypes.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-CommonDataTypes.asn1
new file mode 100644
index 0000000000..ff5357f000
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-CommonDataTypes.asn1
@@ -0,0 +1,45 @@
+-- RANAP-CommonDataTypes.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.5 Common Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+RANAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-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, outcome }
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Constants.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Constants.asn1
new file mode 100644
index 0000000000..c8df218b29
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Constants.asn1
@@ -0,0 +1,355 @@
+-- RANAP-Constants.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.6 Constant Definitions
+--
+-- $Id$
+--
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+RANAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+id-RAB-ModifyRequest INTEGER ::= 29
+id-LocationRelatedData INTEGER ::= 30
+id-InformationTransfer INTEGER ::= 31
+id-UESpecificInformation INTEGER ::= 32
+id-UplinkInformationExchange INTEGER ::= 33
+id-DirectInformationTransfer INTEGER ::= 34
+id-MBMSSessionStart INTEGER ::= 35
+id-MBMSSessionUpdate INTEGER ::= 36
+id-MBMSSessionStop INTEGER ::= 37
+id-MBMSUELinking INTEGER ::= 38
+id-MBMSRegistration INTEGER ::= 39
+id-MBMSCNDe-Registration-Procedure INTEGER ::= 40
+id-MBMSRABEstablishmentIndication INTEGER ::= 41
+id-MBMSRABRelease INTEGER ::= 42
+id-enhancedRelocationComplete INTEGER ::= 43
+id-enhancedRelocationCompleteConfirm INTEGER ::= 44
+id-RANAPenhancedRelocation INTEGER ::= 45
+id-SRVCCPreparation INTEGER ::= 256
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 250
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfSRBs INTEGER ::= 8
+maxNrOfVol INTEGER ::= 2
+maxNrOfLevels INTEGER ::= 256
+maxNrOfAltValues INTEGER ::= 16
+maxNrOfPLMNsSN INTEGER ::= 32
+maxNrOfLAs INTEGER ::= 65536
+maxNrOfSNAs INTEGER ::= 65536
+maxNrOfUEsToBeTraced INTEGER ::= 64
+maxNrOfInterfaces INTEGER ::= 16
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+maxSet INTEGER ::= 9
+maxNrOfHSDSCHMACdFlows-1 INTEGER ::= 7
+maxnoofMulticastServicesPerUE INTEGER ::= 128
+maxnoofMulticastServicesPerRNC INTEGER ::= 512
+maxMBMSSA INTEGER ::= 256
+maxMBMSRA INTEGER ::= 65536
+maxNrOfEDCHMACdFlows-1 INTEGER ::= 7
+maxGANSSSet INTEGER ::= 9
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-Source-ToTarget-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-Target-ToSource-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+id-MessageStructure INTEGER ::= 88
+id-Alt-RAB-Parameters INTEGER ::= 89
+id-Ass-RAB-Parameters INTEGER ::= 90
+id-RAB-ModifyList INTEGER ::= 91
+id-RAB-ModifyItem INTEGER ::= 92
+id-TypeOfError INTEGER ::= 93
+id-BroadcastAssistanceDataDecipheringKeys INTEGER ::= 94
+id-LocationRelatedDataRequestType INTEGER ::= 95
+id-GlobalCN-ID INTEGER ::= 96
+id-LastKnownServiceArea INTEGER ::= 97
+id-SRB-TrCH-Mapping INTEGER ::= 98
+id-InterSystemInformation-TransparentContainer INTEGER ::= 99
+id-NewBSS-To-OldBSS-Information INTEGER ::= 100
+id-SourceRNC-PDCP-context-info INTEGER ::= 103
+id-InformationTransferID INTEGER ::= 104
+id-SNA-Access-Information INTEGER ::= 105
+id-ProvidedData INTEGER ::= 106
+id-GERAN-BSC-Container INTEGER ::= 107
+id-GERAN-Classmark INTEGER ::= 108
+id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item INTEGER ::= 109
+id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse INTEGER ::= 110
+id-VerticalAccuracyCode INTEGER ::= 111
+id-ResponseTime INTEGER ::= 112
+id-PositioningPriority INTEGER ::= 113
+id-ClientType INTEGER ::= 114
+id-LocationRelatedDataRequestTypeSpecificToGERANIuMode INTEGER ::= 115
+id-SignallingIndication INTEGER ::= 116
+id-hS-DSCH-MAC-d-Flow-ID INTEGER ::= 117
+id-UESBI-Iu INTEGER ::= 118
+id-PositionData INTEGER ::= 119
+id-PositionDataSpecificToGERANIuMode INTEGER ::= 120
+id-CellLoadInformationGroup INTEGER ::= 121
+id-AccuracyFulfilmentIndicator INTEGER ::= 122
+id-InformationTransferType INTEGER ::= 123
+id-TraceRecordingSessionInformation INTEGER ::= 124
+id-TracePropagationParameters INTEGER ::= 125
+id-InterSystemInformationTransferType INTEGER ::= 126
+id-SelectedPLMN-ID INTEGER ::= 127
+id-RedirectionCompleted INTEGER ::= 128
+id-RedirectionIndication INTEGER ::= 129
+id-NAS-SequenceNumber INTEGER ::= 130
+id-RejectCauseValue INTEGER ::= 131
+id-APN INTEGER ::= 132
+id-CNMBMSLinkingInformation INTEGER ::= 133
+id-DeltaRAListofIdleModeUEs INTEGER ::= 134
+id-FrequenceLayerConvergenceFlag INTEGER ::= 135
+id-InformationExchangeID INTEGER ::= 136
+id-InformationExchangeType INTEGER ::= 137
+id-InformationRequested INTEGER ::= 138
+id-InformationRequestType INTEGER ::= 139
+id-IPMulticastAddress INTEGER ::= 140
+id-JoinedMBMSBearerServicesList INTEGER ::= 141
+id-LeftMBMSBearerServicesList INTEGER ::= 142
+id-MBMSBearerServiceType INTEGER ::= 143
+id-MBMSCNDe-Registration INTEGER ::= 144
+id-MBMSServiceArea INTEGER ::= 145
+id-MBMSSessionDuration INTEGER ::= 146
+id-MBMSSessionIdentity INTEGER ::= 147
+id-PDP-TypeInformation INTEGER ::= 148
+id-RAB-Parameters INTEGER ::= 149
+id-RAListofIdleModeUEs INTEGER ::= 150
+id-MBMSRegistrationRequestType INTEGER ::= 151
+id-SessionUpdateID INTEGER ::= 152
+id-TMGI INTEGER ::= 153
+id-TransportLayerInformation INTEGER ::= 154
+id-UnsuccessfulLinkingList INTEGER ::= 155
+id-MBMSLinkingInformation INTEGER ::= 156
+id-MBMSSessionRepetitionNumber INTEGER ::= 157
+id-AlternativeRABConfiguration INTEGER ::= 158
+id-AlternativeRABConfigurationRequest INTEGER ::= 159
+id-E-DCH-MAC-d-Flow-ID INTEGER ::= 160
+id-SourceBSS-ToTargetBSS-TransparentContainer INTEGER ::= 161
+id-TargetBSS-ToSourceBSS-TransparentContainer INTEGER ::= 162
+id-TimeToMBMSDataTransfer INTEGER ::= 163
+id-IncludeVelocity INTEGER ::= 164
+id-VelocityEstimate INTEGER ::= 165
+id-RedirectAttemptFlag INTEGER ::= 166
+id-RAT-Type INTEGER ::= 167
+id-PeriodicLocationInfo INTEGER ::= 168
+id-MBMSCountingInformation INTEGER ::= 169
+id-170-not-to-be-used-for-IE-ids INTEGER ::= 170
+id-ExtendedRNC-ID INTEGER ::= 171
+id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf INTEGER ::= 172
+id-Alt-RAB-Parameter-ExtendedMaxBitrateInf INTEGER ::= 173
+id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 174
+id-Ass-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 175
+id-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 176
+id-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 177
+id-Requested-RAB-Parameter-ExtendedMaxBitrateList INTEGER ::= 178
+id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList INTEGER ::= 179
+id-LAofIdleModeUEs INTEGER ::= 180
+id-newLAListofIdleModeUEs INTEGER ::= 181
+id-LAListwithNoIdleModeUEsAnyMore INTEGER ::= 182
+id-183-not-to-be-used-for-IE-ids INTEGER ::= 183
+id-GANSS-PositioningDataSet INTEGER ::= 184
+id-RequestedGANSSAssistanceData INTEGER ::= 185
+id-BroadcastGANSSAssistanceDataDecipheringKeys INTEGER ::= 186
+id-d-RNTI-for-NoIuCSUP INTEGER ::= 187
+id-RAB-SetupList-EnhancedRelocCompleteReq INTEGER ::= 188
+id-RAB-SetupItem-EnhancedRelocCompleteReq INTEGER ::= 189
+id-RAB-SetupList-EnhancedRelocCompleteRes INTEGER ::= 190
+id-RAB-SetupItem-EnhancedRelocCompleteRes INTEGER ::= 191
+id-RAB-SetupList-EnhRelocInfoReq INTEGER ::= 192
+id-RAB-SetupItem-EnhRelocInfoReq INTEGER ::= 193
+id-RAB-SetupList-EnhRelocInfoRes INTEGER ::= 194
+id-RAB-SetupItem-EnhRelocInfoRes INTEGER ::= 195
+id-OldIuSigConId INTEGER ::= 196
+id-RAB-FailedList-EnhRelocInfoRes INTEGER ::= 197
+id-RAB-FailedItem-EnhRelocInfoRes INTEGER ::= 198
+id-Global-ENB-ID INTEGER ::= 199
+id-UE-History-Information INTEGER ::= 200
+id-MBMSSynchronisationInformation INTEGER ::= 201
+id-SubscriberProfileIDforRFP INTEGER ::= 202
+id-CSG-Id INTEGER ::= 203
+id-OldIuSigConIdCS INTEGER ::= 204
+id-OldIuSigConIdPS INTEGER ::= 205
+id-GlobalCN-IDCS INTEGER ::= 206
+id-GlobalCN-IDPS INTEGER ::= 207
+id-SourceExtendedRNC-ID INTEGER ::= 208
+id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes INTEGER ::= 209
+id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes INTEGER ::= 210
+id-SourceRNC-ID INTEGER ::= 211
+id-Relocation-TargetRNC-ID INTEGER ::= 212
+id-Relocation-TargetExtendedRNC-ID INTEGER ::= 213
+id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf INTEGER ::= 214
+id-Alt-RAB-Parameter-SupportedMaxBitrateInf INTEGER ::= 215
+id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 216
+id-Ass-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 217
+id-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 218
+id-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 219
+id-Requested-RAB-Parameter-SupportedMaxBitrateList INTEGER ::= 220
+id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList INTEGER ::= 221
+id-Relocation-SourceRNC-ID INTEGER ::= 222
+id-Relocation-SourceExtendedRNC-ID INTEGER ::= 223
+id-EncryptionKey INTEGER ::= 224
+id-IntegrityProtectionKey INTEGER ::= 225
+id-SRVCC-HO-Indication INTEGER ::= 226
+id-SRVCC-Information INTEGER ::= 227
+id-SRVCC-Operation-Possible INTEGER ::= 228
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Containers.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Containers.asn1
new file mode 100644
index 0000000000..5168fa6917
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-Containers.asn1
@@ -0,0 +1,206 @@
+-- RANAP-Containers.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.7 Container Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+RANAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM RANAP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-IEs.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-IEs.asn1
new file mode 100644
index 0000000000..351dad436b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-IEs.asn1
@@ -0,0 +1,2081 @@
+-- RANAP-IEs.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.4 Information Element Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RANAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxNrOfErrors,
+ maxNrOfPDPDirections,
+ maxNrOfPoints,
+ maxNrOfRABs,
+ maxNrOfSRBs,
+ maxNrOfSeparateTrafficDirections,
+ maxRAB-Subflows,
+ maxRAB-SubflowCombination,
+ maxNrOfLevels,
+ maxNrOfAltValues,
+ maxNrOfSNAs,
+ maxNrOfLAs,
+ maxNrOfPLMNsSN,
+ maxSet,
+ maxNrOfHSDSCHMACdFlows-1,
+ maxNrOfUEsToBeTraced,
+ maxNrOfInterfaces,
+ maxnoofMulticastServicesPerRNC,
+ maxMBMSSA,
+ maxMBMSRA,
+ maxnoofMulticastServicesPerUE,
+ maxNrOfEDCHMACdFlows-1,
+ maxGANSSSet,
+
+ id-CN-DomainIndicator,
+ id-MessageStructure,
+ id-SRB-TrCH-Mapping,
+ id-TypeOfError,
+ id-hS-DSCH-MAC-d-Flow-ID,
+ id-SignallingIndication,
+ id-CellLoadInformationGroup,
+ id-TraceRecordingSessionInformation,
+ id-MBMSLinkingInformation,
+ id-AlternativeRABConfiguration,
+ id-AlternativeRABConfigurationRequest,
+ id-E-DCH-MAC-d-Flow-ID,
+ id-RAC,
+ id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-ExtendedMaxBitrateInf,
+ id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-ExtendedMaxBitrateList,
+ id-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedMaxBitrateList,
+ id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList,
+ id-LAofIdleModeUEs,
+ id-newLAListofIdleModeUEs,
+ id-LAListwithNoIdleModeUEsAnyMore,
+ id-ExtendedRNC-ID,
+ id-GANSS-PositioningDataSet,
+ id-d-RNTI-for-NoIuCSUP,
+ id-UE-History-Information,
+ id-SubscriberProfileIDforRFP,
+ id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf,
+ id-Alt-RAB-Parameter-SupportedMaxBitrateInf,
+ id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-Ass-RAB-Parameter-SupportedMaxBitrateList,
+ id-RAB-Parameter-SupportedGuaranteedBitrateList,
+ id-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedMaxBitrateList,
+ id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList
+
+
+FROM RANAP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM RANAP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ RANAP-PROTOCOL-EXTENSION
+FROM RANAP-Containers;
+
+-- A
+
+AccuracyFulfilmentIndicator ::= ENUMERATED{
+ requested-Accuracy-Fulfilled,
+ requested-Accuracy-Not-Fulfilled,
+ ...
+}
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Alt-RAB-Parameters ::= SEQUENCE {
+ altMaxBitrateInf Alt-RAB-Parameter-MaxBitrateInf OPTIONAL,
+ altGuaranteedBitRateInf Alt-RAB-Parameter-GuaranteedBitrateInf OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Alt-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to indicate an alternative RAB configuration --
+ { ID id-AlternativeRABConfiguration CRITICALITY ignore EXTENSION RAB-Parameters PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf PRESENCE optional }|
+-- Extension for Release 7 to indicate an alternative list of Extended Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-ExtendedMaxBitrateInf CRITICALITY ignore EXTENSION Alt-RAB-Parameter-ExtendedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Maximum Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedMaxBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedMaxBitrateInf PRESENCE optional }|
+-- Extension for Release 8 to indicate an alternative list of Supported Guaranteed Bitrates --
+{ ID id-Alt-RAB-Parameter-SupportedGuaranteedBitrateInf CRITICALITY reject EXTENSION Alt-RAB-Parameter-SupportedGuaranteedBitrateInf PRESENCE optional },
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf ::= SEQUENCE {
+ altExtendedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altExtendedGuaranteedBitrates Alt-RAB-Parameter-ExtendedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedGuaranteedBitrateList
+
+Alt-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Alt-RAB-Parameter-GuaranteedBitrateInf ::= SEQUENCE {
+ altGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altGuaranteedBitrates Alt-RAB-Parameter-GuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-GuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-GuaranteedBitrateList
+
+
+Alt-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf ::= SEQUENCE {
+ altSupportedGuaranteedBitrateType Alt-RAB-Parameter-GuaranteedBitrateType,
+ altSupportedGuaranteedBitrates Alt-RAB-Parameter-SupportedGuaranteedBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Guaranteed Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+Alt-RAB-Parameter-SupportedGuaranteedBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+
+Alt-RAB-Parameter-ExtendedMaxBitrateInf ::= SEQUENCE {
+ altExtendedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altExtendedMaxBitrates Alt-RAB-Parameter-ExtendedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Extended Alternative Maximum Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-ExtendedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-ExtendedMaxBitrateList
+
+Alt-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Alt-RAB-Parameter-MaxBitrateInf ::= SEQUENCE {
+ altMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altMaxBitrates Alt-RAB-Parameter-MaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrateType ::= ENUMERATED{
+ unspecified,
+ value-range,
+ discrete-values,
+ ...
+}
+
+Alt-RAB-Parameter-MaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ Alt-RAB-Parameter-MaxBitrateList
+
+
+Alt-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf ::= SEQUENCE {
+ altSupportedMaxBitrateType Alt-RAB-Parameter-MaxBitrateType,
+ altSupportedMaxBitrates Alt-RAB-Parameter-SupportedMaxBitrates OPTIONAL
+ -- This IE shall be present if the Type of Supported Alternative Maximun Bit Rates Information IE is set to "Value range" or "Discrete values" --,
+ iE-Extensions ProtocolExtensionContainer { { Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs} } OPTIONAL,
+...
+}
+
+Alt-RAB-Parameter-SupportedMaxBitrateInf-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+
+Alt-RAB-Parameter-SupportedMaxBitrates ::= SEQUENCE (SIZE (1..maxNrOfAltValues)) OF
+ SupportedRAB-ParameterBitrateList
+
+AlternativeRABConfigurationRequest ::= ENUMERATED{
+ alternative-RAB-configuration-Requested,
+ ...
+}
+
+APN ::= OCTET STRING (SIZE (1..255))
+-- Reference: 23.003
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+Ass-RAB-Parameters ::= SEQUENCE {
+ assMaxBitrateInf Ass-RAB-Parameter-MaxBitrateList OPTIONAL,
+ assGuaranteedBitRateInf Ass-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Ass-RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Ass-RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate an extended assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an extended assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Ass-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Maximum Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedMaxBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an supported assigned Guaranteed Bitrate --
+ { ID id-Ass-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY ignore EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Ass-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Ass-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+Ass-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+Ass-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+AuthorisedPLMNs ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ authorisedSNAsList AuthorisedSNAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {AuthorisedPLMNs-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+AuthorisedPLMNs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AuthorisedSNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+BroadcastAssistanceDataDecipheringKeys ::= SEQUENCE {
+ cipheringKeyFlag BIT STRING (SIZE (1)),
+ currentDecipheringKey BIT STRING (SIZE (56)),
+ nextDecipheringKey BIT STRING (SIZE (56)),
+ ...
+}
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...,
+ radioNetworkExtension CauseRadioNetworkExtension
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101),
+ abstract-syntax-error-falsely-constructed-message (102)
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ conflict-with-already-existing-integrity-protection-and-or-ciphering-information (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bit-rate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-request-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40),
+ resource-optimisation-relocation (41),
+ requested-information-not-available (42),
+ relocation-desirable-for-radio-reasons (43),
+ relocation-not-supported-in-target-RNC-or-target-system (44),
+ directed-retry (45),
+ radio-connection-with-UE-Lost (46),
+ rNC-unable-to-establish-all-RFCs (47),
+ deciphering-keys-not-available(48),
+ dedicated-assistance-data-not-available(49),
+ relocation-target-not-allowed (50),
+ location-reporting-congestion (51),
+ reduce-load-in-serving-cell (52),
+ no-radio-resources-available-in-target-cell (53),
+ gERAN-Iumode-failure (54),
+ access-restricted-due-to-shared-networks (55),
+ incoming-relocation-not-supported-due-to-PUESBINE-feature (56),
+ traffic-load-in-the-target-cell-higher-than-in-the-source-cell (57),
+ mBMS-no-multicast-service-for-this-UE(58),
+ mBMS-unknown-UE-ID(59),
+ successful-MBMS-session-start-no-data-bearer-necessary(60),
+ mBMS-superseded-due-to-NNSF(61),
+ mBMS-UE-linking-already-done(62),
+ mBMS-UE-de-linking-failure-no-existing-UE-linking(63),
+ tMGI-unknown(64)
+} (1..64)
+
+CauseRadioNetworkExtension ::= INTEGER {
+ iP-multicast-address-and-APN-not-valid(257),
+ mBMS-de-registration-rejected-due-to-implicit-registration(258),
+ mBMS-request-superseded(259),
+ mBMS-de-registration-during-session-not-allowed(260),
+ mBMS-no-data-bearer-necessary(261),
+ periodicLocationInformationNotAvailable(262),
+ gTP-Resources-Unavailable(263),
+ tMGI-inUse-overlapping-MBMS-service-area(264),
+ mBMS-no-cell-in-MBMS-service-area(265),
+ no-Iu-CS-UP-relocation(266),
+ successful-MBMS-Session-Start-IP-Multicast-Bearer-established(267),
+ cS-fallback-triggered(268)
+} (257..512)
+
+CauseNon-Standard ::= INTEGER (129..256)
+-- Cause value 256 shall not be used --
+
+CauseTransmissionNetwork ::= INTEGER {
+ signalling-transport-resource-failure (65),
+ iu-transport-connection-failed-to-establish (66)
+} (65..80)
+
+Cell-Capacity-Class-Value ::= INTEGER (1..100,...)
+
+CellLoadInformation ::= SEQUENCE {
+ cell-Capacity-Class-Value Cell-Capacity-Class-Value,
+ loadValue LoadValue,
+ rTLoadValue RTLoadValue OPTIONAL,
+ nRTLoadInformationValue NRTLoadInformationValue OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellLoadInformationGroup ::= SEQUENCE {
+ sourceCellID SourceCellID,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellLoadInformationGroup-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CellLoadInformationGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellType ::= ENUMERATED{
+ macro,
+ micro,
+ pico,
+ femto,
+ ...
+}
+
+ClientType ::= ENUMERATED {
+ emergency-Services,
+ value-Added-Services,
+ pLMN-Operator-Services,
+ lawful-Intercept-Services,
+ pLMN-Operator-Broadcast-Services,
+ pLMN-Operator-O-et-M,
+ pLMN-Operator-Anonymous-Statistics,
+ pLMN-Operator-Target-MS-Service-Support,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable reporting the message structure down to the erroneous IE --
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional } |
+-- Extension for Release 99 to enable reporting if a reported error is due to a not understood or a missing IE --
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-RAC CRITICALITY ignore EXTENSION RAC PRESENCE optional },
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+CN-ID ::= INTEGER (0..4095)
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DeltaRAListofIdleModeUEs ::= SEQUENCE {
+ newRAListofIdleModeUEs NewRAListofIdleModeUEs OPTIONAL,
+ rAListwithNoIdleModeUEsAnyMore RAListwithNoIdleModeUEsAnyMore OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DeltaRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+NewRAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+RAListwithNoIdleModeUEsAnyMore ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+DeltaRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-newLAListofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional }|
+ -- This IE shall be present if the New RA List of Idle Mode UEs IE is included. --
+{ ID id-LAListwithNoIdleModeUEsAnyMore CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be presentif the RA List with No Idle Mode UEs Any More IE is included. --
+ ...
+}
+
+ForwardingIndication::=ENUMERATED{
+ forwarding-admitted,
+ ...
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (6..9)
+
+DSCH-ID ::= INTEGER (0..255)
+
+
+-- E
+
+E-DCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfEDCHMACdFlows-1)
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ selectedTAI TAI,
+ ...
+}
+
+GlobalENB-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1), standard-UMTS-encryption-algorithm-UEA2 (2) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+EquipmentsToBeTraced ::= CHOICE {
+ iMEIlist IMEIList,
+ iMEISVlist IMEISVList,
+ iMEIgroup IMEIGroup,
+ iMEISVgroup IMEISVGroup,
+ ...
+}
+
+Event ::= ENUMERATED {
+ stop-change-of-service-area,
+ direct,
+ change-of-servicearea,
+ ...,
+ stop-direct,
+ periodic,
+ stop-periodic
+}
+
+ExtendedGuaranteedBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedMaxBitrate ::= INTEGER (16000001..256000000)
+-- Unit is bits per sec
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+FrequenceLayerConvergenceFlag ::= ENUMERATED {
+ no-FLC-flag,
+ ...
+}
+
+-- G
+
+GANSS-PositioningDataSet ::= SEQUENCE(SIZE(1..maxGANSSSet)) OF GANSS-PositioningMethodAndUsage
+
+GANSS-PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...,
+ pointWithUncertaintyEllipse GA-PointWithUnCertaintyEllipse,
+ pointWithAltitude GA-PointWithAltitude,
+ pointWithAltitudeAndUncertaintyEllipsoid GA-PointWithAltitudeAndUncertaintyEllipsoid,
+ ellipsoidArc GA-EllipsoidArc
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-AltitudeAndDirection ::= SEQUENCE {
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ ...
+}
+
+GA-EllipsoidArc ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ innerRadius INTEGER (0..65535),
+ uncertaintyRadius INTEGER (0..127),
+ offsetAngle INTEGER (0..179),
+ includedAngle INTEGER (0..179),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-EllipsoidArc-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-EllipsoidArc-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitude ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitude-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitude-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ altitudeAndDirection GA-AltitudeAndDirection,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ uncertaintyAltitude INTEGER (0..127),
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithAltitudeAndUncertaintyEllipsoid-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ uncertaintyEllipse GA-UncertaintyEllipse,
+ confidence INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { GA-PointWithUnCertaintyEllipse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-PointWithUnCertaintyEllipse-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-UncertaintyEllipse ::= SEQUENCE {
+ uncertaintySemi-major INTEGER (0..127),
+ uncertaintySemi-minor INTEGER (0..127),
+ orientationOfMajorAxis INTEGER (0..179), -- The values 90..179 shall not be used.
+ ...
+}
+
+GERAN-BSC-Container ::= OCTET STRING
+ -- GERAN BSC Container as defined in [11] --
+
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Cell-ID-ExtIEs} } OPTIONAL
+}
+
+GERAN-Cell-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERAN-Classmark ::= OCTET STRING
+ -- GERAN Classmark as defined in [11] --
+
+GlobalCN-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cN-ID CN-ID
+}
+
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+HS-DSCH-MAC-d-Flow-ID ::= INTEGER (0.. maxNrOfHSDSCHMACdFlows-1)
+
+-- I
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEIGroup ::= SEQUENCE {
+ iMEI IMEI,
+ iMEIMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEIGroup-ExtIEs} } OPTIONAL
+}
+
+IMEIGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEIList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEI
+
+IMEISV ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMEISVGroup ::= SEQUENCE {
+ iMEISV IMEISV,
+ iMEISVMask BIT STRING (SIZE (7)),
+ iE-Extensions ProtocolExtensionContainer { { IMEISVGroup-ExtIEs} } OPTIONAL
+}
+
+IMEISVGroup-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IMEISVList ::= SEQUENCE (SIZE (1..maxNrOfUEsToBeTraced)) OF IMEISV
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IncludeVelocity ::= ENUMERATED {
+ requested
+}
+
+InformationExchangeID ::= INTEGER (0.. 1048575)
+
+InformationExchangeType ::= ENUMERATED {
+ transfer,
+ request,
+ ...
+}
+
+InformationRequested ::= CHOICE {
+ requestedMBMSIPMulticastAddressandAPNRequest RequestedMBMSIPMulticastAddressandAPNRequest,
+ requestedMulticastServiceList RequestedMulticastServiceList,
+ ...
+}
+
+
+InformationRequestType ::= CHOICE {
+ mBMSIPMulticastAddressandAPNRequest MBMSIPMulticastAddressandAPNRequest,
+ permanentNAS-UE-ID PermanentNAS-UE-ID,
+ ...
+}
+
+InformationTransferID ::= INTEGER (0.. 1048575)
+
+InformationTransferType ::= CHOICE {
+ rNCTraceInformation RNCTraceInformation,
+ ...
+}
+
+IntegrityProtectionAlgorithm ::= INTEGER {
+ standard-UMTS-integrity-algorithm-UIA1 (0), standard-UMTS-integrity-algorithm-UIA2 (1),
+ no-value (15)
+} (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+InterSystemInformationTransferType ::= CHOICE {
+ rIM-Transfer RIM-Transfer,
+ ...
+}
+
+InterSystemInformation-TransparentContainer ::= SEQUENCE {
+ downlinkCellLoadInformation CellLoadInformation OPTIONAL,
+ uplinkCellLoadInformation CellLoadInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { InterSystemInformation-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterSystemInformation-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+IPMulticastAddress ::= OCTET STRING (SIZE (4..16))
+-- Reference: 23.003
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LA-LIST ::= SEQUENCE (SIZE (1..maxNrOfLAs)) OF
+ SEQUENCE {
+ lAC LAC,
+ listOF-SNAs ListOF-SNAs,
+ iE-Extensions ProtocolExtensionContainer { { LA-LIST-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LA-LIST-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastKnownServiceArea ::= SEQUENCE {
+ sAI SAI,
+ ageOfSAI INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { {LastKnownServiceArea-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastKnownServiceArea-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedUTRANCell-Item ::= SEQUENCE {
+ uTRAN-CellID UTRAN-CellID,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { {LastVisitedUTRANCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastVisitedUTRANCell-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ListOF-SNAs ::= SEQUENCE (SIZE (1..maxNrOfSNAs)) OF SNAC
+
+ListOfInterfacesToTrace ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF InterfacesToTraceItem
+
+InterfacesToTraceItem ::= SEQUENCE {
+ interface ENUMERATED {iu-cs, iu-ps, iur, iub, uu, ...},
+ iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterfacesToTraceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LoadValue ::= INTEGER (0..100)
+
+LocationRelatedDataRequestType ::= SEQUENCE {
+ requestedLocationRelatedDataType RequestedLocationRelatedDataType,
+ requestedGPSAssistanceData RequestedGPSAssistanceData OPTIONAL,
+ -- This IE shall be present if the Requested Location Related Data Type IE is set to �Dedicated Assistance Data for Assisted GPS� or
+ -- `Dedicated Assistance Data for Assisted GPS and GANSS�
+ ...
+}
+
+LocationRelatedDataRequestTypeSpecificToGERANIuMode ::= ENUMERATED {
+ decipheringKeysEOTD,
+ dedicatedMobileAssistedEOTDAssistanceData,
+ dedicatedMobileBasedEOTDAssistanceData,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MBMS-PTP-RAB-ID ::= BIT STRING (SIZE (8))
+
+MBMSBearerServiceType ::= ENUMERATED {
+ multicast,
+ broadcast,
+ ...
+}
+
+MBMSCNDe-Registration ::= ENUMERATED {
+ normalsessionstop,
+ deregister,
+ ...
+}
+
+
+MBMSCountingInformation ::= ENUMERATED {
+ counting,
+ notcounting,
+ ...
+}
+
+MBMSHCIndicator ::= ENUMERATED {
+ uncompressed-header,
+ compressed-header,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ TMGI
+
+MBMSLinkingInformation ::= ENUMERATED {
+ uE-has-joined-multicast-services,
+ ...
+}
+
+MBMSRegistrationRequestType ::= ENUMERATED {
+ register,
+ deregister,
+ ...
+}
+
+MBMSServiceArea ::= OCTET STRING
+
+MBMSSessionDuration ::= OCTET STRING (SIZE (3))
+
+
+
+MBMSSessionIdentity ::= OCTET STRING (SIZE (1))
+
+MBMSSessionRepetitionNumber ::= OCTET STRING (SIZE (1))
+
+
+-- N
+
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SequenceNumber ::= BIT STRING (SIZE (2))
+-- Reference: 24.008
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NewBSS-To-OldBSS-Information ::= OCTET STRING
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NRTLoadInformationValue ::= INTEGER (0..3)
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM [25]
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value shall not be used -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PeriodicLocationInfo ::= SEQUENCE {
+ reportingAmount INTEGER (1..8639999, ...),
+ reportingInterval INTEGER (1..8639999, ...),
+ iE-Extensions ProtocolExtensionContainer { { PeriodicLocationInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PeriodicLocationInfo-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+PLMNs-in-shared-network ::= SEQUENCE (SIZE (1..maxNrOfPLMNsSN)) OF
+ SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lA-LIST LA-LIST,
+ iE-Extensions ProtocolExtensionContainer { { PLMNs-in-shared-network-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PLMNs-in-shared-network-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PositioningDataDiscriminator ::= BIT STRING (SIZE(4))
+
+PositioningDataSet ::= SEQUENCE(SIZE(1..maxSet)) OF PositioningMethodAndUsage
+
+PositioningMethodAndUsage ::= OCTET STRING (SIZE(1))
+
+PositioningPriority ::= ENUMERATED {
+ high-Priority,
+ normal-Priority,
+...
+}
+
+PositionData ::= SEQUENCE {
+ positioningDataDiscriminator PositioningDataDiscriminator,
+ positioningDataSet PositioningDataSet OPTIONAL,
+-- This IE shall be present if the PositioningDataDiscriminator IE is set to the value "0000" --
+ iE-Extensions ProtocolExtensionContainer { {PositionData-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PositionData-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GANSS-PositioningDataSet CRITICALITY ignore EXTENSION GANSS-PositioningDataSet PRESENCE optional },
+ ...
+}
+
+PositionDataSpecificToGERANIuMode ::= OCTET STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProvidedData ::= CHOICE {
+ shared-network-information Shared-Network-Information,
+ ...
+}
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+--This IE shall be ignored if Supported Guaranteed Bit rate is present--
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+--This IE shall be ignored if Supported Maximum Bit rate is present--
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Interactive" --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE shall be present the traffic class IE is set to "Conversational" or "Streaming" --,
+ relocationRequirement RelocationRequirement OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable indication that Interactive User Plane data is of a signalling nature --
+ { ID id-SignallingIndication CRITICALITY ignore EXTENSION SignallingIndication PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Guaranteed Bitrate --
+{ ID id-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 7 to indicate an Extended Maximum Bitrate --
+{ ID id-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Maximum Bitrate --
+{ ID id-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to indicate an Supported Guaranteed Bitrate --
+{ ID id-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ iE-Extensions ProtocolExtensionContainer { { RAB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of RAB Subflow mapping onto Iur transport channel Ids for a given indicated domain --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional },
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAListofIdleModeUEs ::= CHOICE {
+ notEmptyRAListofIdleModeUEs NotEmptyRAListofIdleModeUEs,
+ emptyFullRAListofIdleModeUEs ENUMERATED {emptylist,fulllist,...},
+ ...
+}
+
+NotEmptyRAListofIdleModeUEs ::= SEQUENCE {
+ rAofIdleModeUEs RAofIdleModeUEs,
+ iE-Extensions ProtocolExtensionContainer { {NotEmptyRAListofIdleModeUEs-ExtIEs} } OPTIONAL
+}
+
+RAofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ RAC
+
+NotEmptyRAListofIdleModeUEs-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+{ ID id-LAofIdleModeUEs CRITICALITY reject EXTENSION LAListofIdleModeUEs PRESENCE conditional },
+ -- This IE shall be present if the RA of Idle Mode UEs IE is included. --
+ ...
+}
+
+LAListofIdleModeUEs ::= SEQUENCE (SIZE (1..maxMBMSRA)) OF
+ LAI
+
+RAT-Type ::= ENUMERATED {
+ utran,
+ geran,
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RedirectAttemptFlag ::= NULL
+
+RedirectionCompleted ::= ENUMERATED {
+ redirection-completed,
+ ...
+}
+
+RejectCauseValue ::= ENUMERATED {
+ pLMN-Not-Allowed,
+ location-Area-Not-Allowed,
+ roaming-Not-Allowed-In-This-Location-Area,
+ no-Suitable-Cell-In-Location-Area,
+ gPRS-Services-Not-Allowed-In-This-PLMN,
+ cS-PS-coordination-required,
+ ...
+}
+
+
+RelocationRequirement ::= ENUMERATED {
+ lossless,
+ none,
+ ...,
+ realtime
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-area,
+ ...
+}
+
+RequestedGPSAssistanceData ::= OCTET STRING (SIZE (1 .. 38 ))
+ -- gpsAssistanceData as defined in 24.080 --
+
+RequestedGANSSAssistanceData ::= OCTET STRING (SIZE (1 .. 201 ))
+ -- ganssAssistanceData as defined in 24.080 --
+
+RequestedLocationRelatedDataType ::= ENUMERATED {
+ decipheringKeysUEBasedOTDOA,
+ decipheringKeysAssistedGPS,
+ dedicatedAssistanceDataUEBasedOTDOA,
+ dedicatedAssistanceDataAssistedGPS,
+ ...,
+-- Release 7 extension elements --
+ decipheringKeysAssistedGANSS,
+ dedicatedAssistanceDataAssistedGANSS,
+ decipheringKeysAssistedGPSandGANSS,
+ dedicatedAssistanceDataAssistedGPSandGANSS
+}
+
+RequestedMBMSIPMulticastAddressandAPNRequest ::= SEQUENCE (SIZE (1..maxnoofMulticastServicesPerRNC)) OF
+ MBMSIPMulticastAddressandAPNlist
+
+MBMSIPMulticastAddressandAPNlist ::= SEQUENCE {
+ tMGI TMGI,
+ iPMulticastAddress IPMulticastAddress,
+ aPN APN,
+ iE-Extensions ProtocolExtensionContainer { {MBMSIPMulticastAddressandAPNlist-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSIPMulticastAddressandAPNlist-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RequestedMulticastServiceList ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ TMGI
+
+Requested-RAB-Parameter-Values ::= SEQUENCE {
+ requestedMaxBitrates Requested-RAB-Parameter-MaxBitrateList OPTIONAL,
+ requestedGuaranteedBitrates Requested-RAB-Parameter-GuaranteedBitrateList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Requested-RAB-Parameter-Values-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Requested-RAB-Parameter-Values-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable RNC to request the execution of an alternative RAB configuration --
+ { ID id-AlternativeRABConfigurationRequest CRITICALITY ignore EXTENSION AlternativeRABConfigurationRequest PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedMaxBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedMaxBitrateList PRESENCE optional }|
+-- Extension for Release 7 to request an Extended Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-ExtendedGuaranteedBitrateList CRITICALITY reject EXTENSION Requested-RAB-Parameter-ExtendedGuaranteedBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Maximum Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedMaxBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional }|
+-- Extension for Release 8 to request an Supported Guaranteed Bitrate --
+ { ID id-Requested-RAB-Parameter-SupportedGuaranteedBitrateList CRITICALITY reject EXTENSION SupportedRAB-ParameterBitrateList PRESENCE optional },
+ ...
+}
+
+Requested-RAB-Parameter-ExtendedMaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedMaxBitrate
+
+Requested-RAB-Parameter-ExtendedGuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF ExtendedGuaranteedBitrate
+
+Requested-RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+Requested-RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResponseTime ::= ENUMERATED {
+ lowdelay,
+ delaytolerant,
+...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIM-Transfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RIM-Transfer-ExtIEs} } OPTIONAL
+}
+
+RIM-Transfer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMRoutingAddress ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+
+RNCTraceInformation::= SEQUENCE {
+ traceReference TraceReference,
+ traceActivationIndicator ENUMERATED {activated,deactivated},
+ equipmentsToBeTraced EquipmentsToBeTraced OPTIONAL,
+ -- This IE shall be present if the Trace Activation Indicator IE is set to "Activated".
+ iE-Extensions ProtocolExtensionContainer { { RNCTraceInformation-ExtIEs} } OPTIONAL
+}
+
+RNCTraceInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RRC-Container ::= OCTET STRING
+
+RTLoadValue ::= INTEGER (0..100)
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ sapi-0,
+ sapi-3,
+ ...
+}
+
+SessionUpdateID ::= INTEGER (0.. 1048575)
+
+Shared-Network-Information ::= SEQUENCE {
+ pLMNs-in-shared-network PLMNs-in-shared-network,
+ iE-Extensions ProtocolExtensionContainer { {Shared-Network-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Shared-Network-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignallingIndication ::= ENUMERATED {
+ signalling,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE shall be present if the Delivery Of Erroneous SDU IE is set to "Yes" or "No" --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNA-Access-Information ::= SEQUENCE {
+ authorisedPLMNs AuthorisedPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SNA-Access-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SNA-Access-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNAC ::= INTEGER (0..65535)
+
+Service-Handover ::= ENUMERATED {
+ handover-to-GSM-should-be-performed,
+ handover-to-GSM-should-not-be-performed,
+ handover-to-GSM-shall-not-be-performed,
+ ...
+}
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Source RNC to
+-- Target RNC Transparent Container or the Source eNB to Target eNB Transparent Container IE as
+-- defined in [49]
+
+SourceeNodeB-ToTargeteNodeB-TransparentContainer ::= OCTET STRING
+
+
+SourceCellID ::= CHOICE {
+ sourceUTRANCellID SourceUTRANCellID,
+ sourceGERANCellID CGI,
+ ...
+}
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID,
+ sAI SAI,
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL,
+ cipheringKey EncryptionKey OPTIONAL,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL,
+ d-RNTI D-RNTI OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE not involved in relocation of SRNS" --,
+ targetCellId TargetCellId OPTIONAL
+ -- This IE shall be present if the Relocation type IE is set to "UE involved in relocation of SRNS" --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable transfer of SRB mapping onto Iur transport channel Ids --
+ { ID id-SRB-TrCH-Mapping CRITICALITY reject EXTENSION SRB-TrCH-Mapping PRESENCE optional }|
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-CellLoadInformationGroup CRITICALITY ignore EXTENSION CellLoadInformationGroup PRESENCE optional}|
+-- Extension for Release 6 to provide Trace Recording Session Information to the Target RNC --
+ {ID id-TraceRecordingSessionInformation CRITICALITY ignore EXTENSION TraceRecordingSessionInformation PRESENCE optional}|
+-- Extension for Release 6 to indicate to the Target RNC that the UE has activated Multicast Service --
+ {ID id-MBMSLinkingInformation CRITICALITY ignore EXTENSION MBMSLinkingInformation PRESENCE optional}|
+ {ID id-d-RNTI-for-NoIuCSUP CRITICALITY reject EXTENSION D-RNTI PRESENCE optional}|
+ {ID id-UE-History-Information CRITICALITY ignore EXTENSION UE-History-Information PRESENCE optional}|
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SupportedRAB-ParameterBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF SupportedBitrate
+
+SupportedBitrate ::= INTEGER (1..1000000000, ...)
+-- Unit is bits per sec
+
+SourceUTRANCellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ iE-Extensions ProtocolExtensionContainer { {SourceUTRANCellID-ExtIEs} } OPTIONAL
+}
+
+SourceUTRANCellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRB-ID ::= INTEGER (1..32)
+
+SRB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfSRBs)) OF
+ SRB-TrCH-MappingItem
+
+SRB-TrCH-MappingItem ::= SEQUENCE {
+ sRB-ID SRB-ID,
+ trCH-ID TrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { SRB-TrCH-MappingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SRB-TrCH-MappingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-HO-Indication ::= ENUMERATED {
+ ps-and-cs,
+ cs-only,
+ ...
+}
+
+SRVCC-Information ::= SEQUENCE {
+ nonce BIT STRING (SIZE (128)),
+ iE-Extensions ProtocolExtensionContainer { { SRVCC-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SRVCC-Information-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCC-Operation-Possible ::= ENUMERATED {
+ srvcc-possible,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+TAC ::= OCTET STRING (SIZE (2))
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
+}
+
+TAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
+-- Note: In the current version of this specification, this IE may either carry the Target RNC to
+-- Source RNC Transparent Container or the Target eNB to Source eNB Transparent Container IE as
+-- defined in [49]
+
+TargeteNodeB-ToSourceeNodeB-TransparentContainer ::= OCTET STRING
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+
+ ...,
+ targeteNB-ID Global-ENB-ID
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TimeToMBMSDataTransfer ::= OCTET STRING(SIZE(1))
+
+
+TMGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ serviceID OCTET STRING (SIZE (3)),
+ iE-Extensions ProtocolExtensionContainer { {TMGI-ExtIEs} } OPTIONAL
+}
+
+TMGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ ...
+}
+
+TracePropagationParameters ::= SEQUENCE {
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ traceDepth TraceDepth,
+ listOfInterfacesToTrace ListOfInterfacesToTrace OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TracePropagationParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TracePropagationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionInformation ::= SEQUENCE {
+ traceReference TraceReference,
+ traceRecordingSessionReference TraceRecordingSessionReference,
+ iE-Extensions ProtocolExtensionContainer { { TraceRecordingSessionInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceRecordingSessionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceRecordingSessionReference ::= INTEGER (0..65535)
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL,
+ dSCH-ID DSCH-ID OPTIONAL,
+ uSCH-ID USCH-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TrCH-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TrCH-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable transfer of HS-DSCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-hS-DSCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION HS-DSCH-MAC-d-Flow-ID PRESENCE optional}|
+-- Extension for Release 6 to enable transfer of E-DCH-MAC-d-Flow-ID onto Iur transport channel ID --
+ {ID id-E-DCH-MAC-d-Flow-ID CRITICALITY ignore EXTENSION E-DCH-MAC-d-Flow-ID PRESENCE optional},
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+
+UE-History-Information ::= OCTET STRING
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...,
+ imeisv IMEISV
+
+}
+
+UESBI-Iu ::= SEQUENCE {
+ uESBI-IuA UESBI-IuA OPTIONAL,
+ uESBI-IuB UESBI-IuB OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UESBI-Iu-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UESBI-Iu-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.994 --
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- Reference: TR25.995 --
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+UTRAN-CellID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cellID TargetCellId,
+ iE-Extensions ProtocolExtensionContainer { { UTRAN-CellID-ExtIEs} } OPTIONAL
+}
+
+UTRAN-CellID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- V
+
+VelocityEstimate ::= CHOICE {
+ horizontalVelocity HorizontalVelocity,
+ horizontalWithVerticalVelocity HorizontalWithVerticalVelocity,
+ horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty,
+ horizontalWithVeritcalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty,
+ ...
+}
+
+HorizontalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocity ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocity-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HorizontalVelocityWithUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ uncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalVelocityWithUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalVelocityWithUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
+ horizontalSpeedAndBearing HorizontalSpeedAndBearing,
+ veritcalVelocity VerticalVelocity,
+ horizontalUncertaintySpeed INTEGER (0..255),
+ verticalUncertaintySpeed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { HorizontalWithVerticalVelocityAndUncertainty-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HorizontalWithVerticalVelocityAndUncertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HorizontalSpeedAndBearing ::= SEQUENCE {
+ bearing INTEGER (0..359),
+ horizontalSpeed INTEGER (0..2047)
+}
+
+VerticalVelocity ::= SEQUENCE {
+ veritcalSpeed INTEGER (0..255),
+ veritcalSpeedDirection VerticalSpeedDirection
+}
+
+VerticalSpeedDirection ::= ENUMERATED {
+ upward,
+ downward
+}
+
+VerticalAccuracyCode ::= INTEGER (0..127)
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Contents.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Contents.asn1
new file mode 100644
index 0000000000..c83f60f13e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Contents.asn1
@@ -0,0 +1,3383 @@
+-- RANAP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.3 PDU Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+RANAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ AccuracyFulfilmentIndicator,
+ APN,
+ BroadcastAssistanceDataDecipheringKeys,
+ LocationRelatedDataRequestType,
+ LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ DataVolumeReference,
+ CellLoadInformation,
+ AreaIdentity,
+ CN-DomainIndicator,
+ Cause,
+ ClientType,
+ CriticalityDiagnostics,
+ ChosenEncryptionAlgorithm,
+ ChosenIntegrityProtectionAlgorithm,
+ ClassmarkInformation2,
+ ClassmarkInformation3,
+ CSG-Id,
+ DL-GTP-PDU-SequenceNumber,
+ DL-N-PDU-SequenceNumber,
+ DataVolumeReportingIndication,
+ DeltaRAListofIdleModeUEs,
+ DRX-CycleLengthCoefficient,
+ EncryptionInformation,
+ EncryptionKey,
+ ExtendedRNC-ID,
+ FrequenceLayerConvergenceFlag,
+ GERAN-BSC-Container,
+ GERAN-Classmark,
+ Global-ENB-ID,
+ GlobalCN-ID,
+ GlobalRNC-ID,
+ GTP-TEI,
+ IncludeVelocity,
+ InformationExchangeID,
+ InformationExchangeType,
+ InformationRequested,
+ InformationRequestType,
+ InformationTransferID,
+ InformationTransferType,
+ InterSystemInformationTransferType,
+ IntegrityProtectionInformation,
+ IntegrityProtectionKey,
+ InterSystemInformation-TransparentContainer,
+ IPMulticastAddress,
+ IuSignallingConnectionIdentifier,
+ IuTransportAssociation,
+ KeyStatus,
+ L3-Information,
+ LAI,
+ LastKnownServiceArea,
+ MBMS-PTP-RAB-ID,
+ MBMSBearerServiceType,
+ MBMSCountingInformation,
+ MBMSCNDe-Registration,
+ MBMSHCIndicator,
+ MBMSRegistrationRequestType,
+ MBMSServiceArea,
+ MBMSSessionDuration,
+ MBMSSessionIdentity,
+ MBMSSessionRepetitionNumber,
+ NAS-PDU,
+ NAS-SequenceNumber,
+ NAS-SynchronisationIndicator,
+ NewBSS-To-OldBSS-Information,
+ NonSearchingIndication,
+ NumberOfSteps,
+ OMC-ID,
+ OldBSS-ToNewBSS-Information,
+ PagingAreaID,
+ PagingCause,
+ PDP-TypeInformation,
+ PermanentNAS-UE-ID,
+ PLMNidentity,
+ PositionData,
+ PositionDataSpecificToGERANIuMode,
+ PositioningPriority,
+ ProvidedData,
+ RAB-ID,
+ RAB-Parameters,
+ RAC,
+ RAListofIdleModeUEs,
+ RAT-Type,
+ RedirectAttemptFlag,
+ RedirectionCompleted,
+ RejectCauseValue,
+ RelocationType,
+ RequestedGANSSAssistanceData,
+ RequestType,
+ Requested-RAB-Parameter-Values,
+ ResponseTime,
+ RRC-Container,
+ SAI,
+ SAPI,
+ Service-Handover,
+ SessionUpdateID,
+ SNA-Access-Information,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceID,
+ Source-ToTarget-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SRVCC-HO-Indication,
+ SRVCC-Information,
+ SRVCC-Operation-Possible,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargetID,
+ Target-ToSource-TransparentContainer,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TemporaryUE-ID,
+ TimeToMBMSDataTransfer,
+ TMGI,
+ TracePropagationParameters,
+ TraceReference,
+ TraceType,
+ UnsuccessfullyTransmittedDataVolume,
+ TransportLayerAddress,
+ TriggerID,
+ UE-ID,
+ UESBI-Iu,
+ UL-GTP-PDU-SequenceNumber,
+ UL-N-PDU-SequenceNumber,
+ UP-ModeVersions,
+ UserPlaneMode,
+ VelocityEstimate,
+ VerticalAccuracyCode,
+ Alt-RAB-Parameters,
+ Ass-RAB-Parameters,
+ PeriodicLocationInfo,
+ SubscriberProfileIDforRFP
+FROM RANAP-IEs
+
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Container{},
+ RANAP-PRIVATE-IES,
+ RANAP-PROTOCOL-EXTENSION,
+ RANAP-PROTOCOL-IES,
+ RANAP-PROTOCOL-IES-PAIR
+FROM RANAP-Containers
+
+ maxNrOfDTs,
+ maxNrOfErrors,
+ maxNrOfIuSigConIds,
+ maxNrOfRABs,
+ maxNrOfVol,
+ maxnoofMulticastServicesPerUE,
+
+ id-AccuracyFulfilmentIndicator,
+ id-APN,
+ id-AreaIdentity,
+ id-Alt-RAB-Parameters,
+ id-Ass-RAB-Parameters,
+ id-BroadcastAssistanceDataDecipheringKeys,
+ id-LocationRelatedDataRequestType,
+ id-CN-DomainIndicator,
+ id-Cause,
+ id-ChosenEncryptionAlgorithm,
+ id-ChosenIntegrityProtectionAlgorithm,
+ id-ClassmarkInformation2,
+ id-ClassmarkInformation3,
+ id-ClientType,
+ id-CNMBMSLinkingInformation,
+ id-CriticalityDiagnostics,
+ id-CSG-Id,
+ id-DeltaRAListofIdleModeUEs,
+ id-DRX-CycleLengthCoefficient,
+ id-DirectTransferInformationItem-RANAP-RelocInf,
+ id-DirectTransferInformationList-RANAP-RelocInf,
+ id-DL-GTP-PDU-SequenceNumber,
+ id-EncryptionInformation,
+ id-EncryptionKey,
+ id-ExtendedRNC-ID,
+ id-FrequenceLayerConvergenceFlag,
+ id-GERAN-BSC-Container,
+ id-GERAN-Classmark,
+ id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item,
+ id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse,
+ id-Global-ENB-ID,
+ id-GlobalCN-ID,
+ id-GlobalCN-IDCS,
+ id-GlobalCN-IDPS,
+ id-GlobalRNC-ID,
+ id-IncludeVelocity,
+ id-InformationExchangeID,
+ id-InformationExchangeType,
+ id-InformationRequested,
+ id-InformationRequestType,
+ id-InformationTransferID,
+ id-InformationTransferType,
+ id-IntegrityProtectionInformation,
+ id-IntegrityProtectionKey,
+ id-InterSystemInformationTransferType,
+ id-InterSystemInformation-TransparentContainer,
+ id-IPMulticastAddress,
+ id-IuSigConId,
+ id-OldIuSigConId,
+ id-OldIuSigConIdCS,
+ id-OldIuSigConIdPS,
+ id-IuSigConIdItem,
+ id-IuSigConIdList,
+ id-IuTransportAssociation,
+ id-JoinedMBMSBearerServicesList,
+ id-KeyStatus,
+ id-L3-Information,
+ id-LAI,
+ id-LastKnownServiceArea,
+ id-LeftMBMSBearerServicesList,
+ id-LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ id-MBMSBearerServiceType,
+ id-MBMSCountingInformation,
+ id-MBMSCNDe-Registration,
+ id-MBMSRegistrationRequestType,
+ id-MBMSSynchronisationInformation,
+ id-MBMSServiceArea,
+ id-MBMSSessionDuration,
+ id-MBMSSessionIdentity,
+ id-MBMSSessionRepetitionNumber,
+ id-NAS-PDU,
+ id-NAS-SequenceNumber,
+ id-NewBSS-To-OldBSS-Information,
+ id-NonSearchingIndication,
+ id-NumberOfSteps,
+ id-OMC-ID,
+ id-OldBSS-ToNewBSS-Information,
+ id-PagingAreaID,
+ id-PagingCause,
+ id-PDP-TypeInformation,
+ id-PermanentNAS-UE-ID,
+ id-PositionData,
+ id-PositionDataSpecificToGERANIuMode,
+ id-PositioningPriority,
+ id-ProvidedData,
+ id-RAB-ContextItem,
+ id-RAB-ContextList,
+ id-RAB-ContextFailedtoTransferItem,
+ id-RAB-ContextFailedtoTransferList,
+ id-RAB-ContextItem-RANAP-RelocInf,
+ id-RAB-ContextList-RANAP-RelocInf,
+ id-RAB-DataForwardingItem,
+ id-RAB-DataForwardingItem-SRNS-CtxReq,
+ id-RAB-DataForwardingList,
+ id-RAB-DataForwardingList-SRNS-CtxReq,
+ id-RAB-DataVolumeReportItem,
+ id-RAB-DataVolumeReportList,
+ id-RAB-DataVolumeReportRequestItem,
+ id-RAB-DataVolumeReportRequestList,
+ id-RAB-FailedItem,
+ id-RAB-FailedList,
+ id-RAB-FailedList-EnhRelocInfoRes,
+ id-RAB-FailedItem-EnhRelocInfoRes,
+ id-RAB-FailedtoReportItem,
+ id-RAB-FailedtoReportList,
+ id-RAB-ID,
+ id-RAB-ModifyList,
+ id-RAB-ModifyItem,
+ id-RAB-Parameters,
+ id-RAB-QueuedItem,
+ id-RAB-QueuedList,
+ id-RAB-ReleaseFailedList,
+ id-RAB-ReleaseItem,
+ id-RAB-ReleasedItem-IuRelComp,
+ id-RAB-ReleaseList,
+ id-RAB-ReleasedItem,
+ id-RAB-ReleasedList,
+ id-RAB-ReleasedList-IuRelComp,
+ id-RAB-RelocationReleaseItem,
+ id-RAB-RelocationReleaseList,
+ id-RAB-SetupItem-RelocReq,
+ id-RAB-SetupItem-RelocReqAck,
+ id-RAB-SetupList-RelocReq,
+ id-RAB-SetupList-RelocReqAck,
+ id-RAB-SetupList-EnhRelocInfoReq,
+ id-RAB-SetupItem-EnhRelocInfoReq,
+ id-RAB-SetupList-EnhRelocInfoRes,
+ id-RAB-SetupItem-EnhRelocInfoRes,
+ id-RAB-SetupList-EnhancedRelocCompleteReq,
+ id-RAB-SetupItem-EnhancedRelocCompleteReq,
+ id-RAB-SetupList-EnhancedRelocCompleteRes,
+ id-RAB-SetupItem-EnhancedRelocCompleteRes,
+ id-RAB-SetupOrModifiedItem,
+ id-RAB-SetupOrModifiedList,
+ id-RAB-SetupOrModifyItem,
+ id-RAB-SetupOrModifyList,
+ id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes,
+ id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes,
+ id-RAC,
+ id-RAListofIdleModeUEs,
+ id-RAT-Type,
+ id-RedirectAttemptFlag,
+ id-RedirectionCompleted,
+ id-RedirectionIndication,
+ id-RejectCauseValue,
+ id-RelocationType,
+ id-Relocation-SourceRNC-ID,
+ id-Relocation-SourceExtendedRNC-ID,
+ id-Relocation-TargetRNC-ID,
+ id-Relocation-TargetExtendedRNC-ID,
+ id-RequestedGANSSAssistanceData,
+ id-RequestType,
+ id-ResponseTime,
+ id-SAI,
+ id-SAPI,
+ id-SelectedPLMN-ID,
+ id-SessionUpdateID,
+ id-SNA-Access-Information,
+ id-SourceBSS-ToTargetBSS-TransparentContainer,
+ id-SourceRNC-ID,
+ id-SourceExtendedRNC-ID,
+ id-SourceID,
+ id-Source-ToTarget-TransparentContainer,
+ id-SourceRNC-PDCP-context-info,
+ id-SRVCC-HO-Indication,
+ id-SRVCC-Information,
+ id-SRVCC-Operation-Possible,
+ id-TargetBSS-ToSourceBSS-TransparentContainer,
+ id-TargetID,
+ id-Target-ToSource-TransparentContainer,
+ id-TemporaryUE-ID,
+ id-TimeToMBMSDataTransfer,
+ id-TMGI,
+ id-TracePropagationParameters,
+ id-TraceReference,
+ id-TraceType,
+ id-TransportLayerAddress,
+ id-TransportLayerInformation,
+ id-TriggerID,
+ id-UE-ID,
+ id-UESBI-Iu,
+ id-UL-GTP-PDU-SequenceNumber,
+ id-UnsuccessfulLinkingList,
+ id-VelocityEstimate,
+ id-VerticalAccuracyCode,
+ id-PeriodicLocationInfo,
+ id-BroadcastGANSSAssistanceDataDecipheringKeys,
+ id-SubscriberProfileIDforRFP
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE shall always be present although its presence is optional --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY reject TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY reject TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a CGI IE and Source BSS To Target BSS Transparent Container is not included -- } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE conditional
+ -- This IE shall be present if the Target ID IE contains a RNC-ID IE or eNB-ID -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE optional } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-SourceBSS-ToTargetBSS-TransparentContainer CRITICALITY ignore EXTENSION SourceBSS-ToTargetBSS-TransparentContainer PRESENCE optional }|
+-- Extension for Release 8 for SRVCC operation --
+ { ID id-SRVCC-HO-Indication CRITICALITY reject EXTENSION SRVCC-HO-Indication PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE optional } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional } |
+-- Extension for Release 6 to enable Inter-RAT PS Handover between UTRAN and GERAN A/Gb --
+ { ID id-TargetBSS-ToSourceBSS-TransparentContainer CRITICALITY ignore EXTENSION TargetBSS-ToSourceBSS-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-InterSystemInformation-TransparentContainer CRITICALITY ignore EXTENSION InterSystemInformation-TransparentContainer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE optional } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional} |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional },
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY reject EXTENSION GlobalCN-ID PRESENCE optional} |
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional} |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to convey the selected PLMN id in network sharing mobility scenarios --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 6 to enable MBMS UE linking at relocation --
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore EXTENSION CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+CNMBMSLinkingInformation ::= SEQUENCE {
+ joinedMBMSBearerService-IEs JoinedMBMSBearerService-IEs,
+ iE-Extensions ProtocolExtensionContainer { {CNMBMSLinkingInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNMBMSLinkingInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ mBMS-PTP-RAB-ID MBMS-PTP-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {JoinedMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+JoinedMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE optional } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ {ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to allow transfer of a second pair of TLA and association --
+ {ID id-TransportLayerAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional} |
+ {ID id-IuTransportAssociation CRITICALITY ignore EXTENSION IuTransportAssociation PRESENCE optional},
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ {ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable Inter RAN Load Information Exchange over Iu --
+ { ID id-NewBSS-To-OldBSS-Information CRITICALITY ignore EXTENSION NewBSS-To-OldBSS-Information PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY reject TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- The SGSN may include the IE, when available to indicate the RAT from which the context request originates, to correct measurement points in SRNC. --
+ {ID id-RAT-Type CRITICALITY ignore EXTENSION RAT-Type PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE optional } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY reject TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY reject TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY reject TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY reject TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE optional } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ENHANCED RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Request
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteRequestExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-OldIuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-Relocation-SourceRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-SourceExtendedRNC-ID CRITICALITY ignore TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-Relocation-TargetRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Relocation-TargetExtendedRNC-ID CRITICALITY reject TYPE ExtendedRNC-ID PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupList-EnhancedRelocCompleteReq PRESENCE optional }
+, ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhancedRelocCompleteReq-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteReq CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddressReq1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationReq1 IuTransportAssociation OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Response
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteResponseExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-SetupList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-RAB-ToBeReleasedList-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedList-EnhancedRelocCompleteRes PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-SetupItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-SetupItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhancedRelocCompleteRes CRITICALITY reject TYPE RAB-SetupItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddressRes1 TransportLayerAddress OPTIONAL,
+ iuTransportAssociationRes1 IuTransportAssociation OPTIONAL,
+ rab2beReleasedList RAB-ToBeReleasedList-EnhancedRelocCompleteRes OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ToBeReleasedList-EnhancedRelocCompleteRes ::= RAB-IE-ContainerList { {RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs} }
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ToBeReleasedItem-EnhancedRelocCompleteRes CRITICALITY ignore TYPE RAB-ToBeReleasedItem-EnhancedRelocCompleteRes PRESENCE mandatory },
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ToBeReleasedItem-EnhancedRelocCompleteRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRelocationCompleteResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Failure
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteFailureExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Enhanced Relocation Complete Confirm
+--
+-- **************************************************************
+
+EnhancedRelocationCompleteConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {EnhancedRelocationCompleteConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {EnhancedRelocationCompleteConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+EnhancedRelocationCompleteConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional },
+ ...
+}
+
+EnhancedRelocationCompleteConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable shared networks in connected mode --
+ { ID id-SNA-Access-Information CRITICALITY ignore EXTENSION SNA-Access-Information PRESENCE optional } |
+-- Extension for Release 5 to enable specific behaviour by the RNC in relation with early UE handling --
+ { ID id-UESBI-Iu CRITICALITY ignore EXTENSION UESBI-Iu PRESENCE optional}|
+-- Extension for Release 6 to indicate the selected plmn in GWCN configuration for network sharing non-supporting UEs --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ -- This information is mandatory for UTRAN, optional for GERAN Iu mode --
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ -- This information is mandatory for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable signalling based activation for Subscriber and Equipment Trace over Iu interface --
+ { ID id-TracePropagationParameters CRITICALITY ignore EXTENSION TracePropagationParameters PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ -- This information is optional for GERAN Iu Mode, not applicable to UTRAN --
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-VerticalAccuracyCode CRITICALITY ignore EXTENSION VerticalAccuracyCode PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ResponseTime CRITICALITY ignore EXTENSION ResponseTime PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-PositioningPriority CRITICALITY ignore EXTENSION PositioningPriority PRESENCE optional } |
+-- Extension for Release 4 to enhance the location request over Iu --
+ { ID id-ClientType CRITICALITY ignore EXTENSION ClientType PRESENCE optional } |
+-- Extension for Release 7 to allow the request of velocity over Iu --
+ { ID id-IncludeVelocity CRITICALITY ignore EXTENSION IncludeVelocity PRESENCE optional } |
+-- Extension for Release 7 to allow periodic reporting over Iu --
+ { ID id-PeriodicLocationInfo CRITICALITY ignore EXTENSION PeriodicLocationInfo PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional } ,
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable report of Last Known Service Area with its Age over Iu --
+ { ID id-LastKnownServiceArea CRITICALITY ignore EXTENSION LastKnownServiceArea PRESENCE optional} |
+-- Extension for Release 5 to pass the positioning methods that have been used --
+ { ID id-PositionData CRITICALITY ignore EXTENSION PositionData PRESENCE optional}|
+-- Extension for Release 5 to pass the positioning methods that have been used for GERAN Iu mode --
+ { ID id-PositionDataSpecificToGERANIuMode CRITICALITY ignore EXTENSION PositionDataSpecificToGERANIuMode PRESENCE optional }|
+ -- This extension is optional for GERAN Iu mode only, not applicable for UTRAN --
+-- Extension for Release 6 to indicate whether the returned position estimate satisfies the requested accuracy or not --
+ { ID id-AccuracyFulfilmentIndicator CRITICALITY ignore EXTENSION AccuracyFulfilmentIndicator PRESENCE optional}|
+-- Extension for Release 7 to provide a velocity estimate --
+ { ID id-VelocityEstimate CRITICALITY ignore EXTENSION VelocityEstimate PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE shall be present if the CN Domain Indicator IE is set to "PS domain" -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Classmark CRITICALITY ignore EXTENSION GERAN-Classmark PRESENCE optional } |
+-- Extension for Release 6 to convey the selected PLMN id in shared networks --
+ { ID id-SelectedPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore EXTENSION PermanentNAS-UE-ID PRESENCE optional } |
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-NAS-SequenceNumber CRITICALITY ignore EXTENSION NAS-SequenceNumber PRESENCE optional } |
+-- Extension for Release 6 to indicate rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectAttemptFlag CRITICALITY ignore EXTENSION RedirectAttemptFlag PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional } |
+-- Extension for Release 8 to support CSG --
+ { ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE optional } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE optional } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE optional } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE optional },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable rerouting in MOCN configuration for network sharing non-supporting UEs --
+ { ID id-RedirectionIndication CRITICALITY ignore EXTENSION RedirectionIndication PRESENCE optional }|
+-- Extension for Release 6 to indicate the MOCN rerouting is completed --
+ { ID id-RedirectionCompleted CRITICALITY ignore EXTENSION RedirectionCompleted PRESENCE optional }|
+-- Extension for Release 8 to indicate the Subscriber Profile ID for RAT/Frequency Selection Priority --
+ {ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+RedirectionIndication ::= ProtocolIE-Container { {RedirectionIndication-IEs} }
+
+RedirectionIndication-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-RejectCauseValue CRITICALITY ignore TYPE RejectCauseValue PRESENCE mandatory}|
+ { ID id-NAS-SequenceNumber CRITICALITY ignore TYPE NAS-SequenceNumber PRESENCE optional}|
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 99 to enable the indication to the RNC which CN domain is suffering the signalling traffic overload --
+ { ID id-CN-DomainIndicator CRITICALITY ignore EXTENSION CN-DomainIndicator PRESENCE optional } |
+-- Extension for Release 5 to enable NNSF --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional } |
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 --
+ { ID id-GlobalCN-ID CRITICALITY ignore EXTENSION GlobalCN-ID PRESENCE optional}|
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE optional },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE optional } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL,
+ rAB-Parameters RAB-Parameters OPTIONAL,
+ userPlaneInformation UserPlaneInformation OPTIONAL,
+ transportLayerInformation TransportLayerInformation OPTIONAL,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {TransportLayerInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Alt-RAB-Parameters CRITICALITY ignore EXTENSION Alt-RAB-Parameters PRESENCE optional } |
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-BSC-Container CRITICALITY ignore EXTENSION GERAN-BSC-Container PRESENCE optional } ,
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE optional } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE optional } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE optional } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 4 to enable RAB Quality of Service negotiation over Iu --
+ { ID id-Ass-RAB-Parameters CRITICALITY ignore EXTENSION Ass-RAB-Parameters PRESENCE optional },
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable GERAN support over Iu-cs --
+ { ID id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse CRITICALITY ignore EXTENSION GERAN-Iumode-RAB-FailedList-RABAssgntResponse PRESENCE optional} ,
+ ...
+}
+
+GERAN-Iumode-RAB-FailedList-RABAssgntResponse ::= RAB-IE-ContainerList { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs} }
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-ItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item CRITICALITY ignore TYPE GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item PRESENCE mandatory },
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ gERAN-Classmark GERAN-Classmark OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ cN-DomainIndicator CN-DomainIndicator,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable relocation of Source RNC PDCP context info --
+ { ID id-SourceRNC-PDCP-context-info CRITICALITY ignore EXTENSION RRC-Container PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP ENHANCED RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Request
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Source-ToTarget-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-OldIuSigConIdCS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-OldIuSigConIdPS CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE optional } |
+ { ID id-GlobalCN-IDCS CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional} |
+ { ID id-RAB-SetupList-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupList-EnhRelocInfoReq PRESENCE optional } |
+ { ID id-SNA-Access-Information CRITICALITY ignore TYPE SNA-Access-Information PRESENCE optional} |
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional}|
+ { ID id-SelectedPLMN-ID CRITICALITY ignore TYPE PLMNidentity PRESENCE optional }|
+ { ID id-CNMBMSLinkingInformation CRITICALITY ignore TYPE CNMBMSLinkingInformation PRESENCE optional},
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoReq ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoReq-IEs} }
+
+RAB-SetupItem-EnhRelocInfoReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoReq CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
+ userPlaneInformation UserPlaneInformation,
+ dataForwardingInformation TNLInformationEnhRelInfoReq OPTIONAL,
+ sourceSideIuULTNLInfo TNLInformationEnhRelInfoReq OPTIONAL,
+
+ service-Handover Service-Handover OPTIONAL,
+ alt-RAB-Parameters Alt-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TNLInformationEnhRelInfoReq ::=SEQUENCE{
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RANAP-EnhancedRelocationInformationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP Enhanced Relocation Information Response
+--
+-- **************************************************************
+
+RANAP-EnhancedRelocationInformationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-EnhancedRelocationInformationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-EnhancedRelocationInformationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Target-ToSource-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE optional } |
+ { ID id-RAB-SetupList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-SetupList-EnhRelocInfoRes PRESENCE optional} |
+ { ID id-RAB-FailedList-EnhRelocInfoRes CRITICALITY ignore TYPE RAB-FailedList-EnhRelocInfoRes PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-SetupItem-EnhRelocInfoRes-IEs} }
+
+RAB-SetupItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-SetupItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ dataForwardingInformation TNLInformationEnhRelInfoRes OPTIONAL,
+ ass-RAB-Parameters Ass-RAB-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAB-SetupItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList-EnhRelocInfoRes ::= RAB-IE-ContainerList { { RAB-FailedItem-EnhRelocInfoRes-IEs} }
+
+RAB-FailedItem-EnhRelocInfoRes-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem-EnhRelocInfoRes CRITICALITY reject TYPE RAB-FailedItem-EnhRelocInfoRes PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes ::= SEQUENCE {
+ cN-DomainIndicator CN-DomainIndicator,
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RAB-FailedItem-EnhRelocInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-EnhRelocInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+TNLInformationEnhRelInfoRes ::=SEQUENCE{
+ dl-forwardingTransportLayerAddress TransportLayerAddress,
+ dl-forwardingTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { { TNLInformationEnhRelInfoRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TNLInformationEnhRelInfoRes-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RAB MODIFICATION REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Modify Request
+--
+-- **************************************************************
+
+RAB-ModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ModifyRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ModifyRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyList CRITICALITY ignore TYPE RAB-ModifyList PRESENCE mandatory},
+ ...
+}
+
+RAB-ModifyList ::= RAB-IE-ContainerList { {RAB-ModifyItemIEs} }
+
+RAB-ModifyItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ModifyItem CRITICALITY ignore TYPE RAB-ModifyItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ModifyItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ requested-RAB-Parameter-Values Requested-RAB-Parameter-Values,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ModifyItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ModifyRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION RELATED DATA ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Related Data Request
+--
+-- **************************************************************
+
+LocationRelatedDataRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationRelatedDataRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationRelatedDataRequestExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-LocationRelatedDataRequestType CRITICALITY reject TYPE LocationRelatedDataRequestType PRESENCE optional },
+ -- This IE is mandatory for UTRAN, optional for GERAN Iu Mode �-
+ ...
+}
+
+LocationRelatedDataRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 5 to enable LCS support for GERAN Iu mode --
+ { ID id-LocationRelatedDataRequestTypeSpecificToGERANIuMode CRITICALITY reject EXTENSION LocationRelatedDataRequestTypeSpecificToGERANIuMode PRESENCE optional }|
+ -- The previous extension is optional for GERAN Iu Mode only, not applicable for UTRAN --
+ -- Extension for Release 7 to request GANSS Assistance Data. This IE shall be present if the Requested Location Related Data Type IE is set to
+ -- �Dedicated Assistance Data for Assisted GANSS� or `Dedicated Assistance Data for Assisted GPS and GANSS�--
+ { ID id-RequestedGANSSAssistanceData CRITICALITY reject EXTENSION RequestedGANSSAssistanceData PRESENCE conditional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Response
+--
+-- **************************************************************
+
+LocationRelatedDataResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataResponseExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-BroadcastAssistanceDataDecipheringKeys CRITICALITY ignore TYPE BroadcastAssistanceDataDecipheringKeys PRESENCE optional },
+ ...
+}
+
+LocationRelatedDataResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional }|
+ { ID id-BroadcastGANSSAssistanceDataDecipheringKeys CRITICALITY ignore EXTENSION BroadcastAssistanceDataDecipheringKeys PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Related Data Failure
+--
+-- **************************************************************
+
+LocationRelatedDataFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationRelatedDataFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { LocationRelatedDataFailureExtensions} } OPTIONAL,
+ ...
+}
+
+LocationRelatedDataFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+LocationRelatedDataFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for error handling
+ { ID id-CriticalityDiagnostics CRITICALITY ignore EXTENSION CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Information Transfer Indication
+--
+-- **************************************************************
+
+InformationTransferIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY reject TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-ProvidedData CRITICALITY reject TYPE ProvidedData PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional},
+ ...
+}
+
+InformationTransferIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Confirmation
+--
+-- **************************************************************
+
+InformationTransferConfirmation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferConfirmationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferConfirmationExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferConfirmationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferConfirmationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Information Transfer Failure
+--
+-- **************************************************************
+
+InformationTransferFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { InformationTransferFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { InformationTransferFailureExtensions} } OPTIONAL,
+ ...
+}
+
+InformationTransferFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationTransferID CRITICALITY ignore TYPE InformationTransferID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+InformationTransferFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE SPECIFIC INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Specific Information Indication
+--
+-- **************************************************************
+
+UESpecificInformationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UESpecificInformationIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {UESpecificInformationIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+UESpecificInformationIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UESBI-Iu CRITICALITY ignore TYPE UESBI-Iu PRESENCE optional },
+ ...
+}
+
+UESpecificInformationIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Information Transfer
+--
+-- **************************************************************
+
+DirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DirectInformationTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { { DirectInformationTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectInformationTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InterSystemInformationTransferType CRITICALITY ignore TYPE InterSystemInformationTransferType PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+DirectInformationTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK INFORMATION EXCHANGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Request
+--
+-- **************************************************************
+
+UplinkInformationExchangeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeRequestExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationExchangeType CRITICALITY reject TYPE InformationExchangeType PRESENCE mandatory } |
+ { ID id-InformationTransferType CRITICALITY reject TYPE InformationTransferType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "transfer" -- } |
+ { ID id-InformationRequestType CRITICALITY reject TYPE InformationRequestType PRESENCE conditional
+ -- This IE shall be present if the Information Exchange Type IE is set to "request" -- } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+UplinkInformationExchangeRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Response
+--
+-- **************************************************************
+
+UplinkInformationExchangeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeResponseExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-InformationRequested CRITICALITY ignore TYPE InformationRequested PRESENCE optional } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Uplink Information Exchange Failure
+--
+-- **************************************************************
+
+UplinkInformationExchangeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UplinkInformationExchangeFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { UplinkInformationExchangeFailureExtensions} } OPTIONAL,
+ ...
+}
+
+UplinkInformationExchangeFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UplinkInformationExchangeFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION START PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Start
+--
+-- **************************************************************
+
+MBMSSessionStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-MBMSSessionIdentity CRITICALITY ignore TYPE MBMSSessionIdentity PRESENCE optional } |
+ { ID id-MBMSBearerServiceType CRITICALITY reject TYPE MBMSBearerServiceType PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY reject TYPE IuSignallingConnectionIdentifier PRESENCE mandatory }|
+ { ID id-RAB-Parameters CRITICALITY reject TYPE RAB-Parameters PRESENCE mandatory } |
+ { ID id-PDP-TypeInformation CRITICALITY ignore TYPE PDP-TypeInformation PRESENCE optional } |
+ { ID id-MBMSSessionDuration CRITICALITY reject TYPE MBMSSessionDuration PRESENCE mandatory } |
+ { ID id-MBMSServiceArea CRITICALITY reject TYPE MBMSServiceArea PRESENCE mandatory } |
+ { ID id-FrequenceLayerConvergenceFlag CRITICALITY ignore TYPE FrequenceLayerConvergenceFlag PRESENCE optional } |
+ { ID id-RAListofIdleModeUEs CRITICALITY ignore TYPE RAListofIdleModeUEs PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-MBMSSessionRepetitionNumber CRITICALITY ignore TYPE MBMSSessionRepetitionNumber PRESENCE optional } |
+ { ID id-TimeToMBMSDataTransfer CRITICALITY reject TYPE TimeToMBMSDataTransfer PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStartExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 6 to enable MBMS counting in broadcast mode --
+ { ID id-MBMSCountingInformation CRITICALITY ignore EXTENSION MBMSCountingInformation PRESENCE optional } |
+ { ID id-MBMSSynchronisationInformation CRITICALITY ignore EXTENSION MBMSSynchronisationInformation PRESENCE optional },
+ ...
+}
+
+MBMSSynchronisationInformation ::= SEQUENCE {
+ mBMSHCIndicator MBMSHCIndicator,
+ iPMulticastAddress IPMulticastAddress,
+ gTPDLTEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {MBMSSynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBMSSynchronisationInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Response
+--
+-- **************************************************************
+
+MBMSSessionStartResponse::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSSessionStartResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSSessionStartResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Start Failure
+--
+-- **************************************************************
+
+MBMSSessionStartFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStartFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStartFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStartFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStartFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION UPDATE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Update
+--
+-- **************************************************************
+
+MBMSSessionUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY reject TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-DeltaRAListofIdleModeUEs CRITICALITY reject TYPE DeltaRAListofIdleModeUEs PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionUpdateExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Response
+--
+-- **************************************************************
+
+MBMSSessionUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Update Failure
+--
+-- **************************************************************
+
+MBMSSessionUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionUpdateFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionUpdateFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionUpdateFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-SessionUpdateID CRITICALITY ignore TYPE SessionUpdateID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionUpdateFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS SESSION STOP PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Session Stop
+--
+-- **************************************************************
+
+MBMSSessionStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSCNDe-Registration CRITICALITY reject TYPE MBMSCNDe-Registration PRESENCE mandatory },
+ ...
+}
+
+MBMSSessionStopExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Session Stop Response
+--
+-- **************************************************************
+
+MBMSSessionStopResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSSessionStopResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSSessionStopResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSSessionStopResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSSessionStopResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE LINKING PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS UE Linking Request
+--
+-- **************************************************************
+
+MBMSUELinkingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-JoinedMBMSBearerServicesList CRITICALITY reject TYPE JoinedMBMSBearerService-IEs PRESENCE optional } |
+ { ID id-LeftMBMSBearerServicesList CRITICALITY reject TYPE LeftMBMSBearerService-IEs PRESENCE optional },
+ ...
+}
+
+LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ iE-Extensions ProtocolExtensionContainer { {LeftMBMSBearerService-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+LeftMBMSBearerService-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS UE Linking Response
+--
+-- **************************************************************
+
+MBMSUELinkingResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSUELinkingResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSUELinkingResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSUELinkingResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-UnsuccessfulLinkingList CRITICALITY ignore TYPE UnsuccessfulLinking-IEs PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
+ SEQUENCE {
+ tMGI TMGI,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {UnsuccessfulLinking-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UnsuccessfulLinking-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBMSUELinkingResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS Registration Request
+--
+-- **************************************************************
+
+MBMSRegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-MBMSRegistrationRequestType CRITICALITY reject TYPE MBMSRegistrationRequestType PRESENCE mandatory } |
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-IPMulticastAddress CRITICALITY reject TYPE IPMulticastAddress PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-APN CRITICALITY reject TYPE APN PRESENCE conditional
+ -- This IE shall be present if the MBMS Registration Request Type IE is set to "register" -- } |
+ { ID id-GlobalRNC-ID CRITICALITY reject TYPE GlobalRNC-ID PRESENCE optional },
+ ...
+}
+
+MBMSRegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Response
+--
+-- **************************************************************
+
+MBMSRegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS Registration Failure
+--
+-- **************************************************************
+
+MBMSRegistrationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRegistrationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRegistrationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRegistrationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE optional } |
+ { ID id-GlobalCN-ID CRITICALITY ignore TYPE GlobalCN-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSRegistrationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN DE-REGISTRATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Request
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY reject TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalCN-ID CRITICALITY reject TYPE GlobalCN-ID PRESENCE optional },
+ ...
+}
+
+MBMSCNDe-RegistrationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS CN De-Registration Response
+--
+-- **************************************************************
+
+MBMSCNDe-RegistrationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSCNDe-RegistrationResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSCNDe-RegistrationResponseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TMGI CRITICALITY ignore TYPE TMGI PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+MBMSCNDe-RegistrationResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 7 to indicate extended RNC-ID --
+ { ID id-ExtendedRNC-ID CRITICALITY reject EXTENSION ExtendedRNC-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB ESTABLISHMENT INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Establishment Indication
+--
+-- **************************************************************
+
+MBMSRABEstablishmentIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MBMSRABEstablishmentIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { { MBMSRABEstablishmentIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABEstablishmentIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TransportLayerInformation CRITICALITY ignore TYPE TransportLayerInformation PRESENCE mandatory } ,
+ ...
+}
+
+MBMSRABEstablishmentIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB RELEASE PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MBMS RAB Release Request
+--
+-- **************************************************************
+
+MBMSRABReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+
+MBMSRABReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release
+--
+-- **************************************************************
+
+MBMSRABRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MBMS RAB Release Failure
+--
+-- **************************************************************
+
+MBMSRABReleaseFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MBMSRABReleaseFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {MBMSRABReleaseFailureExtensions} } OPTIONAL,
+ ...
+}
+
+MBMSRABReleaseFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+MBMSRABReleaseFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Request
+--
+-- **************************************************************
+
+SRVCC-CSKeysRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysRequestIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+SRVCC-CSKeysRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRVCC CS Keys Response
+--
+-- **************************************************************
+
+SRVCC-CSKeysResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRVCC-CSKeysResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRVCC-CSKeysResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRVCC-CSKeysResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionKey CRITICALITY reject TYPE IntegrityProtectionKey PRESENCE mandatory }|
+ { ID id-EncryptionKey CRITICALITY reject TYPE EncryptionKey PRESENCE mandatory }|
+ { ID id-SRVCC-Information CRITICALITY reject TYPE SRVCC-Information PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SRVCC-CSKeysResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Descriptions.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Descriptions.asn1
new file mode 100644
index 0000000000..a7f4aded76
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP-PDU-Descriptions.asn1
@@ -0,0 +1,619 @@
+-- RANAP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 25.413 V8.2.1 (2009-03)
+-- http://www.3gpp.org/ftp/Specs/archive/25_series/25.413/25413-821.zip
+--
+-- 9.3.2 Elementary Procedure Definitions
+--
+-- $Id$
+--
+
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+RANAP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM RANAP-CommonDataTypes
+
+ Iu-ReleaseCommand,
+ Iu-ReleaseComplete,
+ RelocationCommand,
+ RelocationPreparationFailure,
+ RelocationRequired,
+ RelocationRequest,
+ RelocationRequestAcknowledge,
+ RelocationFailure,
+ RelocationCancel,
+ RelocationCancelAcknowledge,
+ EnhancedRelocationCompleteRequest,
+ EnhancedRelocationCompleteResponse,
+ EnhancedRelocationCompleteFailure,
+ EnhancedRelocationCompleteConfirm,
+ SRNS-ContextRequest,
+ SRNS-ContextResponse,
+ SecurityModeCommand,
+ SecurityModeComplete,
+ SecurityModeReject,
+ DataVolumeReportRequest,
+ DataVolumeReport,
+ Reset,
+ ResetAcknowledge,
+ RAB-ReleaseRequest,
+ Iu-ReleaseRequest,
+ RelocationDetect,
+ RelocationComplete,
+ Paging,
+ CommonID,
+ CN-InvokeTrace,
+ CN-DeactivateTrace,
+ LocationReportingControl,
+ LocationReport,
+ InitialUE-Message,
+ DirectTransfer,
+ Overload,
+ ErrorIndication,
+ SRNS-DataForwardCommand,
+ ForwardSRNS-Context,
+ RAB-AssignmentRequest,
+ RAB-AssignmentResponse,
+ RAB-ModifyRequest,
+ PrivateMessage,
+ ResetResource,
+ ResetResourceAcknowledge,
+ RANAP-RelocationInformation,
+ RANAP-EnhancedRelocationInformationRequest,
+ RANAP-EnhancedRelocationInformationResponse,
+ LocationRelatedDataRequest,
+ LocationRelatedDataResponse,
+ LocationRelatedDataFailure,
+ InformationTransferIndication,
+ InformationTransferConfirmation,
+ InformationTransferFailure,
+ UESpecificInformationIndication,
+ DirectInformationTransfer,
+ UplinkInformationExchangeRequest,
+ UplinkInformationExchangeResponse,
+ UplinkInformationExchangeFailure,
+ MBMSSessionStart,
+ MBMSSessionStartResponse,
+ MBMSSessionStartFailure,
+ MBMSSessionUpdate,
+ MBMSSessionUpdateResponse,
+ MBMSSessionUpdateFailure,
+ MBMSSessionStop,
+ MBMSSessionStopResponse,
+ MBMSUELinkingRequest,
+ MBMSUELinkingResponse,
+ MBMSRegistrationRequest,
+ MBMSRegistrationResponse,
+ MBMSRegistrationFailure,
+ MBMSCNDe-RegistrationRequest,
+ MBMSCNDe-RegistrationResponse,
+ MBMSRABEstablishmentIndication,
+ MBMSRABReleaseRequest,
+ MBMSRABRelease,
+ MBMSRABReleaseFailure,
+ SRVCC-CSKeysRequest,
+ SRVCC-CSKeysResponse
+FROM RANAP-PDU-Contents
+
+ id-LocationRelatedData,
+ id-CN-DeactivateTrace,
+ id-CN-InvokeTrace,
+ id-CommonID,
+ id-DataVolumeReport,
+ id-DirectTransfer,
+ id-ErrorIndication,
+ id-ForwardSRNS-Context,
+ id-InformationTransfer,
+ id-InitialUE-Message,
+ id-Iu-Release,
+ id-Iu-ReleaseRequest,
+ id-LocationReport,
+ id-LocationReportingControl,
+ id-OverloadControl,
+ id-Paging,
+ id-privateMessage,
+ id-RAB-Assignment,
+ id-RAB-ReleaseRequest,
+ id-RAB-ModifyRequest,
+ id-RANAP-Relocation,
+ id-RANAPenhancedRelocation,
+ id-RelocationCancel,
+ id-RelocationComplete,
+ id-RelocationDetect,
+ id-RelocationPreparation,
+ id-RelocationResourceAllocation,
+ id-enhancedRelocationComplete,
+ id-enhancedRelocationCompleteConfirm,
+ id-Reset,
+ id-SRNS-ContextTransfer,
+ id-SRNS-DataForward,
+ id-SecurityModeControl,
+ id-ResetResource,
+ id-UESpecificInformation,
+ id-DirectInformationTransfer,
+ id-UplinkInformationExchange,
+ id-MBMSSessionStart,
+ id-MBMSSessionUpdate,
+ id-MBMSSessionStop,
+ id-MBMSUELinking,
+ id-MBMSRegistration,
+ id-MBMSCNDe-Registration-Procedure,
+ id-MBMSRABEstablishmentIndication,
+ id-MBMSRABRelease,
+ id-SRVCCPreparation
+
+FROM RANAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ reset |
+ resetResource ,
+ ...,
+ locationRelatedData |
+ informationTransfer |
+ uplinkInformationExchange |
+ mBMSSessionStart |
+ mBMSSessionUpdate |
+ mBMSSessionStop |
+ mBMSUELinking |
+ mBMSRegistration |
+ mBMSCNDe-Registration |
+ mBMSRABRelease |
+ enhancedRelocationComplete |
+ rANAP-enhancedRelocation |
+ sRVCCPreparation}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...,
+ rAB-ModifyRequest |
+ uESpecificInformation |
+ directInformationTransfer |
+ mBMSRABEstablishmentIndication |
+ enhancedRelocationCompleteConfirm
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY reject
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY reject
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY reject
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY reject
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY reject
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY reject
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY reject
+}
+
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY reject
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY reject
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+rAB-ModifyRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ModifyRequest
+ PROCEDURE CODE id-RAB-ModifyRequest
+ CRITICALITY ignore
+}
+
+locationRelatedData RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationRelatedDataRequest
+ SUCCESSFUL OUTCOME LocationRelatedDataResponse
+ UNSUCCESSFUL OUTCOME LocationRelatedDataFailure
+ PROCEDURE CODE id-LocationRelatedData
+ CRITICALITY reject
+}
+
+informationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationTransferIndication
+ SUCCESSFUL OUTCOME InformationTransferConfirmation
+ UNSUCCESSFUL OUTCOME InformationTransferFailure
+ PROCEDURE CODE id-InformationTransfer
+ CRITICALITY reject
+}
+
+uESpecificInformation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UESpecificInformationIndication
+ PROCEDURE CODE id-UESpecificInformation
+ CRITICALITY ignore
+}
+
+directInformationTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectInformationTransfer
+ PROCEDURE CODE id-DirectInformationTransfer
+ CRITICALITY ignore
+}
+
+uplinkInformationExchange RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkInformationExchangeRequest
+ SUCCESSFUL OUTCOME UplinkInformationExchangeResponse
+ UNSUCCESSFUL OUTCOME UplinkInformationExchangeFailure
+ PROCEDURE CODE id-UplinkInformationExchange
+ CRITICALITY reject
+}
+
+mBMSSessionStart RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStart
+ SUCCESSFUL OUTCOME MBMSSessionStartResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionStartFailure
+ PROCEDURE CODE id-MBMSSessionStart
+ CRITICALITY reject
+}
+
+mBMSSessionUpdate RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionUpdate
+ SUCCESSFUL OUTCOME MBMSSessionUpdateResponse
+ UNSUCCESSFUL OUTCOME MBMSSessionUpdateFailure
+ PROCEDURE CODE id-MBMSSessionUpdate
+ CRITICALITY reject
+}
+
+mBMSSessionStop RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSSessionStop
+ SUCCESSFUL OUTCOME MBMSSessionStopResponse
+ PROCEDURE CODE id-MBMSSessionStop
+ CRITICALITY reject
+}
+
+mBMSUELinking RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSUELinkingRequest
+ OUTCOME MBMSUELinkingResponse
+ PROCEDURE CODE id-MBMSUELinking
+ CRITICALITY reject
+}
+
+mBMSRegistration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRegistrationRequest
+ SUCCESSFUL OUTCOME MBMSRegistrationResponse
+ UNSUCCESSFUL OUTCOME MBMSRegistrationFailure
+ PROCEDURE CODE id-MBMSRegistration
+ CRITICALITY reject
+}
+
+mBMSCNDe-Registration RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSCNDe-RegistrationRequest
+ SUCCESSFUL OUTCOME MBMSCNDe-RegistrationResponse
+ PROCEDURE CODE id-MBMSCNDe-Registration-Procedure
+ CRITICALITY reject
+}
+
+mBMSRABEstablishmentIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABEstablishmentIndication
+ PROCEDURE CODE id-MBMSRABEstablishmentIndication
+ CRITICALITY ignore
+}
+
+mBMSRABRelease RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MBMSRABReleaseRequest
+ SUCCESSFUL OUTCOME MBMSRABRelease
+ UNSUCCESSFUL OUTCOME MBMSRABReleaseFailure
+ PROCEDURE CODE id-MBMSRABRelease
+ CRITICALITY reject
+}
+enhancedRelocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteRequest
+ SUCCESSFUL OUTCOME EnhancedRelocationCompleteResponse
+ UNSUCCESSFUL OUTCOME EnhancedRelocationCompleteFailure
+ PROCEDURE CODE id-enhancedRelocationComplete
+ CRITICALITY reject
+}
+
+enhancedRelocationCompleteConfirm RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EnhancedRelocationCompleteConfirm
+ PROCEDURE CODE id-enhancedRelocationCompleteConfirm
+ CRITICALITY ignore
+}
+
+rANAP-enhancedRelocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-EnhancedRelocationInformationRequest
+ SUCCESSFUL OUTCOME RANAP-EnhancedRelocationInformationResponse
+ PROCEDURE CODE id-RANAPenhancedRelocation
+ CRITICALITY reject
+}
+
+sRVCCPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRVCC-CSKeysRequest
+ OUTCOME SRVCC-CSKeysResponse
+ PROCEDURE CODE id-SRVCCPreparation
+ CRITICALITY reject
+}
+
+END
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP.asn1
new file mode 100644
index 0000000000..55fb58b163
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAP.asn1
@@ -0,0 +1,3237 @@
+RANAP DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+-- RANAP-CommonDataTypes { object identifier to be allocated }--
+-- 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, outcome }
+
+-- END
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+-- RANAP-Constants { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-CN-InformationBroadcast INTEGER ::= 8
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 1000
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPieces INTEGER ::= 16
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfVol INTEGER ::= 2
+
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-BroadcastInformationPiece INTEGER ::= 1
+id-CN-BroadcastInformationPieceList INTEGER ::= 2
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-SourceRNC-ToTargetRNC-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-TargetRNC-ToSourceRNC-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+
+-- END **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+-- RANAP-Containers { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- END **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+-- RANAP-IEs { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- A
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101)
+
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ change-of-ciphering-and-or-integrity-protection-is-not-supported (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bitr-ate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-report-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40)
+} (1..64)
+
+CauseNon-Standard ::= INTEGER (129..256)
+
+CauseTransmissionNetwork ::= INTEGER {
+ logical-error-unknown-iu-transport-association (65)
+} (65..80)
+
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ criticalityResponse Criticality OPTIONAL,
+ iEsCriticalityResponses CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ criticalityResponse Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+
+CN-BroadcastArea ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (2..12)
+DSCH-ID ::= INTEGER (0..255)
+
+-- E
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+Event ::= ENUMERATED {
+ stop,
+ direct,
+ change-of-servicearea,
+ ...
+}
+
+-- F
+-- G
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+-- Reference: xx.xxx
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+-- I
+InformationIdentity ::= INTEGER (0..255)
+
+InformationPriority ::= INTEGER (0..15)
+
+InformationControl ::= ENUMERATED {
+ on,
+ off
+}
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IntegrityProtectionAlgorithm ::= INTEGER { standard-UMTS-integrity-algorithm-UIA1 (0) } (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MCC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+MNC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+-- N
+
+
+NAS-BroadcastInformation ::= OCTET STRING
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM TS 12.20
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ speech-call,
+ cs-data-call,
+ ps-data-call,
+ sms,
+ ...
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value is used for OSP:IHOSS -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMN-ID ::= TBCD-STRING (SIZE (3))
+
+Pre-emptionCapability ::= ENUMERATED {
+ can-not-trigger-pre-emption,
+ can-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-vulnerable-to-pre-emption,
+ vulnerable-to-pre-emption
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE is only present when traffic class indicates Interactiv --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber ::= INTEGER (0..255)
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-coordinates,
+ ...
+}
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ -- To be used if Geographical Coordinates shall be reported with a requested accuracy. --
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+RRC-Container ::= OCTET STRING
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ normal-priority,
+ low-priority,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL
+ -- This IE is only present for RABs that have predefined SDU size(s) --,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL
+ -- At least either of subflowSDU-Size or rABsubflowCombinationBitRate --
+ -- shall be present when SDUformatInformationParameter is present --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE is not present when DeliveryOfErroneousSDU is set to no-error-detection-consideration --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL
+ -- When signalled, this IE indicates that the RAB is rate controllable --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID, -- If UMTS target
+ sAI SAI, -- if GSM target
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ cipheringKey EncryptionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ d-RNTI D-RNTI OPTIONAL
+ -- Included for SRNS Relocation without UE involvement --,
+ targetCellId TargetCellId OPTIONAL
+ -- Included for SRNS Relocation with UE involvement --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL
+ -- Included for SRNS Relocation without UE involvement and --
+ -- if RABs are carried on DCH, USCH or DSCH transport channels --,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID, -- If UMTS target
+ cGI CGI, -- If GSM target
+ ...
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL
+ -- Must always be present towards the PS domain and never towards the CS domain --,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ dSCH-ID DSCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ uSCH-ID USCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+-- U
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...
+}
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+-- END **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+-- RANAP-PDU-Contents { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+CN-BroadcastInfPiece-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfPieces, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group is only present if data volume reporting for PS domain is required -- } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain when the release was initiated by UTRAN -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY ignore TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY ignore TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be present when initiating relocation of SRNS -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY reject TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group if applicable is only present for RABs towards the PS domain -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE is only present if available at the sending side --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- Must be included if applicapble and if not sent via the other CN -- } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY ignore TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY ignore TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INFORMATION BROADCAST
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Information Broadcast Request
+--
+-- **************************************************************
+
+CN-InformationBroadcastRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRequestExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CN-BroadcastInformationPieceList CRITICALITY ignore TYPE CN-BroadcastInformationPieceList PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPieceList ::= CN-BroadcastInfPiece-IE-ContainerList { {CN-BroadcastInformationPieceIEs} }
+
+CN-BroadcastInformationPieceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-BroadcastInformationPiece CRITICALITY ignore TYPE CN-BroadcastInformationPiece PRESENCE mandatory },
+ ...
+}
+
+CN-BroadcastInformationPiece ::= SEQUENCE {
+ informationIdentity InformationIdentity,
+ nAS-BroadcastInformation NAS-BroadcastInformation OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ cN-BroadcastArea CN-BroadcastArea OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationPriority InformationPriority OPTIONAL
+ -- Included if CN requests UTRAN to broadcast the information piece --,
+ informationControl InformationControl,
+ iE-Extensions ProtocolExtensionContainer { {CN-BroadcastInformationPiece-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CN-BroadcastInformationPiece-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CN-InformationBroadcastRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Confirm
+--
+-- **************************************************************
+
+CN-InformationBroadcastConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastConfirmIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastConfirmExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastConfirmIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastConfirmExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN Information Broadcast Reject
+--
+-- **************************************************************
+
+CN-InformationBroadcastReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InformationBroadcastRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InformationBroadcastRejectExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InformationBroadcastRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+ ...
+}
+
+CN-InformationBroadcastRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY ignore TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE optional } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE mandatory } |
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present for RABs towards the PS domain -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE conditional
+ -- This IE is always used in downlink direction-- },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional } |
+ { ID id-IuTransportAssociation CRITICALITY ignore TYPE IuTransportAssociation PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction when message is sent connectionless -- },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain -- },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation
+ -- This IE is only present for RABs towards the PS domain -- OPTIONAL,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ iuTransportAssociation IuTransportAssociation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if the RAB has been modified and --
+ -- RAB data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when the release is UTRAN initiated -- ,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- END
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+-- RANAP-PDU-Descriptions { object identifier to be allocated }--
+-- DEFINITIONS AUTOMATIC TAGS ::=
+
+-- BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ cN-InformationBroadcast |
+ reset |
+ resetResource ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY ignore
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY ignore
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY ignore
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY ignore
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY ignore
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY ignore
+}
+
+cN-InformationBroadcast RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InformationBroadcastRequest
+ SUCCESSFUL OUTCOME CN-InformationBroadcastConfirm
+ UNSUCCESSFUL OUTCOME CN-InformationBroadcastReject
+ PROCEDURE CODE id-CN-InformationBroadcast
+ CRITICALITY ignore
+}
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY ignore
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY ignore
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY ignore
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPSET.set.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPSET.set.asn1
new file mode 100644
index 0000000000..b40936514e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPSET.set.asn1
@@ -0,0 +1,6 @@
+RANAP-CommonDataTypes.asn1
+RANAP-Constants.asn1
+RANAP-Containers.asn1
+RANAP-IEs.asn1
+RANAP-PDU-Contents.asn1
+RANAP-PDU-Descriptions.asn1
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPextract1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPextract1.asn
new file mode 100644
index 0000000000..2f28cb7384
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/RANAPextract1.asn
@@ -0,0 +1,142 @@
+RANAPextract1 DEFINITIONS ::=
+BEGIN
+
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+-- successfulOutcome SuccessfulOutcome,
+-- unsuccessfulOutcome UnsuccessfulOutcome,
+-- outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ }
+
+
+InitiatingMessage2 ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES-2}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES-2}{@procedureCode})
+}
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY ignore
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY notify
+}
+
+object3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ &InitiatingMessage Iu-ReleaseCommand,
+ &SuccessfulOutcome Iu-ReleaseComplete,
+ &procedureCode id-Iu-Release-3,
+ &criticality reject
+ }
+
+
+-- OTP-5466
+testObject RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify
+}
+
+testObject2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test2
+ CRITICALITY notify
+}
+-- OTP-5466
+
+
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...
+ }
+
+-- additional definition R-E-P and change in RANAP-ELEMENTARY-PROCEDURES-2
+-- from RANAP-ELEMENTARY-PROCEDURE to R-E-P to test OTP-4441
+
+R-E-P ::= RANAP-ELEMENTARY-PROCEDURE
+
+-- add for RANAP-ELEMENTARY-PROCEDURES-2 and object3 OTP-4275
+RANAP-ELEMENTARY-PROCEDURES-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation ,
+ ...,
+ object3
+}
+
+
+-- OTP-5466
+RANAP-ELEMENTARY-PROCEDURES-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ {INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-test
+ CRITICALITY notify}
+}
+
+RANAP-ELEMENTARY-PROCEDURES-4 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release|
+ testObject,
+ ...,
+ relocationPreparation |
+ testObject2
+}
+-- OTP-5466
+
+
+
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ first INTEGER,
+ second BOOLEAN
+ }
+
+Iu-ReleaseComplete ::= INTEGER (1..510)
+
+ProcedureCode ::= INTEGER (0..255)
+Criticality ::= ENUMERATED { reject, ignore, notify }
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-Iu-Release-3 INTEGER ::= 3
+-- OTP-5466
+id-test INTEGER ::= 4
+id-test2 INTEGER ::= 5
+-- OTP-5466
+
+END
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ROSE.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/ROSE.asn1
new file mode 100644
index 0000000000..2fefae3caf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ROSE.asn1
@@ -0,0 +1,449 @@
+ROSE DEFINITIONS IMPLICIT TAGS ::=
+
+
+BEGIN
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Real.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Real.py
new file mode 100644
index 0000000000..6b7a748b4e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Real.py
@@ -0,0 +1,31 @@
+Real DEFINITIONS ::=
+BEGIN
+
+-- F.2.4.1
+-- Use a real type to model an approximate number.
+-- EXAMPLE
+
+AngleInRadians ::= REAL
+
+pi REAL ::=
+ {mantissa 3141592653589793238462643383279, base 10, exponent -30}
+
+-- F.2.4.2
+-- Application designers may wish to ensure full interworking with real
+-- values despite
+-- differences in floating point hardware, and in implementation
+-- decisions to use
+-- (for example) single or double length floating point for an application.
+-- This can be achieved by the following:
+ App-X-Real ::= REAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2),
+ exponent (-125..128) } )
+
+-- Senders shall not transmit values outside these ranges
+-- and conforming receivers shall be capable of receiving
+-- and processing all values in these ranges.
+
+ girth App-X-Real ::= {mantissa 16, base 2, exponent 1}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
new file mode 100644
index 0000000000..7dcf4fda0e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Generic-ROS-PDUs.asn1
@@ -0,0 +1,203 @@
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS OPERATION, ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+
+
+ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
+ {
+ invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult {{Returnable}},
+ returnError [3] ReturnError {{Errors{{Returnable}}}},
+ reject [4] Reject
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-unrecognizedPDU)
+
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
+{
+ invokeId InvokeId (InvokeIdSet)
+ (CONSTRAINED BY {-- must be unambiguous --}
+ ! RejectProblem : invoke-duplicateInvocation),
+ linkedId CHOICE {
+ present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY {-- must identify an outstanding operation --}
+ ! RejectProblem : invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY {-- which has one or more linked operations--}
+ ! RejectProblem : invoke-linkedResponseUnexpected)
+ OPTIONAL,
+ opcode OPERATION.&operationCode
+ ({Operations}
+ ! RejectProblem : invoke-unrecognizedOperation),
+ argument OPERATION.&ArgumentType
+ ({Operations} {@opcode}
+ ! RejectProblem : invoke-mistypedArgument)
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --}
+ ! RejectProblem : general-mistypedPDU)
+(
+WITH COMPONENTS
+{...,
+ linkedId ABSENT
+ }
+| WITH COMPONENTS
+{...,
+ linkedId PRESENT,
+ opcode
+ (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
+ }
+ ! RejectProblem : invoke-unexpectedLinkedOperation)
+ }
+)
+
+ReturnResult {OPERATION:Operations}::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --}
+ ! RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns a result --}
+ ! RejectProblem:returnResult-resultResponseUnexpected),
+ result SEQUENCE
+ {
+ opcode OPERATION.&operationCode
+ ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+ ! RejectProblem:returnResult-unrecognizedInvocation),
+ result OPERATION.&ResultType ({Operations} {@.opcode}
+ ! RejectProblem:returnResult-mistypedResult)
+ }
+ OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem:general-mistypedPDU)
+
+ReturnError {ERROR:Errors} ::= SEQUENCE
+{
+ invokeId InvokeId
+ (CONSTRAINED BY {-- must be that for an outstanding operation --
+ }
+ ! RejectProblem : returnError-unrecognizedInvocation)
+ (CONSTRAINED BY {-- which returns an error --
+ }
+ ! RejectProblem : returnError-errorResponseUnexpected),
+ errcode ERROR.&errorCode
+ ({Errors}
+ ! RejectProblem : returnError-unrecognizedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
+ }
+ ! RejectProblem : returnError-unexpectedError),
+ parameter ERROR.&ParameterType
+ ({Errors}{@errcode}
+ ! RejectProblem : returnError-mistypedParameter) OPTIONAL
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+Reject ::= SEQUENCE
+{
+ invokeId InvokeId,
+ problem CHOICE
+ {
+ general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem
+ }
+ }
+(CONSTRAINED BY {-- must conform to the above definition --
+ }
+! RejectProblem : general-mistypedPDU)
+
+GeneralProblem ::= INTEGER
+{
+ unrecognizedPDU (0),
+ mistypedPDU (1),
+ badlyStructuredPDU (2)
+ }
+
+InvokeProblem ::= INTEGER
+{
+ duplicateInvocation (0),
+ unrecognizedOperation (1),
+ mistypedArgument (2),
+ resourceLimitation (3),
+ releaseInProgress (4),
+ unrecognizedLinkedId (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7)
+ }
+
+ReturnResultProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ resultResponseUnexpected (1),
+ mistypedResult (2)
+ }
+
+ReturnErrorProblem ::= INTEGER
+{
+ unrecognizedInvocation (0),
+ errorResponseUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4)
+ }
+
+RejectProblem ::= INTEGER
+{
+ general-unrecognizedPDU (0),
+ general-mistypedPDU (1),
+ general-badlyStructuredPDU (2),
+ invoke-duplicateInvocation (10),
+ invoke-unrecognizedOperation (11),
+ invoke-mistypedArgument (12),
+ invoke-resourceLimitation (13),
+ invoke-releaseInProgress (14),
+ invoke-unrecognizedLinkedId (15),
+ invoke-linkedResponseUnexpected (16),
+ invoke-unexpectedLinkedOperation (17),
+ returnResult-unrecognizedInvocation (20),
+ returnResult-resultResponseUnexpected (21),
+ returnResult-mistypedResult (22),
+ returnError-unrecognizedInvocation (30),
+ returnError-errorResponseUnexpected (31),
+ returnError-unrecognizedError (32),
+ returnError-unexpectedError (33),
+ returnError-mistypedParameter (34)
+ }
+
+InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+ }
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+Bind {OPERATION:operation} ::= CHOICE
+{
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType ({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+Unbind {OPERATION:operation} ::= CHOICE
+{
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType ({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
+ }
+
+END -- end of generic ROS PDU definitions
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Information-Objects.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Information-Objects.asn1
new file mode 100644
index 0000000000..b467c0a754
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Information-Objects.asn1
@@ -0,0 +1,130 @@
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS emptyBind, emptyUnbind
+FROM Remote-Operations-Useful-Definitions
+{joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS
+{
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &idempotent BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+ {
+ [ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [IDEMPOTENT &idempotent]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+ }
+
+ERROR ::= CLASS
+{
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [PARAMETER &ParameterType [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+ }
+
+OPERATION-PACKAGE ::= CLASS
+{
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+ }
+
+CONNECTION-PACKAGE ::= CLASS
+{
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+ }
+
+CONTRACT ::= CLASS
+{
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+ }
+WITH SYNTAX
+{
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS
+{
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+ }
+WITH SYNTAX
+{
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+ }
+
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+ }
+
+Priority ::= INTEGER (0..MAX)
+
+END -- end of Information Object specifications
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Merged.set.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Merged.set.asn1
new file mode 100644
index 0000000000..c321464a2e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Merged.set.asn1
@@ -0,0 +1,3 @@
+Remote-Operations-Generic-ROS-PDUs.asn1
+Remote-Operations-Information-Objects.asn1
+Remote-Operations-Useful-Definitions.asn1
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Useful-Definitions.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Useful-Definitions.asn1
new file mode 100644
index 0000000000..989c23dd5f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Remote-Operations-Useful-Definitions.asn1
@@ -0,0 +1,149 @@
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) useful-definitions(7) version2(1)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+
+IMPORTS
+
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs
+ {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+
+emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
+
+emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
+
+refuse ERROR ::= {CODE local:-1}
+
+no-op OPERATION ::=
+ {
+ IDEMPOTENT TRUE
+ ALWAYS RESPONDS FALSE
+ CODE local:-1
+ }
+
+Forward {OPERATION:OperationSet} OPERATION ::=
+{
+ OperationSet |
+ OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked
+ }
+
+Reverse {OPERATION:OperationSet} OPERATION ::=
+{Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Consumer}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} |
+ Reverse{{package.&Both}}
+ }
+
+SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ Forward{{package.&Supplier}} |
+ Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} |
+ Reverse{{package.&Both}}
+ }
+
+AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
+{
+ ConsumerPerforms {package} |
+ SupplierPerforms {package}
+ }
+
+recode {OPERATION:operation, Code:code} OPERATION ::=
+{
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+ }
+
+switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+ }
+
+combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base
+ } OPERATION-PACKAGE ::=
+{
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+ }
+
+ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
+
+ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
+
+ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
+{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ IDEMPOTENT TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ IDEMPOTENT TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+cancel OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ ERRORS {cancelFailed}
+ IDEMPOTENT TRUE
+ CODE local:-4
+ }
+
+cancelFailed ERROR ::=
+ {
+ PARAMETER SET
+ {
+ problem [0] CancelProblem,
+ operation [1] InvokeId
+ }
+ CODE local:-2
+ }
+
+CancelProblem ::= ENUMERATED
+{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
+
+cancelled ERROR ::= {CODE local:-3}
+
+END -- end of useful definitions.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..3ddbf35a2f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-CommonDataTypes.asn
@@ -0,0 +1,35 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Constants.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Constants.asn
new file mode 100644
index 0000000000..ff4e8779cd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Constants.asn
@@ -0,0 +1,251 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCSGs INTEGER ::= 256
+maxNrOfE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxNrOfErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCells INTEGER ::= 16
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Containers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Containers.asn
new file mode 100644
index 0000000000..63883f424c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-Containers.asn
@@ -0,0 +1,201 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-IEs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-IEs.asn
new file mode 100644
index 0000000000..719bf1359b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-IEs.asn
@@ -0,0 +1,1178 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ maxNrOfCSGs,
+ maxNrOfE-RABs,
+ maxNrOfErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofTACs,
+ maxnoofCells,
+ maxnoofCellID,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+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,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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 CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+-- E
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...
+}
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- H
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ 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,
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+-- I
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+
+-- M
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberofBroadcast ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OverloadAction ::= ENUMERATED {
+reject-non-emergency-mo-dt,
+reject-all-rrc-cr-signalling,
+permit-emergency-sessions-only,
+ ...
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PLMNidentity ::= TBCD-STRING
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RAC ::= OCTET STRING (SIZE (1))
+
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4096)
+
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...
+}
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...
+}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- V
+-- W
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Y
+-- Z
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Contents.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..e9762a2b62
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Contents.asn
@@ -0,0 +1,2083 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ UEAggregateMaximumBitrate,
+ Cause,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ CNDomain,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ GTP-TEID,
+ GUMMEI,
+ HandoverRestrictionList,
+ HandoverType,
+ MMEname,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PLMNidentity,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause
+
+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-uEaggregateMaximumBitrate,
+ id-Cause,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-CNDomain,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-NAS-DownlinkCount,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxNrOfErrors,
+ maxNrOfE-RABs,
+ maxNrOfIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY 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-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-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } |
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional } |
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs 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-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY 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-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } |
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } |
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- },
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs 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-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } |
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } |
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-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 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-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY 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 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs 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-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs 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-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory },
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs 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-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs 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-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- 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-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory }|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional },
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs 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-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory } |
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } |
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } |
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } |
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional },
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory} |
+
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs 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-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- 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-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-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} |
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} |
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional} |
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- 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} |
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI 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 }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxNrOfIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME Configuration UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnelingIEs 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-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } |
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional } |
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunneling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunneling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnelingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnelingIEs 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-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } |
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } |
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } |
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } |
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } |
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs 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-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs 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-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory} ,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs 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-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+...
+}
+
+CellTrafficTraceIEs 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-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs 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-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs 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},
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} |
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory} |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY reject TYPE BroadcastCompletedAreaList PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} ,
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Descriptions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..46667cac2d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,548 @@
+-- $Id$
+-- 3GPP TS 36.413 V8.6.1 (2009-06)
+-- 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
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkNASTransport,
+ DownlinkS1cdma2000tunneling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UplinkNASTransport,
+ UplinkS1cdma2000tunneling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkNASTransport,
+ id-DownlinkS1cdma2000tunneling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-uplinkNASTransport,
+ id-UplinkS1cdma2000tunneling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer
+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 |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunneling |
+ uplinkS1cdma2000tunneling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ 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
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunneling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunneling
+ PROCEDURE CODE id-UplinkS1cdma2000tunneling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+INITIATING MESSAGE CellTrafficTrace
+PROCEDURE CODE id-CellTrafficTrace
+CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SOpttest.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SOpttest.asn
new file mode 100644
index 0000000000..498d3ebec1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SOpttest.asn
@@ -0,0 +1,30 @@
+SOpttest DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+S ::= SEQUENCE {
+ a [0] A,
+ b [1] B OPTIONAL,
+ c [2] C OPTIONAL
+
+ }
+
+
+A ::= SEQUENCE {
+ scriptKey [0] INTEGER (0..214783647),
+ scriptAttribute1 [1] EXPLICIT INTEGER OPTIONAL,
+ scriptAttribute2 [2] EXPLICIT INTEGER OPTIONAL
+ }
+
+B ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+C ::= SEQUENCE {
+ iNLegToBeCreated [0] INTEGER OPTIONAL,
+ callingPartysCategory [1] INTEGER OPTIONAL,
+ redirectingPartyID [2] INTEGER OPTIONAL
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SSL-PKIX.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SSL-PKIX.asn1
new file mode 100644
index 0000000000..31d78bebbe
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SSL-PKIX.asn1
@@ -0,0 +1,704 @@
+SSL-PKIX {iso(1) identified-organization(3) dod(6) internet(1)
+ private(4) enterprices(1) ericsson(193) otp(19) ssl(10)
+ pkix1(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL
+
+IMPORTS
+ -- Certificate (parts of)
+ Version,
+ CertificateSerialNumber,
+ --AlgorithmIdentifier,
+ Validity,
+ UniqueIdentifier,
+
+ -- AttribyteTypeAndValue
+ Name,
+ AttributeType,
+ id-at-name,
+ id-at-surname,
+ id-at-givenName,
+ id-at-initials,
+ id-at-generationQualifier, X520name,
+ id-at-commonName, X520CommonName,
+ id-at-localityName, X520LocalityName,
+ id-at-stateOrProvinceName, X520StateOrProvinceName,
+ id-at-organizationName, X520OrganizationName,
+ id-at-organizationalUnitName, X520OrganizationalUnitName,
+ id-at-title, X520Title,
+ id-at-dnQualifier, X520dnQualifier,
+ id-at-countryName, X520countryName,
+ id-at-serialNumber, X520SerialNumber,
+ id-at-pseudonym, X520Pseudonym,
+ id-domainComponent, DomainComponent,
+ id-emailAddress, EmailAddress,
+
+ -- Extension Attributes
+ common-name, CommonName,
+ teletex-common-name, TeletexCommonName,
+ teletex-personal-name, TeletexPersonalName,
+ pds-name, PDSName,
+ physical-delivery-country-name, PhysicalDeliveryCountryName,
+ postal-code, PostalCode,
+ physical-delivery-office-name, PhysicalDeliveryOfficeName,
+ physical-delivery-office-number, PhysicalDeliveryOfficeNumber,
+ extension-OR-address-components, ExtensionORAddressComponents,
+ physical-delivery-personal-name, PhysicalDeliveryPersonalName,
+ physical-delivery-organization-name, PhysicalDeliveryOrganizationName,
+ extension-physical-delivery-address-components,
+ ExtensionPhysicalDeliveryAddressComponents,
+ unformatted-postal-address, UnformattedPostalAddress,
+ street-address, StreetAddress,
+ post-office-box-address, PostOfficeBoxAddress,
+ poste-restante-address, PosteRestanteAddress,
+ unique-postal-name, UniquePostalName,
+ local-postal-attributes, LocalPostalAttributes,
+ extended-network-address, ExtendedNetworkAddress,
+ terminal-type, TerminalType,
+ teletex-domain-defined-attributes, TeletexDomainDefinedAttributes
+
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-explicit(18) }
+
+ -- Extensions
+ id-ce-authorityKeyIdentifier, AuthorityKeyIdentifier,
+ id-ce-subjectKeyIdentifier, SubjectKeyIdentifier,
+ id-ce-keyUsage, KeyUsage,
+ id-ce-privateKeyUsagePeriod, PrivateKeyUsagePeriod,
+ id-ce-certificatePolicies, CertificatePolicies,
+ id-ce-policyMappings, PolicyMappings,
+ id-ce-subjectAltName, SubjectAltName,
+ id-ce-issuerAltName, IssuerAltName,
+ id-ce-subjectDirectoryAttributes, SubjectDirectoryAttributes,
+ id-ce-basicConstraints, BasicConstraints,
+ id-ce-nameConstraints, NameConstraints,
+ id-ce-policyConstraints, PolicyConstraints,
+ id-ce-cRLDistributionPoints, CRLDistributionPoints,
+ id-ce-extKeyUsage, ExtKeyUsageSyntax,
+ id-ce-inhibitAnyPolicy, InhibitAnyPolicy,
+ id-ce-freshestCRL, FreshestCRL,
+ id-pe-authorityInfoAccess, AuthorityInfoAccessSyntax,
+ id-pe-subjectInfoAccess, SubjectInfoAccessSyntax,
+ id-ce-cRLNumber, CRLNumber,
+ id-ce-issuingDistributionPoint, IssuingDistributionPoint,
+ id-ce-deltaCRLIndicator, BaseCRLNumber,
+ id-ce-cRLReasons, CRLReason,
+ id-ce-certificateIssuer, CertificateIssuer,
+ id-ce-holdInstructionCode, HoldInstructionCode,
+ id-ce-invalidityDate, InvalidityDate
+
+ FROM PKIX1Implicit88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-pkix1-implicit(19) }
+
+ --Keys and Signatures
+ id-dsa, Dss-Parms, DSAPublicKey,
+ id-dsa-with-sha1,
+ md2WithRSAEncryption,
+ md5WithRSAEncryption,
+ sha1WithRSAEncryption,
+ rsaEncryption, RSAPublicKey,
+ dhpublicnumber, DomainParameters, DHPublicKey,
+ id-keyExchangeAlgorithm, KEA-Parms-Id, --KEA-PublicKey,
+ ecdsa-with-SHA1,
+ prime-field, Prime-p,
+ characteristic-two-field, --Characteristic-two,
+ gnBasis,
+ tpBasis, Trinomial,
+ ppBasis, Pentanomial,
+ id-ecPublicKey, EcpkParameters, ECPoint
+ FROM PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) };
+
+--
+-- Certificate
+--
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm SignatureAlgorithm,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature SignatureAlgorithm,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+
+-- Attribute type and values
+--
+
+ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE-TYPE-AND-VALUE-CLASS.&id
+ ({SupportedAttributeTypeAndValues}),
+ value ATTRIBUTE-TYPE-AND-VALUE-CLASS.&Type
+ ({SupportedAttributeTypeAndValues}{@type}) }
+
+SupportedAttributeTypeAndValues ATTRIBUTE-TYPE-AND-VALUE-CLASS ::=
+ { name | surname | givenName | initials | generationQualifier |
+ commonName | localityName | stateOrProvinceName | organizationName |
+ organizationalUnitName | title | dnQualifier | countryName |
+ serialNumber | pseudonym | domainComponent | emailAddress }
+
+name ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-name
+ TYPE X520name }
+
+surname ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-surname
+ TYPE X520name }
+
+givenName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-givenName
+ TYPE X520name }
+
+initials ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-initials
+ TYPE X520name }
+
+generationQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-generationQualifier
+ TYPE X520name }
+
+commonName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-commonName
+ TYPE X520CommonName }
+
+localityName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-localityName
+ TYPE X520LocalityName }
+
+stateOrProvinceName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-stateOrProvinceName
+ TYPE X520StateOrProvinceName }
+
+organizationName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationName
+ TYPE X520OrganizationName }
+
+organizationalUnitName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-organizationalUnitName
+ TYPE X520OrganizationalUnitName }
+
+title ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-title
+ TYPE X520Title }
+
+dnQualifier ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-dnQualifier
+ TYPE X520dnQualifier }
+
+countryName ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-countryName
+ TYPE X520countryName }
+
+serialNumber ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-serialNumber
+ TYPE X520SerialNumber }
+
+pseudonym ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-at-pseudonym
+ TYPE X520Pseudonym }
+
+domainComponent ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-domainComponent
+ TYPE DomainComponent }
+
+emailAddress ATTRIBUTE-TYPE-AND-VALUE-CLASS ::= {
+ ID id-emailAddress
+ TYPE EmailAddress }
+
+--
+-- Signature and Public Key Algorithms
+--
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm SEQUENCE {
+ algo PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@.algo})
+ OPTIONAL
+ },
+ subjectPublicKey PUBLIC-KEY-ALGORITHM-CLASS.&PublicKeyType
+ ({SupportedPublicKeyAlgorithms}{@algorithm.algo}) }
+
+-- The following is needed for conversion of SubjectPublicKeyInfo.
+
+SubjectPublicKeyInfo-Any ::= SEQUENCE {
+ algorithm PublicKeyAlgorithm,
+ subjectPublicKey ANY }
+
+
+SIGNATURE-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+PUBLIC-KEY-ALGORITHM-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL,
+ &PublicKeyType OPTIONAL }
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type]
+ [PUBLIC-KEY-TYPE &PublicKeyType] }
+
+SignatureAlgorithm ::= SEQUENCE {
+ algorithm SIGNATURE-ALGORITHM-CLASS.&id
+ ({SupportedSignatureAlgorithms}),
+ parameters SIGNATURE-ALGORITHM-CLASS.&Type
+ ({SupportedSignatureAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SignatureAlgorithm-Any ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY OPTIONAL }
+
+PublicKeyAlgorithm ::= SEQUENCE {
+ algorithm PUBLIC-KEY-ALGORITHM-CLASS.&id
+ ({SupportedPublicKeyAlgorithms}),
+ parameters PUBLIC-KEY-ALGORITHM-CLASS.&Type
+ ({SupportedPublicKeyAlgorithms}{@algorithm})
+ OPTIONAL }
+
+SupportedSignatureAlgorithms SIGNATURE-ALGORITHM-CLASS ::= {
+ dsa-with-sha1 | md2-with-rsa-encryption |
+ md5-with-rsa-encryption | sha1-with-rsa-encryption |
+ ecdsa-with-sha1 }
+
+SupportedPublicKeyAlgorithms PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ dsa | rsa-encryption | dh | kea | ec-public-key }
+
+ -- DSA Keys and Signatures
+
+ -- SubjectPublicKeyInfo:
+
+ dsa PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-dsa
+ TYPE Dss-Parms -- XXX Must be OPTIONAL
+ PUBLIC-KEY-TYPE DSAPublicKey }
+
+ -- Certificate.signatureAlgorithm
+
+ dsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID id-dsa-with-sha1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ md2-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md2WithRSAEncryption
+ TYPE NULL }
+
+ md5-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID md5WithRSAEncryption
+ TYPE NULL }
+
+ sha1-with-rsa-encryption SIGNATURE-ALGORITHM-CLASS ::= {
+ ID sha1WithRSAEncryption
+ TYPE NULL }
+
+ -- Certificate.signature
+ -- See PKCS #1 (RFC 2313). XXX
+
+ -- SubjectPublicKeyInfo:
+
+ rsa-encryption PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID rsaEncryption
+ TYPE NULL
+ PUBLIC-KEY-TYPE RSAPublicKey }
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ dh PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID dhpublicnumber
+ TYPE DomainParameters
+ PUBLIC-KEY-TYPE DHPublicKey }
+
+ -- There are no Diffie-Hellman signature algorithms
+
+ --
+ -- KEA Keys
+ --
+
+ -- SubjectPublicKeyInfo:
+
+ KEA-PublicKey ::= INTEGER
+
+ kea PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-keyExchangeAlgorithm
+ TYPE KEA-Parms-Id
+ PUBLIC-KEY-TYPE KEA-PublicKey }
+
+ -- There are no KEA signature algorithms
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ -- Certificate.signatureAlgorithm
+
+ ecdsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= {
+ ID ecdsa-with-SHA1
+ TYPE NULL } -- XXX Must be empty and not NULL
+
+ FIELD-ID-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType FIELD-ID-CLASS.&id({SupportedFieldIds}),
+ parameters FIELD-ID-CLASS.&Type({SupportedFieldIds}{@fieldType}) }
+
+ SupportedFieldIds FIELD-ID-CLASS ::= {
+ field-prime-field | field-characteristic-two }
+
+ field-prime-field FIELD-ID-CLASS ::= {
+ ID prime-field
+ TYPE Prime-p }
+
+ CHARACTERISTIC-TWO-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ Characteristic-two ::= SEQUENCE { -- Finite field
+ m INTEGER, -- Field size 2^m
+ basis CHARACTERISTIC-TWO-CLASS.&id({SupportedCharacteristicTwos}),
+ parameters CHARACTERISTIC-TWO-CLASS.&Type
+ ({SupportedCharacteristicTwos}{@basis}) }
+
+ SupportedCharacteristicTwos CHARACTERISTIC-TWO-CLASS ::= {
+ gn-basis | tp-basis | pp-basis }
+
+ field-characteristic-two FIELD-ID-CLASS ::= {
+ ID characteristic-two-field
+ TYPE Characteristic-two }
+
+ gn-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID gnBasis
+ TYPE NULL }
+
+ tp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID tpBasis
+ TYPE Trinomial }
+
+ pp-basis CHARACTERISTIC-TWO-CLASS ::= {
+ ID ppBasis
+ TYPE Pentanomial }
+
+ -- SubjectPublicKeyInfo.algorithm
+
+ ec-public-key PUBLIC-KEY-ALGORITHM-CLASS ::= {
+ ID id-ecPublicKey
+ TYPE EcpkParameters
+ PUBLIC-KEY-TYPE ECPoint }
+
+--
+-- Extension Attributes
+--
+
+EXTENSION-ATTRIBUTE-CLASS ::= CLASS {
+ &id INTEGER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+ExtensionAttributes ::= SET SIZE (1..MAX) OF ExtensionAttribute
+
+-- XXX Below we should have extension-attribute-type and extension-
+-- attribute-value but Erlang ASN1 does not like it.
+ExtensionAttribute ::= SEQUENCE {
+ extensionAttributeType [0] IMPLICIT EXTENSION-ATTRIBUTE-CLASS.&id
+ ({SupportedExtensionAttributes}),
+ extensionAttributeValue [1] EXTENSION-ATTRIBUTE-CLASS.&Type
+ ({SupportedExtensionAttributes}{@extensionAttributeType}) }
+
+SupportedExtensionAttributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ x400-common-name |
+ x400-teletex-common-name |
+ x400-teletex-personal-name |
+ x400-pds-name |
+ x400-physical-delivery-country-name |
+ x400-postal-code |
+ x400-physical-delivery-office-name |
+ x400-physical-delivery-office-number |
+ x400-extension-OR-address-components |
+ x400-physical-delivery-personal-name |
+ x400-physical-delivery-organization-name |
+ x400-extension-physical-delivery-address-components |
+ x400-unformatted-postal-address |
+ x400-street-address |
+ x400-post-office-box-address |
+ x400-poste-restante-address |
+ x400-unique-postal-name |
+ x400-local-postal-attributes |
+ x400-extended-network-address |
+ x400-terminal-type |
+ x400-teletex-domain-defined-attributes }
+
+-- Extension types and attribute values
+
+x400-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID common-name
+ TYPE CommonName }
+
+x400-teletex-common-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-common-name
+ TYPE TeletexCommonName }
+
+x400-teletex-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-personal-name
+ TYPE TeletexPersonalName }
+
+x400-pds-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID pds-name
+ TYPE PDSName }
+
+x400-physical-delivery-country-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-country-name
+ TYPE PhysicalDeliveryCountryName }
+
+x400-postal-code EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID postal-code
+ TYPE PostalCode }
+
+x400-physical-delivery-office-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-name
+ TYPE PhysicalDeliveryOfficeName }
+
+x400-physical-delivery-office-number EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-office-number
+ TYPE PhysicalDeliveryOfficeNumber }
+
+x400-extension-OR-address-components EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-OR-address-components
+ TYPE ExtensionORAddressComponents }
+
+x400-physical-delivery-personal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-personal-name
+ TYPE PhysicalDeliveryPersonalName }
+
+x400-physical-delivery-organization-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID physical-delivery-organization-name
+ TYPE PhysicalDeliveryOrganizationName }
+
+x400-extension-physical-delivery-address-components
+ EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extension-physical-delivery-address-components
+ TYPE ExtensionPhysicalDeliveryAddressComponents }
+
+x400-unformatted-postal-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unformatted-postal-address
+ TYPE UnformattedPostalAddress }
+
+x400-street-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID street-address
+ TYPE StreetAddress }
+
+x400-post-office-box-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID post-office-box-address
+ TYPE PostOfficeBoxAddress }
+
+x400-poste-restante-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID poste-restante-address
+ TYPE PosteRestanteAddress }
+
+x400-unique-postal-name EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID unique-postal-name
+ TYPE UniquePostalName }
+
+x400-local-postal-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID local-postal-attributes
+ TYPE LocalPostalAttributes }
+
+x400-extended-network-address EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID extended-network-address
+ TYPE ExtendedNetworkAddress }
+
+x400-terminal-type EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID terminal-type
+ TYPE TerminalType }
+
+x400-teletex-domain-defined-attributes EXTENSION-ATTRIBUTE-CLASS ::= {
+ ID teletex-domain-defined-attributes
+ TYPE TeletexDomainDefinedAttributes }
+
+-- Extensions
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+EXTENSION-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type OPTIONAL}
+ WITH SYNTAX {
+ ID &id
+ [TYPE &Type] }
+
+Extension ::= SEQUENCE {
+ extnID EXTENSION-CLASS.&id({SupportedExtensions}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue EXTENSION-CLASS.&Type({SupportedExtensions}{@extnID}) }
+
+-- The following is needed for conversion between Extension and Extension-Cd
+
+ObjId ::= OBJECT IDENTIFIER
+Boolean ::= BOOLEAN
+Any ::= ANY
+
+Extension-Any ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue ANY }
+
+SupportedExtensions EXTENSION-CLASS ::= { authorityKeyIdentifier |
+ subjectKeyIdentifier | keyUsage | privateKeyUsagePeriod |
+ certificatePolicies | policyMappings | subjectAltName |
+ issuerAltName | subjectDirectoryAttributes | basicConstraints |
+ nameConstraints | policyConstraints | cRLDistributionPoints |
+ extKeyUsage | inhibitAnyPolicy | freshestCRL | authorityInfoAccess |
+ subjectInfoAccess | cRLNumber | issuingDistributionPoint |
+ deltaCRLIndicator | cRLReasons | certificateIssuer |
+ holdInstructionCode | invalidityDate }
+
+authorityKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-authorityKeyIdentifier
+ TYPE AuthorityKeyIdentifier }
+
+subjectKeyIdentifier EXTENSION-CLASS ::= {
+ ID id-ce-subjectKeyIdentifier
+ TYPE SubjectKeyIdentifier }
+
+keyUsage EXTENSION-CLASS ::= {
+ ID id-ce-keyUsage
+ TYPE KeyUsage }
+
+privateKeyUsagePeriod EXTENSION-CLASS ::= {
+ ID id-ce-privateKeyUsagePeriod
+ TYPE PrivateKeyUsagePeriod }
+
+certificatePolicies EXTENSION-CLASS ::= {
+ ID id-ce-certificatePolicies
+ TYPE CertificatePolicies }
+
+policyMappings EXTENSION-CLASS ::= {
+ ID id-ce-policyMappings
+ TYPE PolicyMappings }
+
+subjectAltName EXTENSION-CLASS ::= {
+ ID id-ce-subjectAltName
+ TYPE SubjectAltName }
+
+issuerAltName EXTENSION-CLASS ::= {
+ ID id-ce-issuerAltName
+ TYPE IssuerAltName }
+
+subjectDirectoryAttributes EXTENSION-CLASS ::= {
+ ID id-ce-subjectDirectoryAttributes
+ TYPE SubjectDirectoryAttributes }
+
+basicConstraints EXTENSION-CLASS ::= {
+ ID id-ce-basicConstraints
+ TYPE BasicConstraints }
+
+nameConstraints EXTENSION-CLASS ::= {
+ ID id-ce-nameConstraints
+ TYPE NameConstraints }
+
+policyConstraints EXTENSION-CLASS ::= {
+ ID id-ce-policyConstraints
+ TYPE PolicyConstraints }
+
+cRLDistributionPoints EXTENSION-CLASS ::= {
+ ID id-ce-cRLDistributionPoints
+ TYPE CRLDistributionPoints }
+
+extKeyUsage EXTENSION-CLASS ::= {
+ ID id-ce-extKeyUsage
+ TYPE ExtKeyUsageSyntax }
+
+inhibitAnyPolicy EXTENSION-CLASS ::= {
+ ID id-ce-inhibitAnyPolicy
+ TYPE InhibitAnyPolicy }
+
+freshestCRL EXTENSION-CLASS ::= {
+ ID id-ce-freshestCRL
+ TYPE FreshestCRL }
+
+authorityInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-authorityInfoAccess
+ TYPE AuthorityInfoAccessSyntax }
+
+subjectInfoAccess EXTENSION-CLASS ::= {
+ ID id-pe-subjectInfoAccess
+ TYPE SubjectInfoAccessSyntax }
+
+cRLNumber EXTENSION-CLASS ::= {
+ ID id-ce-cRLNumber
+ TYPE CRLNumber }
+
+issuingDistributionPoint EXTENSION-CLASS ::= {
+ ID id-ce-issuingDistributionPoint
+ TYPE IssuingDistributionPoint }
+
+deltaCRLIndicator EXTENSION-CLASS ::= {
+ ID id-ce-deltaCRLIndicator
+ TYPE BaseCRLNumber }
+
+cRLReasons EXTENSION-CLASS ::= {
+ ID id-ce-cRLReasons
+ TYPE CRLReason }
+
+certificateIssuer EXTENSION-CLASS ::= {
+ ID id-ce-certificateIssuer
+ TYPE CertificateIssuer }
+
+holdInstructionCode EXTENSION-CLASS ::= {
+ ID id-ce-holdInstructionCode
+ TYPE HoldInstructionCode }
+
+invalidityDate EXTENSION-CLASS ::= {
+ ID id-ce-invalidityDate
+ TYPE InvalidityDate }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..25f20e5c01
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectionType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectionType.asn
new file mode 100644
index 0000000000..d7bfbf1788
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SelectionType.asn
@@ -0,0 +1,59 @@
+SelectionType DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Element ::= CHOICE {bool BOOLEAN,
+ atomic-no INTEGER(1..103),
+ bs BIT STRING,
+ os OCTET STRING,
+ null NULL,
+ oi OBJECT IDENTIFIER,
+ od ObjectDescriptor,
+ ext EXTERNAL,
+ ePDV EMBEDDED PDV,
+ utf UTF8String,
+ ro RELATIVE-OID,
+ nums NumericString,
+ symbol PrintableString,
+ telet TeletexString,
+ t61 T61String,
+ video VideotexString,
+ ia5 IA5String,
+ utctime UTCTime,
+ generalizedTime GeneralizedTime,
+ gs GraphicString,
+ vs VisibleString,
+-- iso64 ISO646String,
+ generalString GeneralString,
+ univ UniversalString,
+ cs CHARACTER STRING,
+ bmp BMPString}
+
+MendeleyevTable ::= SEQUENCE OF symbol < Element
+BoolType ::= bool < Element
+
+einsteinium symbol < Element ::= "Es"
+boolv bool < Element ::= TRUE
+intv atomic-no < Element ::= 4
+bsv bs < Element ::= '1001'B
+osv os < Element ::= '313'H
+nullv null < Element ::= NULL
+oiv oi < Element ::= {2 1 1}
+odv od < Element ::= "ObjectDesc"
+utfv utf < Element ::= "utf8"
+rov ro < Element ::= {5 32767 256}
+numsv nums < Element ::= "089"
+teletv telet < Element ::= "telet"
+t61v t61 < Element ::= "t61"
+videov video < Element ::= "video"
+ia5v ia5 < Element ::= "ia5"
+utctimev utctime < Element ::= "9805281429Z"
+gTime generalizedTime < Element ::= "19980528142905.1"
+gsv gs < Element ::= "graphic"
+vsv vs < Element ::= "visible"
+--iso64v iso64 < Element ::= "iso"
+gStringv generalString < Element ::= "general"
+univv univ < Element ::= "Universal"
+bmov bmp < Element ::= "bmp"
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq.py
new file mode 100644
index 0000000000..f345373ab5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq.py
@@ -0,0 +1,152 @@
+Seq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Set1 FROM SeqSetLib;
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+SeqDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SET
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SET
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqImp1 ::= SET
+{
+ set Set1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqImp2 ::= SET
+{
+ bool BOOLEAN,
+ set Set1,
+ int INTEGER
+}
+
+
+SeqImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set Set1
+}
+
+
+
+END
+
+
+
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq2738.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq2738.asn1
new file mode 100644
index 0000000000..c852adc57e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Seq2738.asn1
@@ -0,0 +1,37 @@
+Seq2738 DEFINITIONS IMPLICIT TAGS ::=
+
+-- Tests that a missing mandatory component of an optional
+-- component is detected as an error and not just as if the optional
+-- component was missing
+
+BEGIN
+
+-- We create a value of type SeqWithOptFake , encode it and then
+-- try to decode it as a value of type SeqWithOpt.
+-- The decoder should detect this as an error, because the
+-- mandatory first component of type INTEGER in OptSeq is missing
+
+SeqOpt ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeq OPTIONAL
+}
+
+SeqOptFake ::= SEQUENCE
+{
+ int INTEGER,
+ opt OptSeqFake OPTIONAL
+}
+
+OptSeq ::= SEQUENCE
+{
+ int INTEGER
+}
+
+OptSeqFake ::= SEQUENCE
+{
+ bool BOOLEAN
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqBadComma.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqBadComma.asn
new file mode 100644
index 0000000000..64729beccd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqBadComma.asn
@@ -0,0 +1,10 @@
+SeqBadComma DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Seq ::= SEQUENCE {
+ a INTEGER,
+ n BOOLEAN,
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqDefault.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqDefault.asn1
new file mode 100644
index 0000000000..99e79da972
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqDefault.asn1
@@ -0,0 +1,77 @@
+SeqDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqDef1 ::= SEQUENCE
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 SeqIn DEFAULT {}
+}
+
+SeqDef1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] SeqIn DEFAULT {}
+}
+
+SeqDef1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn DEFAULT {}
+}
+
+SeqDef2 ::= SEQUENCE
+{
+ seq2 SeqIn DEFAULT {},
+ bool2 BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn DEFAULT {},
+ bool2 [2] BOOLEAN DEFAULT TRUE,
+ int2 INTEGER
+}
+
+SeqDef2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn DEFAULT {},
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqDef3 ::= SEQUENCE
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ seq3 SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN DEFAULT TRUE,
+ seq3 [2] SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SeqDef3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN DEFAULT TRUE,
+ seq3 [2] EXPLICIT SeqIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExtension.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExtension.asn1
new file mode 100644
index 0000000000..bb0a7cca3a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExtension.asn1
@@ -0,0 +1,37 @@
+SeqExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqExt1, XSeqExt2 FROM External;
+
+
+SeqExt1 ::= SEQUENCE
+{
+ ...
+}
+
+SeqExt2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SeqExt3 ::= SEQUENCE
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SeqExt4 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SeqExt1X ::= XSeqExt1
+SeqExt2X ::= XSeqExt2
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExternal.asn1
new file mode 100644
index 0000000000..9d575c1d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqExternal.asn1
@@ -0,0 +1,68 @@
+SeqExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+
+SeqXSet1 ::= SEQUENCE
+{
+ set XSet1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SeqXSet2 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ set XSet1,
+ int INTEGER
+}
+
+
+SeqXSet3 ::= SEQUENCE
+{
+ bool BOOLEAN,
+ int INTEGER,
+ set XSet1
+}
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSeqNT
+XImpNT ::= [3] XSeqNT
+XExpNT ::= [4] EXPLICIT XSeqNT
+
+XNTImp ::= XSeqImp
+XImpImp ::= [5] XSeqImp
+XExpImp ::= [6] EXPLICIT XSeqImp
+
+XNTExp ::= XSeqExp
+XImpExp ::= [7] XSeqExp
+XExpExp ::= [8] EXPLICIT XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.asn1
new file mode 100644
index 0000000000..330944cf5c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.asn1
@@ -0,0 +1,65 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqOs ::= SEQUENCE OF OCTET STRING
+SeqOsImp ::= [23] SEQUENCE OF OCTET STRING
+SeqOsExp ::= [24] EXPLICIT SEQUENCE OF OCTET STRING
+
+SeqCho ::= SEQUENCE OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+SeqOfInt ::= SEQUENCE OF INTEGER
+
+
+
+
+SeqEmp ::= SEQUENCE
+{
+ seq1 SEQUENCE OF Empty DEFAULT {}
+}
+
+Empty ::= SEQUENCE
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.py
new file mode 100644
index 0000000000..c941418934
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOf.py
@@ -0,0 +1,45 @@
+SeqOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF SeqIn DEFAULT {}
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SEQUENCE OF SeqIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SEQUENCE OF SeqIn DEFAULT {},
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 [41] SEQUENCE OF SeqIn DEFAULT {},
+ seq42 [42] SEQUENCE OF SeqIn DEFAULT {},
+ seq43 [43] SEQUENCE OF SeqIn DEFAULT {}
+}
+
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfCho.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfCho.asn1
new file mode 100644
index 0000000000..8d3d006ed9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfCho.asn1
@@ -0,0 +1,73 @@
+SeqOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqChoDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn DEFAULT {}
+}
+
+SeqChoOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF ChoIn OPTIONAL
+}
+
+SeqChoEmbDef ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SeqChoEmbOpt ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SeqOfChoEmbDef ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SeqOfChoEmbOpt ::= SEQUENCE OF SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SEQUENCE OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfEnum.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfEnum.asn1
new file mode 100644
index 0000000000..b8ca9c4654
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfEnum.asn1
@@ -0,0 +1,11 @@
+SeqOfEnum DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Enum ::= ENUMERATED {a (0),
+ b (1),
+ c (2)}
+
+SeqOfEnum ::= SEQUENCE OF Enum
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfExternal.asn1
new file mode 100644
index 0000000000..607e81540f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfExternal.asn1
@@ -0,0 +1,42 @@
+SeqOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SEQUENCE OF NT
+ImpNT ::= [3] SEQUENCE OF NT
+ExpNT ::= [4] EXPLICIT SEQUENCE OF NT
+
+NTImp ::= SEQUENCE OF Imp
+ImpImp ::= [5] SEQUENCE OF Imp
+ExpImp ::= [6] EXPLICIT SEQUENCE OF Imp
+
+NTExp ::= SEQUENCE OF Exp
+ImpExp ::= [7] SEQUENCE OF Exp
+ExpExp ::= [8] EXPLICIT SEQUENCE OF Exp
+
+XNTNT ::= SEQUENCE OF XSeqNT
+XImpNT ::= [3] SEQUENCE OF XSeqNT
+XExpNT ::= [4] EXPLICIT SEQUENCE OF XSeqNT
+
+XNTImp ::= SEQUENCE OF XSeqImp
+XImpImp ::= [5] SEQUENCE OF XSeqImp
+XExpImp ::= [6] EXPLICIT SEQUENCE OF XSeqImp
+
+XNTExp ::= SEQUENCE OF XSeqExp
+XImpExp ::= [7] SEQUENCE OF XSeqExp
+XExpExp ::= [8] EXPLICIT SEQUENCE OF XSeqExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfTag.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfTag.asn1
new file mode 100644
index 0000000000..74b820a28d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOfTag.asn1
@@ -0,0 +1,65 @@
+SeqOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTagNt ::= [APPLICATION 20] SEQUENCE {
+ nt SEQUENCE OF NT}
+
+SeqTagNtI ::= [APPLICATION 20] SEQUENCE {
+ imp SEQUENCE OF Imp}
+
+SeqTagNtE ::= [APPLICATION 20] SEQUENCE {
+ exp SEQUENCE OF Exp }
+
+SeqTagI ::= [APPLICATION 21] SEQUENCE {
+ nt [0] SEQUENCE OF NT}
+
+SeqTagII ::= [APPLICATION 21] SEQUENCE {
+ imp [1] SEQUENCE OF Imp}
+
+SeqTagIE ::= [APPLICATION 21] SEQUENCE {
+ exp [2] SEQUENCE OF Exp}
+
+SeqTagE ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT SEQUENCE OF NT}
+
+SeqTagEI ::= [APPLICATION 22] SEQUENCE {
+ imp [1] EXPLICIT SEQUENCE OF Imp}
+
+SeqTagEE ::= [APPLICATION 22] SEQUENCE {
+ exp [2] EXPLICIT SEQUENCE OF Exp}
+
+SeqTagXNt ::= [APPLICATION 30] SEQUENCE {
+ xnt SEQUENCE OF XSeqNT}
+
+SeqTagXI ::= [APPLICATION 30] SEQUENCE {
+ ximp SEQUENCE OF XSeqImp}
+
+SeqTagXE ::= [APPLICATION 30] SEQUENCE {
+ xexp SEQUENCE OF XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] SEQUENCE OF XSeqNT,
+ ximp [4] SEQUENCE OF XSeqImp,
+ xexp [5] SEQUENCE OF XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT SEQUENCE OF XSeqNT,
+ ximp [4] EXPLICIT SEQUENCE OF XSeqImp,
+ xexp [5] EXPLICIT SEQUENCE OF XSeqExp }
+
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional.asn1
new file mode 100644
index 0000000000..a8fef52dda
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional.asn1
@@ -0,0 +1,86 @@
+SeqOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional2.asn
new file mode 100644
index 0000000000..7de9134096
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqOptional2.asn
@@ -0,0 +1,90 @@
+SeqOptional2 DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqOpt1 ::= SEQUENCE
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 SeqIn OPTIONAL
+}
+
+SeqOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] SeqIn OPTIONAL,
+ seq2 [2] SeqIn OPTIONAL,
+ ...,
+ int2 [3] SeqIn,
+ int3 [3] SeqIn
+}
+
+SeqOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ seq1 [2] EXPLICIT SeqIn OPTIONAL
+}
+
+SeqOpt2 ::= SEQUENCE
+{
+ seq2 SeqIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Imp ::= SEQUENCE
+{
+ seq2 [1] SeqIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt2Exp ::= SEQUENCE
+{
+ seq2 [1] EXPLICIT SeqIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SeqOpt3 ::= SEQUENCE
+{
+ bool3 BOOLEAN OPTIONAL,
+ seq3 SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ seq3 [2] SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SeqOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ seq3 [2] EXPLICIT SeqIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+SeqChoOpt ::= SEQUENCE
+{
+ int INTEGER,
+ cho CHOICE {
+ boolC BOOLEAN,
+ intC INTEGER
+ } OPTIONAL
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqPrim.asn1
new file mode 100644
index 0000000000..20c4126c0b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqPrim.asn1
@@ -0,0 +1,19 @@
+SeqPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Seq ::= SEQUENCE
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SEQUENCE {}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetIndefinite.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetIndefinite.asn
new file mode 100644
index 0000000000..b56b8cdc17
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetIndefinite.asn
@@ -0,0 +1,41 @@
+SeqSetIndefinite DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetS3Ext ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+}
+
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SeqS3Ext ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER,... },
+ intS3 INTEGER
+
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetLib.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetLib.py
new file mode 100644
index 0000000000..f7d15ae3b4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqSetLib.py
@@ -0,0 +1,32 @@
+SeqSetLib DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+EXPORTS Seq1,Set1;
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTag.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTag.asn1
new file mode 100644
index 0000000000..950f88d663
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTag.asn1
@@ -0,0 +1,48 @@
+SeqTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSet1, XSeqNT, XSeqImp, XSeqExp FROM External;
+
+SeqTag ::= [APPLICATION 20] SEQUENCE {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SeqTagImp ::= [APPLICATION 21] SEQUENCE {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SeqTagExp ::= [APPLICATION 22] SEQUENCE {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SeqTagX ::= [APPLICATION 30] SEQUENCE {
+ xnt XSeqNT,
+ ximp XSeqImp,
+ xexp XSeqExp }
+
+SeqTagImpX ::= [APPLICATION 31] SEQUENCE {
+ xnt [3] XSeqNT,
+ ximp [4] XSeqImp,
+ xexp [5] XSeqExp }
+
+SeqTagExpX ::= [APPLICATION 32] SEQUENCE {
+ xnt [3] EXPLICIT XSeqNT,
+ ximp [4] EXPLICIT XSeqImp,
+ xexp [5] EXPLICIT XSeqExp }
+
+
+NT ::= SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [1] SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [2] EXPLICIT SEQUENCE {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefCho.asn1
new file mode 100644
index 0000000000..5c662fbd95
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefCho.asn1
@@ -0,0 +1,28 @@
+SeqTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRcho ::= SEQUENCE
+{
+ seqCho SeqCho,
+ seqChoE [135] EXPLICIT SeqCho,
+
+ seqCho-E SeqChoExp,
+ seqChoE-E [335] EXPLICIT SeqChoExp
+
+}
+
+SeqCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SeqChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefPrim.asn1
new file mode 100644
index 0000000000..93f03fad2b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefPrim.asn1
@@ -0,0 +1,48 @@
+SeqTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SeqTR ::= SEQUENCE
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+-- Types to test {Type,Value} notation, see OTP-4057
+
+Int ::= INTEGER
+Bool ::= BOOLEAN
+Enum ::= ENUMERATED {a(0),b(1),c(2)}
+BitStr ::= BIT STRING
+Null ::= NULL
+OId ::= OBJECT IDENTIFIER
+VStr ::= VisibleString
+
+Seq ::= SEQUENCE {
+ octstr OctStr,
+ int Int,
+ bool Bool,
+ enum Enum,
+ bitstr BitStr,
+ null Null,
+ oid OId,
+ vstr VStr
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSeq.asn1
new file mode 100644
index 0000000000..0e528ac710
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSeq.asn1
@@ -0,0 +1,113 @@
+SeqTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Seq1 ::= SEQUENCE
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ seq1 SeqIn
+}
+
+Seq2 ::= SEQUENCE
+{
+ seq2 SeqIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Seq3 ::= SEQUENCE
+{
+ bool3 BOOLEAN,
+ seq3 SeqIn,
+ int3 INTEGER
+}
+
+Seq4 ::= SEQUENCE
+{
+ seq41 SeqIn,
+ seq42 SeqIn,
+ seq43 SeqIn
+}
+
+
+SeqIn ::= SEQUENCE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SeqS1 ::= SEQUENCE
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ seqS1 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SeqS2 ::= SEQUENCE
+{
+ seqS2 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SeqS3 ::= SEQUENCE
+{
+ boolS3 BOOLEAN,
+ seqS3 SEQUENCE { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SeqSTag ::= SEQUENCE
+{
+ seqS1 SEQUENCE { b1 BOOLEAN,
+ i1 INTEGER },
+ seqS2 [7] SEQUENCE { b2 BOOLEAN,
+ i2 INTEGER },
+ seqS3 [8] EXPLICIT SEQUENCE { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+
+SeqTRseq ::= SEQUENCE
+{
+ seqSeq SeqSeq,
+ seqSeqI [134] SeqSeq,
+ seqSeqE [135] EXPLICIT SeqSeq,
+
+ seqSeq-I SeqSeqImp,
+ seqSeqI-I [234] SeqSeqImp,
+ seqSeqE-I [235] EXPLICIT SeqSeqImp,
+
+ seqSeq-E SeqSeqExp,
+ seqSeqI-E [334] SeqSeqExp,
+ seqSeqE-E [335] EXPLICIT SeqSeqExp
+
+}
+
+SeqSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SeqSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSet.asn1
new file mode 100644
index 0000000000..45dc05a0c3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SeqTypeRefSet.asn1
@@ -0,0 +1,39 @@
+SeqTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SeqTRset ::= SEQUENCE
+{
+ seqSet SeqSet,
+ seqSetI [124] SeqSet,
+ seqSetE [125] EXPLICIT SeqSet,
+
+ seqSet-I SeqSetImp,
+ seqSetI-I [224] SeqSetImp,
+ seqSetE-I [225] EXPLICIT SeqSetImp,
+
+ seqSet-E SeqSetExp,
+ seqSetI-E [324] SeqSetExp,
+ seqSetE-E [325] EXPLICIT SeqSetExp
+
+}
+
+SeqSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SeqSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComma.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComma.asn
new file mode 100644
index 0000000000..436815aa9b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComma.asn
@@ -0,0 +1,10 @@
+SequenceBadComma DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentName.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentName.asn1
new file mode 100644
index 0000000000..8b2b8816db
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentName.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentName DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a INTEGER,
+ C Typ}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentType.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentType.asn1
new file mode 100644
index 0000000000..0c33f48906
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SequenceBadComponentType.asn1
@@ -0,0 +1,10 @@
+SequenceBadComponentType DEFINITIONS ::=
+BEGIN
+
+T ::= Typ
+
+Typ ::= SEQUENCE {
+ a b,
+ c T}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Set.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Set.py
new file mode 100644
index 0000000000..4062f6b804
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Set.py
@@ -0,0 +1,141 @@
+Set DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS Seq1 FROM SeqSetLib;
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+
+SetImp1 ::= SET
+{
+ seq Seq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetImp2 ::= SET
+{
+ bool BOOLEAN,
+ seq Seq1,
+ int INTEGER
+}
+
+
+SetImp3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq Seq1
+}
+
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetDefault.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetDefault.asn1
new file mode 100644
index 0000000000..cb9e0ead62
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetDefault.asn1
@@ -0,0 +1,33 @@
+SetDefault DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetDef1 ::= SET
+{
+ bool1 BOOLEAN DEFAULT TRUE,
+ int1 INTEGER,
+ set1 SetIn DEFAULT {}
+}
+
+SetDef2 ::= SET
+{
+ set2 SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetDef3 ::= SET
+{
+ bool3 BOOLEAN DEFAULT TRUE,
+ set3 SetIn DEFAULT {},
+ int3 INTEGER DEFAULT 17
+}
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN OPTIONAL,
+ intIn INTEGER DEFAULT 12
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExtension.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExtension.asn1
new file mode 100644
index 0000000000..53091d3eea
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExtension.asn1
@@ -0,0 +1,37 @@
+SetExtension DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetExt1, XSetExt2 FROM External;
+
+SetExt1 ::= SET
+{
+ ...
+}
+
+SetExt2 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ ...
+}
+
+SetExt3 ::= SET
+{
+ ...,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+SetExt4 ::= SET
+{
+ bool BOOLEAN,
+ ...,
+ int INTEGER
+}
+
+SetExt1X ::= XSetExt1
+SetExt2X ::= XSetExt2
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExternal.asn1
new file mode 100644
index 0000000000..394a068280
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetExternal.asn1
@@ -0,0 +1,68 @@
+SetExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+
+
+SetXSeq1 ::= SET
+{
+ seq XSeq1,
+ bool BOOLEAN,
+ int INTEGER
+}
+
+
+SetXSeq2 ::= SET
+{
+ bool BOOLEAN,
+ seq XSeq1,
+ int INTEGER
+}
+
+
+SetXSeq3 ::= SET
+{
+ bool BOOLEAN,
+ int INTEGER,
+ seq XSeq1
+}
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= NT
+ImpNT ::= [3] NT
+ExpNT ::= [4] EXPLICIT NT
+
+NTImp ::= Imp
+ImpImp ::= [5] Imp
+ExpImp ::= [6] EXPLICIT Imp
+
+NTExp ::= Exp
+ImpExp ::= [7] Exp
+ExpExp ::= [8] EXPLICIT Exp
+
+XNTNT ::= XSetNT
+XImpNT ::= [3] XSetNT
+XExpNT ::= [4] EXPLICIT XSetNT
+
+XNTImp ::= XSetImp
+XImpImp ::= [5] XSetImp
+XExpImp ::= [6] EXPLICIT XSetImp
+
+XNTExp ::= XSetExp
+XImpExp ::= [7] XSetExp
+XExpExp ::= [8] EXPLICIT XSetExp
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.asn1
new file mode 100644
index 0000000000..cdb770f8de
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.asn1
@@ -0,0 +1,61 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetOs ::= SET OF OCTET STRING
+SetOsImp ::= [23] SET OF OCTET STRING
+SetOsExp ::= [24] EXPLICIT SET OF OCTET STRING
+
+SetCho ::= SET OF CHOICE {bool BOOLEAN,
+ int INTEGER,
+ last NULL}
+
+
+
+SetEmp ::= SET
+{
+ set1 SET OF Empty DEFAULT {}
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.py
new file mode 100644
index 0000000000..4e2ea16fcc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOf.py
@@ -0,0 +1,42 @@
+SetOf DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF SetIn DEFAULT {}
+}
+
+Set2 ::= SET
+{
+ set2 SET OF SetIn DEFAULT {},
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SET OF SetIn DEFAULT {},
+ int3 INTEGER
+}
+
+Set4 ::= SET
+{
+ set41 [41] SET OF SetIn DEFAULT {},
+ set42 [42] SET OF SetIn DEFAULT {},
+ set43 [43] SET OF SetIn DEFAULT {}
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfCho.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfCho.asn1
new file mode 100644
index 0000000000..3571a2b277
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfCho.asn1
@@ -0,0 +1,73 @@
+SetOfCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetChoDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn DEFAULT {}
+}
+
+SetChoOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF ChoIn OPTIONAL
+}
+
+SetChoEmbDef ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+SetChoEmbOpt ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+SetOfChoEmbDef ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } DEFAULT {}
+}
+
+
+SetOfChoEmbOpt ::= SET OF SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SET OF CHOICE
+ {
+ boolIn BOOLEAN,
+ intIn INTEGER
+ } OPTIONAL
+}
+
+
+ChoIn ::= CHOICE
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfExternal.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfExternal.asn1
new file mode 100644
index 0000000000..c08f2a51ee
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfExternal.asn1
@@ -0,0 +1,42 @@
+SetOfExternal DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+NTNT ::= SET OF NT
+ImpNT ::= [3] SET OF NT
+ExpNT ::= [4] EXPLICIT SET OF NT
+
+NTImp ::= SET OF Imp
+ImpImp ::= [5] SET OF Imp
+ExpImp ::= [6] EXPLICIT SET OF Imp
+
+NTExp ::= SET OF Exp
+ImpExp ::= [7] SET OF Exp
+ExpExp ::= [8] EXPLICIT SET OF Exp
+
+XNTNT ::= SET OF XSetNT
+XImpNT ::= [3] SET OF XSetNT
+XExpNT ::= [4] EXPLICIT SET OF XSetNT
+
+XNTImp ::= SET OF XSetImp
+XImpImp ::= [5] SET OF XSetImp
+XExpImp ::= [6] EXPLICIT SET OF XSetImp
+
+XNTExp ::= SET OF XSetExp
+XImpExp ::= [7] SET OF XSetExp
+XExpExp ::= [8] EXPLICIT SET OF XSetExp
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfTag.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfTag.asn1
new file mode 100644
index 0000000000..e137e8fa40
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOfTag.asn1
@@ -0,0 +1,65 @@
+SetOfTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSetNT, XSetImp, XSetExp FROM External;
+
+SetTagNt ::= [APPLICATION 20] SET {
+ nt SET OF NT}
+
+SetTagNtI ::= [APPLICATION 20] SET {
+ imp SET OF Imp}
+
+SetTagNtE ::= [APPLICATION 20] SET {
+ exp SET OF Exp }
+
+SetTagI ::= [APPLICATION 21] SET {
+ nt [0] SET OF NT}
+
+SetTagII ::= [APPLICATION 21] SET {
+ imp [1] SET OF Imp}
+
+SetTagIE ::= [APPLICATION 21] SET {
+ exp [2] SET OF Exp}
+
+SetTagE ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT SET OF NT}
+
+SetTagEI ::= [APPLICATION 22] SET {
+ imp [1] EXPLICIT SET OF Imp}
+
+SetTagEE ::= [APPLICATION 22] SET {
+ exp [2] EXPLICIT SET OF Exp}
+
+SetTagXNt ::= [APPLICATION 30] SET {
+ xnt SET OF XSetNT}
+
+SetTagXI ::= [APPLICATION 30] SET {
+ ximp SET OF XSetImp}
+
+SetTagXE ::= [APPLICATION 30] SET {
+ xexp SET OF XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] SET OF XSetNT,
+ ximp [4] SET OF XSetImp,
+ xexp [5] SET OF XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT SET OF XSetNT,
+ ximp [4] EXPLICIT SET OF XSetImp,
+ xexp [5] EXPLICIT SET OF XSetExp }
+
+
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [21] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [22] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOptional.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOptional.asn1
new file mode 100644
index 0000000000..5d2f2526b3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetOptional.asn1
@@ -0,0 +1,77 @@
+SetOptional DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+SetOpt1 ::= SET
+{
+ bool1 BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 SetIn OPTIONAL
+}
+
+SetOpt1Imp ::= SEQUENCE
+{
+ bool1 [1] BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] SetIn OPTIONAL
+}
+
+SetOpt1Exp ::= SEQUENCE
+{
+ bool1 [1] EXPLICIT BOOLEAN OPTIONAL,
+ int1 INTEGER,
+ set1 [2] EXPLICIT SetIn OPTIONAL
+}
+
+SetOpt2 ::= SET
+{
+ set2 SetIn OPTIONAL,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Imp ::= SEQUENCE
+{
+ set2 [1] SetIn OPTIONAL,
+ bool2 [2] BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt2Exp ::= SEQUENCE
+{
+ set2 [1] EXPLICIT SetIn OPTIONAL,
+ bool2 [2] EXPLICIT BOOLEAN,
+ int2 INTEGER
+}
+
+SetOpt3 ::= SET
+{
+ bool3 BOOLEAN OPTIONAL,
+ set3 SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Imp ::= SEQUENCE
+{
+ bool3 [1] BOOLEAN OPTIONAL,
+ set3 [2] SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+SetOpt3Exp ::= SEQUENCE
+{
+ bool3 [1] EXPLICIT BOOLEAN OPTIONAL,
+ set3 [2] EXPLICIT SetIn OPTIONAL,
+ int3 INTEGER OPTIONAL
+}
+
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetPrim.asn1
new file mode 100644
index 0000000000..06c4932625
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetPrim.asn1
@@ -0,0 +1,20 @@
+SetPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set ::= SET
+{
+ bool BOOLEAN,
+ boolCon [20] BOOLEAN,
+ boolPri [PRIVATE 21] BOOLEAN,
+ boolApp [APPLICATION 22] BOOLEAN,
+ boolExpCon [30] EXPLICIT BOOLEAN,
+ boolExpPri [PRIVATE 31] EXPLICIT BOOLEAN,
+ boolExpApp [APPLICATION 32] EXPLICIT BOOLEAN
+}
+
+Empty ::= SET
+{
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTag.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTag.asn1
new file mode 100644
index 0000000000..3f7422edaf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTag.asn1
@@ -0,0 +1,47 @@
+SetTag DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS XSeq1, XSetNT, XSetImp, XSetExp FROM External;
+
+SetTag ::= [APPLICATION 20] SET {
+ nt NT,
+ imp Imp,
+ exp Exp }
+
+SetTagImp ::= [APPLICATION 21] SET {
+ nt [0] NT,
+ imp [1] Imp,
+ exp [2] Exp}
+
+SetTagExp ::= [APPLICATION 22] SET {
+ nt [0] EXPLICIT NT,
+ imp [1] EXPLICIT Imp,
+ exp [2] EXPLICIT Exp}
+
+SetTagX ::= [APPLICATION 30] SET {
+ xnt XSetNT,
+ ximp XSetImp,
+ xexp XSetExp }
+
+SetTagImpX ::= [APPLICATION 31] SET {
+ xnt [3] XSetNT,
+ ximp [4] XSetImp,
+ xexp [5] XSetExp }
+
+SetTagExpX ::= [APPLICATION 32] SET {
+ xnt [3] EXPLICIT XSetNT,
+ ximp [4] EXPLICIT XSetImp,
+ xexp [5] EXPLICIT XSetExp }
+
+NT ::= SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Imp ::= [11] SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+Exp ::= [12] EXPLICIT SET {
+ os OCTET STRING,
+ bool BOOLEAN}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefCho.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefCho.asn1
new file mode 100644
index 0000000000..32c9d95703
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefCho.asn1
@@ -0,0 +1,27 @@
+SetTypeRefCho DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+SetTRcho ::= SET
+{
+ setCho SetCho,
+ setChoE [135] EXPLICIT SetCho,
+
+ setCho-E SetChoExp,
+ setChoE-E [335] EXPLICIT SetChoExp
+
+}
+
+SetCho ::= CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+SetChoExp ::= [65] EXPLICIT CHOICE {
+ choInt INTEGER,
+ choOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefPrim.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefPrim.asn1
new file mode 100644
index 0000000000..d8f2396c02
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefPrim.asn1
@@ -0,0 +1,29 @@
+SetTypeRefPrim DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTR ::= SET
+{
+ octStr OctStr,
+ octStrI [114] OctStr,
+ octStrE [115] EXPLICIT OctStr,
+
+ octStr-I OctStrImp,
+ octStrI-I [214] OctStrImp,
+ octStrE-I [215] EXPLICIT OctStrImp,
+
+ octStr-E OctStrExp,
+ octStrI-E [314] OctStrExp,
+ octStrE-E [315] EXPLICIT OctStrExp
+
+}
+
+OctStr ::= OCTET STRING
+OctStrImp ::= [14] OCTET STRING
+OctStrExp ::= [15] EXPLICIT OCTET STRING
+
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSeq.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSeq.asn1
new file mode 100644
index 0000000000..72dd71c6eb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSeq.asn1
@@ -0,0 +1,38 @@
+SetTypeRefSeq DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+
+
+SetTRseq ::= SET
+{
+ setSeq SetSeq,
+ setSeqI [134] SetSeq,
+ setSeqE [135] EXPLICIT SetSeq,
+
+ setSeq-I SetSeqImp,
+ setSeqI-I [234] SetSeqImp,
+ setSeqE-I [235] EXPLICIT SetSeqImp,
+
+ setSeq-E SetSeqExp,
+ setSeqI-E [334] SetSeqExp,
+ setSeqE-E [335] EXPLICIT SetSeqExp
+
+}
+
+SetSeq ::= SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqImp ::= [64] SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+SetSeqExp ::= [65] EXPLICIT SEQUENCE {
+ seqInt INTEGER,
+ seqOs OCTET STRING
+ }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSet.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSet.asn1
new file mode 100644
index 0000000000..b215d598dc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SetTypeRefSet.asn1
@@ -0,0 +1,110 @@
+SetTypeRefSet DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+Set1 ::= SET
+{
+ bool1 BOOLEAN,
+ int1 INTEGER,
+ set1 SetIn
+}
+
+Set2 ::= SET
+{
+ set2 SetIn,
+ bool2 BOOLEAN,
+ int2 INTEGER
+}
+
+Set3 ::= SET
+{
+ bool3 BOOLEAN,
+ set3 SetIn,
+ int3 INTEGER
+}
+
+Set4 ::= SEQUENCE
+{
+ set41 SetIn,
+ set42 SetIn,
+ set43 SetIn
+}
+
+
+SetIn ::= SET
+{
+ boolIn BOOLEAN,
+ intIn INTEGER
+}
+
+
+SetS1 ::= SET
+{
+ boolS1 BOOLEAN,
+ intS1 INTEGER,
+ setS1 SET { boolIn BOOLEAN,
+ intIn INTEGER }
+}
+
+SetS2 ::= SET
+{
+ setS2 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ boolS2 BOOLEAN,
+ intS2 INTEGER
+
+}
+
+SetS3 ::= SET
+{
+ boolS3 BOOLEAN,
+ setS3 SET { boolIn BOOLEAN,
+ intIn INTEGER },
+ intS3 INTEGER
+
+}
+
+SetSTag ::= SET
+{
+ setS1 SET { b1 BOOLEAN,
+ i1 INTEGER },
+ setS2 [7] SET { b2 BOOLEAN,
+ i2 INTEGER },
+ setS3 [8] EXPLICIT SET { b3 BOOLEAN,
+ i3 INTEGER }
+}
+
+
+SetTRset ::= SET
+{
+ setSet SetSet,
+ setSetI [124] SetSet,
+ setSetE [125] EXPLICIT SetSet,
+
+ setSet-I SetSetImp,
+ setSetI-I [224] SetSetImp,
+ setSetE-I [225] EXPLICIT SetSetImp,
+
+ setSet-E SetSetExp,
+ setSetI-E [324] SetSetExp,
+ setSetE-E [325] EXPLICIT SetSetExp
+
+}
+
+SetSet ::= SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetImp ::= [54] SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+SetSetExp ::= [55] EXPLICIT SET {
+ setInt INTEGER,
+ setOs OCTET STRING
+ }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/String.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/String.py
new file mode 100644
index 0000000000..338d50784b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/String.py
@@ -0,0 +1,7 @@
+String DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+IA51 ::= IA5String (SIZE (1..128)) (FROM ("0123456789#*,"))
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/SwCDR.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/SwCDR.py
new file mode 100644
index 0000000000..9492183cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/SwCDR.py
@@ -0,0 +1,213 @@
+SwCDR DEFINITIONS
+ IMPLICIT TAGS ::=
+
+
+BEGIN
+
+EXPORTS
+ SwCDR;
+
+SwCDR ::= CHOICE
+{
+ origSvcCallRecord [0] OrigSvcCallRecord,
+ termSvcCallRecord [1] TermSvcCallRecord
+}
+
+--OrigSvcCallRecord ::= SET
+OrigSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER,
+-- egressCellrate01 [] INTEGER,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+--TermSvcCallRecord ::= SET
+TermSvcCallRecord ::= SEQUENCE
+{
+ callCorrelationId [0] INTEGER ,
+ chargingIndicator [1] ChargingIndicator,
+ sequenceNo [2] INTEGER ,
+ callingParty [3] CallingNumber,
+ calledParty [4] CalledNumber,
+ connectedNumber [5] ConnectedNumber,
+ startDate [6] StartDate,
+ startTime [7] StartTime,
+ duration [8] CallDuration ,
+-- bearerClass [] BearerClass ,
+ trafficType [9] TrafficType ,
+ qosFwd [10] QoSClass ,
+ qosBkwd [11] QoSClass ,
+ forwardPcrClp0 [12] CellRate ,
+ forwardPcrClp01 [13] CellRate ,
+ backwardPcrClp0 [14] CellRate ,
+ backwardPcrClp01 [15] CellRate ,
+ forwardScrClp0 [16] CellRate ,
+ forwardScrClp01 [17] CellRate ,
+ backwardScrClp0 [18] CellRate ,
+ backwardScrClp01 [19] CellRate ,
+ forwardMcrClp0 [20] CellRate ,
+ forwardMcrClp01 [21] CellRate ,
+ backwardMcrClp0 [22] CellRate ,
+ backwardMcrClp01 [23] CellRate ,
+ forwardMbsClp0 [24] CellRate ,
+ forwardMbsClp01 [25] CellRate ,
+ forwardBEI [26] INTEGER ,
+ backwardBEI [27] INTEGER ,
+ forwardTagging [28] INTEGER ,
+ backwardTagging [29] INTEGER ,
+-- egressCellrate0 [] INTEGER ,
+-- egressCellrate01 [] INTEGER ,
+ ingressCellrate0 [30] INTEGER ,
+-- ingressCellrate01 [] INTEGER ,
+ ingressCellrate1 [31] INTEGER ,
+ connectionConfig [32] UserPlaneConnection OPTIONAL
+-- causeForTerm [33] CauseForTerm OPTIONAL
+}
+
+ChargingIndicator ::= INTEGER
+{
+ origCallRecord (0),
+ termCallRecord (1)
+}
+
+CallingNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+CalledNumber ::= OCTET STRING (SIZE (20))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+ConnectedNumber ::= OCTET STRING (SIZE (12))
+ -- BCD encoded representation of the number.
+ -- Contains: TypeOfNumber, NumberingPlanInformation,
+ -- PresentationIndicator, ScreeningIndicator
+ -- and either an E.164 number or a NSAP style of number,
+ -- including a possible subaddress.
+
+
+QoSClass ::= INTEGER
+ -- Explicit values ToBeDefined,
+ -- until then: value received in SETUP-msg
+
+--BearerClass ::= INTEGER
+--{
+-- bcobA (0),
+-- bcobC (1),
+-- bcobX (2)
+--}
+TrafficType ::= INTEGER
+{
+ noIndication (0),
+ abr (1),
+ cbr (2),
+ vbr (3),
+ vbrrt (4),
+ vbrnrt (5),
+ ubr (6)
+}
+
+--TimingRequirements ::= INTEGER
+--{
+-- noIndication (0),
+-- endToEndRequired (1),
+-- endToEndNotRequired (2)
+--}
+
+--ClippingSusceptibility ::= INTEGER
+--{
+-- notSusceptible (0),
+-- susceptible (1)
+--}
+UserPlaneConnection ::= INTEGER
+{
+ pointToPoint (0),
+ pointToMultipoint (1)
+}
+
+--AALParameters ::= INTEGER AAL Type only
+--{
+-- userDefined (0),
+-- aal1 (1),
+-- aal2 (2),
+-- aal34 (3),
+-- aal5 (5)
+--}
+
+CellRate ::= INTEGER
+ -- Value range not less than 2^24.
+
+-- BurstSize ::= ToBeDefined
+
+-- TaggingRequest ::= ToBeDefined
+--Timestamp ::= OCTET STRING (SIZE (11))
+ -- The contents of this field is a compact form of
+ -- the UTCTime format, containing local time plus
+ -- an offset to universal time.
+ -- The compact format is YYMMDDhhmmssdddShhmm, where:
+ -- YY = year, 00-99, BCD encoded
+ -- MM = month, 01-12, BCD encoded
+ -- DD = day, 01-31, BCD encoded
+ -- hh = hour, 00-23, BCD encoded
+ -- mm = minute, 00-59, BCD encoded
+ -- ss = second, 00-59, BCD encoded
+ -- ddd = millisecond, 000-999, BCD encoded
+ -- and rightjustified as "0ddd"
+ -- S = sign, "+"/"-", ASCII encoded
+
+StartDate ::= OCTET STRING (SIZE (8))
+
+StartTime ::= OCTET STRING (SIZE (6))
+
+CallDuration ::= INTEGER
+-- Expressed as number of millseconds
+
+Cellrate ::= INTEGER
+-- Value range 0-2^64
+CauseForTerm ::= INTEGER
+{
+ unsuccessfulCallAttempt (0),
+ abnormalTermination (1)
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Syntax.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Syntax.py
new file mode 100644
index 0000000000..867d1148e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Syntax.py
@@ -0,0 +1,10 @@
+Syntax DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+
+Person ::= [PRIVATE 19] SEQUENCE {,
+ name PrintableString,
+ location INTEGER {home(0),field(1),roving(2)},
+ age INTEGER OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages-simple.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages-simple.asn
new file mode 100644
index 0000000000..a9ace659d5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages-simple.asn
@@ -0,0 +1,206 @@
+TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) }
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS OPERATION, ERROR, Component, InvokeIdType;
+
+-- Transaction Portion fields
+
+MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional,
+ begin [APPLICATION 2] IMPLICIT Begin,
+ end [APPLICATION 4] IMPLICIT End,
+ continue [APPLICATION 5] IMPLICIT Continue,
+ abort [APPLICATION 7] IMPLICIT Abort }
+
+Unidirectional ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion }
+
+Begin ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+End ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Continue ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion OPTIONAL
+ }
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL
+ }
+
+-- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must be
+-- present.The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+
+DialoguePortion ::= [APPLICATION 11] EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
+-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
+-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
+-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
+-- is carried (e.g. when user information is sent in a 1988 Abort message).
+
+OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
+DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
+ unrecognizedMessageType (0),
+ unrecognizedTransactionID (1),
+ badlyFormattedTransactionPortion (2),
+ incorrectTransactionPortion (3),
+ resourceLimitation (4) }
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
+-- The Component Portion may be absent.
+
+ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- Component Portion fields
+-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs).
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+
+Component ::= CHOICE {
+ invoke [1] IMPLICIT Invoke,
+ returnResultLast [2] IMPLICIT ReturnResult,
+ returnError [3] IMPLICIT ReturnError,
+ reject [4] IMPLICIT Reject,
+ returnResultNotLast [7] IMPLICIT ReturnResult }
+
+-- The Components are sequences of data elements.
+
+Invoke ::= SEQUENCE {
+ invokeID InvokeIdType,
+ linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
+-- in the type definition of a particular operation.
+
+ReturnResult ::= SEQUENCE {
+ invokeID InvokeIdType,
+ result SEQUENCE {
+ operationCode OPERATION,
+ parameter ANY DEFINED BY operationCode
+ } OPTIONAL
+ }
+
+-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
+-- of a particular operation.
+
+ReturnError ::= SEQUENCE {
+ invokeID InvokeIdType,
+ errorCode ERROR,
+ parameter ANY DEFINED BY errorCode OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+
+
+-- Recommendation Q.773 (06/97) 3
+
+Reject ::= SEQUENCE {
+ invokeID CHOICE {
+ derivable InvokeIdType,
+ not-derivable NULL },
+ problem CHOICE {
+ generalProblem [0] IMPLICIT GeneralProblem,
+ invokeProblem [1] IMPLICIT InvokeProblem,
+ returnResultProblem [2] IMPLICIT ReturnResultProblem,
+ returnErrorProblem [3] IMPLICIT ReturnErrorProblem
+ }
+ }
+
+InvokeIdType ::= INTEGER ( -128..127)
+
+-- OPERATIONS
+-- Operations are specified with the OPERATION MACRO.
+-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
+-- Default values and optional parameters are permitted.
+
+-- FAKE OPERATION
+OPERATION ::= INTEGER ( 0..65535 )
+ERROR ::= INTEGER ( 0..65535 )
+
+--OPERATION MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter Result Errors LinkedOperations
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER"
+-- Result ::= "RESULT" ResultType | empty
+-- Errors ::= "ERRORS" "{"ErrorNames"}" | empty
+-- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty
+-- ResultType ::= NamedType | empty
+-- ErrorNames ::= ErrorList | empty
+-- ErrorList ::= Error | ErrorList "," Error
+-- Error ::= value (ERROR)
+--
+-- shall reference an error value
+--
+-- | type
+-- shall reference an error type
+--
+-- if no error value is specified
+-- LinkedOperationNames ::= OperationList | empty
+-- OperationList ::= Operation | OperationList "," Operation
+-- Operation ::= value (OPERATION)
+-- shall reference an operation value
+-- | type
+-- shall reference an operation type if
+--
+-- no operation value is specified
+-- NamedType ::= identifier type | type
+--END
+
+-- ERRORS
+-- Errors are specified with the ERROR MACRO.
+-- When an error is specified, the valid parameters for that error are indicated.
+-- Default values and optional parameters are permitted.
+
+--ERROR MACRO ::=
+--BEGIN
+-- TYPE NOTATION ::= Parameter
+-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
+-- Parameter ::= "PARAMETER" NamedType | empty
+-- NamedType ::= identifier type | type
+--END
+
+-- PROBLEMS
+
+GeneralProblem ::= INTEGER { unrecognizedComponent (0),
+ mistypedComponent (1),
+ badlyStructuredComponent (2) }
+InvokeProblem ::= INTEGER { duplicateInvokeID (0),
+ unrecognizedOperation (1),
+ mistypedParameter (2),
+ resourceLimitation (3),
+ initiatingRelease (4),
+ unrecognizedLinkedID (5),
+ linkedResponseUnexpected (6),
+ unexpectedLinkedOperation (7) }
+ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnResultUnexpected (1),
+ mistypedParameter (2) }
+ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
+ returnErrorUnexpected (1),
+ unrecognizedError (2),
+ unexpectedError (3),
+ mistypedParameter (4) }
+
+END -- TCAPMessages
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages.asn
new file mode 100644
index 0000000000..ed8b4c6927
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPMessages.asn
@@ -0,0 +1,98 @@
+-- Module TCAPMessages (Q.773:06/1997)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn
new file mode 100644
index 0000000000..fcaeff3bfa
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn
@@ -0,0 +1,271 @@
+TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0)
+ tcapPackage(0) version4(4)} DEFINITIONS ::=
+
+-- iso(1) memberbody(2)
+-- usa(840) T1.114(10013)
+BEGIN -- defining a module called TCAPPackage which contains type
+
+-- definitions for the contents of any generic TCAP message
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+-- TCAPRemoteperationsInformationbjects {iso(1) memberbody(2) usa(840)
+-- t1-114(10013) modules(0) information-objects(1) version4(4)};
+
+PackageType ::= CHOICE {
+ unidirectional [PRIVATE 1] IMPLICIT UniTransactionPDU,
+ queryWithPerm [PRIVATE 2] IMPLICIT TransactionPDU,
+ queryWithoutPerm [PRIVATE 3] IMPLICIT TransactionPDU,
+ response [PRIVATE 4] IMPLICIT TransactionPDU,
+ conversationWithPerm [PRIVATE 5] IMPLICIT TransactionPDU,
+ conversationWithoutPerm [PRIVATE 6] IMPLICIT TransactionPDU,
+ abort [PRIVATE 22] IMPLICIT Abort}
+
+UniTransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence}
+
+TransactionPDU ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ componentPortion ComponentSequence OPTIONAL}
+
+-- TransactionPDU should include either a Dialogue Portion,
+-- a Component Sequence or both
+TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING
+
+-- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort
+-- 8 octets for Conversation in the order Originating then Responding TID
+Abort ::= SEQUENCE {
+ identifier TransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ causeInformation
+ CHOICE {abortCause P-Abort-cause,
+ userInformation UserAbortInformation} OPTIONAL}
+
+-- When the Abort package is generated by the Transaction sublayer,
+-- the P-Abort-cause must be present
+P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER {
+ unrecognizedPackageType(1), incorrectTransactionPortion(2),
+ badlyStructuredTransactionPortion(3), unassignedRespondingTransactionID(4),
+ permissionToReleaseProblem(5), -- for further study
+ resourceUnavailable(6), unrecognizedDialoguePortionID(7),
+ badlyStructuredDialoguePortion(8), missingDialoguePortion(9),
+ inconsistentDialoguePortion(10)}
+
+DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE {
+ version ProtocolVersion OPTIONAL,
+ applicationContext
+ CHOICE {integerApplicationId IntegerApplicationContext,
+ objectApplicationId ObjectIDApplicationContext} OPTIONAL,
+ userInformation UserInformation OPTIONAL,
+ securityContext
+ CHOICE {integerSecurityId [0] IMPLICIT INTEGER,
+ objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ confidentiality [2] IMPLICIT Confidentiality OPTIONAL}
+
+ProtocolVersion ::= [PRIVATE 26] IMPLICIT OCTET STRING(SIZE (1))
+
+-- 0000 0000 not used
+-- 0000 0001 T1.114-1996
+-- 0000 0010 T1.114-2000
+-- other reserved
+-- These values can be combined using the bit-wise logical or operation
+-- to indicate support for more than one version, e.g. the value 0000 0011
+-- means that both 1996 and 2000 versions are supported
+IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER
+
+ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER
+
+UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL
+
+Confidentiality ::= SEQUENCE {
+ confidentialityId
+ CHOICE {integerConfidentialityId [0] IMPLICIT INTEGER,
+ objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ ...
+ -- The extension marker indicates the possible presence of items
+ -- in the confidentiality set that are used by the confidentiality
+ -- algorithm.--}
+
+UserAbortInformation ::= [PRIVATE 24] EXTERNAL
+
+--ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU
+ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU{NoInvokeId,ProbeAndAcknowledge,ProbeAndAcknowledge}
+-- Component Portion specification starts below
+ComponentPDU{InvokeId:InvokeIdSet, OPERATION:Invocable, OPERATION:Returnable}
+ ::= CHOICE {
+ invokeLast
+ [PRIVATE 9] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be TRUE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultLast [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}},
+ returnError
+ [PRIVATE 11] IMPLICIT ReturnError{{Errors {{Returnable}}}},
+ reject [PRIVATE 12] IMPLICIT Reject,
+ invokeNotLast
+ [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
+ (CONSTRAINED BY {
+ --invocable.&invokeLast must be FALSE --} !
+ RejectProblem:generalincorrectComponentPortion),
+ returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult{{Returnable}}}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalunrecognisedComponentType)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ componentIDs
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..2))
+ -- The invoke ID precedes the correlation id. There may be no
+ -- identifier,only an invoke ID, or both invoke and correlation
+ -- ID.
+ (CONSTRAINED BY {-- must be unambiguous --} !
+ RejectProblem:invokeduplicateInvocation)
+ (CONSTRAINED BY {-- correlation ID must identify an--
+ -- outstanding operation --} !
+ RejectProblem:invokeunrecognisedCorrelationId)
+ OPTIONAL,
+ -- operationCode
+ opcode
+ OPERATION.&operationCode
+ -- ((Operations) !RejectProblem:invokeunrecognisedOperation),
+ ({Operations} !RejectProblem:invokeunrecognisedOperation),
+ parameter
+ -- OPERATION.&ParameterType
+ OPERATION.&ResultType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:
+ returnResultunrecognisedCorrelationId)
+ (CONSTRAINED BY {-- which returns a result --} !
+ RejectProblem:returnResultunexpectedReturnResult),
+ parameter
+ OPERATION.&ResultType
+ -- ({Operations}{@opcode} !RejectProblem:returnResultincorrectParameter)
+-- ({Operations}{@componentID} !RejectProblem:returnResultincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ componentID
+ [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
+ (CONSTRAINED BY {
+ --must be that of an outstanding operation--} !
+ RejectProblem:returnErrorunrecognisedCorrelationId)
+ (CONSTRAINED BY {--which returns an error--} !
+ RejectProblem:returnErrorunexpectedReturnError),
+ errorCode
+ ERROR.&errorCode({Errors} !RejectProblem:returnErrorunrecognisedError)
+ (CONSTRAINED BY {-- must be in the &Errors field of the--
+ -- associated operation --} !RejectProblem:returnErrorunexpectedError),
+ parameter
+ -- Error.&ParameterType
+ ERROR.&ParameterType
+ -- ({Errors}{@errorcode} !RejectProblem:returnErrorincorrectParameter)
+ ({Errors}{@errorCode} !RejectProblem:returnErrorincorrectParameter)
+ OPTIONAL}
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+Reject ::= SEQUENCE {
+ componentID [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..1)),
+ rejectProblem [PRIVATE 21] IMPLICIT Problem,
+ parameter
+ CHOICE {paramSequence [PRIVATE 16] IMPLICIT SEQUENCE {},
+ paramSet [PRIVATE 18] IMPLICIT SET {}}}
+ -- The choice between paramSequence and paramSet is implementation
+ -- dependent, however paramSequence is preferred.
+ (CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:generalincorrectComponentPortion)
+ (CONSTRAINED BY { -- must have consistent encoding --} !
+ RejectProblem:generalbadlyStructuredCompPortion)
+ (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
+ RejectProblem:generalincorrectComponentCoding)
+
+-- PROBLEMS, the specification of Problems follows
+Problem ::= INTEGER {
+ generalunrecognisedComponentType(257), generalincorrectComponentPortion(258),
+ generalbadlyStructuredCompPortion(259), generalincorrectComponentCoding(260),
+ invokeduplicateInvocation(513), invokeunrecognisedOperation(514),
+ invokeincorrectParameter(515), invokeunrecognisedCorrelationID(516),
+ returnResultunrecognisedCorrelationID(769),
+ returnResultunexpectedReturnResult(770), returnResultincorrectParameter(771),
+ returnErrorunrecognisedCorrelationID(1025),
+ returnErrorunexpectedReturnError(1026), returnErrorunrecognisedError(1027),
+ returnErrorunexpectedError(1028),
+ returnErrorincorrectParameter(1029),
+ -- Applications using T1.114-1988 report Transaction portion
+ -- problems using a Reject component with a problem code in
+ -- the range 1281e6
+ -- It is preferred that other applications report
+ -- these problems using the Abort package type
+ transactionunrecognizedPackageType(1281),
+ transactionincorrectTransPortion(1282),
+ transactionbadlyStructuredTransPortion(1283),
+ transactionunassignedRespondingTransID(1284),
+ transactionpermissionToReleaseProblem(1285),
+ transactionresourceUnavailable(1286)}
+
+ --added imaginary defs by Bertil
+
+ InvokeId ::= CHOICE
+{
+ present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+probe OPERATION ::=
+ {
+ ARGUMENT SEQUENCE
+ {
+ invokeId [0] InvokeId
+ }
+ RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
+ ERRORS ErrorSet
+ ALWAYS RESPONDS TRUE
+ CODE local:-2
+ }
+
+acknowledge OPERATION ::=
+ {
+ ARGUMENT InvokeId
+ RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
+ ALWAYS RESPONDS TRUE
+ CODE local:-3
+ }
+
+ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
+
+error1 ERROR ::= {PARAMETER INTEGER PRIORITY 25 CODE local:22}
+error2 ERROR ::= {PARAMETER BOOLEAN PRIORITY 15 CODE local:21}
+ErrorSet ERROR ::= {error1|error2}
+--parameterized object set definition
+Errors{OPERATION:OperationSet} ERROR ::= {OperationSet.&Errors}
+
+END -- end of the TCAPPackage Module
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn1config
new file mode 100644
index 0000000000..b0ccd7d34c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage.asn1config
@@ -0,0 +1,12 @@
+{exclusive_decode, {'TCAPPackage',
+ [{decode_PackageType, ['PackageType',
+ [{unidirectional, undecoded},
+ {queryWithPerm, [{componentPortion, parts}]},
+ {queryWithoutPerm, undecoded},
+ {response, [{componentPortion, parts}]},
+ {conversationWithPerm, undecoded},
+ {conversationWithoutPerm, undecoded},
+ {abort, undecoded}]]},
+ {decode_TransactionPDU, ['TransactionPDU',
+ [{componentPortion, parts}]]}]}}.
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage_msg.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage_msg.erl
new file mode 100644
index 0000000000..cc9a483f49
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TCAPPackage_msg.erl
@@ -0,0 +1,141 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module('TCAPPackage_msg').
+
+-compile(export_all).
+
+-include("TCAPPackage.hrl").
+
+val('PackageType',unidirectional) ->
+ {unidirectional,val('UniTransactionPDU')};
+val('PackageType',abort) ->
+ {abort,val('Abort')};
+val('PackageType',Component) ->
+ {Component,val('TransactionPDU')};
+val('ComponentPDU',1) ->
+ {invokeLast,val('Invoke')};
+val('ComponentPDU',2) ->
+ {returnResultLast,val('ReturnResult')};
+val('ComponentPDU',3) ->
+ {returnError,val('ReturnError')}.
+
+
+
+val('UniTransactionPDU') ->
+ #'UniTransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionPDU') ->
+ #'TransactionPDU'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ componentPortion=val('ComponentSequence')};
+val('TransactionID') ->
+ "OCTET STRING";
+val('DialoguePortion') ->
+ #'DialoguePortion'{version=val('ProtocolVersion'),
+ applicationContext={integerApplicationId,12},
+ userInformation=val('UserInformation'),
+ securityContext={integerSecurityId,13},
+ confidentiality=val('Confidentiality')};
+val('Confidentiality') ->
+ #'Confidentiality'{confidentialityId={integerConfidentialityId,14}};
+val('ProtocolVersion') ->
+ "K";
+val('UserInformation') ->
+ [val('EXTERNAL'),val('EXTERNAL')];
+val('EXTERNAL') ->
+ #'EXTERNAL'{'direct-reference'={0,1,2},
+ encoding={'single-ASN1-type',[1,2,3,4]}};
+val('ComponentSequence') ->
+ [val('ComponentPDU',1),val('ComponentPDU',2),val('ComponentPDU',3)];
+val('Invoke') ->
+ #'Invoke'{componentIDs="AB",
+ opcode={local,-2},
+ parameter=running};
+val('ReturnResult') ->
+ #'ReturnResult'{componentID="C",
+ parameter=[1,2,3,4]};
+val('ReturnError') ->
+ #'ReturnError'{componentID="D",
+ errorCode={local,21},
+ parameter=true};
+val('Abort') ->
+ #'Abort'{identifier=val('TransactionID'),
+ dialoguePortion=val('DialoguePortion'),
+ causeInformation={abortCause,unrecognizedPackageType}};
+val(Type) ->
+ io:format("Missing type: ~p~n",[Type]).
+
+
+check_result('PackageType',unidirectional,Res) ->
+ {unidirectional,
+ {'UniTransactionPDU',
+ "OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,{_,"C",_}},
+ {returnError,{_,"D",{local,21},true}}]}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',abort,Res)->
+ {abort,{'Abort',"OCTET STRING",
+ {'DialoguePortion',"K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ {abortCause,unrecognizedPackageType}}} = Res,
+ ok;
+%% check_OT_val(OTVal);
+check_result('PackageType',response,Res) ->
+ {response,{'TransactionPDU',"OCTET STRING",
+ {'DialoguePortion',
+ "K",
+ {integerApplicationId,12},
+ [_,%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal},
+ _],%{'EXTERNAL',{syntax,{0,1,2}},asn1_NOVALUE,OTVal}],
+ {integerSecurityId,13},
+ {'Confidentiality',
+ {integerConfidentialityId,14}}},
+ [{invokeLast,
+ {_,"AB",{local,-2},running}},
+ {returnResultLast,
+ {_,"C",_}},
+ {returnError,
+ {_,"D",{local,21},true}}]}} = Res,
+ ok.
+%% check_OT_val(OTVal).
+
+check_OT_val([160,4,1,2,3,4]) ->
+ ok;
+check_OT_val(<<160,4,1,2,3,4>>) ->
+ ok;
+check_OT_val(_) ->
+ error.
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstr.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstr.asn1
new file mode 100644
index 0000000000..63f5dbde77
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstr.asn1
@@ -0,0 +1,95 @@
+-- The idea with this spec is to gather definitions that has a
+-- complicated structure of table constraints.
+TConstr DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+MYCLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type,
+ &Result OPTIONAL
+} WITH SYNTAX {
+ ID &id
+ TYPE &Type
+ [RESULT &Result]
+}
+
+object1 MYCLASS ::= {ID id-object1 TYPE Type-object1 RESULT INTEGER}
+object2 MYCLASS ::= {ID id-object2 TYPE Type-object2}
+object3 MYCLASS ::= {ID id-object3 TYPE Type-object3 RESULT BOOLEAN}
+
+ObjectSet MYCLASS ::= {object1 | object2 | object3}
+
+id-object1 OBJECT IDENTIFIER ::= {2 4}
+id-object2 OBJECT IDENTIFIER ::= {2 5}
+id-object3 OBJECT IDENTIFIER ::= {2 6 7}
+
+
+Type-object1 ::= SEQUENCE {
+ a INTEGER,
+ b BOOLEAN
+}
+
+Type-object2 ::= ENUMERATED {first, second, third}
+
+Type-object3 ::= CHOICE {
+ first SEQUENCE {a BOOLEAN, b INTEGER},
+ second INTEGER
+}
+
+Seq1 ::= SEQUENCE {
+ a SEQUENCE {aa INTEGER, ab MYCLASS.&id ({ObjectSet})},
+ b SEQUENCE {ba INTEGER, bb MYCLASS.&Type ({ObjectSet}{@a.ab})}
+}
+
+Seq2 ::= SEQUENCE {
+ identity INTEGER,
+ content SEQUENCE {
+ subid MYCLASS.&id ({ObjectSet}),
+ subcontent MYCLASS.&Type ({ObjectSet}{@content.subid}),
+ subresult MYCLASS.&Result ({ObjectSet}{@content.subid})
+ }
+}
+
+
+-- following from Peter's definitions
+
+
+MY-CLASS ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Type }
+ WITH SYNTAX {
+ ID &id
+ TYPE &Type }
+
+Info ::= SEQUENCE {
+ xyz SEQUENCE {
+ abc MY-CLASS.&id({Supported})
+ },
+ uvw MY-CLASS.&Type ({Supported}{@xyz.abc}) }
+
+Supported MY-CLASS ::= { dsa | rsa }
+
+-- dsa
+
+ id-dsa OBJECT IDENTIFIER ::= { 1 2 }
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ dsa MY-CLASS ::= {
+ ID id-dsa
+ TYPE DSAPublicKey }
+
+-- rsa
+
+ rsaEncryption OBJECT IDENTIFIER ::= { 1 3 4 }
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ rsa MY-CLASS ::= {
+ ID rsaEncryption
+ TYPE RSAPublicKey }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstrChoice.asn1 b/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstrChoice.asn1
new file mode 100644
index 0000000000..4f17786e78
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/TConstrChoice.asn1
@@ -0,0 +1,175 @@
+TConstrChoice DEFINITIONS ::=
+BEGIN
+
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings [1] SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ strings SEQUENCE OF CHOICE {
+ initial [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ any [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}),
+ final [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}{@substrings.type}) }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion }
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion ATTRIBUTE.&equality-match.&AssertionType
+ ({SupportedAttributes}{@type}) }
+
+MatchingRuleAssertion ::= SEQUENCE {
+ type MATCHING-RULE.&id({MatchingRules}),
+ assertion MATCHING-RULE.&AssertionType ({MatchingRules}{@type})
+ }
+
+AttributeType ::= INTEGER(0..127)
+
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL,
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage Attribute-Usage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id }
+
+Attribute-Usage ::= ENUMERATED { userApplications(0),
+ directoryOperation(1), distributedOperation(2),
+ dSAOperation(3) }
+
+
+surname ATTRIBUTE ::= { -- family name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-surname }
+
+givenName ATTRIBUTE ::= { -- first name
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString
+ ID id-at-givenName }
+
+countryName ATTRIBUTE ::= { -- country
+ SUBTYPE OF name
+ WITH SYNTAX PrintableString (SIZE (2)) -- [ISO3166] codes
+ SINGLE VALUE TRUE
+ ID id-at-countryName}
+
+SupportedAttributes ATTRIBUTE ::=
+{surname | givenName | countryName}
+
+-- id-at-surname DirectoryString ::= universalString:"SureName"
+
+id-at-surname OBJECT IDENTIFIER ::= {2 4}
+
+-- id-at-givenName DirectoryString ::= printableString:"GivenName"
+
+id-at-givenName OBJECT IDENTIFIER ::= {2 5}
+
+-- id-at-countryName PrintableString (SIZE (2)) ::= "CN"
+
+id-at-countryName OBJECT IDENTIFIER ::= {2 6}
+
+MATCHING-RULE ::= CLASS {
+ &AssertionType OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE }
+WITH SYNTAX {
+ [SYNTAX &AssertionType]
+ ID &id }
+
+MatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch }
+
+LessMatchingRules MATCHING-RULE ::= {
+ MatchingRules EXCEPT caseIgnoreMatch }
+
+ExtensibleMatchingRules MATCHING-RULE ::= {
+ caseIgnoreMatch | booleanMatch | integerMatch, ... }
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-name }
+
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..maxSize)),
+ printableString PrintableString (SIZE (1..maxSize)),
+ universalString UniversalString (SIZE (1..maxSize)),
+ bmpString BMPString (SIZE (1..maxSize))
+-- utf8String UTF8String (SIZE (1..maxSize))
+ }
+
+maxSize INTEGER ::= 25
+
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString
+ ID id-caseIgnoreMatch
+ }
+
+booleanMatch MATCHING-RULE ::= {
+ SYNTAX BOOLEAN
+ ID id-booleanMatch
+ }
+
+integerMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-integerMatch
+ }
+
+id-mr OBJECT IDENTIFIER ::=
+{2 5 11}
+
+id-name OBJECT IDENTIFIER ::= {2 5 11 5}
+
+id-caseIgnoreMatch OBJECT IDENTIFIER ::= {2 5 11 2}
+
+id-booleanMatch OBJECT IDENTIFIER ::= {2 5 11 13}
+
+id-integerMatch OBJECT IDENTIFIER ::= {2 5 11 14}
+
+--{joint-iso-itu-t ds(5) matchingRule(13)}
+
+-- test code for OTP-4248
+
+NOTUNIQUE ::= CLASS {
+ &value INTEGER,
+ &Type
+}
+WITH SYNTAX {
+ VALUE &value
+ TYPE &Type
+}
+
+
+nuObject NOTUNIQUE ::= {VALUE 3 TYPE FilterItem}
+
+NuObjectSet NOTUNIQUE ::= {nuObject}
+
+Seq ::= SEQUENCE {
+ a NOTUNIQUE.&value ({NuObjectSet}),
+ b NOTUNIQUE.&Type ({NuObjectSet}{@a})
+}
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Time.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Time.py
new file mode 100644
index 0000000000..e3672464e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Time.py
@@ -0,0 +1,7 @@
+Time DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS;
+
+Pstr ::= PrintableString
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Tst.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Tst.py
new file mode 100644
index 0000000000..d80b32dad5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Tst.py
@@ -0,0 +1,153 @@
+Tst { 2 6 6 24 7 1 } DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+--EXPORTS SomeSet , Id0 , Aset,Id1 ,A,B,C,
+-- Uhh ,Foo ,Cho,Person,Hobbe,Robbe,X,Y;
+
+IMPORTS Fooo FROM Bobby;
+
+
+Robbe ::= SET {
+ ttt TT }
+
+Koo ::= SET {
+ c CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ s SET OF Id0 }
+
+
+Hobbe ::= [APPLICATION 1] SET {
+ aaa [0] SET OF INTEGER,
+ bbb [1] UU
+ }
+
+UU ::= PP
+PP ::= CHOICE {
+ cc [1] CHOICE {
+ a [0] INTEGER,
+ b [1] BOOLEAN,
+ c [2] BIT STRING },
+ ii [0] Id0
+ }
+
+
+TT ::= SS
+SS ::= SET {
+ b BOOLEAN DEFAULT TRUE
+ }
+
+Aset ::= [PRIVATE 2] SET OF Uhh
+
+
+
+SomeSet ::= [PRIVATE 3] IMPLICIT SET {
+ aaaa [2] SET{
+ ggg [0] INTEGER},
+ kkkk [1] SET OF Id2,
+ booby [4] OCTET STRING,
+ puck [3] INTEGER {red(0),blue(1),yellow(-2)},
+ baby [5] IMPLICIT Id1,
+ bool [6] BOOLEAN }
+
+
+Id0 ::= INTEGER (4 .. 99)
+
+Id1 ::= Id0
+
+Id2 ::= [PRIVATE 4] EXPLICIT Id1
+
+
+Uhh ::= SET {
+ a [1] IMPLICIT Id1}
+
+
+
+Soon ::= [PRIVATE 5] Moon
+
+Moon ::= [PRIVATE 6] IMPLICIT Person
+
+
+Person ::= [PRIVATE 7] IMPLICIT SEQUENCE {
+ szzzs SET OF SET {
+ aaa [0] INTEGER,
+ bbb [1] Id0},
+ cho Cho,
+ name OCTET STRING ,
+ location INTEGER,
+ asss Aset,
+ oops [2] IMPLICIT SET {
+ q [0] INTEGER,
+ p [1] Uhh},
+ on INTEGER,
+ mybits [3] IMPLICIT BIT STRING,
+ foo Foo,
+ age INTEGER,
+ hobbe [5] SEQUENCE {
+ a [4] CHOICE {
+ a INTEGER,
+ b BOOLEAN },
+ b [5] Id0}}
+
+
+
+
+
+Foo ::= [PRIVATE 8] IMPLICIT SEQUENCE {
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H,
+ hoohoo [11] IMPLICIT SEQUENCE {
+ bar [1] Id1 OPTIONAL,
+ foo INTEGER,
+ zombie [9] CHOICE {
+ a [1] IMPLICIT INTEGER,
+ b [2] IMPLICIT BOOLEAN }
+ },
+ moon [4] IMPLICIT INTEGER }
+
+
+
+Cho ::= [PRIVATE 9] EXPLICIT CHOICE {
+ somestring [2] IMPLICIT OCTET STRING,
+ goofy [9] INTEGER,
+ moon [4] IMPLICIT INTEGER }
+
+
+A ::= [APPLICATION 2] SET {
+ ppp IA5String ,
+ a [0] INTEGER {aaa(6),bbb(77)} DEFAULT 998,
+ b [1] Id1 OPTIONAL,
+ c [2] OCTET STRING (SIZE(8)),
+ dd [3] BIT STRING DEFAULT '11001'B }
+
+B ::= [APPLICATION 3] SET {
+ ww [1] SET {
+ a A OPTIONAL,
+ goofy [3] INTEGER OPTIONAL,
+ somestring [10] IMPLICIT OCTET STRING DEFAULT '77BB'H }
+ }
+
+
+C::= [APPLICATION 4] SEQUENCE OF X
+
+Y ::= OBJECT IDENTIFIER
+
+X ::= SET {
+ a NULL,
+ b GeneralString,
+ c UTCTime,
+ d VideotexString,
+ g GeneralizedTime,
+ h GraphicString,
+ i VisibleString,
+ j IA5String,
+ k PrintableString,
+ l OCTET STRING,
+ e TeletexString,
+ m ANY,
+ n ObjectDescriptor,
+ o OBJECT IDENTIFIER,
+ f NumericString }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/Two.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/Two.py
new file mode 100644
index 0000000000..c8e6f1a55b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/Two.py
@@ -0,0 +1,34 @@
+Two { 1 2 3} DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+EXPORTS A, D,Boo,Szz;
+
+
+
+D ::= [PRIVATE 1] SEQUENCE {
+ a INTEGER,
+ b Boo,
+ c ANY DEFINED BY a ,
+ d ANY }
+
+
+Boo ::= SEQUENCE OF INTEGER (198..200)
+
+A ::= [PRIVATE 2] SEQUENCE {
+ a INTEGER (1..1),
+ b INTEGER (3..3) }
+
+
+Szz ::= CHOICE {
+ one INTEGER,
+ two BOOLEAN }
+
+C ::= SET {
+ a [0] INTEGER (0..8),
+ xx [4] CHOICE {
+ [7] INTEGER (9..10),
+ a INTEGER (11 ..13) },
+ f Boo,
+ r [2] INTEGER (20..22)}
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/UPERDefault.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/UPERDefault.asn
new file mode 100644
index 0000000000..7b81a0e09f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/UPERDefault.asn
@@ -0,0 +1,18 @@
+UPERDefault DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- OTP-7681
+Int ::= INTEGER (0..32767)
+
+Seq ::= SEQUENCE {
+ a Int,
+ b INTEGER (-27..27) DEFAULT 0, -- OTP-7678
+ c INTEGER OPTIONAL
+}
+
+seq Seq ::=
+{a 12,
+ b 0}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/UndefType.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/UndefType.py
new file mode 100644
index 0000000000..cdbe083803
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/UndefType.py
@@ -0,0 +1,14 @@
+Person DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+EXPORTS Person;
+IMPORTS
+ ImportedFromUndefined FROM UndefinedModule;
+
+Feltyp ::= UndefinedType
+Feltyp2 ::= ImportedFromUndefined
+Person ::= [PRIVATE 19] SEQUENCE {
+ name Undefined,
+ location INTEGER {home(0),field(1),roving(2)},
+ age ImportedFromUndefined OPTIONAL
+ }
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/UpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/UpperBounds.asn
new file mode 100755
index 0000000000..247260495b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 1023-- This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/UsefulDefinitions.asn
new file mode 100755
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/ValueTest.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/ValueTest.asn
new file mode 100644
index 0000000000..dae9ae498a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/ValueTest.asn
@@ -0,0 +1,53 @@
+ValueTest DEFINITIONS ::=
+
+BEGIN
+
+--Criticality ::= ENUMERATED { reject, ignore, notify }(reject)
+
+--Ignore ::= Criticality(ignore)
+
+--SubCriticality ::= Criticality(reject|notify)
+
+INNL ::= INTEGER {zero(0),one(1),ten(10)}
+BSNNL ::= BIT STRING {zero(0),one(1),two(2)}
+RadioButton ::= ENUMERATED {button1(0),button2(1),button3(2)}
+
+-- OTP-6695
+vANY ANY ::= INTEGER:12
+
+-- basic type value test for coverage
+vBOOLEAN BOOLEAN ::= TRUE
+vINTEGER INTEGER ::= 12
+vINTEGERNNL INNL ::= zero
+vENUMERATED RadioButton ::= button1
+vBS BSNNL ::= {zero,two}
+vNULL NULL ::= NULL
+vOS OCTET STRING ::= '313233'H
+vOD OBJECT IDENTIFIER ::= {2 1 1}
+
+
+--Character strings
+numericstring NumericString ::= "01234567"
+printablestring PrintableString ::= "PrintableString"
+visiblestring VisibleString ::= "VisibleString"
+cr IA5String ::= {0,13}
+ia5string1 IA5String ::= {"First line",cr, "Second line"}
+ia5string2 IA5String ::= {{5,5},{4,4},{6,6}}
+teletexstring TeletexString ::= "TeletexString"
+videotexstring VideotexString ::= "VideotexString"
+utctime UTCTime ::= "97100211-0500"
+generalizedtime GeneralizedTime ::= "19971002103130.5"
+objectdescriptor ObjectDescriptor ::= "ObjectDescriptor"
+graphicstring GraphicString ::= "GraphicString"
+generalstring GeneralString ::= "GeneralString"
+bmpstring1 BMPString ::= "BMPString"
+--bmpstring2 BMPString ::= [{0,0,0,66},{0,0,0,77},{0,0,0,80},{0,0,0,115},{0,0,0,116},{0,0,0,114},{0,0,0,105},{0,0,0,110},{0,0,0,103}]
+latinCapitalLetterA UniversalString ::= {0,0,0,65}
+greekCapitalLetterSigma UniversalString ::= {0,0,3,145}
+my-universalstring UniversalString ::= {"This is a capital A: ",
+ latinCapitalLetterA,
+ ", and a capital sigma: ",
+ greekCapitalLetterSigma,
+ "; try and spot the difference!"}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeq.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeq.py
new file mode 100644
index 0000000000..b068ab4393
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeq.py
@@ -0,0 +1,42 @@
+XSeq DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.2
+-- Use a sequence type to model a collection of variables whose
+-- types are the same,
+-- whose number is known and modest, and whose order is significant,
+-- provided that the
+-- makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+NamesOfOfficers ::= SEQUENCE {
+ president VisibleString,
+ vicePresident VisibleString,
+ secretary VisibleString}
+
+acmeCorp NamesOfOfficers ::= {
+ president "Jane Doe",
+ vicePresident "John Doe",
+ secretary "Joe Doe"}
+
+-- F.2.10.3
+-- Use a sequence type to model a collection of variables whose types differ,
+-- whose number is known and modest, and whose order is significant,
+-- provided that
+-- the makeup of the collection is unlikely to change from one version
+-- of the protocol to the next.
+-- EXAMPLE
+
+Credentials ::= SEQUENCE {
+ userName VisibleString,
+ password VisibleString,
+ accountNumber INTEGER}
+
+-- Empty SEQUENCE stupid but just for test
+BasicCallCategories ::= SEQUENCE
+{
+ ... -- So far, no specific categories identified
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeqOf.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeqOf.py
new file mode 100644
index 0000000000..f9fee92e56
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSeqOf.py
@@ -0,0 +1,19 @@
+XSeqOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.10.1
+-- Use a sequence-of type to model a collection of variables whose
+-- types are the same,
+-- whose number is large or unpredictable, and whose order is significant.
+-- EXAMPLE
+
+NamesOfMemberNations ::= SEQUENCE OF VisibleString
+-- in alphabetical order
+
+firstTwo NamesOfMemberNations ::= {"Australia", "Austria"}
+
+DayNames1 ::= SEQUENCE SIZE(7) OF VisibleString
+DayNames2 ::= SEQUENCE SIZE(1..7) OF VisibleString
+DayNames3 ::= SEQUENCE (SIZE(7)) OF VisibleString
+DayNames4 ::= SEQUENCE (SIZE(1..7)) OF VisibleString
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/XSet.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSet.py
new file mode 100644
index 0000000000..39e58a39ab
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSet.py
@@ -0,0 +1,47 @@
+XSet DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.1
+-- Use a set type to model a collection of variables whose number is
+-- known and modest
+-- and whose order is insignificant. If automatic tagging is not in
+-- effect, identify each
+-- variable by context-specifically tagging it as shown below.
+-- (With automatic tagging, the tags are not needed.)
+-- EXAMPLE
+
+ UserName ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString,
+ countryName [2] VisibleString}
+
+ user UserName ::= {
+ countryName "Nigeria",
+ personalName "Jonas Maruba",
+ organizationName "Meteorology, Ltd."}
+
+ UserName2 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL
+ -- defaults to that of the local organization -- ,
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country -- }
+
+-- F.2.11.3
+-- Use a set type to model a collection of variables whose makeup is
+-- likely to change
+-- from one version of the protocol to the next.
+-- Identify each variable by context-specifically
+-- tagging it to retain control of the tags used.
+-- EXAMPLE
+
+ UserName3 ::= SET {
+ personalName [0] VisibleString,
+ organizationName [1] VisibleString OPTIONAL ,
+ -- defaults to that of the local organization
+ countryName [2] VisibleString OPTIONAL
+ -- defaults to that of the local country
+ -- other optional attributes are for further study --}
+ user3 UserName3 ::= { personalName "Jonas Maruba" }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/XSetOf.py b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSetOf.py
new file mode 100644
index 0000000000..93337d0c33
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/XSetOf.py
@@ -0,0 +1,12 @@
+XSetOf DEFINITIONS ::=
+BEGIN
+
+-- F.2.11.4
+--Use a set-of type to model a collection of variables whose types are
+-- the same and whose order is insignificant.
+-- EXAMPLE
+
+ Keywords ::= SET OF VisibleString -- in arbitrary order
+ someASN1Keywords Keywords ::= {"INTEGER", "BOOLEAN", "REAL"}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/a_SeqIn.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/a_SeqIn.erl
new file mode 100644
index 0000000000..a447524358
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/a_SeqIn.erl
@@ -0,0 +1,31 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(a_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #a_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
+
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/b_SeqIn.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/b_SeqIn.erl
new file mode 100644
index 0000000000..a416322b8c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/b_SeqIn.erl
@@ -0,0 +1,29 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(b_SeqIn).
+
+-export([record_name/0]).
+
+-include("Seq.hrl").
+
+record_name()->
+ Rec = #b_SeqIn{boolIn=true,intIn=12},
+ element(1,Rec).
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg1.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg1.val
new file mode 100644
index 0000000000..7802193dd2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg1.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg10.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg10.val
new file mode 100644
index 0000000000..8ba4a710ba
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg10.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg11.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg11.val
new file mode 100644
index 0000000000..c2298be3d9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg11.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg12.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg12.val
new file mode 100644
index 0000000000..cb5c0c666c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg12.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg13.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg13.val
new file mode 100644
index 0000000000..3fe1df73bb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg13.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg14.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg14.val
new file mode 100644
index 0000000000..17ad9159c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg14.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg15.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg15.val
new file mode 100644
index 0000000000..4ef840762d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg15.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg16.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg16.val
new file mode 100644
index 0000000000..5252c4da38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg16.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg17.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg17.val
new file mode 100644
index 0000000000..8e040d78a2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg17.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg18.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg18.val
new file mode 100644
index 0000000000..0980cd37d4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg18.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg19.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg19.val
new file mode 100644
index 0000000000..c49f885c71
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg19.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg2.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg2.val
new file mode 100644
index 0000000000..eeb8a5fb90
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg2.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg20.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg20.val
new file mode 100644
index 0000000000..7b55708fa6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg20.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg21.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg21.val
new file mode 100644
index 0000000000..108eeb8b07
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg21.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg22.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg22.val
new file mode 100644
index 0000000000..3d9f9fefcf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg22.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg23.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg23.val
new file mode 100644
index 0000000000..61a329a76a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg23.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg24.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg24.val
new file mode 100644
index 0000000000..55adab5e8f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg24.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg25.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg25.val
new file mode 100644
index 0000000000..d351fb575a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg25.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg3.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg3.val
new file mode 100644
index 0000000000..01b7a1335a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg3.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg4.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg4.val
new file mode 100644
index 0000000000..462033fa84
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg4.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg5.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg5.val
new file mode 100644
index 0000000000..78bdaa3200
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg5.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg6.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg6.val
new file mode 100644
index 0000000000..24af9044a8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg6.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg7.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg7.val
new file mode 100644
index 0000000000..ab028e7128
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg7.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg8.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg8.val
new file mode 100644
index 0000000000..2d42b73c0c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg8.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg9.val b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg9.val
new file mode 100644
index 0000000000..3581dc033a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/megacomessages/Msg9.val
Binary files differ
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/BasicAccessControl.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/CertificateExtensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/InformationFramework.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/InformationFramework.asn
new file mode 100644
index 0000000000..5c26febd5b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+-- TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+-- HierarchySelections, FamilyGrouping, FamilyReturn
+-- FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+--contextAssertionSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {contextAssertionDefaults}
+-- ID id-sc-contextAssertionSubentry
+--}
+
+-- serviceAdminSubentry OBJECT-CLASS ::= {
+-- KIND auxiliary
+-- MUST CONTAIN {searchRules}
+-- ID id-sc-serviceAdminSubentry
+-- }
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+-- contextAssertionDefaults ATTRIBUTE ::= {
+-- WITH SYNTAX TypeAndContextAssertion
+-- EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-contextAssertionDefault
+-- }
+
+-- searchRules ATTRIBUTE ::= {
+-- WITH SYNTAX SearchRuleDescription
+-- EQUALITY MATCHING RULE integerFirstComponentMatch
+-- USAGE directoryOperation
+-- ID id-oa-searchRules
+-- }
+
+-- SearchRuleDescription ::= SEQUENCE {
+-- COMPONENTS OF SearchRule,
+-- name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+-- description [29] DirectoryString{ub-search} OPTIONAL,
+-- obsolete [30] BOOLEAN DEFAULT FALSE
+-- }
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+-- SearchRule ::= SEQUENCE {
+-- COMPONENTS OF SearchRuleId,
+-- serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+-- userClass [2] INTEGER OPTIONAL,
+-- inputAttributeTypes
+-- [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+-- attributeCombination [4] AttributeCombination DEFAULT and:{},
+-- outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+-- defaultControls [6] ControlOptions OPTIONAL,
+-- mandatoryControls [7] ControlOptions OPTIONAL,
+-- searchRuleControls [8] ControlOptions OPTIONAL,
+-- familyGrouping [9] FamilyGrouping OPTIONAL,
+-- familyReturn [10] FamilyReturn OPTIONAL,
+-- relaxation [11] RelaxationPolicy OPTIONAL,
+-- additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+-- allowedSubset [13] AllowedSubset DEFAULT '111'B,
+-- imposedSubset [14] ImposedSubset OPTIONAL,
+-- entryLimit [15] EntryLimit OPTIONAL
+-- }
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+-- ControlOptions ::= SEQUENCE {
+-- serviceControls [0] ServiceControlOptions DEFAULT {},
+-- searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+-- hierarchyOptions [2] HierarchySelections OPTIONAL
+-- }
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+-- SEARCH-RULE ::= CLASS {
+-- &dmdId OBJECT IDENTIFIER,
+-- &serviceType OBJECT IDENTIFIER OPTIONAL,
+-- &userClass INTEGER OPTIONAL,
+-- &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+-- &combination AttributeCombination OPTIONAL,
+-- &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+-- &defaultControls ControlOptions OPTIONAL,
+-- &mandatoryControls ControlOptions OPTIONAL,
+-- &searchRuleControls ControlOptions OPTIONAL,
+-- &familyGrouping FamilyGrouping OPTIONAL,
+-- &familyReturn FamilyReturn OPTIONAL,
+-- &additionalControl AttributeType OPTIONAL,
+-- &relaxation RelaxationPolicy OPTIONAL,
+-- &entryLimit EntryLimit OPTIONAL,
+-- &allowedSubset AllowedSubset DEFAULT '111'B,
+-- &imposedSubset ImposedSubset OPTIONAL,
+-- &id INTEGER UNIQUE
+-- }
+-- WITH SYNTAX {
+-- DMD ID &dmdId
+-- [SERVICE-TYPE &serviceType]
+-- [USER-CLASS &userClass]
+-- [INPUT ATTRIBUTES &InputAttributeTypes]
+-- [COMBINATION &combination]
+-- [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+-- [DEFAULT CONTROL &defaultControls]
+-- [MANDATORY CONTROL &mandatoryControls]
+-- [SEARCH-RULE CONTROL &searchRuleControls]
+-- [FAMILY-GROUPING &familyGrouping]
+-- [FAMILY-RETURN &familyReturn]
+-- [ADDITIONAL CONTROL &additionalControl]
+-- [RELAXATION &relaxation]
+-- [ALLOWED SUBSET &allowedSubset]
+-- [IMPOSED SUBSET &imposedSubset]
+-- [ENTRY LIMIT &entryLimit]
+-- ID &id
+-- }
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/PKCS7.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/PKCS7.asn
new file mode 100644
index 0000000000..7a06661cc0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/PKCS7.asn
@@ -0,0 +1,343 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+-- pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}) OPTIONAL
+ pkcs7-content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UpperBounds.asn
new file mode 100644
index 0000000000..37890f8b49
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+ 8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 32768
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/p7_signed_data.pem b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/p7_signed_data.pem
new file mode 100644
index 0000000000..fc6bdebd8b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/modified_x420/p7_signed_data.pem
@@ -0,0 +1,23 @@
+-----BEGIN PKCS7-----
+MIIDxQYJKoZIhvcNAQcCoIIDtjCCA7ICAQExCzAJBgUrDgMCGgUAMBoGCSqGSIb3
+DQEHAaANBAtwbGFpbiB0ZXh0CqCCAeMwggHfMIIBSAIJAKB+Sm2O7vxbMA0GCSqG
+SIb3DQEBBAUAMDQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEP
+MA0GA1UECxMGTkVUU2ltMB4XDTA4MDIyOTE1MzEwMFoXDTE4MDIyNjE1MzEwMFow
+NDELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0VyaWNzc29uIEFCMQ8wDQYDVQQLEwZO
+RVRTaW0wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2EtqGq/lu0DdUfexOk
+X4icontyAFXqJL8TRtsL4tSTleQiHICH+glBpJ1Grk/x5YV6Fke49hSBHhG3J8A7
+CpicAmXTiZR2LGvdLoO2HEwItlR9IaFICsr2/piHzB/ZWnu0uzeHBQW3gJNGG21V
+KltZapcBew3jNG8wdPdykPpnAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAK//FOT1m
+KamyWjwWs1hzmngpqmvQAR4CcD3F5jtbwz8bNZtfoRr1VnJktZhorVb5uWPfahH2
+qnvJEX8EtoY7un8O3N1sJFVFcTkEIz2THalYZG6bQ8owqr4s3vZ3XoOBD5ukVwjE
+sVdDSa4b713tiHCsWoGca7cn6i6y6s/oDpwxggGbMIIBlwIBATBBMDQxCzAJBgNV
+BAYTAlNFMRQwEgYDVQQKEwtFcmljc3NvbiBBQjEPMA0GA1UECxMGTkVUU2ltAgkA
+oH5KbY7u/FswCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
+MBwGCSqGSIb3DQEJBTEPFw0wODAyMjkxNTMxMDFaMCMGCSqGSIb3DQEJBDEWBBQF
+/OBF9SkVcUzcMGOVsg3QKX/hGTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMH
+MA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG
+9w0DAgIBKDANBgkqhkiG9w0BAQEFAASBgEA7LwwdYP7LMMAoBl7qX+XMF66c5stq
+e9f2BpGsFGqhfDac+tmnCkRu1clr9VUld0DSuw+Qc3oUnpix/Vo5mwmbQ19iR/f9
+oBmm85iZMBDy8vScS6Vm7u+mHvQ9d4iNNS7MDQ8peEu9ItxWe1x3LuCAMbvGMiXE
+75U3Iy4ZYCq4
+-----END PKCS7-----
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
new file mode 100755
index 0000000000..e3f6e83d6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-CommonDataTypes.asn
@@ -0,0 +1,58 @@
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+NBAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-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 }
+
+MessageDiscriminator ::= ENUMERATED { common, dedicated }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProcedureID ::= SEQUENCE {
+ procedureCode ProcedureCode,
+ ddMode ENUMERATED { tdd, fdd, common, ... }
+}
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TransactionID ::= CHOICE {
+ shortTransActionId INTEGER (0..127),
+ longTransActionId INTEGER (0..32767)
+}
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome, outcome }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Constants.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Constants.asn
new file mode 100755
index 0000000000..1411d455b7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Constants.asn
@@ -0,0 +1,688 @@
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+NBAP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Constants (4)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-audit ProcedureCode ::= 0
+id-auditRequired ProcedureCode ::= 1
+id-blockResource ProcedureCode ::= 2
+id-cellDeletion ProcedureCode ::= 3
+id-cellReconfiguration ProcedureCode ::= 4
+id-cellSetup ProcedureCode ::= 5
+id-cellSynchronisationInitiation ProcedureCode ::= 45
+id-cellSynchronisationReconfiguration ProcedureCode ::= 46
+id-cellSynchronisationReporting ProcedureCode ::= 47
+id-cellSynchronisationTermination ProcedureCode ::= 48
+id-cellSynchronisationFailure ProcedureCode ::= 49
+id-commonMeasurementFailure ProcedureCode ::= 6
+id-commonMeasurementInitiation ProcedureCode ::= 7
+id-commonMeasurementReport ProcedureCode ::= 8
+id-commonMeasurementTermination ProcedureCode ::= 9
+id-commonTransportChannelDelete ProcedureCode ::= 10
+id-commonTransportChannelReconfigure ProcedureCode ::= 11
+id-commonTransportChannelSetup ProcedureCode ::= 12
+id-compressedModeCommand ProcedureCode ::= 14
+id-dedicatedMeasurementFailure ProcedureCode ::= 16
+id-dedicatedMeasurementInitiation ProcedureCode ::= 17
+id-dedicatedMeasurementReport ProcedureCode ::= 18
+id-dedicatedMeasurementTermination ProcedureCode ::= 19
+id-downlinkPowerControl ProcedureCode ::= 20
+id-downlinkPowerTimeslotControl ProcedureCode ::= 38
+id-errorIndicationForCommon ProcedureCode ::= 35
+id-errorIndicationForDedicated ProcedureCode ::= 21
+id-informationExchangeFailure ProcedureCode ::= 40
+id-informationExchangeInitiation ProcedureCode ::= 41
+id-informationExchangeTermination ProcedureCode ::= 42
+id-informationReporting ProcedureCode ::= 43
+id-BearerRearrangement ProcedureCode ::= 50
+id-physicalSharedChannelReconfiguration ProcedureCode ::= 37
+id-privateMessageForCommon ProcedureCode ::= 36
+id-privateMessageForDedicated ProcedureCode ::= 22
+id-radioLinkAddition ProcedureCode ::= 23
+id-radioLinkDeletion ProcedureCode ::= 24
+id-radioLinkFailure ProcedureCode ::= 25
+id-radioLinkPreemption ProcedureCode ::= 39
+id-radioLinkRestoration ProcedureCode ::= 26
+id-radioLinkSetup ProcedureCode ::= 27
+id-reset ProcedureCode ::= 13
+id-resourceStatusIndication ProcedureCode ::= 28
+id-cellSynchronisationAdjustment ProcedureCode ::= 44
+id-synchronisedRadioLinkReconfigurationCancellation ProcedureCode ::= 29
+id-synchronisedRadioLinkReconfigurationCommit ProcedureCode ::= 30
+id-synchronisedRadioLinkReconfigurationPreparation ProcedureCode ::= 31
+id-systemInformationUpdate ProcedureCode ::= 32
+id-unblockResource ProcedureCode ::= 33
+id-unSynchronisedRadioLinkReconfiguration ProcedureCode ::= 34
+id-radioLinkActivation ProcedureCode ::= 51
+id-radioLinkParameterUpdate ProcedureCode ::= 52
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfCodes INTEGER ::= 10
+maxNrOfDLTSs INTEGER ::= 15
+maxNrOfDLTSLCRs INTEGER ::= 6
+maxNrOfErrors INTEGER ::= 256
+maxNrOfTFs INTEGER ::= 32
+maxNrOfTFCs INTEGER ::= 1024
+maxNrOfRLs INTEGER ::= 16
+maxNrOfRLs-1 INTEGER ::= 15 -- maxNrOfRLs - 1
+maxNrOfRLs-2 INTEGER ::= 14 -- maxNrOfRLs - 2
+maxNrOfRLSets INTEGER ::= maxNrOfRLs
+maxNrOfDPCHs INTEGER ::= 240
+maxNrOfDPCHLCRs INTEGER ::= 240
+maxNrOfSCCPCHs INTEGER ::= 8
+maxNrOfCPCHs INTEGER ::= 16
+maxNrOfPCPCHs INTEGER ::= 64
+maxNrOfDCHs INTEGER ::= 128
+maxNrOfDSCHs INTEGER ::= 32
+maxNrOfFACHs INTEGER ::= 8
+maxNrOfCCTrCHs INTEGER ::= 16
+maxNrOfPDSCHs INTEGER ::= 256
+maxNrOfHSPDSCHs INTEGER ::= 16
+maxNrOfPUSCHs INTEGER ::= 256
+maxNrOfPDSCHSets INTEGER ::= 256
+maxNrOfPRACHLCRs INTEGER ::= 8
+maxNrOfPUSCHSets INTEGER ::= 256
+maxNrOfSCCPCHLCRs INTEGER ::= 8
+maxNrOfULTSs INTEGER ::= 15
+maxNrOfULTSLCRs INTEGER ::= 6
+maxNrOfUSCHs INTEGER ::= 32
+maxAPSigNum INTEGER ::= 16
+maxNrOfSlotFormatsPRACH INTEGER ::= 8
+maxCellinNodeB INTEGER ::= 256
+maxCCPinNodeB INTEGER ::= 256
+maxCPCHCell INTEGER ::= maxNrOfCPCHs
+maxCTFC INTEGER ::= 16777215
+maxLocalCellinNodeB INTEGER ::= maxCellinNodeB
+maxNoofLen INTEGER ::= 7
+maxFPACHCell INTEGER ::= 8
+maxRACHCell INTEGER ::= maxPRACHCell
+maxPRACHCell INTEGER ::= 16
+maxPCPCHCell INTEGER ::= 64
+maxSCCPCHCell INTEGER ::= 32
+maxSCPICHCell INTEGER ::= 32
+maxTTI-count INTEGER ::= 4
+maxIBSEG INTEGER ::= 16
+maxIB INTEGER ::= 64
+maxFACHCell INTEGER ::= 256 -- maxNrOfFACHs * maxSCCPCHCell
+maxRateMatching INTEGER ::= 256
+maxCodeNrComp-1 INTEGER ::= 256
+maxHS-PDSCHCodeNrComp-1 INTEGER ::= 15
+maxHS-SCCHCodeNrComp-1 INTEGER ::= 127
+maxNrOfCellSyncBursts INTEGER ::= 10
+maxNrOfCodeGroups INTEGER ::= 256
+maxNrOfReceptsPerSyncFrame INTEGER ::= 16
+maxNrOfMeasNCell INTEGER ::= 96
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell - 1
+maxNrOfTFCIGroups INTEGER ::= 256
+maxNrOfTFCI1Combs INTEGER ::= 512
+maxNrOfTFCI2Combs INTEGER ::= 1024
+maxNrOfTFCI2Combs-1 INTEGER ::= 1023
+maxNrOfSF INTEGER ::= 8
+maxTGPS INTEGER ::= 6
+maxCommunicationContext INTEGER ::= 1048575
+maxNrOfLevels INTEGER ::= 256
+maxNoSat INTEGER ::= 16
+maxNoGPSItems INTEGER ::= 8
+maxNrOfHSSCCHs INTEGER ::= 32
+maxNrOfHSSICHs INTEGER ::= 4
+maxNrOfSyncFramesLCR INTEGER ::= 512
+maxNrOfReceptionsperSyncFrameLCR INTEGER ::= 8
+maxNrOfSyncDLCodesLCR INTEGER ::= 32
+maxNrOfHSSCCHCodes INTEGER ::= 4
+maxNrOfMACdFlows INTEGER ::= 8
+maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows - 1
+maxNrOfMACdPDUIndexes INTEGER ::= 8
+maxNrOfMACdPDUIndexes-1 INTEGER ::= 7 -- maxNoOfMACdPDUIndexes - 1
+maxNrOfPriorityQueues INTEGER ::= 8
+maxNrOfPriorityQueues-1 INTEGER ::= 7 -- maxNoOfPriorityQueues - 1
+maxNrOfHARQProcesses INTEGER ::= 8
+maxNrOfContextsOnUeList INTEGER ::= 16
+maxNrOfCellPortionsPerCell INTEGER ::= 64
+maxNrOfCellPortionsPerCell-1 INTEGER ::= 63
+maxNrOfPriorityClasses INTEGER ::= 16
+maxNrOfSatAlmanac-maxNoSat INTEGER ::= 16 -- maxNrofSatAlmanac - maxNoSat
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AICH-Information ProtocolIE-ID ::= 0
+id-AICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 1
+id-BCH-Information ProtocolIE-ID ::= 7
+id-BCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 8
+id-BCCH-ModificationTime ProtocolIE-ID ::= 9
+id-BlockingPriorityIndicator ProtocolIE-ID ::= 10
+id-Cause ProtocolIE-ID ::= 13
+id-CCP-InformationItem-AuditRsp ProtocolIE-ID ::= 14
+id-CCP-InformationList-AuditRsp ProtocolIE-ID ::= 15
+id-CCP-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 16
+id-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 17
+id-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 18
+id-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 19
+id-CellParameterID ProtocolIE-ID ::= 23
+id-CFN ProtocolIE-ID ::= 24
+id-C-ID ProtocolIE-ID ::= 25
+id-CommonMeasurementAccuracy ProtocolIE-ID ::= 39
+id-CommonMeasurementObjectType-CM-Rprt ProtocolIE-ID ::= 31
+id-CommonMeasurementObjectType-CM-Rqst ProtocolIE-ID ::= 32
+id-CommonMeasurementObjectType-CM-Rsp ProtocolIE-ID ::= 33
+id-CommonMeasurementType ProtocolIE-ID ::= 34
+id-CommonPhysicalChannelID ProtocolIE-ID ::= 35
+id-CommonPhysicalChannelType-CTCH-SetupRqstFDD ProtocolIE-ID ::= 36
+id-CommonPhysicalChannelType-CTCH-SetupRqstTDD ProtocolIE-ID ::= 37
+id-CommunicationControlPortID ProtocolIE-ID ::= 40
+id-ConfigurationGenerationID ProtocolIE-ID ::= 43
+id-CRNC-CommunicationContextID ProtocolIE-ID ::= 44
+id-CriticalityDiagnostics ProtocolIE-ID ::= 45
+id-DCHs-to-Add-FDD ProtocolIE-ID ::= 48
+id-DCH-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 49
+id-DCHs-to-Add-TDD ProtocolIE-ID ::= 50
+id-DCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 52
+id-DCH-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 53
+id-DCH-DeleteList-RL-ReconfRqstFDD ProtocolIE-ID ::= 54
+id-DCH-DeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 55
+id-DCH-FDD-Information ProtocolIE-ID ::= 56
+id-DCH-TDD-Information ProtocolIE-ID ::= 57
+id-DCH-InformationResponse ProtocolIE-ID ::= 59
+id-FDD-DCHs-to-Modify ProtocolIE-ID ::= 62
+id-TDD-DCHs-to-Modify ProtocolIE-ID ::= 63
+id-DCH-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 65
+id-DCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 135
+id-DedicatedMeasurementObjectType-DM-Rprt ProtocolIE-ID ::= 67
+id-DedicatedMeasurementObjectType-DM-Rqst ProtocolIE-ID ::= 68
+id-DedicatedMeasurementObjectType-DM-Rsp ProtocolIE-ID ::= 69
+id-DedicatedMeasurementType ProtocolIE-ID ::= 70
+id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 72
+id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 73
+id-DL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 76
+id-DL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 77
+id-DL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 79
+id-DL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 81
+id-DL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 82
+id-DL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 83
+id-DL-DPCH-TimingAdjustment ProtocolIE-ID ::= 21
+id-DL-ReferencePowerInformationItem-DL-PC-Rqst ProtocolIE-ID ::= 84
+id-DLReferencePower ProtocolIE-ID ::= 85
+id-DLReferencePowerList-DL-PC-Rqst ProtocolIE-ID ::= 86
+id-DSCH-AddItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 87
+id-DSCHs-to-Add-FDD ProtocolIE-ID ::= 89
+id-DSCH-DeleteItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 91
+id-DSCH-DeleteList-RL-ReconfPrepFDD ProtocolIE-ID ::= 93
+id-DSCHs-to-Add-TDD ProtocolIE-ID ::= 96
+id-DSCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 98
+id-DSCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 100
+id-DSCH-InformationResponse ProtocolIE-ID ::= 105
+id-DSCH-FDD-Information ProtocolIE-ID ::= 106
+id-DSCH-TDD-Information ProtocolIE-ID ::= 107
+id-DSCH-ModifyItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 108
+id-DSCH-ModifyList-RL-ReconfPrepFDD ProtocolIE-ID ::= 112
+id-DSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 136
+id-End-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 113
+id-FACH-Information ProtocolIE-ID ::= 116
+id-FACH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 117
+id-FACH-ParametersList-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 120
+id-FACH-ParametersListIE-CTCH-SetupRqstFDD ProtocolIE-ID ::= 121
+id-FACH-ParametersListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 122
+id-IndicationType-ResourceStatusInd ProtocolIE-ID ::= 123
+id-Local-Cell-ID ProtocolIE-ID ::= 124
+id-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 2
+id-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 3
+id-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 4
+id-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 5
+id-Local-Cell-InformationItem-AuditRsp ProtocolIE-ID ::= 125
+id-Local-Cell-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 126
+id-Local-Cell-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 127
+id-Local-Cell-InformationList-AuditRsp ProtocolIE-ID ::= 128
+id-AdjustmentPeriod ProtocolIE-ID ::= 129
+id-MaxAdjustmentStep ProtocolIE-ID ::= 130
+id-MaximumTransmissionPower ProtocolIE-ID ::= 131
+id-MeasurementFilterCoefficient ProtocolIE-ID ::= 132
+id-MeasurementID ProtocolIE-ID ::= 133
+id-MessageStructure ProtocolIE-ID ::= 115
+id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ProtocolIE-ID ::= 134
+id-NodeB-CommunicationContextID ProtocolIE-ID ::= 143
+id-NeighbouringCellMeasurementInformation ProtocolIE-ID ::= 455
+id-P-CCPCH-Information ProtocolIE-ID ::= 144
+id-P-CCPCH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 145
+id-P-CPICH-Information ProtocolIE-ID ::= 146
+id-P-CPICH-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 147
+id-P-SCH-Information ProtocolIE-ID ::= 148
+id-PCCPCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 150
+id-PCCPCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 151
+id-PCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 155
+id-PCH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 156
+id-PCH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 157
+id-PCH-Information ProtocolIE-ID ::= 158
+id-PDSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 161
+id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 162
+id-PDSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 163
+id-PDSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 164
+id-PDSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 165
+id-PICH-Information ProtocolIE-ID ::= 166
+id-PICH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 168
+id-PowerAdjustmentType ProtocolIE-ID ::= 169
+id-PRACH-Information ProtocolIE-ID ::= 170
+id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 175
+id-PrimaryCCPCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 176
+id-PrimaryCPICH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 177
+id-PrimaryCPICH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 178
+id-PrimarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 179
+id-PrimarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 180
+id-PrimaryScramblingCode ProtocolIE-ID ::= 181
+id-SCH-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 183
+id-SCH-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 184
+id-PUSCH-Information-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 185
+id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 186
+id-PUSCHSets-AddList-PSCH-ReconfRqst ProtocolIE-ID ::= 187
+id-PUSCHSets-DeleteList-PSCH-ReconfRqst ProtocolIE-ID ::= 188
+id-PUSCHSets-ModifyList-PSCH-ReconfRqst ProtocolIE-ID ::= 189
+id-RACH-Information ProtocolIE-ID ::= 190
+id-RACH-ParametersItem-CTCH-SetupRqstFDD ProtocolIE-ID ::= 196
+id-RACH-ParameterItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 197
+id-ReportCharacteristics ProtocolIE-ID ::= 198
+id-Reporting-Object-RL-FailureInd ProtocolIE-ID ::= 199
+id-Reporting-Object-RL-RestoreInd ProtocolIE-ID ::= 200
+id-RL-InformationItem-DM-Rprt ProtocolIE-ID ::= 202
+id-RL-InformationItem-DM-Rqst ProtocolIE-ID ::= 203
+id-RL-InformationItem-DM-Rsp ProtocolIE-ID ::= 204
+id-RL-InformationItem-RL-AdditionRqstFDD ProtocolIE-ID ::= 205
+id-RL-informationItem-RL-DeletionRqst ProtocolIE-ID ::= 206
+id-RL-InformationItem-RL-FailureInd ProtocolIE-ID ::= 207
+id-RL-InformationItem-RL-PreemptRequiredInd ProtocolIE-ID ::= 286
+id-RL-InformationItem-RL-ReconfPrepFDD ProtocolIE-ID ::= 208
+id-RL-InformationItem-RL-ReconfRqstFDD ProtocolIE-ID ::= 209
+id-RL-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 210
+id-RL-InformationItem-RL-SetupRqstFDD ProtocolIE-ID ::= 211
+id-RL-InformationList-RL-AdditionRqstFDD ProtocolIE-ID ::= 212
+id-RL-informationList-RL-DeletionRqst ProtocolIE-ID ::= 213
+id-RL-InformationList-RL-PreemptRequiredInd ProtocolIE-ID ::= 237
+id-RL-InformationList-RL-ReconfPrepFDD ProtocolIE-ID ::= 214
+id-RL-InformationList-RL-ReconfRqstFDD ProtocolIE-ID ::= 215
+id-RL-InformationList-RL-SetupRqstFDD ProtocolIE-ID ::= 216
+id-RL-InformationResponseItem-RL-AdditionRspFDD ProtocolIE-ID ::= 217
+id-RL-InformationResponseItem-RL-ReconfReady ProtocolIE-ID ::= 218
+id-RL-InformationResponseItem-RL-ReconfRsp ProtocolIE-ID ::= 219
+id-RL-InformationResponseItem-RL-SetupRspFDD ProtocolIE-ID ::= 220
+id-RL-InformationResponseList-RL-AdditionRspFDD ProtocolIE-ID ::= 221
+id-RL-InformationResponseList-RL-ReconfReady ProtocolIE-ID ::= 222
+id-RL-InformationResponseList-RL-ReconfRsp ProtocolIE-ID ::= 223
+id-RL-InformationResponseList-RL-SetupRspFDD ProtocolIE-ID ::= 224
+id-RL-InformationResponse-RL-AdditionRspTDD ProtocolIE-ID ::= 225
+id-RL-InformationResponse-RL-SetupRspTDD ProtocolIE-ID ::= 226
+id-RL-Information-RL-AdditionRqstTDD ProtocolIE-ID ::= 227
+id-RL-Information-RL-ReconfRqstTDD ProtocolIE-ID ::= 228
+id-RL-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 229
+id-RL-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 230
+id-RL-ReconfigurationFailureItem-RL-ReconfFailure ProtocolIE-ID ::= 236
+id-RL-Set-InformationItem-DM-Rprt ProtocolIE-ID ::= 238
+id-RL-Set-InformationItem-DM-Rsp ProtocolIE-ID ::= 240
+id-RL-Set-InformationItem-RL-FailureInd ProtocolIE-ID ::= 241
+id-RL-Set-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 242
+id-S-CCPCH-Information ProtocolIE-ID ::= 247
+id-S-CPICH-Information ProtocolIE-ID ::= 249
+id-SCH-Information ProtocolIE-ID ::= 251
+id-S-SCH-Information ProtocolIE-ID ::= 253
+id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 257
+id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ProtocolIE-ID ::= 258
+id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 259
+id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ProtocolIE-ID ::= 260
+id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ProtocolIE-ID ::= 261
+id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ProtocolIE-ID ::= 262
+id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD ProtocolIE-ID ::= 263
+id-SecondarySCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 264
+id-SecondarySCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 265
+id-SegmentInformationListIE-SystemInfoUpdate ProtocolIE-ID ::= 266
+id-SFN ProtocolIE-ID ::= 268
+id-SignallingBearerRequestIndicator ProtocolIE-ID ::= 138
+id-ShutdownTimer ProtocolIE-ID ::= 269
+id-Start-Of-Audit-Sequence-Indicator ProtocolIE-ID ::= 114
+id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 270
+id-Successful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 271
+id-SyncCase ProtocolIE-ID ::= 274
+id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ProtocolIE-ID ::= 275
+id-T-Cell ProtocolIE-ID ::= 276
+id-TargetCommunicationControlPortID ProtocolIE-ID ::= 139
+id-TimeSlotConfigurationList-Cell-ReconfRqstTDD ProtocolIE-ID ::= 277
+id-TimeSlotConfigurationList-Cell-SetupRqstTDD ProtocolIE-ID ::= 278
+id-TransmissionDiversityApplied ProtocolIE-ID ::= 279
+id-TypeOfError ProtocolIE-ID ::= 508
+id-UARFCNforNt ProtocolIE-ID ::= 280
+id-UARFCNforNd ProtocolIE-ID ::= 281
+id-UARFCNforNu ProtocolIE-ID ::= 282
+id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD ProtocolIE-ID ::= 284
+id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD ProtocolIE-ID ::= 285
+id-UL-CCTrCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 288
+id-UL-DPCH-InformationItem-RL-AdditionRqstTDD ProtocolIE-ID ::= 289
+id-UL-DPCH-InformationList-RL-SetupRqstTDD ProtocolIE-ID ::= 291
+id-UL-DPCH-Information-RL-ReconfPrepFDD ProtocolIE-ID ::= 293
+id-UL-DPCH-Information-RL-ReconfRqstFDD ProtocolIE-ID ::= 294
+id-UL-DPCH-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 295
+id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ProtocolIE-ID ::= 296
+id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ProtocolIE-ID ::= 297
+id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ProtocolIE-ID ::= 300
+id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ProtocolIE-ID ::= 301
+id-USCH-Information-Add ProtocolIE-ID ::= 302
+id-USCH-Information-DeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 304
+id-USCH-Information-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 306
+id-USCH-InformationResponse ProtocolIE-ID ::= 309
+id-USCH-Information ProtocolIE-ID ::= 310
+id-USCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 141
+id-Active-Pattern-Sequence-Information ProtocolIE-ID ::= 315
+id-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 316
+id-AdjustmentRatio ProtocolIE-ID ::= 317
+id-AP-AICH-Information ProtocolIE-ID ::= 320
+id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 322
+id-FACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 323
+id-CauseLevel-PSCH-ReconfFailure ProtocolIE-ID ::= 324
+id-CauseLevel-RL-AdditionFailureFDD ProtocolIE-ID ::= 325
+id-CauseLevel-RL-AdditionFailureTDD ProtocolIE-ID ::= 326
+id-CauseLevel-RL-ReconfFailure ProtocolIE-ID ::= 327
+id-CauseLevel-RL-SetupFailureFDD ProtocolIE-ID ::= 328
+id-CauseLevel-RL-SetupFailureTDD ProtocolIE-ID ::= 329
+id-CDCA-ICH-Information ProtocolIE-ID ::= 330
+id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 332
+id-Closed-Loop-Timing-Adjustment-Mode ProtocolIE-ID ::= 333
+id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 334
+id-Compressed-Mode-Deactivation-Flag ProtocolIE-ID ::= 335
+id-CPCH-Information ProtocolIE-ID ::= 336
+id-CPCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 342
+id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 343
+id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 346
+id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 347
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 348
+id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 349
+id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 350
+id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 351
+id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 352
+id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 353
+id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 355
+id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 356
+id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 357
+id-DL-TPC-Pattern01Count ProtocolIE-ID ::= 358
+id-DPC-Mode ProtocolIE-ID ::= 450
+id-DPCHConstant ProtocolIE-ID ::= 359
+id-DSCH-FDD-Common-Information ProtocolIE-ID ::= 94
+id-EnhancedDSCHPC ProtocolIE-ID ::= 110
+id-EnhancedDSCHPCIndicator ProtocolIE-ID ::= 111
+id-FACH-ParametersList-CTCH-SetupRsp ProtocolIE-ID ::= 362
+id-Limited-power-increase-information-Cell-SetupRqstFDD ProtocolIE-ID ::= 369
+id-PCH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 374
+id-PCH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 375
+id-PCPCH-Information ProtocolIE-ID ::= 376
+id-PICH-ParametersItem-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 380
+id-PRACHConstant ProtocolIE-ID ::= 381
+id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD ProtocolIE-ID ::= 383
+id-PUSCHConstant ProtocolIE-ID ::= 384
+id-RACH-Parameters-CTCH-SetupRsp ProtocolIE-ID ::= 385
+id-SSDT-CellIDforEDSCHPC ProtocolIE-ID ::= 443
+id-Synchronisation-Configuration-Cell-ReconfRqst ProtocolIE-ID ::= 393
+id-Synchronisation-Configuration-Cell-SetupRqst ProtocolIE-ID ::= 394
+id-Transmission-Gap-Pattern-Sequence-Information ProtocolIE-ID ::= 395
+id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 396
+id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 397
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ProtocolIE-ID ::= 398
+id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ProtocolIE-ID ::= 399
+id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ProtocolIE-ID ::= 400
+id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 401
+id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 402
+id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 403
+id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 405
+id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 406
+id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 407
+id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 408
+id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ProtocolIE-ID ::= 409
+id-CommunicationContextInfoItem-Reset ProtocolIE-ID ::= 412
+id-CommunicationControlPortInfoItem-Reset ProtocolIE-ID ::= 414
+id-ResetIndicator ProtocolIE-ID ::= 416
+id-TFCI2-Bearer-Information-RL-SetupRqstFDD ProtocolIE-ID ::= 417
+id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ProtocolIE-ID ::= 418
+id-TFCI2-BearerInformationResponse ProtocolIE-ID ::= 419
+id-TFCI2BearerRequestIndicator ProtocolIE-ID ::= 142
+id-TimingAdvanceApplied ProtocolIE-ID ::= 287
+id-CFNReportingIndicator ProtocolIE-ID ::= 6
+id-SFNReportingIndicator ProtocolIE-ID ::= 11
+id-InnerLoopDLPCStatus ProtocolIE-ID ::= 12
+id-TimeslotISCPInfo ProtocolIE-ID ::= 283
+id-PICH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 167
+id-PRACH-ParametersItem-CTCH-SetupRqstTDD ProtocolIE-ID ::= 20
+id-CCTrCH-InformationItem-RL-FailureInd ProtocolIE-ID ::= 46
+id-CCTrCH-InformationItem-RL-RestoreInd ProtocolIE-ID ::= 47
+id-CauseLevel-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 420
+id-CellAdjustmentInfo-SyncAdjustmntRqstTDD ProtocolIE-ID ::= 421
+id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ProtocolIE-ID ::= 494
+id-CellSyncBurstInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 482
+id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 422
+id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 423
+id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 424
+id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD ProtocolIE-ID ::= 425
+id-CellSyncBurstTransInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 426
+id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 427
+id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ProtocolIE-ID ::= 428
+id-CellSyncInfo-CellSyncReprtTDD ProtocolIE-ID ::= 429
+id-CSBTransmissionID ProtocolIE-ID ::= 430
+id-CSBMeasurementID ProtocolIE-ID ::= 431
+id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 432
+id-NCyclesPerSFNperiod ProtocolIE-ID ::= 433
+id-NRepetitionsPerCyclePeriod ProtocolIE-ID ::= 434
+id-SyncFrameNumber ProtocolIE-ID ::= 437
+id-SynchronisationReportType ProtocolIE-ID ::= 438
+id-SynchronisationReportCharacteristics ProtocolIE-ID ::= 439
+id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD ProtocolIE-ID ::= 440
+id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD ProtocolIE-ID ::= 119
+id-ReferenceClockAvailability ProtocolIE-ID ::= 435
+id-ReferenceSFNoffset ProtocolIE-ID ::= 436
+id-InformationExchangeID ProtocolIE-ID ::= 444
+id-InformationExchangeObjectType-InfEx-Rqst ProtocolIE-ID ::= 445
+id-InformationType ProtocolIE-ID ::= 446
+id-InformationReportCharacteristics ProtocolIE-ID ::= 447
+id-InformationExchangeObjectType-InfEx-Rsp ProtocolIE-ID ::= 448
+id-InformationExchangeObjectType-InfEx-Rprt ProtocolIE-ID ::= 449
+id-IPDLParameter-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 451
+id-IPDLParameter-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 452
+id-IPDLParameter-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 453
+id-IPDLParameter-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 454
+id-DL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 74
+id-DwPCH-LCR-Information ProtocolIE-ID ::= 78
+id-DwPCH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 90
+id-DwPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 97
+id-DwPCH-LCR-Information-Cell-ReconfRqstTDD ProtocolIE-ID ::= 99
+id-DwPCH-LCR-Information-ResourceStatusInd ProtocolIE-ID ::= 101
+id-maxFACH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 154
+id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 174
+id-FPACH-LCR-Information ProtocolIE-ID ::= 290
+id-FPACH-LCR-Information-AuditRsp ProtocolIE-ID ::= 292
+id-FPACH-LCR-InformationList-AuditRsp ProtocolIE-ID ::= 22
+id-FPACH-LCR-InformationList-ResourceStatusInd ProtocolIE-ID ::= 311
+id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 312
+id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 314
+id-PCCPCH-LCR-Information-Cell-SetupRqstTDD ProtocolIE-ID ::= 456
+id-PCH-Power-LCR-CTCH-SetupRqstTDD ProtocolIE-ID ::= 457
+id-PCH-Power-LCR-CTCH-ReconfRqstTDD ProtocolIE-ID ::= 458
+id-PICH-LCR-Parameters-CTCH-SetupRqstTDD ProtocolIE-ID ::= 459
+id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 461
+id-RL-InformationResponse-LCR-RL-SetupRspTDD ProtocolIE-ID ::= 463
+id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ProtocolIE-ID ::= 465
+id-TimeSlot ProtocolIE-ID ::= 495
+id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 466
+id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 467
+id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD ProtocolIE-ID ::= 468
+id-TimeSlotLCR-CM-Rqst ProtocolIE-ID ::= 469
+id-UL-DPCH-LCR-Information-RL-SetupRqstTDD ProtocolIE-ID ::= 470
+id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 472
+id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 473
+id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 474
+id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 475
+id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ProtocolIE-ID ::= 477
+id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ProtocolIE-ID ::= 479
+id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD ProtocolIE-ID ::= 480
+id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD ProtocolIE-ID ::= 481
+id-UL-DPCH-LCR-InformationModify-AddList ProtocolIE-ID ::= 483
+id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD ProtocolIE-ID ::= 485
+id-UL-SIRTarget ProtocolIE-ID ::= 510
+id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 486
+id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 487
+id-PDSCH-Information-Cell-SetupRqstFDD ProtocolIE-ID ::= 26
+id-PDSCH-Information-Cell-ReconfRqstFDD ProtocolIE-ID ::= 27
+id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 488
+id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 489
+id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 490
+id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 491
+id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst ProtocolIE-ID ::= 492
+id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst ProtocolIE-ID ::= 493
+id-timeslotInfo-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 496
+id-SyncReportType-CellSyncReprtTDD ProtocolIE-ID ::= 497
+id-Power-Local-Cell-Group-InformationItem-AuditRsp ProtocolIE-ID ::= 498
+id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd ProtocolIE-ID ::= 499
+id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd ProtocolIE-ID ::= 500
+id-Power-Local-Cell-Group-InformationList-AuditRsp ProtocolIE-ID ::= 501
+id-Power-Local-Cell-Group-InformationList-ResourceStatusInd ProtocolIE-ID ::= 502
+id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd ProtocolIE-ID ::= 503
+id-Power-Local-Cell-Group-ID ProtocolIE-ID ::= 504
+id-PUSCH-Info-DM-Rqst ProtocolIE-ID ::= 505
+id-PUSCH-Info-DM-Rsp ProtocolIE-ID ::= 506
+id-PUSCH-Info-DM-Rprt ProtocolIE-ID ::= 507
+id-InitDL-Power ProtocolIE-ID ::= 509
+id-cellSyncBurstRepetitionPeriod ProtocolIE-ID ::= 511
+id-ReportCharacteristicsType-OnModification ProtocolIE-ID ::= 512
+id-SFNSFNMeasurementValueInformation ProtocolIE-ID ::= 513
+id-SFNSFNMeasurementThresholdInformation ProtocolIE-ID ::= 514
+id-TUTRANGPSMeasurementValueInformation ProtocolIE-ID ::= 515
+id-TUTRANGPSMeasurementThresholdInformation ProtocolIE-ID ::= 516
+id-Rx-Timing-Deviation-Value-LCR ProtocolIE-ID ::= 520
+id-RL-InformationResponse-LCR-RL-AdditionRspTDD ProtocolIE-ID ::= 51
+id-DL-PowerBalancing-Information ProtocolIE-ID ::= 28
+id-DL-PowerBalancing-ActivationIndicator ProtocolIE-ID ::= 29
+id-DL-PowerBalancing-UpdatedIndicator ProtocolIE-ID ::= 30
+id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 517
+id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 518
+id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD ProtocolIE-ID ::= 519
+id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD ProtocolIE-ID ::= 41
+id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ProtocolIE-ID ::= 42
+id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst ProtocolIE-ID ::= 522
+id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst ProtocolIE-ID ::= 523
+id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 524
+id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 525
+id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst ProtocolIE-ID ::= 526
+id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 527
+id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 528
+id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ProtocolIE-ID ::= 529
+id-bindingID ProtocolIE-ID ::= 102
+id-RL-Specific-DCH-Info ProtocolIE-ID ::= 103
+id-transportlayeraddress ProtocolIE-ID ::= 104
+id-DelayedActivation ProtocolIE-ID ::= 231
+id-DelayedActivationList-RL-ActivationCmdFDD ProtocolIE-ID ::= 232
+id-DelayedActivationInformation-RL-ActivationCmdFDD ProtocolIE-ID ::= 233
+id-DelayedActivationList-RL-ActivationCmdTDD ProtocolIE-ID ::= 234
+id-DelayedActivationInformation-RL-ActivationCmdTDD ProtocolIE-ID ::= 235
+id-neighbouringTDDCellMeasurementInformationLCR ProtocolIE-ID ::= 58
+id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 543
+id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD ProtocolIE-ID ::= 544
+id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 545
+id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD ProtocolIE-ID ::= 546
+id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD ProtocolIE-ID ::= 547
+id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ProtocolIE-ID ::= 548
+id-SyncDLCodeIdThreInfoLCR ProtocolIE-ID ::= 549
+id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD ProtocolIE-ID ::= 550
+id-DwPCH-Power ProtocolIE-ID ::= 551
+id-AccumulatedClockupdate-CellSyncReprtTDD ProtocolIE-ID ::= 552
+id-Angle-Of-Arrival-Value-LCR ProtocolIE-ID ::= 521
+id-HSDSCH-FDD-Information ProtocolIE-ID ::= 530
+id-HSDSCH-FDD-Information-Response ProtocolIE-ID ::= 531
+id-HSDSCH-Information-to-Modify ProtocolIE-ID ::= 534
+id-HSDSCH-RNTI ProtocolIE-ID ::= 535
+id-HSDSCH-TDD-Information ProtocolIE-ID ::= 536
+id-HSDSCH-TDD-Information-Response ProtocolIE-ID ::= 537
+id-HSPDSCH-RL-ID ProtocolIE-ID ::= 541
+id-PrimCCPCH-RSCP-DL-PC-RqstTDD ProtocolIE-ID ::= 542
+id-Qth-Parameter ProtocolIE-ID ::= 64
+id-PDSCH-RL-ID ProtocolIE-ID ::= 66
+id-HSDSCH-RearrangeList-Bearer-RearrangeInd ProtocolIE-ID ::= 553
+id-UL-Synchronisation-Parameters-LCR ProtocolIE-ID ::= 554
+id-HSDSCH-FDD-Update-Information ProtocolIE-ID ::= 555
+id-HSDSCH-TDD-Update-Information ProtocolIE-ID ::= 556
+id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 558
+id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD ProtocolIE-ID ::= 559
+id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD ProtocolIE-ID ::= 560
+id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD ProtocolIE-ID ::= 561
+id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD ProtocolIE-ID ::= 562
+id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 563
+id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD ProtocolIE-ID ::= 564
+id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 565
+id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 566
+id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 567
+id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD ProtocolIE-ID ::= 568
+id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 569
+id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD ProtocolIE-ID ::= 570
+id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 571
+id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD ProtocolIE-ID ::= 572
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 573
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 574
+id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 575
+id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD ProtocolIE-ID ::= 576
+id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ProtocolIE-ID ::= 577
+id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 578
+id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD ProtocolIE-ID ::= 579
+id-Initial-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 580
+id-Maximum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 581
+id-Minimum-DL-Power-TimeslotLCR-InformationItem ProtocolIE-ID ::= 582
+id-HS-DSCHProvidedBitRate ProtocolIE-ID ::= 583
+id-HS-DSCHRequiredPower ProtocolIE-ID ::= 585
+id-HS-DSCHRequiredPowerValue ProtocolIE-ID ::= 586
+id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission ProtocolIE-ID ::= 587
+id-HS-SICH-Reception-Quality ProtocolIE-ID ::= 588
+id-HS-SICH-Reception-Quality-Measurement-Value ProtocolIE-ID ::= 589
+id-HSSICH-Info-DM-Rprt ProtocolIE-ID ::= 590
+id-HSSICH-Info-DM-Rqst ProtocolIE-ID ::= 591
+id-HSSICH-Info-DM-Rsp ProtocolIE-ID ::= 592
+id-Best-Cell-Portions-Value ProtocolIE-ID ::= 593
+id-Primary-CPICH-Usage-for-Channel-Estimation ProtocolIE-ID ::= 594
+id-Secondary-CPICH-Information-Change ProtocolIE-ID ::= 595
+id-NumberOfReportedCellPortions ProtocolIE-ID ::= 596
+id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD ProtocolIE-ID ::= 599
+id-Unidirectional-DCH-Indicator ProtocolIE-ID ::= 602
+id-TimingAdjustmentValueLCR ProtocolIE-ID ::= 603
+id-multipleRL-dl-DPCH-InformationList ProtocolIE-ID ::= 604
+id-multipleRL-dl-DPCH-InformationModifyList ProtocolIE-ID ::= 605
+id-multipleRL-ul-DPCH-InformationList ProtocolIE-ID ::= 606
+id-multipleRL-ul-DPCH-InformationModifyList ProtocolIE-ID ::= 607
+id-RL-ID ProtocolIE-ID ::= 608
+id-SAT-Info-Almanac-ExtItem ProtocolIE-ID ::= 609
+id-HSDPA-Capability ProtocolIE-ID ::= 610
+id-HSDSCH-Resources-Information-AuditRsp ProtocolIE-ID ::= 611
+id-HSDSCH-Resources-Information-ResourceStatusInd ProtocolIE-ID ::= 612
+id-HSDSCH-MACdFlows-to-Add ProtocolIE-ID ::= 613
+id-HSDSCH-MACdFlows-to-Delete ProtocolIE-ID ::= 614
+id-HSDSCH-Information-to-Modify-Unsynchronised ProtocolIE-ID ::= 615
+id-TnlQos ProtocolIE-ID ::= 616
+id-PrimaryCCPCH-RSCP-Delta ProtocolIE-ID ::= 623
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Containers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Containers.asn
new file mode 100755
index 0000000000..fb08451103
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-Containers.asn
@@ -0,0 +1,197 @@
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+NBAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxProtocolExtensions,
+ maxPrivateIEs,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM NBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-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
+--
+-- **************************************************************
+
+NBAP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+NBAP-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 {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {NBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality NBAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value NBAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality NBAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue NBAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality NBAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue NBAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, NBAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {NBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id NBAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality NBAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue NBAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {NBAP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {NBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id NBAP-PRIVATE-IES.&id
+ ({IEsSetParam}),
+ criticality NBAP-PRIVATE-IES.&criticality
+ ({IEsSetParam}{@id}),
+ value NBAP-PRIVATE-IES.&Value
+ ({IEsSetParam}{@id})
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-IEs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-IEs.asn
new file mode 100755
index 0000000000..848d8f6099
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-IEs.asn
@@ -0,0 +1,4127 @@
+--******************************************************************************
+--
+-- Information Element Definitions
+--
+--******************************************************************************
+
+NBAP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+IMPORTS
+ maxNrOfRLs,
+ maxNrOfTFCs,
+ maxNrOfErrors,
+ maxCTFC,
+ maxNrOfTFs,
+ maxTTI-count,
+ maxRateMatching,
+ maxCodeNrComp-1,
+ maxHS-PDSCHCodeNrComp-1,
+ maxHS-SCCHCodeNrComp-1,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodeGroups,
+ maxNrOfMeasNCell,
+ maxNrOfMeasNCell-1,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfTFCIGroups,
+ maxNrOfTFCI1Combs,
+ maxNrOfTFCI2Combs,
+ maxNrOfTFCI2Combs-1,
+ maxNrOfSF,
+ maxTGPS,
+ maxNrOfUSCHs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfCodes,
+ maxNrOfDSCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDCHs,
+ maxNrOfLevels,
+ maxNoGPSItems,
+ maxNoSat,
+ maxNrOfCellPortionsPerCell,
+ maxNrOfCellPortionsPerCell-1,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSCCHCodes,
+ maxNrOfMACdFlows,
+ maxNrOfMACdFlows-1,
+ maxNrOfMACdPDUIndexes,
+ maxNrOfMACdPDUIndexes-1,
+ maxNrOfPriorityQueues,
+ maxNrOfPriorityQueues-1,
+ maxNrOfHARQProcesses,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfSyncFramesLCR,
+ maxNrOfContextsOnUeList,
+ maxNrOfPriorityClasses,
+ maxNrOfSatAlmanac-maxNoSat,
+
+ id-MessageStructure,
+ id-ReportCharacteristicsType-OnModification,
+ id-Rx-Timing-Deviation-Value-LCR,
+ id-SFNSFNMeasurementValueInformation,
+ id-SFNSFNMeasurementThresholdInformation,
+ id-TUTRANGPSMeasurementValueInformation,
+ id-TUTRANGPSMeasurementThresholdInformation,
+ id-TypeOfError,
+ id-transportlayeraddress,
+ id-bindingID,
+ id-Angle-Of-Arrival-Value-LCR,
+ id-SyncDLCodeIdThreInfoLCR,
+ id-neighbouringTDDCellMeasurementInformationLCR,
+ id-HS-SICH-Reception-Quality,
+ id-HS-SICH-Reception-Quality-Measurement-Value,
+ id-Initial-DL-Power-TimeslotLCR-InformationItem,
+ id-Maximum-DL-Power-TimeslotLCR-InformationItem,
+ id-Minimum-DL-Power-TimeslotLCR-InformationItem,
+ id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ id-HS-DSCHRequiredPower,
+ id-HS-DSCHProvidedBitRate,
+ id-HS-DSCHRequiredPowerValue,
+ id-Best-Cell-Portions-Value,
+ id-Unidirectional-DCH-Indicator,
+ id-SAT-Info-Almanac-ExtItem,
+ id-TnlQos
+FROM NBAP-Constants
+
+ Criticality,
+ ProcedureID,
+ ProtocolIE-ID,
+ TransactionID,
+ TriggeringMessage
+FROM NBAP-CommonDataTypes
+
+ NBAP-PROTOCOL-IES,
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers;
+
+-- ==========================================
+-- A
+-- ==========================================
+
+AckNack-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+Ack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+Acknowledged-PCPCH-access-preambles ::= INTEGER (0..15,...)
+-- According to mapping in [22].
+
+Acknowledged-PRACH-preambles-Value ::= INTEGER(0..240,...)
+-- According to mapping in [22].
+
+AddorDeleteIndicator ::= ENUMERATED {
+ add,
+ delete
+}
+
+Active-Pattern-Sequence-Information ::= SEQUENCE {
+ cMConfigurationChangeCFN CFN,
+ transmission-Gap-Pattern-Sequence-Status Transmission-Gap-Pattern-Sequence-Status-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Active-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Active-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List ::= SEQUENCE (SIZE (0..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGPRC TGPRC,
+ tGCFN CFN,
+ iE-Extensions ProtocolExtensionContainer { { Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Transmission-Gap-Pattern-Sequence-Status-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-Power ::= INTEGER (-22..5)
+-- Offset in dB.
+
+AICH-TransmissionTiming ::= ENUMERATED {
+ v0,
+ v1
+}
+
+AllocationRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationRetentionPriority-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Angle-Of-Arrival-Value-LCR ::= SEQUENCE {
+ aOA-LCR AOA-LCR,
+ aOA-LCR-Accuracy-Class AOA-LCR-Accuracy-Class,
+ iE-Extensions ProtocolExtensionContainer { {Angle-Of-Arrival-Value-LCR-ExtIEs} } OPTIONAL,
+...
+}
+
+Angle-Of-Arrival-Value-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AOA-LCR ::= INTEGER (0..719)
+-- Angle Of Arrival for 1.28Mcps TDD
+
+AOA-LCR-Accuracy-Class ::= ENUMERATED {a,b,c,d,e,f,g,h,...}
+
+APPreambleSignature ::= INTEGER (0..15)
+
+APSubChannelNumber ::= INTEGER (0..11)
+
+AvailabilityStatus ::= ENUMERATED {
+ empty,
+ in-test,
+ failed,
+ power-off,
+ off-line,
+ off-duty,
+ dependency,
+ degraded,
+ not-installed,
+ log-full,
+ ...
+}
+
+-- ==========================================
+-- B
+-- ==========================================
+
+BCCH-ModificationTime ::= INTEGER (0..511)
+-- Time = BCCH-ModificationTime * 8
+-- Range 0 to 4088, step 8
+-- All SFN values in which MIB may be mapped are allowed
+
+Best-Cell-Portions-Value::= SEQUENCE (SIZE (1..maxNrOfCellPortionsPerCell)) OF Best-Cell-Portions-Item
+
+Best-Cell-Portions-Item ::= SEQUENCE {
+ cellPortionID CellPortionID,
+ sIRValue SIR-Value,
+ iE-Extensions ProtocolExtensionContainer { { Best-Cell-Portions-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Best-Cell-Portions-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BindingID ::= OCTET STRING (SIZE (1..4, ...))
+-- If the Binding ID includes a UDP port, the UDP port is included in octet 1 and 2.The first octet of
+-- the UDP port field is included in the first octet of the Binding ID.
+
+BetaCD ::= INTEGER (0..15)
+
+BlockingPriorityIndicator ::= ENUMERATED {
+ high,
+ normal,
+ low,
+ ...
+}
+-- High priority: Block resource immediately.
+-- Normal priority: Block resource when idle or upon timer expiry.
+-- Low priority: Block resource when idle.
+
+SCTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+-- ==========================================
+-- C
+-- ==========================================
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ oam-intervention,
+ not-enough-user-plane-processing-resources,
+ 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,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unknown-C-ID,
+ cell-not-available,
+ power-level-not-supported,
+ dl-radio-resources-not-available,
+ ul-radio-resources-not-available,
+ rl-already-ActivatedOrAllocated,
+ nodeB-Resources-unavailable,
+ measurement-not-supported-for-the-object,
+ combining-resources-not-available,
+ requested-configuration-not-supported,
+ synchronisation-failure,
+ priority-transport-channel-established,
+ sIB-Origination-in-Node-B-not-Supported,
+ requested-tx-diversity-mode-not-supported,
+ unspecified,
+ bCCH-scheduling-error,
+ measurement-temporarily-not-available,
+ invalid-CM-settings,
+ reconfiguration-CFN-not-elapsed,
+ number-of-DL-codes-not-supported,
+ s-cipch-not-supported,
+ combining-not-supported,
+ ul-sf-not-supported,
+ dl-SF-not-supported,
+ common-transport-channel-type-not-supported,
+ dedicated-transport-channel-type-not-supported,
+ downlink-shared-channel-type-not-supported,
+ uplink-shared-channel-type-not-supported,
+ cm-not-supported,
+ tx-diversity-no-longer-supported,
+ unknown-Local-Cell-ID,
+ ...,
+ number-of-UL-codes-not-supported,
+ information-temporarily-not-available,
+ information-provision-not-supported-for-the-object,
+ cell-synchronisation-not-supported,
+ cell-synchronisation-adjustment-not-supported,
+ dpc-mode-change-not-supported,
+ iPDL-already-activated,
+ iPDL-not-supported,
+ iPDL-parameters-not-available,
+ frequency-acquisition-not-supported,
+ power-balancing-status-not-compatible,
+ requested-typeofbearer-re-arrangement-not-supported,
+ signalling-Bearer-Re-arrangement-not-supported,
+ bearer-Re-arrangement-needed,
+ delayed-activation-not-supported,
+ rl-timing-adjustment-not-supported
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CCTrCH-ID ::= INTEGER (0..15)
+
+CDSubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+CellParameterID ::= INTEGER (0..127,...)
+
+CellPortionID ::= INTEGER (0..maxNrOfCellPortionsPerCell-1,...)
+
+CellSyncBurstCode ::= INTEGER(0..7, ...)
+
+CellSyncBurstCodeShift ::= INTEGER(0..7)
+
+CellSyncBurstRepetitionPeriod ::= INTEGER (0..4095)
+
+CellSyncBurstSIR ::= INTEGER (0..31)
+
+CellSyncBurstTiming ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+CellSyncBurstTimingLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+CellSyncBurstTimingThreshold ::= INTEGER(0..254)
+
+CFN ::= INTEGER (0..255)
+
+Channel-Assignment-Indication ::= ENUMERATED {
+ cA-Active,
+ cA-Inactive
+}
+
+ChipOffset ::= INTEGER (0..38399)
+-- Unit Chip
+
+C-ID ::= INTEGER (0..65535)
+
+Closedlooptimingadjustmentmode ::= ENUMERATED {
+ adj-1-slot,
+ adj-2-slot,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw ::= SEQUENCE (SIZE(1..maxNrOfSF)) OF
+ SEQUENCE {
+ dl-Cost INTEGER (0..65535),
+ ul-Cost INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { CommonChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CommonChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementAccuracy ::= CHOICE {
+ tUTRANGPSMeasurementAccuracyClass TUTRANGPSAccuracyClass,
+ ...
+}
+
+CommonMeasurementType ::= ENUMERATED {
+ received-total-wide-band-power,
+ transmitted-carrier-power,
+ acknowledged-prach-preambles,
+ ul-timeslot-iscp,
+ acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles,
+ ...,
+ uTRAN-GPS-Timing-of-Cell-Frames-for-UE-Positioning,
+ sFN-SFN-Observed-Time-Difference,
+ transmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission,
+ hS-DSCH-Required-Power,
+ hS-DSCH-Provided-Bit-Rate
+}
+
+CommonMeasurementValue ::= CHOICE {
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-CommonMeasurementValue Extension-CommonMeasurementValue
+}
+
+Extension-CommonMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-CommonMeasurementValueIE }}
+
+Extension-CommonMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementValueInformation CRITICALITY ignore TYPE TUTRANGPSMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementValueInformation CRITICALITY ignore TYPE SFNSFNMeasurementValueInformation PRESENCE mandatory }|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY ignore TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory }|
+ { ID id-HS-DSCHRequiredPower CRITICALITY ignore TYPE HS-DSCHRequiredPower PRESENCE mandatory }|
+ { ID id-HS-DSCHProvidedBitRate CRITICALITY ignore TYPE HS-DSCHProvidedBitRate PRESENCE mandatory }
+}
+
+CommonMeasurementValueInformation ::= CHOICE {
+ measurementAvailable CommonMeasurementAvailable,
+ measurementnotAvailable CommonMeasurementnotAvailable
+}
+
+CommonMeasurementAvailable::= SEQUENCE {
+ commonmeasurementValue CommonMeasurementValue,
+ ie-Extensions ProtocolExtensionContainer { { CommonMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CommonMeasurementnotAvailable ::= NULL
+
+CommonPhysicalChannelID ::= INTEGER (0..255)
+
+Common-PhysicalChannel-Status-Information ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-PhysicalChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-PhysicalChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelID ::= INTEGER (0..255)
+
+CommonTransportChannel-InformationResponse ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CommonTransportChannel-InformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommonTransportChannel-InformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Common-TransportChannel-Status-Information ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { Common-TransportChannel-Status-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Common-TransportChannel-Status-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortID ::= INTEGER (0..65535)
+
+Compressed-Mode-Deactivation-Flag::= ENUMERATED {
+ deactivate,
+ maintain-Active
+}
+
+ConfigurationGenerationID ::= INTEGER (0..255)
+-- Value '0' means "No configuration"
+
+ConstantValue ::= INTEGER (-10..10,...)
+-- -10 dB - +10 dB
+-- unit dB
+-- step 1 dB
+
+CPCH-Allowed-Total-Rate ::= ENUMERATED {
+ v15,
+ v30,
+ v60,
+ v120,
+ v240,
+ v480,
+ v960,
+ v1920,
+ v2880,
+ v3840,
+ v4800,
+ v5760,
+ ...
+}
+
+CPCHScramblingCodeNumber ::= INTEGER (0..79)
+
+CPCH-UL-DPCCH-SlotFormat ::= INTEGER (0..2,...)
+
+CQI-Feedback-Cycle ::= ENUMERATED {v0, v2, v4, v8, v10, v20, v40, v80, v160,...}
+
+CQI-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+CQI-RepetitionFactor ::= INTEGER (1..4,...)
+-- Step: 1
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureID ProcedureID OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ transactionID TransactionID OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber0 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
+ ...
+}
+
+CRNC-CommunicationContextID ::= INTEGER (0..1048575)
+
+CSBMeasurementID ::= INTEGER (0..65535)
+
+CSBTransmissionID ::= INTEGER (0..65535)
+
+-- ==========================================
+-- D
+-- ==========================================
+
+DATA-ID ::= INTEGER (0..3)
+
+DCH-ID ::= INTEGER (0..255)
+
+DCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-FDD-InformationItem
+
+DCH-FDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-FDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+DCH-Specific-FDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-FDD-Item
+
+DCH-Specific-FDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-FDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-FDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+DCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-InformationResponseItem
+
+DCH-InformationResponseItem ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-TDD-InformationItem
+
+DCH-TDD-InformationItem ::= SEQUENCE {
+ payloadCRC-PresenceIndicator PayloadCRC-PresenceIndicator,
+ ul-FP-Mode UL-FP-Mode,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ dCH-SpecificInformationList DCH-Specific-TDD-InformationList,
+ iE-Extensions ProtocolExtensionContainer { { DCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-Specific-TDD-InformationList ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-Specific-TDD-Item
+
+DCH-Specific-TDD-Item ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID,
+ dl-CCTrCH-ID CCTrCH-ID,
+ ul-TransportFormatSet TransportFormatSet,
+ dl-TransportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ qE-Selector QE-Selector OPTIONAL,
+ -- This IE shall be present if DCH is part of set of Coordinated DCHs
+ iE-Extensions ProtocolExtensionContainer { { DCH-Specific-TDD-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Specific-TDD-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unidirectional-DCH-Indicator CRITICALITY reject EXTENSION Unidirectional-DCH-Indicator PRESENCE optional },
+ ...
+}
+
+FDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF FDD-DCHs-to-ModifyItem
+
+FDD-DCHs-to-ModifyItem ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-FDD,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-FDD::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-FDD
+
+DCH-ModifySpecificItem-FDD::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-FDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-FDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TDD-DCHs-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifyItem-TDD
+
+DCH-ModifyItem-TDD ::= SEQUENCE {
+ ul-FP-Mode UL-FP-Mode OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ dCH-SpecificInformationList DCH-ModifySpecificInformation-TDD,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DCHs-to-ModifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DCHs-to-ModifyItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional},
+ ...
+}
+
+DCH-ModifySpecificInformation-TDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-ModifySpecificItem-TDD
+
+DCH-ModifySpecificItem-TDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ ul-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ dl-CCTrCH-ID CCTrCH-ID OPTIONAL,
+ ul-TransportFormatSet TransportFormatSet OPTIONAL,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DCH-ModifySpecificItem-TDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-ModifySpecificItem-TDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw ::= SEQUENCE ( SIZE(1..maxNrOfSF) ) OF
+ SEQUENCE {
+ dl-Cost-1 INTEGER (0..65535),
+ dl-Cost-2 INTEGER (0..65535),
+ ul-Cost-1 INTEGER (0..65535),
+ ul-Cost-2 INTEGER (0..65535),
+ iE-Extensions ProtocolExtensionContainer { { DedicatedChannelsCapacityConsumptionLaw-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DedicatedChannelsCapacityConsumptionLaw-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementType ::= ENUMERATED {
+ sir,
+ sir-error,
+ transmitted-code-power,
+ rscp,
+ rx-timing-deviation,
+ round-trip-time,
+ ...,
+ rx-timing-deviation-LCR,
+ angle-Of-Arrival-LCR,
+ hs-sich-quality,
+ best-Cell-Portions
+
+}
+
+DedicatedMeasurementValue ::= CHOICE {
+ sIR-Value SIR-Value,
+ sIR-ErrorValue SIR-Error-Value,
+ transmittedCodePowerValue Transmitted-Code-Power-Value,
+ rSCP RSCP-Value,
+ rxTimingDeviationValue Rx-Timing-Deviation-Value,
+ roundTripTime Round-Trip-Time-Value,
+ ...,
+ extension-DedicatedMeasurementValue Extension-DedicatedMeasurementValue
+}
+
+Extension-DedicatedMeasurementValue ::= ProtocolIE-Single-Container {{ Extension-DedicatedMeasurementValueIE }}
+
+Extension-DedicatedMeasurementValueIE NBAP-PROTOCOL-IES ::= {
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory }|
+ { ID id-Angle-Of-Arrival-Value-LCR CRITICALITY reject TYPE Angle-Of-Arrival-Value-LCR PRESENCE mandatory }|
+ { ID id-HS-SICH-Reception-Quality CRITICALITY reject TYPE HS-SICH-Reception-Quality-Value PRESENCE mandatory }|
+ { ID id-Best-Cell-Portions-Value CRITICALITY reject TYPE Best-Cell-Portions-Value PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementValueInformation ::= CHOICE {
+ measurementAvailable DedicatedMeasurementAvailable,
+ measurementnotAvailable DedicatedMeasurementnotAvailable
+}
+
+DedicatedMeasurementAvailable::= SEQUENCE {
+ dedicatedmeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { DedicatedMeasurementAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementnotAvailable ::= NULL
+
+DelayedActivation ::= CHOICE {
+ cfn CFN,
+ separate-indication NULL
+}
+
+DelayedActivationUpdate ::= CHOICE {
+ activate Activate-Info,
+ deactivate Deactivate-Info
+}
+
+Activate-Info ::= SEQUENCE {
+ activation-type Execution-Type,
+ initial-dl-tx-power DL-Power,
+ firstRLS-Indicator FirstRLS-Indicator OPTIONAL, --FDD Only
+ propagation-delay PropagationDelay OPTIONAL, --FDD Only
+ iE-Extensions ProtocolExtensionContainer { { Activate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Activate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Deactivate-Info ::= SEQUENCE {
+ deactivation-type Execution-Type,
+ iE-Extensions ProtocolExtensionContainer { { Deactivate-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Deactivate-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Execution-Type ::= CHOICE {
+ synchronised CFN,
+ unsynchronised NULL
+}
+
+Detected-PCPCH-access-preambles ::= INTEGER (0..240,...)
+-- According to mapping in [22].
+
+DeltaSIR ::= INTEGER (0..30)
+-- Unit dB, Step 0.1 dB, Range 0..3 dB.
+
+DGPSCorrections ::= SEQUENCE {
+ gpstow GPSTOW,
+ status-health GPS-Status-Health,
+ satelliteinfo SAT-Info-DGPSCorrections,
+ ie-Extensions ProtocolExtensionContainer { { DGPSCorrections-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSCorrections-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DGPSThresholds ::= SEQUENCE {
+ prcdeviation PRCDeviation,
+ ie-Extensions ProtocolExtensionContainer { { DGPSThresholds-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DGPSThresholds-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiscardTimer ::= ENUMERATED {v20,v40,v60,v80,v100,v120,v140,v160,v180,v200,v250,v300,v400,v500,v750,v1000,v1250,v1500,v1750,v2000,v2500,v3000,v3500,v4000,v4500,v5000,v7500,
+ ...
+}
+
+DiversityControlField ::= ENUMERATED {
+ may,
+ must,
+ must-not,
+ ...
+}
+
+DiversityMode ::= ENUMERATED {
+ none,
+ sTTD,
+ closed-loop-mode1,
+ closed-loop-mode2,
+ ...
+}
+
+DL-DPCH-SlotFormat ::= INTEGER (0..16,...)
+
+DL-DPCH-TimingAdjustment ::= ENUMERATED {
+ timing-advance,
+ timing-delay
+}
+
+DL-Timeslot-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationItem
+
+DL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-Information TDD-DL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-TimeslotLCR-InformationItem
+
+DL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-LCR-Information TDD-DL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Initial-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Maximum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-TimeslotLCR-InformationItem CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+DL-FrameType ::= ENUMERATED {
+ typeA,
+ typeB,
+ ...
+}
+
+DL-or-Global-CapacityCredit ::= INTEGER (0..65535)
+
+DL-Power ::= INTEGER (-350..150)
+-- Value = DL-Power/10
+-- Unit dB, Range -35dB .. +15dB, Step +0.1dB
+
+DLPowerAveragingWindowSize ::= INTEGER (1..60)
+
+DL-PowerBalancing-Information ::= SEQUENCE {
+ powerAdjustmentType PowerAdjustmentType,
+ dLReferencePower DL-Power OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common'
+ dLReferencePowerList-DL-PC-Rqst DL-ReferencePowerInformationList OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Individual'
+ maxAdjustmentStep MaxAdjustmentStep OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentPeriod AdjustmentPeriod OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ adjustmentRatio ScaledAdjustmentRatio OPTIONAL,
+ -- This IE shall be present if Power Adjustment Type IE equals to 'Common' or 'Individual'
+ iE-Extensions ProtocolExtensionContainer { { DL-PowerBalancing-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-PowerBalancing-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF DL-ReferencePowerInformationItem
+
+DL-ReferencePowerInformationItem ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-Reference-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { {DL-ReferencePowerInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PowerBalancing-ActivationIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Activated
+}
+
+DL-PowerBalancing-UpdatedIndicator ::= ENUMERATED {
+ dL-PowerBalancing-Updated
+}
+
+DL-ScramblingCode ::= INTEGER (0..15)
+-- 0= Primary scrambling code of the cell, 1..15= Secondary scrambling code --
+
+DL-TimeslotISCP ::= INTEGER (0..91)
+
+DL-TimeslotISCPInfo ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-TimeslotISCPInfoItem
+
+DL-TimeslotISCPInfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TimeslotISCPInfoLCR ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-TimeslotISCPInfoItemLCR
+
+DL-TimeslotISCPInfoItemLCR ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ dL-TimeslotISCP DL-TimeslotISCP,
+ iE-Extensions ProtocolExtensionContainer { {DL-TimeslotISCPInfoItemLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-TimeslotISCPInfoItemLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-TPC-Pattern01Count ::= INTEGER (0..30,...)
+
+Downlink-Compressed-Mode-Method ::= ENUMERATED {
+ puncturing,
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+DPC-Mode ::= ENUMERATED {
+ mode0,
+ mode1,
+ ...
+}
+
+DPCH-ID ::= INTEGER (0..239)
+
+DSCH-ID ::= INTEGER (0..255)
+
+DSCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-InformationResponseItem
+
+DSCH-InformationResponseItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-InformationResponseItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DSCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Common-Information ::= SEQUENCE {
+ enhancedDSCHPCIndicator EnhancedDSCHPCIndicator OPTIONAL,
+ enhancedDSCHPC EnhancedDSCHPC OPTIONAL,
+ -- The IE shall be present if the Enhanced DSCH PC Indicator IE is set to "Enhanced DSCH PC Active in the UE".
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-Common-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-Common-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-FDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-FDD-InformationItem
+
+DSCH-FDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-FDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-FDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-TDD-Information ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-TDD-InformationItem
+
+DSCH-TDD-InformationItem ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID,
+ transportFormatSet TransportFormatSet,
+ allocationRetentionPriority AllocationRetentionPriority,
+ frameHandlingPriority FrameHandlingPriority,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-TDD-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-TDD-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DsField ::= BIT STRING (SIZE (8))
+
+DwPCH-Power ::= INTEGER (-150..400,...)
+-- DwPCH-power = power * 10
+-- If power <= -15 DwPCH shall be set to -150
+-- If power >= 40 DwPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+
+-- ==========================================
+-- E
+-- ==========================================
+
+End-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ end-of-audit-sequence,
+ not-end-of-audit-sequence
+}
+
+EnhancedDSCHPC ::= SEQUENCE {
+ enhancedDSCHPCWnd EnhancedDSCHPCWnd,
+ enhancedDSCHPCCounter EnhancedDSCHPCCounter,
+ enhancedDSCHPowerOffset EnhancedDSCHPowerOffset,
+ ...
+}
+
+EnhancedDSCHPCCounter ::= INTEGER (1..50)
+
+EnhancedDSCHPCIndicator ::= ENUMERATED {
+ enhancedDSCHPCActiveInTheUE,
+ enhancedDSCHPCNotActiveInTheUE
+}
+
+EnhancedDSCHPCWnd ::= INTEGER (1..10)
+
+EnhancedDSCHPowerOffset ::= INTEGER (-15..0)
+
+-- ==========================================
+-- F
+-- ==========================================
+
+FDD-DL-ChannelisationCodeNumber ::= INTEGER(0.. 511)
+-- According to the mapping in [9]. The maximum value is equal to the DL spreading factor -1--
+
+FDD-DL-CodeInformation ::= SEQUENCE (SIZE (1..maxNrOfCodes)) OF FDD-DL-CodeInformationItem
+
+FDD-DL-CodeInformationItem ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ transmissionGapPatternSequenceCodeInformation TransmissionGapPatternSequenceCodeInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FDD-DL-CodeInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-DL-CodeInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-S-CCPCH-Offset ::= INTEGER (0..149)
+-- 0: 0 chip, 1: 256 chip, 2: 512 chip, .. ,149: 38144 chip [7] --
+
+FDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size0-5,
+ step-size1,
+ step-size1-5,
+ step-size2,
+ ...
+}
+
+FirstRLS-Indicator ::= ENUMERATED {
+ first-RLS,
+ not-first-RLS,
+ ...
+}
+
+FNReportingIndicator ::= ENUMERATED {
+ fN-reporting-required,
+ fN-reporting-not-required
+}
+
+FrameHandlingPriority ::= INTEGER (0..15)
+-- 0=lowest priority, 15=highest priority --
+
+FrameAdjustmentValue ::= INTEGER(0..4095)
+
+FrameOffset ::= INTEGER (0..255)
+
+FPACH-Power ::= INTEGER (-150..400,...) -- FPACH-power = power * 10
+-- If power <= -15 FPACH shall be set to -150
+-- If power >= 40 FPACH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+-- ==========================================
+-- G
+-- ==========================================
+
+GapLength ::= INTEGER (1..14)
+-- Unit slot
+
+GapDuration ::= INTEGER (1..144,...)
+-- Unit frame
+
+GenericTrafficCategory ::= BIT STRING (SIZE (8))
+
+GPS-Almanac ::= SEQUENCE {
+ wna-alm BIT STRING (SIZE (8)),
+ sat-info-almanac SAT-Info-Almanac,
+ sVGlobalHealth-alm BIT STRING (SIZE (364)) OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { GPS-Almanac-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Almanac-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SAT-Info-Almanac-ExtItem CRITICALITY ignore EXTENSION SAT-Info-Almanac-ExtList PRESENCE optional},
+ ...
+}
+
+GPS-Ionospheric-Model ::= SEQUENCE {
+ alpha-zero-ionos BIT STRING (SIZE (8)),
+ alpha-one-ionos BIT STRING (SIZE (8)),
+ alpha-two-ionos BIT STRING (SIZE (8)),
+ alpha-three-ionos BIT STRING (SIZE (8)),
+ beta-zero-ionos BIT STRING (SIZE (8)),
+ beta-one-ionos BIT STRING (SIZE (8)),
+ beta-two-ionos BIT STRING (SIZE (8)),
+ beta-three-ionos BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-Ionospheric-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-Ionospheric-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Information ::= SEQUENCE (SIZE (0..maxNoGPSItems)) OF GPS-Information-Item
+-- This IE shall be present if the Information Type Item IE indicates 'GPS Information'
+
+GPS-Information-Item ::= ENUMERATED {
+ gps-navigation-model-and-time-recovery,
+ gps-ionospheric-model,
+ gps-utc-model,
+ gps-almanac,
+ gps-rt-integrity,
+ ...
+}
+
+GPS-RealTime-Integrity ::= CHOICE {
+ bad-satellites GPSBadSat-Info-RealTime-Integrity,
+ no-bad-satellites NULL
+}
+
+GPSBadSat-Info-RealTime-Integrity ::= SEQUENCE {
+ sat-info SATInfo-RealTime-Integrity,
+ ie-Extensions ProtocolExtensionContainer { { GPSBadSat-Info-RealTime-Integrity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPSBadSat-Info-RealTime-Integrity-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-NavigationModel-and-TimeRecovery ::= SEQUENCE (SIZE (1..maxNoSat)) OF GPS-NavandRecovery-Item
+
+GPS-NavandRecovery-Item ::= SEQUENCE {
+ tx-tow-nav INTEGER (0..1048575),
+ sat-id-nav SAT-ID,
+ tlm-message-nav BIT STRING (SIZE (14)),
+ tlm-revd-c-nav BIT STRING (SIZE (2)),
+ ho-word-nav BIT STRING (SIZE (22)),
+ w-n-nav BIT STRING (SIZE (10)),
+ ca-or-p-on-l2-nav BIT STRING (SIZE (2)),
+ user-range-accuracy-index-nav BIT STRING (SIZE (4)),
+ sv-health-nav BIT STRING (SIZE (6)),
+ iodc-nav BIT STRING (SIZE (10)),
+ l2-p-dataflag-nav BIT STRING (SIZE (1)),
+ sf1-reserved-nav BIT STRING (SIZE (87)),
+ t-gd-nav BIT STRING (SIZE (8)),
+ t-oc-nav BIT STRING (SIZE (16)),
+ a-f-2-nav BIT STRING (SIZE (8)),
+ a-f-1-nav BIT STRING (SIZE (16)),
+ a-f-zero-nav BIT STRING (SIZE (22)),
+ c-rs-nav BIT STRING (SIZE (16)),
+ delta-n-nav BIT STRING (SIZE (16)),
+ m-zero-nav BIT STRING (SIZE (32)),
+ c-uc-nav BIT STRING (SIZE (16)),
+ gps-e-nav BIT STRING (SIZE (32)),
+ c-us-nav BIT STRING (SIZE (16)),
+ a-sqrt-nav BIT STRING (SIZE (32)),
+ t-oe-nav BIT STRING (SIZE (16)),
+ fit-interval-flag-nav BIT STRING (SIZE (1)),
+ aodo-nav BIT STRING (SIZE (5)),
+ c-ic-nav BIT STRING (SIZE (16)),
+ omega-zero-nav BIT STRING (SIZE (32)),
+ c-is-nav BIT STRING (SIZE (16)),
+ i-zero-nav BIT STRING (SIZE (32)),
+ c-rc-nav BIT STRING (SIZE (16)),
+ gps-omega-nav BIT STRING (SIZE (32)),
+ omegadot-nav BIT STRING (SIZE (24)),
+ idot-nav BIT STRING (SIZE (14)),
+ spare-zero-fill BIT STRING (SIZE (20)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-NavandRecovery-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-NavandRecovery-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GPS-RX-POS ::= SEQUENCE {
+ latitudeSign ENUMERATED {north, south},
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ directionOfAltitude ENUMERATED {height, depth},
+ altitude INTEGER (0..32767),
+ iE-Extensions ProtocolExtensionContainer { { GPS-RX-POS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-RX-POS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GPS-Status-Health ::= ENUMERATED {
+ udre-scale-1dot0,
+ udre-scale-0dot75,
+ udre-scale-0dot5,
+ udre-scale-0dot3,
+ udre-scale-0dot1,
+ no-data,
+ invalid-data
+}
+
+GPSTOW ::= INTEGER (0..604799)
+
+GPS-UTC-Model ::= SEQUENCE {
+ a-one-utc BIT STRING (SIZE (24)),
+ a-zero-utc BIT STRING (SIZE (32)),
+ t-ot-utc BIT STRING (SIZE (8)),
+ delta-t-ls-utc BIT STRING (SIZE (8)),
+ w-n-t-utc BIT STRING (SIZE (8)),
+ w-n-lsf-utc BIT STRING (SIZE (8)),
+ dn-utc BIT STRING (SIZE (8)),
+ delta-t-lsf-utc BIT STRING (SIZE (8)),
+ ie-Extensions ProtocolExtensionContainer { { GPS-UTC-Model-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GPS-UTC-Model-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- H
+-- ==========================================
+
+
+HARQ-MemoryPartitioning ::= CHOICE {
+ implicit HARQ-MemoryPartitioning-Implicit,
+ explicit HARQ-MemoryPartitioning-Explicit,
+ ...
+ }
+
+HARQ-MemoryPartitioning-Implicit ::= SEQUENCE {
+ number-of-Processes INTEGER (1..8,...),
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Implicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Implicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit ::= SEQUENCE {
+ hARQ-MemoryPartitioningList HARQ-MemoryPartitioningList,
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioning-Explicit-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioning-Explicit-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HARQ-MemoryPartitioningList ::= SEQUENCE (SIZE (1..maxNrOfHARQProcesses)) OF HARQ-MemoryPartitioningItem
+
+HARQ-MemoryPartitioningItem ::= SEQUENCE {
+ process-Memory-Size ENUMERATED {
+ hms800, hms1600, hms2400, hms3200, hms4000,
+ hms4800, hms5600, hms6400, hms7200, hms8000,
+ hms8800, hms9600, hms10400, hms11200, hms12000,
+ hms12800, hms13600, hms14400, hms15200, hms16000,
+ hms17600, hms19200, hms20800, hms22400, hms24000,
+ hms25600, hms27200, hms28800, hms30400, hms32000,
+ hms36000, hms40000, hms44000, hms48000, hms52000,
+ hms56000, hms60000, hms64000, hms68000, hms72000,
+ hms76000, hms80000, hms88000, hms96000, hms104000,
+ hms112000, hms120000, hms128000, hms136000, hms144000,
+ hms152000, hms160000, hms176000, hms192000, hms208000,
+ hms224000, hms240000, hms256000, hms272000, hms288000,
+ hms304000,...},
+ iE-Extensions ProtocolExtensionContainer { { HARQ-MemoryPartitioningItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HARQ-MemoryPartitioningItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDPA-Capability ::= ENUMERATED {hsdpa-capable, hsdpa-non-capable}
+
+HS-DSCHProvidedBitRate ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHProvidedBitRate-Item
+
+HS-DSCHProvidedBitRate-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHProvidedBitRateValue HS-DSCHProvidedBitRateValue,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHProvidedBitRate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHProvidedBitRate-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHProvidedBitRateValue ::= INTEGER(0..16777215,...)
+-- Unit bit/s, Range 0..2^24-1, Step 1 bit
+
+
+HS-DSCHRequiredPower ::= SEQUENCE (SIZE (1..maxNrOfPriorityClasses)) OF HS-DSCHRequiredPower-Item
+
+HS-DSCHRequiredPower-Item ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ hS-DSCHRequiredPowerValue HS-DSCHRequiredPowerValue,
+ hS-DSCHRequiredPowerPerUEInformation HS-DSCHRequiredPowerPerUEInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPower-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPower-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerValue ::= INTEGER(0..1000)
+-- Unit %, Range 0 ..1000, Step 0.1%
+
+HS-DSCHRequiredPowerPerUEInformation ::= SEQUENCE (SIZE (1.. maxNrOfContextsOnUeList)) OF HS-DSCHRequiredPowerPerUEInformation-Item
+
+
+HS-DSCHRequiredPowerPerUEInformation-Item ::= SEQUENCE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ hS-DSCHRequiredPowerPerUEWeight HS-DSCHRequiredPowerPerUEWeight OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEInformation-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-DSCHRequiredPowerPerUEWeight ::= INTEGER(0..100)
+-- Unit %, Range 0 ..100, Step 1%
+
+
+HSDSCH-FDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ cqiFeedback-CycleK CQI-Feedback-Cycle,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ -- This IE shall be present if the CQI Feedback Cycle k is greater than 0
+ ackNackRepetitionFactor AckNack-RepetitionFactor,
+ cqiPowerOffset CQI-Power-Offset,
+ ackPowerOffset Ack-Power-Offset,
+ nackPowerOffset Nack-Power-Offset,
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL,
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information ::= SEQUENCE {
+ hSDSCH-MACdFlows-Information HSDSCH-MACdFlows-Information,
+ ueCapability-Info UE-Capability-Information,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM,
+ tDD-AckNack-Power-Offset TDD-AckNack-Power-Offset,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+HSDSCH-Information-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModify PriorityQueue-InfoList-to-Modify OPTIONAL,
+ mAChs-Reordering-Buffer-Size-for-RLC-UM MAChsReorderingBufferSize-for-RLC-UM OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL, -- For FDD only
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL, -- For FDD only
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL, -- For FDD only
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ measurement-Power-Offset Measurement-Power-Offset OPTIONAL, -- For FDD only
+ hSSCCHCodeChangeGrant HSSCCH-Code-Change-Grant OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem-to-Modify
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-Info-to-Modify HSDSCH-MACdFlow-Specific-InfoList-to-Modify OPTIONAL,
+ priorityQueueInfotoModifyUnsynchronised PriorityQueue-InfoList-to-Modify-Unsynchronised OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL, -- For FDD only
+ ackPowerOffset Ack-Power-Offset OPTIONAL, -- For FDD only
+ nackPowerOffset Nack-Power-Offset OPTIONAL, -- For FDD only
+ hsscch-PowerOffset HSSCCH-PowerOffset OPTIONAL, -- For FDD only
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL, -- For TDD only
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-Information-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-FDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseFDD HSSCCH-Specific-InformationRespListFDD OPTIONAL,
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Information-Response ::= SEQUENCE {
+ hsDSCH-MACdFlow-Specific-InformationResp HSDSCH-MACdFlow-Specific-InformationResp OPTIONAL,
+ hsSCCH-Specific-Information-ResponseTDD HSSCCH-Specific-InformationRespListTDD OPTIONAL, -- Not Applicable to 1.28Mcps TDD
+ hsSCCH-Specific-Information-ResponseTDDLCR HSSCCH-Specific-InformationRespListTDDLCR OPTIONAL, -- Not Applicable to 3.84Mcps TDD
+ hARQ-MemoryPartitioning HARQ-MemoryPartitioning OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Information-Response-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationResp ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InformationResp-Item
+
+HSDSCH-MACdFlow-Specific-InformationResp-Item ::= SEQUENCE {
+ hsDSCHMacdFlow-Id HSDSCH-MACdFlow-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ hSDSCH-Initial-Capacity-Allocation HSDSCH-Initial-Capacity-Allocation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InformationRespItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-Information ::= SEQUENCE {
+ hSDSCH-MACdFlow-Specific-Info HSDSCH-MACdFlow-Specific-InfoList,
+ priorityQueue-Info PriorityQueue-InfoList,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoList ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlow-Specific-InfoItem
+
+HSDSCH-MACdFlow-Specific-InfoItem ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ allocationRetentionPriority AllocationRetentionPriority,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlow-Specific-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-MACdFlows-to-Delete-Item
+
+HSDSCH-MACdFlows-to-Delete-Item ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-MACdFlows-to-Delete-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-MACdFlows-to-Delete-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-PowerOffset ::= INTEGER (0..255)
+-- PowerOffset = -32 + offset * 0.25
+-- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB
+
+HSDSCH-Initial-Capacity-Allocation::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF HSDSCH-Initial-Capacity-AllocationItem
+
+HSDSCH-Initial-Capacity-AllocationItem ::= SEQUENCE {
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ maximum-MACdPDU-Size MACdPDU-Size,
+ hSDSCH-InitialWindowSize HSDSCH-InitialWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-Initial-Capacity-AllocationItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-Initial-Capacity-AllocationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-InitialWindowSize ::= INTEGER (1..255)
+-- Number of MAC-d PDUs.
+
+HSSCCH-Specific-InformationRespListFDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Codes
+
+HSSCCH-Codes ::= SEQUENCE {
+ codeNumber INTEGER (0..127),
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemFDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDD ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDD
+
+HSSCCH-Specific-InformationRespItemTDD ::= SEQUENCE {
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-Info HSSICH-Info,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSCCH-Specific-InformationRespListTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHCodes)) OF HSSCCH-Specific-InformationRespItemTDDLCR
+
+HSSCCH-Specific-InformationRespItemTDDLCR ::= SEQUENCE {
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hSSICH-InfoLCR HSSICH-InfoLCR,
+ iE-Extensions ProtocolExtensionContainer { { HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSCCH-Specific-InformationRespItemTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-Info ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSSICH-InfoLCR ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HSSICH-Info-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSSICH-Info-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Reception-Quality-Value ::= SEQUENCE {
+ failed-HS-SICH HS-SICH-failed,
+ missed-HS-SICH HS-SICH-missed,
+ total-HS-SICH HS-SICH-total,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Reception-Quality-Value-ExtIEs} } OPTIONAL,
+...
+}
+
+HS-SICH-Reception-Quality-Value-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-failed ::= INTEGER (0..20)
+
+HS-SICH-missed ::= INTEGER (0..20)
+
+HS-SICH-total ::= INTEGER (0..20)
+
+HS-SICH-Reception-Quality-Measurement-Value ::= INTEGER (0..20)
+-- According to mapping in [23]
+
+HSDSCH-MACdFlow-ID ::= INTEGER (0..maxNrOfMACdFlows-1)
+
+HSDSCH-RNTI ::= INTEGER (0..65535)
+
+HS-PDSCH-FDD-Code-Information ::= SEQUENCE {
+ number-of-HS-PDSCH-codes INTEGER (0..maxHS-PDSCHCodeNrComp-1),
+ hS-PDSCH-Start-code-number HS-PDSCH-Start-code-number OPTIONAL,
+-- Only included when number of HS-DSCH codes > 0
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-FDD-Code-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-PDSCH-FDD-Code-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-Start-code-number ::= INTEGER (1..maxHS-PDSCHCodeNrComp-1)
+
+HS-SCCH-ID ::= INTEGER (0..31)
+HS-SICH-ID ::= INTEGER (0..31)
+
+HS-SCCH-FDD-Code-Information::= CHOICE {
+ replace HS-SCCH-FDD-Code-List,
+ remove NULL,
+ ...
+}
+
+HS-SCCH-FDD-Code-List ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-FDD-Code-Information-Item
+
+HS-SCCH-FDD-Code-Information-Item ::= INTEGER (0..maxHS-SCCHCodeNrComp-1)
+
+HSSCCH-CodeChangeIndicator ::= ENUMERATED {
+ hsSCCHCodeChangeNeeded
+}
+
+HSSCCH-Code-Change-Grant ::= ENUMERATED {
+ changeGranted
+}
+
+HSDSCH-FDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ cqiFeedback-CycleK CQI-Feedback-Cycle OPTIONAL,
+ cqiRepetitionFactor CQI-RepetitionFactor OPTIONAL,
+ ackNackRepetitionFactor AckNack-RepetitionFactor OPTIONAL,
+ cqiPowerOffset CQI-Power-Offset OPTIONAL,
+ ackPowerOffset Ack-Power-Offset OPTIONAL,
+ nackPowerOffset Nack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-FDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-FDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-TDD-Update-Information ::= SEQUENCE {
+ hsSCCHCodeChangeIndicator HSSCCH-CodeChangeIndicator OPTIONAL,
+ tDDAckNackPowerOffset TDD-AckNack-Power-Offset OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-TDD-Update-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+HSDSCH-TDD-Update-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- I
+-- ==========================================
+
+IB-OC-ID ::= INTEGER (1..16)
+
+IB-SG-DATA ::= BIT STRING
+-- Contains SIB data fixed" or "SIB data variable" in segment as encoded in ref.[18].
+
+IB-SG-POS ::= INTEGER (0..4094)
+-- Only even positions allowed
+
+IB-SG-REP ::= ENUMERATED {rep4, rep8, rep16, rep32, rep64, rep128, rep256, rep512, rep1024, rep2048, rep4096}
+
+IB-Type ::= ENUMERATED {
+ mIB,
+ sB1,
+ sB2,
+ sIB1,
+ sIB2,
+ sIB3,
+ sIB4,
+ sIB5,
+ sIB6,
+ sIB7,
+ sIB8,
+ sIB9,
+ sIB10,
+ sIB11,
+ sIB12,
+ sIB13,
+ sIB13dot1,
+ sIB13dot2,
+ sIB13dot3,
+ sIB13dot4,
+ sIB14,
+ sIB15,
+ sIB15dot1,
+ sIB15dot2,
+ sIB15dot3,
+ sIB16,
+ ...,
+ sIB17,
+ sIB15dot4,
+ sIB18,
+ sIB15dot5
+}
+
+InformationReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic InformationReportCharacteristicsType-ReportPeriodicity,
+ onModification InformationReportCharacteristicsType-OnModification,
+ ...
+}
+
+InformationReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ min ReportPeriodicity-Scaledmin,
+ hours ReportPeriodicity-Scaledhour,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification ::= SEQUENCE {
+ information-thresholds InformationThresholds OPTIONAL,
+ ie-Extensions ProtocolExtensionContainer { { InformationReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationThresholds ::= CHOICE {
+ dgps DGPSThresholds,
+ ...
+}
+
+InformationExchangeID ::= INTEGER (0..1048575)
+
+InformationType ::= SEQUENCE {
+ information-Type-Item Information-Type-Item,
+ gPSInformation GPS-Information OPTIONAL,
+ -- The IE shall be present if the Information Type Item IE indicates "GPS Information".
+ iE-Extensions ProtocolExtensionContainer { { Information-Type-ExtIEs} } OPTIONAL,
+...
+}
+
+Information-Type-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Information-Type-Item ::= ENUMERATED {
+ gpsinformation,
+ dgpscorrections,
+ gpsrxpos,
+ ...
+}
+
+InnerLoopDLPCStatus ::= ENUMERATED {
+ active,
+ inactive
+}
+
+IPDL-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+
+IPDL-FDD-Parameters ::= SEQUENCE {
+ iP-SpacingFDD ENUMERATED{sp5,sp7,sp10,sp15,sp20,sp30,sp40,sp50,...},
+ iP-Length ENUMERATED{len5, len10},
+ seed INTEGER(0..63),
+ burstModeParams BurstModeParams OPTIONAL,
+ iP-Offset INTEGER(0..9),
+ iE-Extensions ProtocolExtensionContainer { { IPDLFDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLFDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDL-TDD-Parameters ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Slot INTEGER(0..14),
+ iP-PCCPCH ENUMERATED{switchOff-1-Frame,switchOff-2-Frames},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameter-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDL-TDD-Parameters-LCR ::= SEQUENCE {
+ iP-SpacingTDD ENUMERATED{sp30,sp40,sp50,sp70,sp100,...},
+ iP-Start INTEGER(0..4095),
+ iP-Sub ENUMERATED{first,second,both},
+ burstModeParams BurstModeParams OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IPDLTDDParameterLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstModeParams ::= SEQUENCE {
+ burstStart INTEGER(0..15),
+ burstLength INTEGER(10..25),
+ burstFreq INTEGER(1..16),
+ ...
+}
+
+IPDLTDDParameter-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLTDDParameterLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- ==========================================
+-- J
+-- ==========================================
+
+-- ==========================================
+-- K
+-- ==========================================
+
+-- ==========================================
+-- L
+-- ==========================================
+
+LimitedPowerIncrease ::= ENUMERATED {
+ used,
+ not-used
+}
+
+Local-Cell-ID ::= INTEGER (0..268435455)
+
+-- ==========================================
+-- M
+-- ==========================================
+
+MACdPDU-Size ::= INTEGER (1..5000,...)
+
+MACdPDU-Size-Indexlist ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem
+
+MACdPDU-Size-IndexItem ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MACdPDU-Size-Indexlist-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfMACdPDUIndexes)) OF MACdPDU-Size-IndexItem-to-Modify
+
+MACdPDU-Size-IndexItem-to-Modify ::= SEQUENCE {
+ sID SID,
+ macdPDU-Size MACdPDU-Size,
+ iE-Extensions ProtocolExtensionContainer { { MACdPDU-Size-IndexItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MACdPDU-Size-IndexItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MAChsGuaranteedBitRate ::= INTEGER (0..16777215,...)
+
+MAChsReorderingBufferSize-for-RLC-UM ::= INTEGER (0..300,...)
+-- Unit kBytes
+
+MAC-hsWindowSize ::= ENUMERATED {v4, v6, v8, v12, v16, v24, v32,...}
+
+MaximumDL-PowerCapability ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+Maximum-PDSCH-Power ::= SEQUENCE {
+ maximum-PDSCH-Power-SF4 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF8 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF16 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF32 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF64 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF128 DL-Power OPTIONAL,
+ maximum-PDSCH-Power-SF256 DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Maximum-PDSCH-Power-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Maximum-PDSCH-Power-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MaximumTransmissionPower ::= INTEGER(0..500)
+-- Unit dBm, Range 0dBm .. 50dBm, Step +0.1dB
+
+MaxNrOfUL-DPDCHs ::= INTEGER (1..6)
+
+Max-Number-of-PCPCHes ::= INTEGER (1..64,...)
+
+MaxPRACH-MidambleShifts ::= ENUMERATED {
+ shift4,
+ shift8,
+ ...
+}
+
+MeasurementFilterCoefficient ::= ENUMERATED {k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k11, k13, k15, k17, k19,...}
+-- Measurement Filter Coefficient to be used for measurement
+
+MeasurementID ::= INTEGER (0..1048575)
+
+Measurement-Power-Offset ::= INTEGER(-12 .. 26)
+-- Actual value = IE value * 0.5
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MessageStructure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MidambleConfigurationLCR ::= ENUMERATED {v2, v4, v6, v8, v10, v12, v14, v16, ...}
+
+MidambleConfigurationBurstType1And3 ::= ENUMERATED {v4, v8, v16}
+
+MidambleConfigurationBurstType2 ::= ENUMERATED {v3, v6}
+
+MidambleShiftAndBurstType ::= CHOICE {
+ type1 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ type2 SEQUENCE {
+ midambleConfigurationBurstType2 MidambleConfigurationBurstType2,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ commonMidamble NULL,
+ ueSpecificMidamble MidambleShiftShort,
+ ...
+ },
+ ...
+ },
+ type3 SEQUENCE {
+ midambleConfigurationBurstType1And3 MidambleConfigurationBurstType1And3,
+ midambleAllocationMode CHOICE {
+ defaultMidamble NULL,
+ ueSpecificMidamble MidambleShiftLong,
+ ...
+ },
+ ...
+ },
+ ...
+}
+
+MidambleShiftLong ::= INTEGER (0..15)
+
+MidambleShiftShort ::= INTEGER (0..5)
+
+MidambleShiftLCR ::= SEQUENCE {
+ midambleAllocationMode MidambleAllocationMode,
+ midambleShift MidambleShiftLong OPTIONAL,
+ -- The IE shall be present if the Midamble Allocation Mode IE is set to "UE specific midamble".
+midambleConfigurationLCR MidambleConfigurationLCR,
+ iE-Extensions ProtocolExtensionContainer { {MidambleShiftLCR-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+MidambleAllocationMode ::= ENUMERATED {
+ defaultMidamble,
+ commonMidamble,
+ uESpecificMidamble,
+ ...
+ }
+
+MidambleShiftLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MinimumDL-PowerCapability ::= INTEGER(0..800)
+-- Unit dBm, Range -30dBm .. 50dBm, Step +0.1dB
+
+MinSpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ v512
+}
+-- TDD Mapping scheme for the minimum spreading factor 1 and 2: "256" means 1, "512" means 2
+
+ModifyPriorityQueue ::= CHOICE {
+ addPriorityQueue PriorityQueue-InfoItem-to-Add,
+ modifyPriorityQueue PriorityQueue-InfoItem-to-Modify,
+ deletePriorityQueue PriorityQueue-Id,
+ ...
+}
+
+Modulation ::= ENUMERATED {
+ qPSK,
+ eightPSK,
+ ...
+}
+
+MinUL-ChannelisationCodeLength ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+MultiplexingPosition ::= ENUMERATED {
+ fixed,
+ flexible
+}
+
+-- ==========================================
+-- N
+-- ==========================================
+
+Nack-Power-Offset ::= INTEGER (0..8,...)
+-- According to mapping in ref. [9] subclause 4.2.1
+
+NCyclesPerSFNperiod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ ...,
+ v16,
+ v32,
+ v64
+}
+
+NEOT ::= INTEGER (0..8)
+
+NFmax ::= INTEGER (1..64,...)
+
+NRepetitionsPerCyclePeriod ::= INTEGER (2..10)
+
+N-INSYNC-IND ::= INTEGER (1..256)
+
+N-OUTSYNC-IND ::= INTEGER (1..256)
+
+NeighbouringCellMeasurementInformation ::= SEQUENCE (SIZE (1..maxNrOfMeasNCell)) OF
+ CHOICE {
+ neighbouringFDDCellMeasurementInformation NeighbouringFDDCellMeasurementInformation, -- FDD only
+ neighbouringTDDCellMeasurementInformation NeighbouringTDDCellMeasurementInformation,
+ -- Applicable to 3.84Mcps TDD only
+ ...,
+ extension-neighbouringCellMeasurementInformation Extension-neighbouringCellMeasurementInformation
+ }
+
+Extension-neighbouringCellMeasurementInformation ::= ProtocolIE-Single-Container {{ Extension-neighbouringCellMeasurementInformationIE }}
+
+Extension-neighbouringCellMeasurementInformationIE NBAP-PROTOCOL-IES ::= {
+ { ID id-neighbouringTDDCellMeasurementInformationLCR CRITICALITY reject TYPE NeighbouringTDDCellMeasurementInformationLCR PRESENCE mandatory }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ primaryScramblingCode PrimaryScramblingCode,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringFDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringFDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformation ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCR ::= SEQUENCE {
+ uC-Id UC-Id,
+ uARFCN UARFCN,
+ cellParameterID CellParameterID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NeighbouringTDDCellMeasurementInformationLCRItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NodeB-CommunicationContextID ::= INTEGER (0..1048575)
+
+NumberOfReportedCellPortions ::= INTEGER (1..maxNrOfCellPortionsPerCell,...)
+
+NStartMessage ::= INTEGER (1..8)
+
+NSubCyclesPerCyclePeriod ::= INTEGER (1..16,...)
+
+-- ==========================================
+-- O
+-- ==========================================
+
+-- ==========================================
+-- P
+-- ==========================================
+
+PagingIndicatorLength ::= ENUMERATED {
+ v2,
+ v4,
+ v8,
+ ...
+}
+
+PayloadCRC-PresenceIndicator ::= ENUMERATED {
+ cRC-Included,
+ cRC-NotIncluded,
+ ...
+}
+
+PCCPCH-Power ::= INTEGER (-150..400,...)
+-- PCCPCH-power = power * 10
+-- If power <= -15 PCCPCH shall be set to -150
+-- If power >= 40 PCCPCH shall be set to 400
+-- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB
+
+PCP-Length ::= ENUMERATED{
+ v0,
+ v8
+}
+
+PDSCH-CodeMapping ::= SEQUENCE {
+ dl-ScramblingCode DL-ScramblingCode,
+ signallingMethod CHOICE {
+ code-Range PDSCH-CodeMapping-PDSCH-CodeMappingInformationList,
+ tFCI-Range PDSCH-CodeMapping-DSCH-MappingInformationList,
+ explicit PDSCH-CodeMapping-PDSCH-CodeInformationList,
+ ...,
+ replace PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList
+ },
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-CodeNumberComp ::= INTEGER (0..maxCodeNrComp-1)
+
+PDSCH-CodeMapping-SpreadingFactor ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfCodeGroups)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ start-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ stop-CodeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeMappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value PDSCH-CodeMapping-MaxTFCI-Field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-DSCH-MappingInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-MaxTFCI-Field2-Value ::= INTEGER (1..1023)
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-PDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ tfci-Field2 TFCS-MaxTFCI-field2-Value,
+ spreadingFactor PDSCH-CodeMapping-SpreadingFactor,
+ multi-CodeInfo PDSCH-Multi-CodeInfo,
+ codeNumber PDSCH-CodeMapping-CodeNumberComp,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-CodeMapping-ReplacedPDSCH-CodeInformationList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Multi-CodeInfo ::= INTEGER (1..16)
+
+PDSCH-ID ::= INTEGER (0..255)
+
+PDSCHSet-ID ::= INTEGER (0..255)
+
+PICH-Mode ::= ENUMERATED {
+ v18,
+ v36,
+ v72,
+ v144,
+ ...
+}
+
+PICH-Power ::= INTEGER (-10..5)
+-- Unit dB, Range -10dB .. +5dB, Step +1dB
+
+PowerAdjustmentType ::= ENUMERATED {
+ none,
+ common,
+ individual
+}
+
+PowerOffset ::= INTEGER (0..24)
+-- PowerOffset = offset * 0.25
+-- Unit dB, Range 0dB .. +6dB, Step +0.25dB
+
+PowerRaiseLimit ::= INTEGER (0..10)
+
+PRACH-Midamble ::= ENUMERATED {
+ inverted,
+ direct,
+ ...
+}
+
+PRC ::= INTEGER (-2047..2047)
+--pseudo range correction; scaling factor 0.32 meters
+
+PRCDeviation ::= ENUMERATED {
+ one,
+ two,
+ five,
+ ten,
+ ...
+}
+
+PreambleSignatures ::= BIT STRING {
+ signature15(0),
+ signature14(1),
+ signature13(2),
+ signature12(3),
+ signature11(4),
+ signature10(5),
+ signature9(6),
+ signature8(7),
+ signature7(8),
+ signature6(9),
+ signature5(10),
+ signature4(11),
+ signature3(12),
+ signature2(13),
+ signature1(14),
+ signature0(15)
+ } (SIZE (16))
+
+PreambleThreshold ::= INTEGER (0..72)
+-- 0= -36.0dB, 1= -35.5dB, ... , 72= 0.0dB
+
+PredictedSFNSFNDeviationLimit ::=INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+PredictedTUTRANGPSDeviationLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PrimaryCPICH-Power ::= INTEGER(-100..500)
+-- step 0.1 (Range -10.0..50.0) Unit is dBm
+
+Primary-CPICH-Usage-for-Channel-Estimation ::= ENUMERATED {
+primary-CPICH-may-be-used,
+primary-CPICH-shall-not-be-used
+}
+
+PrimaryScramblingCode ::= INTEGER (0..511)
+
+PriorityLevel ::= INTEGER (0..15)
+-- 0 = spare, 1 = highest priority, ...14 = lowest priority and 15 = no priority
+
+PriorityQueue-Id ::= INTEGER (0..maxNrOfPriorityQueues-1)
+
+PriorityQueue-InfoList ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem
+
+PriorityQueue-InfoItem ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF ModifyPriorityQueue
+
+PriorityQueue-InfoItem-to-Add ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ associatedHSDSCH-MACdFlow HSDSCH-MACdFlow-ID,
+ schedulingPriorityIndicator SchedulingPriorityIndicator,
+ t1 T1,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index MACdPDU-Size-Indexlist,
+ rLC-Mode RLC-Mode,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Add-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Add-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ t1 T1 OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAC-hsWindowSize MAC-hsWindowSize OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ macdPDU-Size-Index-to-Modify MACdPDU-Size-Indexlist-to-Modify OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PriorityQueue-InfoList-to-Modify-Unsynchronised ::= SEQUENCE (SIZE (1..maxNrOfPriorityQueues)) OF PriorityQueue-InfoItem-to-Modify-Unsynchronised
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised ::= SEQUENCE {
+ priorityQueueId PriorityQueue-Id,
+ schedulingPriorityIndicator SchedulingPriorityIndicator OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ mAChsGuaranteedBitRate MAChsGuaranteedBitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PriorityQueue-InfoItem-to-Modify-Unsynchronised-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-RSCP ::= INTEGER (0..91)
+-- Mapping of non-negative values according to [23]
+
+PrimaryCCPCH-RSCP-Delta ::= INTEGER (-5..-1,...)
+-- Mapping of negative values according to [23]
+
+PropagationDelay ::= INTEGER (0..255)
+-- Unit: chips, step size 3 chips
+-- example: 0 = 0chip, 1 = 3chips
+
+SCH-TimeSlot ::= INTEGER (0..6)
+
+PunctureLimit ::= INTEGER (0..15)
+-- 0: 40%; 1: 44%; ... 14: 96%; 15: 100%
+
+PUSCH-ID ::= INTEGER (0..255)
+
+PUSCHSet-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- Q
+-- ==========================================
+
+QE-Selector ::= ENUMERATED {
+ selected,
+ non-selected
+}
+
+Qth-Parameter ::= INTEGER (-20..0)
+-- Unit dB, Step 1dB
+
+-- ==========================================
+-- R
+-- ==========================================
+
+RACH-SlotFormat ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ ...
+}
+
+RACH-SubChannelNumbers ::= BIT STRING {
+ subCh11(0),
+ subCh10(1),
+ subCh9(2),
+ subCh8(3),
+ subCh7(4),
+ subCh6(5),
+ subCh5(6),
+ subCh4(7),
+ subCh3(8),
+ subCh2(9),
+ subCh1(10),
+ subCh0(11)
+ } (SIZE (12))
+
+RL-Specific-DCH-Info ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF RL-Specific-DCH-Info-Item
+
+RL-Specific-DCH-Info-Item ::= SEQUENCE {
+ dCH-id DCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportlayeraddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Specific-DCH-Info-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Specific-DCH-Info-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Range-Correction-Rate ::= INTEGER (-127..127)
+-- scaling factor 0.032 m/s
+
+ReferenceClockAvailability ::= ENUMERATED {
+ available,
+ notAvailable
+}
+
+ReferenceSFNoffset ::= INTEGER (0..255)
+
+RepetitionLength ::= INTEGER (1..63)
+
+RepetitionPeriod ::= ENUMERATED {
+ v1,
+ v2,
+ v4,
+ v8,
+ v16,
+ v32,
+ v64,
+ ...
+}
+
+RepetitionNumber0 ::= INTEGER (0..255)
+
+RepetitionNumber1 ::= INTEGER (1..256)
+
+RefTFCNumber ::= INTEGER (0..3)
+
+ReportCharacteristics ::= CHOICE {
+ onDemand NULL,
+ periodic ReportCharacteristicsType-ReportPeriodicity,
+ event-a ReportCharacteristicsType-EventA,
+ event-b ReportCharacteristicsType-EventB,
+ event-c ReportCharacteristicsType-EventC,
+ event-d ReportCharacteristicsType-EventD,
+ event-e ReportCharacteristicsType-EventE,
+ event-f ReportCharacteristicsType-EventF,
+ ...,
+ extension-ReportCharacteristics Extension-ReportCharacteristics
+}
+
+Extension-ReportCharacteristics ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsIE }}
+
+Extension-ReportCharacteristicsIE NBAP-PROTOCOL-IES ::= {
+ { ID id-ReportCharacteristicsType-OnModification CRITICALITY reject TYPE ReportCharacteristicsType-OnModification PRESENCE mandatory }
+}
+
+ReportCharacteristicsType-EventA ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventA-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventA-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventB ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventB-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventB-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventC ::= SEQUENCE {
+ measurementIncreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventC-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventC-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventD ::= SEQUENCE {
+ measurementDecreaseThreshold ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold,
+ measurementChangeTime ReportCharacteristicsType-ScaledMeasurementChangeTime,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventE ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventE-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventE-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-EventF ::= SEQUENCE {
+ measurementThreshold1 ReportCharacteristicsType-MeasurementThreshold,
+ measurementThreshold2 ReportCharacteristicsType-MeasurementThreshold OPTIONAL,
+ measurementHysteresisTime ReportCharacteristicsType-ScaledMeasurementHysteresisTime OPTIONAL,
+ reportPeriodicity ReportCharacteristicsType-ReportPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-EventF-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-EventF-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-OnModification ::= SEQUENCE {
+ measurementThreshold ReportCharacteristicsType-MeasurementThreshold,
+ iE-Extensions ProtocolExtensionContainer { { ReportCharacteristicsType-OnModification-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+ReportCharacteristicsType-OnModification-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value-IncrDecrThres,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value-IncrDecrThres,
+ sir SIR-Value-IncrDecrThres,
+ sir-error SIR-Error-Value-IncrDecrThres,
+ transmitted-code-power Transmitted-Code-Power-Value-IncrDecrThres,
+ rscp RSCP-Value-IncrDecrThres,
+ round-trip-time Round-Trip-Time-IncrDecrThres,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementIncreaseDecreaseThresholdIE NBAP-PROTOCOL-IES ::= {
+{ ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-MeasurementThreshold ::= CHOICE {
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ transmitted-carrier-power Transmitted-Carrier-Power-Value,
+ acknowledged-prach-preambles Acknowledged-PRACH-preambles-Value,
+ uL-TimeslotISCP UL-TimeslotISCP-Value,
+ sir SIR-Value,
+ sir-error SIR-Error-Value,
+ transmitted-code-power Transmitted-Code-Power-Value,
+ rscp RSCP-Value,
+ rx-timing-deviation Rx-Timing-Deviation-Value,
+ round-trip-time Round-Trip-Time-Value,
+ acknowledged-PCPCH-access-preambles Acknowledged-PCPCH-access-preambles,
+ detected-PCPCH-access-preambles Detected-PCPCH-access-preambles,
+ ...,
+ extension-ReportCharacteristicsType-MeasurementThreshold Extension-ReportCharacteristicsType-MeasurementThreshold
+}
+
+Extension-ReportCharacteristicsType-MeasurementThreshold ::= ProtocolIE-Single-Container {{ Extension-ReportCharacteristicsType-MeasurementThresholdIE }}
+
+Extension-ReportCharacteristicsType-MeasurementThresholdIE NBAP-PROTOCOL-IES ::= {
+ { ID id-TUTRANGPSMeasurementThresholdInformation CRITICALITY reject TYPE TUTRANGPSMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-SFNSFNMeasurementThresholdInformation CRITICALITY reject TYPE SFNSFNMeasurementThresholdInformation PRESENCE mandatory }|
+ { ID id-Rx-Timing-Deviation-Value-LCR CRITICALITY reject TYPE Rx-Timing-Deviation-Value-LCR PRESENCE mandatory}|
+ { ID id-HS-SICH-Reception-Quality-Measurement-Value CRITICALITY reject TYPE HS-SICH-Reception-Quality-Measurement-Value PRESENCE mandatory}|
+ { ID id-TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmission CRITICALITY reject TYPE TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue PRESENCE mandatory}|
+ { ID id-HS-DSCHRequiredPowerValue CRITICALITY reject TYPE HS-DSCHRequiredPowerValue PRESENCE mandatory}
+}
+
+ReportCharacteristicsType-ScaledMeasurementChangeTime ::= CHOICE {
+ msec MeasurementChangeTime-Scaledmsec,
+ ...
+}
+
+MeasurementChangeTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementChangeTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ScaledMeasurementHysteresisTime ::= CHOICE {
+ msec MeasurementHysteresisTime-Scaledmsec,
+ ...
+}
+
+MeasurementHysteresisTime-Scaledmsec ::= INTEGER (1..6000,...)
+-- MeasurementHysteresisTime-Scaledmsec = Time * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportCharacteristicsType-ReportPeriodicity ::= CHOICE {
+ msec ReportPeriodicity-Scaledmsec,
+ min ReportPeriodicity-Scaledmin,
+ ...
+}
+
+ReportPeriodicity-Scaledmsec ::= INTEGER (1..6000,...)
+-- ReportPeriodicity-msec = ReportPeriodicity * 10
+-- Unit ms, Range 10ms .. 60000ms(1min), Step 10ms
+
+ReportPeriodicity-Scaledmin ::= INTEGER (1..60,...)
+-- Unit min, Range 1min .. 60min(hour), Step 1min
+
+ReportPeriodicity-Scaledhour ::= INTEGER (1..24,...)
+-- Unit hour, Range 1hour .. 24hours(day), Step 1hour
+
+ResourceOperationalState ::= ENUMERATED {
+ enabled,
+ disabled
+}
+
+RL-ID ::= INTEGER (0..31)
+
+RL-Set-ID ::= INTEGER (0..31)
+
+RLC-Mode ::= ENUMERATED {
+ rLC-AM,
+ rLC-UM,
+ ...
+}
+
+Round-Trip-Time-IncrDecrThres ::= INTEGER(0..32766)
+
+RNC-ID ::= INTEGER (0..4095)
+
+Round-Trip-Time-Value ::= INTEGER(0..32767)
+-- According to mapping in [22]
+
+RSCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+RSCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+Received-total-wide-band-power-Value ::= INTEGER(0..621)
+-- According to mapping in [22]/[23]
+
+Received-total-wide-band-power-Value-IncrDecrThres ::= INTEGER (0..620)
+
+RequestedDataValueInformation ::= CHOICE {
+ informationAvailable InformationAvailable,
+ informationnotAvailable InformationnotAvailable
+}
+
+InformationAvailable::= SEQUENCE {
+ requesteddataValue RequestedDataValue,
+ ie-Extensions ProtocolExtensionContainer { { InformationAvailableItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationAvailableItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationnotAvailable ::= NULL
+
+RequestedDataValue ::= SEQUENCE {
+ dgps-corrections DGPSCorrections OPTIONAL,
+ gps-navandrecovery GPS-NavigationModel-and-TimeRecovery OPTIONAL,
+ gps-ionos-model GPS-Ionospheric-Model OPTIONAL,
+ gps-utc-model GPS-UTC-Model OPTIONAL,
+ gps-almanac GPS-Almanac OPTIONAL,
+ gps-rt-integrity GPS-RealTime-Integrity OPTIONAL,
+ gpsrxpos GPS-RX-POS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RequestedDataValue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RequestedDataValue-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Rx-Timing-Deviation-Value ::= INTEGER (0..8191)
+-- According to mapping in [23]
+
+Rx-Timing-Deviation-Value-LCR ::= INTEGER (0..511)
+-- According to mapping in [23]
+
+-- ==========================================
+-- S
+-- ==========================================
+
+AdjustmentPeriod ::= INTEGER(1..256)
+-- Unit Frame
+
+SAT-ID ::= INTEGER (0..63)
+
+SAT-Info-Almanac ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-Almanac-Item
+
+SAT-Info-Almanac-Item ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-Item-ExtIEs} } OPTIONAL,
+ ...
+} -- This GPS-Almanac-Information is for the 1st 16 satellites
+
+SAT-Info-Almanac-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-Almanac-ExtList ::= SEQUENCE (SIZE (1..maxNrOfSatAlmanac-maxNoSat)) OF SAT-Info-Almanac-ExtItem
+
+SAT-Info-Almanac-ExtItem ::= SEQUENCE {
+ data-id DATA-ID,
+ sat-id SAT-ID,
+ gps-e-alm BIT STRING (SIZE (16)),
+ gps-toa-alm BIT STRING (SIZE (8)),
+ gps-delta-I-alm BIT STRING (SIZE (16)),
+ omegadot-alm BIT STRING (SIZE (16)),
+ svhealth-alm BIT STRING (SIZE (8)),
+ gps-a-sqrt-alm BIT STRING (SIZE (24)),
+ omegazero-alm BIT STRING (SIZE (24)),
+ m-zero-alm BIT STRING (SIZE (24)),
+ gps-omega-alm BIT STRING (SIZE (24)),
+ gps-af-zero-alm BIT STRING (SIZE (11)),
+ gps-af-one-alm BIT STRING (SIZE (11)),
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-Almanac-ExtItemIEs } } OPTIONAL,
+ ...
+} -- Includes the GPS-Almanac-Information for 17th through 32nd satellites.
+
+SAT-Info-Almanac-ExtItemIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAT-Info-DGPSCorrections ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-DGPSCorrections-Item
+
+SAT-Info-DGPSCorrections-Item ::= SEQUENCE {
+ sat-id SAT-ID,
+ iode-dgps BIT STRING (SIZE (8)),
+ udre UDRE,
+ prc PRC,
+ range-correction-rate Range-Correction-Rate,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-DGPSCorrections-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-DGPSCorrections-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SATInfo-RealTime-Integrity ::= SEQUENCE (SIZE (1..maxNoSat)) OF SAT-Info-RealTime-Integrity-Item
+
+SAT-Info-RealTime-Integrity-Item ::= SEQUENCE {
+ bad-sat-id SAT-ID,
+ ie-Extensions ProtocolExtensionContainer { { SAT-Info-RealTime-Integrity-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAT-Info-RealTime-Integrity-Item-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScaledAdjustmentRatio ::= INTEGER(0..100)
+-- AdjustmentRatio = ScaledAdjustmentRatio / 100
+
+MaxAdjustmentStep ::= INTEGER(1..10)
+-- Unit Slot
+
+SchedulingPriorityIndicator ::= INTEGER (0..15) -- lowest (0), highest (15)
+
+SID ::= INTEGER (0..maxNrOfMACdPDUIndexes-1)
+
+ScramblingCodeNumber ::= INTEGER (0..15)
+
+Secondary-CPICH-Information-Change ::= CHOICE {
+ new-secondary-CPICH CommonPhysicalChannelID,
+ secondary-CPICH-shall-not-be-used NULL,
+...
+}
+
+SecondaryCCPCH-SlotFormat ::= INTEGER(0..17,...)
+
+Segment-Type ::= ENUMERATED {
+ first-segment,
+ first-segment-short,
+ subsequent-segment,
+ last-segment,
+ last-segment-short,
+ complete-SIB,
+ complete-SIB-short,
+ ...
+}
+
+S-FieldLength ::= ENUMERATED {
+ v1,
+ v2,
+ ...
+}
+
+SFN ::= INTEGER (0..4095)
+
+SFNSFN-FDD ::= INTEGER (0..614399)
+
+SFNSFN-TDD ::= INTEGER (0..40961)
+
+SFNSFNChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+SFNSFNDriftRate ::= INTEGER (-100..100)
+-- Unit chip/s, Step 1/256 chip/s, Range -100/256..+100/256 chip/s
+
+SFNSFNDriftRateQuality ::= INTEGER (0..100)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..100/256 chip/s
+
+SFNSFNMeasurementThresholdInformation::= SEQUENCE {
+ sFNSFNChangeLimit SFNSFNChangeLimit OPTIONAL,
+ predictedSFNSFNDeviationLimit PredictedSFNSFNDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNMeasurementValueInformation ::= SEQUENCE {
+ successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(1..maxNrOfMeasNCell)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ sFNSFNValue SFNSFNValue,
+ sFNSFNQuality SFNSFNQuality OPTIONAL,
+ sFNSFNDriftRate SFNSFNDriftRate,
+ sFNSFNDriftRateQuality SFNSFNDriftRateQuality OPTIONAL,
+ sFNSFNTimeStampInformation SFNSFNTimeStampInformation,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation SEQUENCE (SIZE(0..maxNrOfMeasNCell-1)) OF
+ SEQUENCE {
+ uC-Id UC-Id,
+ iE-Extensions ProtocolExtensionContainer { { UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UnsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+ShutdownTimer ::= INTEGER (1..3600)
+-- Unit sec
+
+SIB-Originator ::= ENUMERATED {
+ nodeB,
+ cRNC,
+ ...
+}
+
+SIR-Error-Value ::= INTEGER (0..125)
+-- According to mapping in [22]
+
+SFNSFNTimeStampInformation ::= CHOICE {
+ sFNSFNTimeStamp-FDD SFN,
+ sFNSFNTimeStamp-TDD SFNSFNTimeStamp-TDD,
+ ...}
+
+SFNSFNTimeStamp-TDD::= SEQUENCE {
+ sFN SFN,
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { SFNSFNTimeStamp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFNSFNTimeStamp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFNSFNValue ::= CHOICE {
+ sFNSFN-FDD SFNSFN-FDD,
+ sFNSFN-TDD SFNSFN-TDD,
+ ...
+}
+
+SIR-Error-Value-IncrDecrThres ::= INTEGER (0..124)
+
+SIR-Value ::= INTEGER (0..63)
+-- According to mapping in [22]/[23]
+
+SIR-Value-IncrDecrThres ::= INTEGER (0..62)
+
+SignallingBearerRequestIndicator::= ENUMERATED {bearerRequested}
+
+SpecialBurstScheduling ::= INTEGER (1..256) -- Number of frames between special burst transmission during DTX
+
+SSDT-Cell-Identity ::= ENUMERATED {a, b, c, d, e, f, g, h}
+
+SSDT-CellID-Length ::= ENUMERATED {
+ short,
+ medium,
+ long
+}
+
+SSDT-Indication ::= ENUMERATED {
+ ssdt-active-in-the-UE,
+ ssdt-not-active-in-the-UE
+}
+
+Start-Of-Audit-Sequence-Indicator ::= ENUMERATED {
+ start-of-audit-sequence,
+ not-start-of-audit-sequence
+}
+
+STTD-Indicator ::= ENUMERATED {
+ active,
+ inactive,
+ ...
+}
+
+SSDT-SupportIndicator ::= ENUMERATED {
+ sSDT-Supported,
+ sSDT-not-supported
+}
+
+SyncCase ::= INTEGER (1..2,...)
+
+SYNCDlCodeId ::= INTEGER (1..32,...)
+
+SyncFrameNumber ::= INTEGER (1..10)
+
+SynchronisationReportCharacteristics ::= SEQUENCE {
+ synchronisationReportCharacteristicsType SynchronisationReportCharacteristicsType,
+ synchronisationReportCharactThreExc SynchronisationReportCharactThreExc OPTIONAL,
+ -- This IE shall be included if the synchronisationReportCharacteristicsType IE is set to "thresholdExceeding".
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharacteristics-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharacteristics-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SyncDLCodeIdThreInfoLCR CRITICALITY ignore EXTENSION SyncDLCodeIdThreInfoLCR PRESENCE optional },
+ ...
+}
+
+SynchronisationReportCharactThreExc ::= SEQUENCE (SIZE (1..maxNrOfCellSyncBursts)) OF SynchronisationReportCharactThreInfoItem -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+
+SynchronisationReportCharactThreInfoItem ::= SEQUENCE {
+ syncFrameNumber SyncFrameNumber,
+ cellSyncBurstInformation SEQUENCE (SIZE (1.. maxNrOfReceptsPerSyncFrame)) OF SynchronisationReportCharactCellSyncBurstInfoItem,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactThreInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactThreInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem ::= SEQUENCE {
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ cellSyncBurstTiming CellSyncBurstTiming OPTIONAL,
+ cellSyncBurstTimingThreshold CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SynchronisationReportCharactCellSyncBurstInfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdThreInfoLCR ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdThreInfoList --Mandatory for 1.28Mcps TDD only. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdThreInfoList ::= SEQUENCE {
+ syncFrameNoToReceive SyncFrameNumber,
+ syncDLCodeIdInfoLCR SyncDLCodeInfoListLCR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdThreInfoList-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdThreInfoList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeInfoListLCR ::= SEQUENCE (SIZE (1..maxNrOfSyncDLCodesLCR)) OF SyncDLCodeInfoItemLCR
+
+SyncDLCodeInfoItemLCR ::= SEQUENCE {
+ syncDLCodeId SYNCDlCodeId,
+ syncDLCodeIdArrivTime CellSyncBurstTimingLCR OPTIONAL,
+ syncDLCodeIdTimingThre CellSyncBurstTimingThreshold OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeInfoItem-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeInfoItem-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SynchronisationReportCharacteristicsType ::= ENUMERATED {
+ frameRelated,
+ sFNperiodRelated,
+ cycleLengthRelated,
+ thresholdExceeding,
+ frequencyAcquisitionCompleted,
+ ...
+}
+
+SynchronisationReportType ::= ENUMERATED {
+ initialPhase,
+ steadyStatePhase,
+ lateEntrantCell,
+ frequencyAcquisition,
+ ...
+}
+
+-- ==========================================
+-- T
+-- ==========================================
+
+T1 ::= ENUMERATED {v10,v20,v30,v40,v50,v60,v70,v80,v90,v100,v120,v140,v160,v200,v300,v400,...}
+
+T-Cell ::= ENUMERATED {
+ v0,
+ v1,
+ v2,
+ v3,
+ v4,
+ v5,
+ v6,
+ v7,
+ v8,
+ v9
+}
+
+T-RLFAILURE ::= INTEGER (0..255)
+-- Unit seconds, Range 0s .. 25.5s, Step 0.1s
+
+TDD-AckNack-Power-Offset ::= INTEGER (-7..8,...)
+-- Unit dB, Range -7dB .. +8dB, Step 1dB
+
+TDD-ChannelisationCode ::= ENUMERATED {
+ chCode1div1,
+ chCode2div1,
+ chCode2div2,
+ chCode4div1,
+ chCode4div2,
+ chCode4div3,
+ chCode4div4,
+ chCode8div1,
+ chCode8div2,
+ chCode8div3,
+ chCode8div4,
+ chCode8div5,
+ chCode8div6,
+ chCode8div7,
+ chCode8div8,
+ chCode16div1,
+ chCode16div2,
+ chCode16div3,
+ chCode16div4,
+ chCode16div5,
+ chCode16div6,
+ chCode16div7,
+ chCode16div8,
+ chCode16div9,
+ chCode16div10,
+ chCode16div11,
+ chCode16div12,
+ chCode16div13,
+ chCode16div14,
+ chCode16div15,
+ chCode16div16,
+ ...
+}
+
+TDD-ChannelisationCodeLCR ::= SEQUENCE {
+ tDD-ChannelisationCode TDD-ChannelisationCode,
+ modulation Modulation, -- Modulation options for 1.28Mcps TDD in contrast to 3.84Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { { TDD-ChannelisationCodeLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-ChannelisationCodeLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-DL-Code-InformationItem
+
+TDD-DL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-DL-Code-LCR-InformationItem
+
+TDD-DL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-DL-DPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-DL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-DL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-DL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+EightPSK-DL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TDD-DPCHOffset ::= CHOICE {
+ initialOffset INTEGER (0..255),
+ noinitialOffset INTEGER (0..63)
+}
+
+TDD-PhysicalChannelOffset ::= INTEGER (0..63)
+
+TDD-TPC-DownlinkStepSize ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TDD-TPC-UplinkStepSize-LCR ::= ENUMERATED {
+ step-size1,
+ step-size2,
+ step-size3,
+ ...
+}
+
+TransportFormatCombination-Beta ::= CHOICE {
+ signalledGainFactors SEQUENCE {
+ gainFactor CHOICE {
+ fdd SEQUENCE {
+ betaC BetaCD,
+ betaD BetaCD,
+ iE-Extensions ProtocolExtensionContainer { { GainFactorFDD-ExtIEs } } OPTIONAL,
+ ...
+ },
+ tdd BetaCD,
+ ...
+ },
+ refTFCNumber RefTFCNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SignalledGainFactors-ExtIEs } } OPTIONAL,
+ ...
+ },
+ computedGainFactors RefTFCNumber,
+ ...
+}
+
+GainFactorFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SignalledGainFactors-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF TDD-UL-Code-InformationItem
+
+TDD-UL-Code-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-Code-LCR-Information ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF TDD-UL-Code-LCR-InformationItem
+
+TDD-UL-Code-LCR-InformationItem ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ tdd-UL-DPCH-TimeSlotFormat-LCR TDD-UL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { TDD-UL-Code-LCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-UL-Code-LCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-UL-DPCH-TimeSlotFormat-LCR ::= CHOICE {
+ qPSK QPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ eightPSK EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR,
+ ...
+}
+
+QPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..69,...)
+
+EightPSK-UL-DPCH-TimeSlotFormatTDD-LCR ::= INTEGER(0..24,...)
+
+TFCI-Coding ::= ENUMERATED {
+ v4,
+ v8,
+ v16,
+ v32,
+ ...
+}
+
+TFCI-Presence ::= ENUMERATED {
+ present,
+ not-present
+}
+
+TFCI-SignallingMode ::= SEQUENCE {
+ tFCI-SignallingOption TFCI-SignallingMode-TFCI-SignallingOption,
+ splitType TFCI-SignallingMode-SplitType OPTIONAL,
+ -- This IE shall be present if the TFCI signalling option is set to "split" --
+ lengthOfTFCI2 TFCI-SignallingMode-LengthOfTFCI2 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TFCI-SignallingMode-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI-SignallingMode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI-SignallingMode-LengthOfTFCI2 ::= INTEGER (1..10)
+
+TFCI-SignallingMode-SplitType ::= ENUMERATED {
+ hard,
+ logical
+}
+
+TFCI-SignallingMode-TFCI-SignallingOption ::= ENUMERATED {
+ normal,
+ split
+}
+
+TFCI2-BearerInformationResponse ::= SEQUENCE {
+ bindingID BindingID,
+ transportLayerAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-BearerInformationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-BearerInformationResponse-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2BearerRequestIndicator ::= ENUMERATED {newBearerRequested}
+
+TGD ::= INTEGER (0|15..269)
+-- 0 = Undefined, only one transmission gap in the transmission gap pattern sequence
+
+TGPRC ::= INTEGER (0..511)
+-- 0 = infinity
+
+TGPSID ::= INTEGER (1.. maxTGPS)
+
+TGSN ::= INTEGER (0..14)
+
+TimeSlot ::= INTEGER (0..14)
+
+TimeSlotDirection ::= ENUMERATED {
+ ul,
+ dl,
+ ...
+}
+
+TimeSlotLCR ::= INTEGER (0..6)
+
+TimeSlotStatus ::= ENUMERATED {
+ active,
+ not-active,
+ ...
+}
+
+TimingAdjustmentValue ::= CHOICE {
+ initialPhase INTEGER (0..1048575,...),
+ steadyStatePhase INTEGER (0..255,...)
+}
+
+TimingAdjustmentValueLCR ::= CHOICE {
+ initialPhase INTEGER (0..524287,...),
+ steadyStatePhase INTEGER (0..127,...)
+}
+
+TimingAdvanceApplied ::= ENUMERATED {
+ yes,
+ no
+}
+
+TnlQos ::= CHOICE {
+ dsField DsField,
+ genericTrafficCategory GenericTrafficCategory,
+ ...
+}
+
+ToAWE ::= INTEGER (0..2559)
+-- Unit ms
+
+ToAWS ::= INTEGER (0..1279)
+-- Unit ms
+
+Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) OF
+ SEQUENCE {
+ tGPSID TGPSID,
+ tGSN TGSN,
+ tGL1 GapLength,
+ tGL2 GapLength OPTIONAL,
+ tGD TGD,
+ tGPL1 GapDuration,
+ tGPL2 GapDuration OPTIONAL,
+ uL-DL-mode UL-DL-mode,
+ downlink-Compressed-Mode-Method Downlink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "DL only" or "UL/DL"
+ uplink-Compressed-Mode-Method Uplink-Compressed-Mode-Method OPTIONAL,
+ -- This IE shall be present if the UL/DL mode IE is set to "UL only" or "UL/DL"
+ dL-FrameType DL-FrameType,
+ delta-SIR1 DeltaSIR,
+ delta-SIR-after1 DeltaSIR,
+ delta-SIR2 DeltaSIR OPTIONAL,
+ delta-SIR-after2 DeltaSIR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Transmission-Gap-Pattern-Sequence-Information-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+Transmission-Gap-Pattern-Sequence-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionGapPatternSequenceCodeInformation ::= ENUMERATED{
+code-change,
+nocode-change
+}
+
+TransmittedCarrierPowerOfAllCodesNotUsedForHS-PDSCHOrHS-SCCHTransmissionValue ::= INTEGER(0..100)
+-- According to mapping in [22] and [23]
+
+Transmitted-Carrier-Power-Value ::= INTEGER(0..100)
+-- According to mapping in [22]/[23]
+
+Transmitted-Code-Power-Value ::= INTEGER (0..127)
+-- According to mapping in [22]/[23]. Values 0 to 9 and 123 to 127 shall not be used.
+
+Transmitted-Code-Power-Value-IncrDecrThres ::= INTEGER (0..112,...)
+
+TransmissionDiversityApplied ::= BOOLEAN
+-- true: applied, false: not applied
+
+TransmitDiversityIndicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TFCS ::= SEQUENCE {
+ tFCSvalues CHOICE {
+ no-Split-in-TFCI TFCS-TFCSList,
+ split-in-TFCI SEQUENCE {
+ transportFormatCombination-DCH TFCS-DCHList,
+ signallingMethod CHOICE {
+ tFCI-Range TFCS-MapingOnDSCHList,
+ explicit TFCS-DSCHList,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { Split-in-TFCI-ExtIEs } } OPTIONAL,
+ ...
+ },
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { { TFCS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Split-in-TFCI-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-TFCSList ::= SEQUENCE (SIZE (1..maxNrOfTFCs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ tFC-Beta TransportFormatCombination-Beta OPTIONAL,
+ -- The IE shall be present if the TFCS concerns a UL DPCH or PRACH channel [FDD - or PCPCH channel].
+ iE-Extensions ProtocolExtensionContainer { { TFCS-TFCSList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-TFCSList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-CTFC ::= CHOICE {
+ ctfc2bit INTEGER (0..3),
+ ctfc4bit INTEGER (0..15),
+ ctfc6bit INTEGER (0..63),
+ ctfc8bit INTEGER (0..255),
+ ctfc12bit INTEGER (0..4095),
+ ctfc16bit INTEGER (0..65535),
+ ctfcmaxbit INTEGER (0..maxCTFC)
+}
+
+TFCS-DCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI1Combs)) OF
+ SEQUENCE {
+ cTFC TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MapingOnDSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCIGroups)) OF
+ SEQUENCE {
+ maxTFCI-field2-Value TFCS-MaxTFCI-field2-Value,
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-MapingOnDSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-MapingOnDSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCS-MaxTFCI-field2-Value ::= INTEGER (1..maxNrOfTFCI2Combs-1)
+
+TFCS-DSCHList ::= SEQUENCE (SIZE (1..maxNrOfTFCI2Combs)) OF
+ SEQUENCE {
+ cTFC-DSCH TFCS-CTFC,
+ iE-Extensions ProtocolExtensionContainer { { TFCS-DSCHList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCS-DSCHList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportBearerRequestIndicator ::= ENUMERATED {
+ bearerRequested,
+ bearerNotRequested,
+ ...
+}
+
+TransportFormatSet ::= SEQUENCE {
+ dynamicParts TransportFormatSet-DynamicPartList,
+ semi-staticPart TransportFormatSet-Semi-staticPart,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-DynamicPartList ::= SEQUENCE (SIZE (1..maxNrOfTFs)) OF
+ SEQUENCE {
+ nrOfTransportBlocks TransportFormatSet-NrOfTransportBlocks,
+ transportBlockSize TransportFormatSet-TransportBlockSize OPTIONAL,
+ -- This IE shall be present if the Number of Transport Blocks IE is set to a value greater than 0
+ mode TransportFormatSet-ModeDP,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-DynamicPartList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TransportFormatSet-DynamicPartList-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-TransportFormatSet-ModeDP ::= SEQUENCE {
+ transmissionTimeIntervalInformation TransmissionTimeIntervalInformation OPTIONAL,
+ -- This IE shall be present if the Transmission Time Interval IE in the Semi-static Transport Format Information IE is set to "dynamic"
+ iE-Extensions ProtocolExtensionContainer { {TDD-TransportFormatSet-ModeDP-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TDD-TransportFormatSet-ModeDP-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransmissionTimeIntervalInformation ::= SEQUENCE (SIZE (1..maxTTI-count)) OF
+ SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalDynamic,
+ iE-Extensions ProtocolExtensionContainer { { TransmissionTimeIntervalInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransmissionTimeIntervalInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-Semi-staticPart ::= SEQUENCE {
+ transmissionTimeInterval TransportFormatSet-TransmissionTimeIntervalSemiStatic,
+ channelCoding TransportFormatSet-ChannelCodingType,
+ codingRate TransportFormatSet-CodingRate OPTIONAL,
+ -- This IE shall be present if the Type of channel coding IE is set to 'convolutional' or 'turbo'
+ rateMatchingAttribute TransportFormatSet-RateMatchingAttribute,
+ cRC-Size TransportFormatSet-CRC-Size,
+ mode TransportFormatSet-ModeSSP ,
+ iE-Extensions ProtocolExtensionContainer { { TransportFormatSet-Semi-staticPart-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportFormatSet-Semi-staticPart-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TransportFormatSet-ChannelCodingType ::= ENUMERATED {
+ no-codingTDD,
+ convolutional-coding,
+ turbo-coding,
+ ...
+}
+
+TransportFormatSet-CodingRate ::= ENUMERATED {
+ half,
+ third,
+ ...
+}
+
+TransportFormatSet-CRC-Size ::= ENUMERATED {
+ v0,
+ v8,
+ v12,
+ v16,
+ v24,
+ ...
+}
+
+TransportFormatSet-ModeDP ::= CHOICE {
+ tdd TDD-TransportFormatSet-ModeDP,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-ModeSSP ::= CHOICE {
+ tdd TransportFormatSet-SecondInterleavingMode,
+ notApplicable NULL,
+ ...
+}
+
+TransportFormatSet-NrOfTransportBlocks ::= INTEGER (0..512)
+
+TransportFormatSet-RateMatchingAttribute ::= INTEGER (1..maxRateMatching)
+
+TransportFormatSet-SecondInterleavingMode ::= ENUMERATED {
+ frame-related,
+ timeSlot-related,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalDynamic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ ...
+}
+
+TransportFormatSet-TransmissionTimeIntervalSemiStatic ::= ENUMERATED {
+ msec-10,
+ msec-20,
+ msec-40,
+ msec-80,
+ dynamic,
+ ...,
+ msec-5
+}
+
+TransportFormatSet-TransportBlockSize ::= INTEGER (0..5000)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TSTD-Indicator ::= ENUMERATED {
+ active,
+ inactive
+}
+
+TUTRANGPS ::= SEQUENCE {
+ ms-part INTEGER (0..16383),
+ ls-part INTEGER (0..4294967295)
+}
+
+TUTRANGPSChangeLimit ::= INTEGER (1..256)
+-- Unit chip, Step 1/16 chip, Range 1/16..16 chip
+
+TUTRANGPSDriftRate ::= INTEGER (-50..50)
+-- Unit chip/s, Step 1/256 chip/s, Range -50/256..+50/256 chip/s
+
+TUTRANGPSDriftRateQuality ::= INTEGER (0..50)
+-- Unit chip/s, Step 1/256 chip/s, Range 0..50/256 chip/s
+
+TUTRANGPSAccuracyClass ::= ENUMERATED {
+ accuracy-class-A,
+ accuracy-class-B,
+ accuracy-class-C,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation ::= SEQUENCE {
+ tUTRANGPSChangeLimit TUTRANGPSChangeLimit OPTIONAL,
+ predictedTUTRANGPSDeviationLimit PredictedTUTRANGPSDeviationLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TUTRANGPSMeasurementThresholdInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementThresholdInformation-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSMeasurementValueInformation ::= SEQUENCE {
+ tUTRANGPS TUTRANGPS,
+ tUTRANGPSQuality TUTRANGPSQuality OPTIONAL,
+ tUTRANGPSDriftRate TUTRANGPSDriftRate,
+ tUTRANGPSDriftRateQuality TUTRANGPSDriftRateQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TUTRANGPSMeasurementValueInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TUTRANGPSMeasurementValueInformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TUTRANGPSQuality ::= INTEGER (0..255)
+-- Unit chip, Step 1/16 chip, Range 0.. 255/16 chip
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- ==========================================
+-- U
+-- ==========================================
+
+UARFCN ::= INTEGER (0..16383, ...)
+-- corresponds to 0MHz .. 3276.6MHz
+
+UC-Id ::= SEQUENCE {
+ rNC-ID RNC-ID,
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { {UC-Id-ExtIEs} } OPTIONAL,
+ ...
+}
+UC-Id-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UDRE ::= ENUMERATED {
+ udre-minusequal-one-m,
+ udre-betweenoneandfour-m,
+ udre-betweenfourandeight-m,
+ udre-greaterequaleight-m
+}
+
+
+UE-Capability-Information ::= SEQUENCE {
+ hSDSCH-Physical-Layer-Category INTEGER (1..64,...),
+ iE-Extensions ProtocolExtensionContainer { { UE-Capability-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UE-Capability-Information-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CapacityCredit ::= INTEGER (0..65535)
+
+UL-DL-mode ::= ENUMERATED {
+ ul-only,
+ dl-only,
+ both-ul-and-dl
+}
+
+Uplink-Compressed-Mode-Method ::= ENUMERATED {
+ sFdiv2,
+ higher-layer-scheduling,
+ ...
+}
+
+UL-Timeslot-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationItem
+
+UL-Timeslot-InformationItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-Information ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeslotLCR-InformationItem
+
+UL-TimeslotLCR-InformationItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationList TDD-UL-Code-LCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeslotLCR-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-TimeslotLCR-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCCH-SlotFormat ::= INTEGER (0..5,...)
+
+UL-SIR ::= INTEGER (-82..173)
+-- According to mapping in [16]
+
+UL-FP-Mode ::= ENUMERATED {
+ normal,
+ silent,
+ ...
+}
+
+UL-PhysCH-SF-Variation ::= ENUMERATED {
+ sf-variation-supported,
+ sf-variation-not-supported
+}
+
+UL-ScramblingCode ::= SEQUENCE {
+ uL-ScramblingCodeNumber UL-ScramblingCodeNumber,
+ uL-ScramblingCodeLength UL-ScramblingCodeLength,
+ iE-Extensions ProtocolExtensionContainer { { UL-ScramblingCode-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-ScramblingCode-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-ScramblingCodeNumber ::= INTEGER (0..16777215)
+
+UL-ScramblingCodeLength ::= ENUMERATED {
+ short,
+ long
+}
+
+UL-Synchronisation-Parameters-LCR ::= SEQUENCE {
+ uL-Synchronisation-StepSize UL-Synchronisation-StepSize,
+ uL-Synchronisation-Frequency UL-Synchronisation-Frequency,
+ iE-Extensions ProtocolExtensionContainer { { UL-Synchronisation-Parameters-LCR-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-Synchronisation-Parameters-LCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Synchronisation-StepSize ::= INTEGER (1..8)
+
+UL-Synchronisation-Frequency ::= INTEGER (1..8)
+
+UL-TimeSlot-ISCP-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-TimeSlot-ISCP-InfoItem
+
+UL-TimeSlot-ISCP-InfoItem ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeSlot-ISCP-LCR-Info ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-TimeSlot-ISCP-LCR-InfoItem
+
+UL-TimeSlot-ISCP-LCR-InfoItem ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ iSCP UL-TimeslotISCP-Value,
+ iE-Extensions ProtocolExtensionContainer { { UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UL-TimeSlot-ISCP-LCR-InfoItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unidirectional-DCH-Indicator ::= ENUMERATED {
+ downlink-DCH-only,
+ uplink-DCH-only
+}
+
+USCH-Information ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationItem
+
+USCH-InformationItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ cCTrCH-ID CCTrCH-ID, -- UL CCTrCH in which the USCH is mapped
+ transportFormatSet TransportFormatSet, -- For USCH
+ allocationRetentionPriority AllocationRetentionPriority,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+{ ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-InformationResponseItem
+
+USCH-InformationResponseItem ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ bindingID BindingID OPTIONAL,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { USCH-InformationResponseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-InformationResponseItem-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotISCP-Value ::= INTEGER (0..127)
+-- According to mapping in [23]
+
+UL-TimeslotISCP-Value-IncrDecrThres ::= INTEGER (0..126)
+
+USCH-ID ::= INTEGER (0..255)
+
+-- ==========================================
+-- V
+-- ==========================================
+
+-- ==========================================
+-- W
+-- ==========================================
+
+-- ==========================================
+-- X
+-- ==========================================
+
+-- ==========================================
+-- Y
+-- ==========================================
+
+-- ==========================================
+-- Z
+-- ==========================================
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
new file mode 100755
index 0000000000..9ecfa688a2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Contents.asn
@@ -0,0 +1,9234 @@
+-- **************************************************************
+--
+-- PDU definitions for NBAP.
+--
+-- **************************************************************
+
+NBAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Active-Pattern-Sequence-Information,
+ AddorDeleteIndicator,
+ AICH-Power,
+ AICH-TransmissionTiming,
+ AllocationRetentionPriority,
+ APPreambleSignature,
+ APSubChannelNumber,
+ AvailabilityStatus,
+ BCCH-ModificationTime,
+ BindingID,
+ BlockingPriorityIndicator,
+ SCTD-Indicator,
+ Cause,
+ CCTrCH-ID,
+ CDSubChannelNumbers,
+ CellParameterID,
+ CellSyncBurstCode,
+ CellSyncBurstCodeShift,
+ CellSyncBurstRepetitionPeriod,
+ CellSyncBurstSIR,
+ CellSyncBurstTiming,
+ CellSyncBurstTimingThreshold,
+ CFN,
+ Channel-Assignment-Indication,
+ ChipOffset,
+ C-ID,
+ Closedlooptimingadjustmentmode,
+ CommonChannelsCapacityConsumptionLaw,
+ Compressed-Mode-Deactivation-Flag,
+ CommonMeasurementAccuracy,
+ CommonMeasurementType,
+ CommonMeasurementValue,
+ CommonMeasurementValueInformation,
+ CommonPhysicalChannelID,
+ Common-PhysicalChannel-Status-Information,
+ Common-TransportChannel-Status-Information,
+ CommonTransportChannelID,
+ CommonTransportChannel-InformationResponse,
+ CommunicationControlPortID,
+ ConfigurationGenerationID,
+ ConstantValue,
+ CriticalityDiagnostics,
+ CPCH-Allowed-Total-Rate,
+ CPCHScramblingCodeNumber,
+ CPCH-UL-DPCCH-SlotFormat,
+ CRNC-CommunicationContextID,
+ CSBMeasurementID,
+ CSBTransmissionID,
+ DCH-FDD-Information,
+ DCH-InformationResponse,
+ DCH-ID,
+ FDD-DCHs-to-Modify,
+ TDD-DCHs-to-Modify,
+ DCH-TDD-Information,
+ DedicatedChannelsCapacityConsumptionLaw,
+ DedicatedMeasurementType,
+ DedicatedMeasurementValue,
+ DedicatedMeasurementValueInformation,
+ DelayedActivation,
+ DelayedActivationUpdate,
+ DiversityControlField,
+ DiversityMode,
+ DL-DPCH-SlotFormat,
+ DL-DPCH-TimingAdjustment,
+ DL-or-Global-CapacityCredit,
+ DL-Power,
+ DL-PowerBalancing-Information,
+ DL-PowerBalancing-ActivationIndicator,
+ DLPowerAveragingWindowSize,
+ DL-PowerBalancing-UpdatedIndicator,
+ DL-ScramblingCode,
+ DL-TimeslotISCP,
+ DL-Timeslot-Information,
+ DL-TimeslotLCR-Information,
+ DL-TimeslotISCPInfo,
+ DL-TimeslotISCPInfoLCR,
+ DL-TPC-Pattern01Count,
+ DPC-Mode,
+ DPCH-ID,
+ DSCH-ID,
+ DSCH-FDD-Common-Information,
+ DSCH-FDD-Information,
+ DSCH-InformationResponse,
+ DSCH-TDD-Information,
+ DwPCH-Power,
+ End-Of-Audit-Sequence-Indicator,
+ EnhancedDSCHPC,
+ EnhancedDSCHPCCounter,
+ EnhancedDSCHPCIndicator,
+ EnhancedDSCHPCWnd,
+ EnhancedDSCHPowerOffset,
+ FDD-DL-ChannelisationCodeNumber,
+ FDD-DL-CodeInformation,
+ FDD-S-CCPCH-Offset,
+ FDD-TPC-DownlinkStepSize,
+ FirstRLS-Indicator,
+ FNReportingIndicator,
+ FPACH-Power,
+ FrameAdjustmentValue,
+ FrameHandlingPriority,
+ FrameOffset,
+ HSDPA-Capability,
+ HS-PDSCH-FDD-Code-Information,
+ HS-SCCH-ID,
+ HS-SCCH-FDD-Code-Information,
+ HS-SICH-ID,
+ IB-OC-ID,
+ IB-SG-DATA,
+ IB-SG-POS,
+ IB-SG-REP,
+ IB-Type,
+ InformationExchangeID,
+ InformationReportCharacteristics,
+ InformationType,
+ InnerLoopDLPCStatus,
+ IPDL-FDD-Parameters,
+ IPDL-TDD-Parameters,
+ IPDL-Indicator,
+ IPDL-TDD-Parameters-LCR,
+ LimitedPowerIncrease,
+ Local-Cell-ID,
+ MaximumDL-PowerCapability,
+ Maximum-PDSCH-Power,
+ MaximumTransmissionPower,
+ Max-Number-of-PCPCHes,
+ MaxNrOfUL-DPDCHs,
+ MaxPRACH-MidambleShifts,
+ MeasurementFilterCoefficient,
+ MeasurementID,
+ MidambleAllocationMode,
+ MidambleShiftAndBurstType,
+ MidambleShiftLCR,
+ MinimumDL-PowerCapability,
+ MinSpreadingFactor,
+ MinUL-ChannelisationCodeLength,
+ MultiplexingPosition,
+ NEOT,
+ NCyclesPerSFNperiod,
+ NFmax,
+ NRepetitionsPerCyclePeriod,
+ N-INSYNC-IND,
+ N-OUTSYNC-IND,
+ NeighbouringCellMeasurementInformation,
+ NeighbouringFDDCellMeasurementInformation,
+ NeighbouringTDDCellMeasurementInformation,
+ NodeB-CommunicationContextID,
+ NumberOfReportedCellPortions,
+ NStartMessage,
+ NSubCyclesPerCyclePeriod,
+ PagingIndicatorLength,
+ PayloadCRC-PresenceIndicator,
+ PCCPCH-Power,
+ PCP-Length,
+ PDSCH-CodeMapping,
+ PDSCHSet-ID,
+ PDSCH-ID,
+ PICH-Mode,
+ PICH-Power,
+ PowerAdjustmentType,
+ PowerOffset,
+ PowerRaiseLimit,
+ PRACH-Midamble,
+ PreambleSignatures,
+ PreambleThreshold,
+ PredictedSFNSFNDeviationLimit,
+ PredictedTUTRANGPSDeviationLimit,
+ PrimaryCPICH-Power,
+ Primary-CPICH-Usage-for-Channel-Estimation,
+ PrimaryScramblingCode,
+ PropagationDelay,
+ SCH-TimeSlot,
+ PunctureLimit,
+ PUSCHSet-ID,
+ PUSCH-ID,
+ QE-Selector,
+ Qth-Parameter,
+ RACH-SlotFormat,
+ RACH-SubChannelNumbers,
+ ReferenceClockAvailability,
+ ReferenceSFNoffset,
+ RepetitionLength,
+ RepetitionPeriod,
+ ReportCharacteristics,
+ RequestedDataValue,
+ RequestedDataValueInformation,
+ ResourceOperationalState,
+ RL-Set-ID,
+ RL-ID,
+ RL-Specific-DCH-Info,
+ Received-total-wide-band-power-Value,
+ AdjustmentPeriod,
+ ScaledAdjustmentRatio,
+ MaxAdjustmentStep,
+ RNC-ID,
+ ScramblingCodeNumber,
+ Secondary-CPICH-Information-Change,
+ SecondaryCCPCH-SlotFormat,
+ Segment-Type,
+ S-FieldLength,
+ SFN,
+ SFNSFNChangeLimit,
+ SFNSFNDriftRate,
+ SFNSFNDriftRateQuality,
+ SFNSFNQuality,
+ ShutdownTimer,
+ SIB-Originator,
+ SpecialBurstScheduling,
+ SignallingBearerRequestIndicator,
+ SSDT-Cell-Identity,
+ SSDT-CellID-Length,
+ SSDT-Indication,
+ Start-Of-Audit-Sequence-Indicator,
+ STTD-Indicator,
+ SSDT-SupportIndicator,
+ SyncCase,
+ SYNCDlCodeId,
+ SyncFrameNumber,
+ SynchronisationReportCharacteristics,
+ SynchronisationReportType,
+ T-Cell,
+ T-RLFAILURE,
+ TDD-ChannelisationCode,
+ TDD-ChannelisationCodeLCR,
+ TDD-DL-Code-LCR-Information,
+ TDD-DPCHOffset,
+ TDD-TPC-DownlinkStepSize,
+ TDD-PhysicalChannelOffset,
+ TDD-UL-Code-LCR-Information,
+ TFCI2-BearerInformationResponse,
+ TFCI2BearerRequestIndicator,
+ TFCI-Coding,
+ TFCI-Presence,
+ TFCI-SignallingMode,
+ TFCS,
+ TimeSlot,
+ TimeSlotLCR,
+ TimeSlotDirection,
+ TimeSlotStatus,
+ TimingAdjustmentValue,
+ TimingAdvanceApplied,
+ TnlQos,
+ ToAWE,
+ ToAWS,
+ TransmissionDiversityApplied,
+ TransmitDiversityIndicator,
+ TransmissionGapPatternSequenceCodeInformation,
+ Transmission-Gap-Pattern-Sequence-Information,
+ TransportBearerRequestIndicator,
+ TransportFormatSet,
+ TransportLayerAddress,
+ TSTD-Indicator,
+ TUTRANGPS,
+ TUTRANGPSChangeLimit,
+ TUTRANGPSDriftRate,
+ TUTRANGPSDriftRateQuality,
+ TUTRANGPSQuality,
+ UARFCN,
+ UC-Id,
+ USCH-Information,
+ USCH-InformationResponse,
+ UL-CapacityCredit,
+ UL-DPCCH-SlotFormat,
+ UL-SIR,
+ UL-FP-Mode,
+ UL-PhysCH-SF-Variation,
+ UL-ScramblingCode,
+ UL-Timeslot-Information,
+ UL-TimeslotLCR-Information,
+ UL-TimeSlot-ISCP-Info,
+ UL-TimeSlot-ISCP-LCR-Info,
+ UL-TimeslotISCP-Value,
+ UL-TimeslotISCP-Value-IncrDecrThres,
+ USCH-ID,
+ HSDSCH-FDD-Information,
+ HSDSCH-FDD-Information-Response,
+ HSDSCH-Information-to-Modify,
+ HSDSCH-Information-to-Modify-Unsynchronised,
+ HSDSCH-MACdFlow-ID,
+ HSDSCH-MACdFlows-Information,
+ HSDSCH-MACdFlows-to-Delete,
+ HSDSCH-RNTI,
+ HSDSCH-TDD-Information,
+ HSDSCH-TDD-Information-Response,
+ PrimaryCCPCH-RSCP,
+ HSDSCH-FDD-Update-Information,
+ HSDSCH-TDD-Update-Information,
+ UL-Synchronisation-Parameters-LCR,
+ TDD-DL-DPCH-TimeSlotFormat-LCR,
+ TDD-UL-DPCH-TimeSlotFormat-LCR,
+ TDD-TPC-UplinkStepSize-LCR,
+ CellSyncBurstTimingLCR,
+ TimingAdjustmentValueLCR,
+ PrimaryCCPCH-RSCP-Delta
+FROM NBAP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-Single-Container{},
+ ProtocolIE-ContainerList{},
+ NBAP-PRIVATE-IES,
+ NBAP-PROTOCOL-IES,
+ NBAP-PROTOCOL-EXTENSION
+FROM NBAP-Containers
+
+ id-Active-Pattern-Sequence-Information,
+ id-AdjustmentRatio,
+ id-AICH-Information,
+ id-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-AP-AICH-Information,
+ id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-BCH-Information,
+ id-BCCH-ModificationTime,
+ id-bindingID,
+ id-BlockingPriorityIndicator,
+ id-Cause,
+ id-CauseLevel-PSCH-ReconfFailure,
+ id-CauseLevel-RL-AdditionFailureFDD,
+ id-CauseLevel-RL-AdditionFailureTDD,
+ id-CauseLevel-RL-ReconfFailure,
+ id-CauseLevel-RL-SetupFailureFDD,
+ id-CauseLevel-RL-SetupFailureTDD,
+ id-CauseLevel-SyncAdjustmntFailureTDD,
+ id-CCP-InformationItem-AuditRsp,
+ id-CCP-InformationList-AuditRsp,
+ id-CCP-InformationItem-ResourceStatusInd,
+ id-CCTrCH-InformationItem-RL-FailureInd,
+ id-CCTrCH-InformationItem-RL-RestoreInd,
+ id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD,
+ id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD,
+ id-CDCA-ICH-Information,
+ id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CellAdjustmentInfo-SyncAdjustmntRqstTDD,
+ id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD,
+ id-Cell-InformationItem-AuditRsp,
+ id-Cell-InformationItem-ResourceStatusInd,
+ id-Cell-InformationList-AuditRsp,
+ id-CellParameterID,
+ id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD,
+ id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD,
+ id-cellSyncBurstRepetitionPeriod,
+ id-CellSyncBurstTransReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD,
+ id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ id-CellSyncInfo-CellSyncReprtTDD,
+ id-CFN,
+ id-CFNReportingIndicator,
+ id-C-ID,
+ id-Closed-Loop-Timing-Adjustment-Mode,
+ id-CommonMeasurementAccuracy,
+ id-CommonMeasurementObjectType-CM-Rprt,
+ id-CommonMeasurementObjectType-CM-Rqst,
+ id-CommonMeasurementObjectType-CM-Rsp,
+ id-CommonMeasurementType,
+ id-CommonPhysicalChannelID,
+ id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstFDD,
+ id-CommonPhysicalChannelType-CTCH-SetupRqstTDD,
+ id-CommunicationContextInfoItem-Reset,
+ id-CommunicationControlPortID,
+ id-CommunicationControlPortInfoItem-Reset,
+ id-Compressed-Mode-Deactivation-Flag,
+ id-ConfigurationGenerationID,
+ id-CPCH-Information,
+ id-CPCH-Parameters-CTCH-SetupRsp,
+ id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-CRNC-CommunicationContextID,
+ id-CriticalityDiagnostics,
+ id-CSBTransmissionID,
+ id-CSBMeasurementID,
+ id-DCHs-to-Add-FDD,
+ id-DCHs-to-Add-TDD,
+ id-DCH-AddList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfPrepFDD,
+ id-DCH-DeleteList-RL-ReconfPrepTDD,
+ id-DCH-DeleteList-RL-ReconfRqstFDD,
+ id-DCH-DeleteList-RL-ReconfRqstTDD,
+ id-DCH-FDD-Information,
+ id-DCH-TDD-Information,
+ id-DCH-InformationResponse,
+ id-DCH-RearrangeList-Bearer-RearrangeInd,
+ id-DSCH-RearrangeList-Bearer-RearrangeInd,
+ id-FDD-DCHs-to-Modify,
+ id-TDD-DCHs-to-Modify,
+ id-DedicatedMeasurementObjectType-DM-Rprt,
+ id-DedicatedMeasurementObjectType-DM-Rqst,
+ id-DedicatedMeasurementObjectType-DM-Rsp,
+ id-DedicatedMeasurementType,
+ id-DelayedActivation,
+ id-DelayedActivationList-RL-ActivationCmdFDD,
+ id-DelayedActivationList-RL-ActivationCmdTDD,
+ id-DelayedActivationInformation-RL-ActivationCmdFDD,
+ id-DelayedActivationInformation-RL-ActivationCmdTDD,
+ id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-DL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-DL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-DL-DPCH-Information-RL-ReconfPrepFDD,
+ id-DL-DPCH-Information-RL-ReconfRqstFDD,
+ id-DL-DPCH-Information-RL-SetupRqstFDD,
+ id-DL-DPCH-TimingAdjustment,
+ id-DL-PowerBalancing-Information,
+ id-DL-PowerBalancing-ActivationIndicator,
+ id-DL-ReferencePowerInformationItem-DL-PC-Rqst,
+ id-DL-PowerBalancing-UpdatedIndicator,
+ id-DLReferencePower,
+ id-DLReferencePowerList-DL-PC-Rqst,
+ id-DL-TPC-Pattern01Count,
+ id-DPC-Mode,
+ id-DPCHConstant,
+ id-DSCH-AddItem-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-FDD,
+ id-DSCH-DeleteItem-RL-ReconfPrepFDD,
+ id-DSCH-DeleteList-RL-ReconfPrepFDD,
+ id-DSCHs-to-Add-TDD,
+ id-DSCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-DSCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-DSCH-InformationResponse,
+ id-DSCH-FDD-Information,
+ id-DSCH-FDD-Common-Information,
+ id-DSCH-TDD-Information,
+ id-DSCH-ModifyItem-RL-ReconfPrepFDD,
+ id-DSCH-ModifyList-RL-ReconfPrepFDD,
+ id-End-Of-Audit-Sequence-Indicator,
+ id-EnhancedDSCHPC,
+ id-EnhancedDSCHPCIndicator,
+ id-FACH-Information,
+ id-FACH-ParametersList-CTCH-ReconfRqstTDD,
+ id-FACH-ParametersList-CTCH-SetupRsp,
+ id-FACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstFDD,
+ id-FACH-ParametersListIE-CTCH-SetupRqstTDD,
+ id-IndicationType-ResourceStatusInd,
+ id-InformationExchangeID,
+ id-InformationExchangeObjectType-InfEx-Rqst,
+ id-InformationExchangeObjectType-InfEx-Rsp,
+ id-InformationExchangeObjectType-InfEx-Rprt,
+ id-InformationReportCharacteristics,
+ id-InformationType,
+ id-InitDL-Power,
+ id-InnerLoopDLPCStatus,
+ id-IntStdPhCellSyncInfoItem-CellSyncReprtTDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstFDD,
+ id-IPDLParameter-Information-Cell-SetupRqstFDD,
+ id-IPDLParameter-Information-Cell-ReconfRqstTDD,
+ id-IPDLParameter-Information-Cell-SetupRqstTDD,
+ id-LateEntranceCellSyncInfoItem-CellSyncReprtTDD,
+ id-Limited-power-increase-information-Cell-SetupRqstFDD,
+ id-Local-Cell-ID,
+ id-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-Group-InformationList-AuditRsp,
+ id-Local-Cell-InformationItem-AuditRsp,
+ id-Local-Cell-InformationItem-ResourceStatusInd,
+ id-Local-Cell-InformationItem2-ResourceStatusInd,
+ id-Local-Cell-InformationList-AuditRsp,
+ id-AdjustmentPeriod,
+ id-MaxAdjustmentStep,
+ id-MaximumTransmissionPower,
+ id-MeasurementFilterCoefficient,
+ id-MeasurementID,
+ id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst,
+ id-multipleRL-dl-DPCH-InformationList,
+ id-multipleRL-dl-DPCH-InformationModifyList,
+ id-multipleRL-ul-DPCH-InformationList,
+ id-multipleRL-ul-DPCH-InformationModifyList,
+ id-NCyclesPerSFNperiod,
+ id-NeighbouringCellMeasurementInformation,
+ id-NodeB-CommunicationContextID,
+ id-NRepetitionsPerCyclePeriod,
+ id-NumberOfReportedCellPortions,
+ id-P-CCPCH-Information,
+ id-P-CPICH-Information,
+ id-P-SCH-Information,
+ id-PCCPCH-Information-Cell-ReconfRqstTDD,
+ id-PCCPCH-Information-Cell-SetupRqstTDD,
+ id-PCH-Parameters-CTCH-ReconfRqstTDD,
+ id-PCH-Parameters-CTCH-SetupRsp,
+ id-PCH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstFDD,
+ id-PCH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PCH-Information,
+ id-PCPCH-Information,
+ id-PICH-ParametersItem-CTCH-ReconfRqstFDD,
+ id-PDSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-Information-Cell-SetupRqstFDD,
+ id-PDSCH-Information-Cell-ReconfRqstFDD,
+ id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PDSCH-RL-ID,
+ id-PDSCHSets-AddList-PSCH-ReconfRqst,
+ id-PDSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PDSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-PICH-Information,
+ id-PICH-Parameters-CTCH-ReconfRqstTDD,
+ id-PICH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PowerAdjustmentType,
+ id-Power-Local-Cell-Group-InformationItem-AuditRsp,
+ id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList-AuditRsp,
+ id-Power-Local-Cell-Group-InformationList-ResourceStatusInd,
+ id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd,
+ id-Power-Local-Cell-Group-ID,
+ id-PRACH-Information,
+ id-PRACHConstant,
+ id-PRACH-ParametersItem-CTCH-SetupRqstTDD,
+ id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCCPCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryCPICH-Information-Cell-ReconfRqstFDD,
+ id-PrimaryCPICH-Information-Cell-SetupRqstFDD,
+ id-Primary-CPICH-Usage-for-Channel-Estimation,
+ id-PrimarySCH-Information-Cell-ReconfRqstFDD,
+ id-PrimarySCH-Information-Cell-SetupRqstFDD,
+ id-PrimaryScramblingCode,
+ id-SCH-Information-Cell-ReconfRqstTDD,
+ id-SCH-Information-Cell-SetupRqstTDD,
+ id-PUSCH-Information-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCHConstant,
+ id-PUSCHSets-AddList-PSCH-ReconfRqst,
+ id-PUSCHSets-DeleteList-PSCH-ReconfRqst,
+ id-PUSCHSets-ModifyList-PSCH-ReconfRqst,
+ id-Qth-Parameter,
+ id-RACH-Information,
+ id-RACH-Parameters-CTCH-SetupRsp,
+ id-RACH-ParametersItem-CTCH-SetupRqstFDD,
+ id-RACH-ParameterItem-CTCH-SetupRqstTDD,
+ id-ReferenceClockAvailability,
+ id-ReferenceSFNoffset,
+ id-ReportCharacteristics,
+ id-Reporting-Object-RL-FailureInd,
+ id-Reporting-Object-RL-RestoreInd,
+ id-ResetIndicator,
+ id-RL-ID,
+ id-RL-InformationItem-DM-Rprt,
+ id-RL-InformationItem-DM-Rqst,
+ id-RL-InformationItem-DM-Rsp,
+ id-RL-InformationItem-RL-AdditionRqstFDD,
+ id-RL-informationItem-RL-DeletionRqst,
+ id-RL-InformationItem-RL-FailureInd,
+ id-RL-InformationItem-RL-PreemptRequiredInd,
+ id-RL-InformationItem-RL-ReconfPrepFDD,
+ id-RL-InformationItem-RL-ReconfRqstFDD,
+ id-RL-InformationItem-RL-RestoreInd,
+ id-RL-InformationItem-RL-SetupRqstFDD,
+ id-RL-InformationList-RL-AdditionRqstFDD,
+ id-RL-informationList-RL-DeletionRqst,
+ id-RL-InformationList-RL-PreemptRequiredInd,
+ id-RL-InformationList-RL-ReconfPrepFDD,
+ id-RL-InformationList-RL-ReconfRqstFDD,
+ id-RL-InformationList-RL-SetupRqstFDD,
+ id-RL-InformationResponseItem-RL-AdditionRspFDD,
+ id-RL-InformationResponseItem-RL-ReconfReady,
+ id-RL-InformationResponseItem-RL-ReconfRsp,
+ id-RL-InformationResponseItem-RL-SetupRspFDD,
+ id-RL-InformationResponseList-RL-AdditionRspFDD,
+ id-RL-InformationResponseList-RL-ReconfReady,
+ id-RL-InformationResponseList-RL-ReconfRsp,
+ id-RL-InformationResponseList-RL-SetupRspFDD,
+ id-RL-InformationResponse-RL-AdditionRspTDD,
+ id-RL-InformationResponse-RL-SetupRspTDD,
+ id-RL-Information-RL-AdditionRqstTDD,
+ id-RL-Information-RL-ReconfRqstTDD,
+ id-RL-Information-RL-ReconfPrepTDD,
+ id-RL-Information-RL-SetupRqstTDD,
+ id-RL-ReconfigurationFailureItem-RL-ReconfFailure,
+ id-RL-Set-InformationItem-DM-Rprt,
+ id-RL-Set-InformationItem-DM-Rsp,
+ id-RL-Set-InformationItem-RL-FailureInd,
+ id-RL-Set-InformationItem-RL-RestoreInd,
+ id-RL-Specific-DCH-Info,
+ id-S-CCPCH-Information,
+ id-S-CPICH-Information,
+ id-SCH-Information,
+ id-S-SCH-Information,
+ id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD,
+ id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD,
+ id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD,
+ id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD,
+ id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD,
+ id-Secondary-CPICH-Information-Change,
+ id-SecondarySCH-Information-Cell-ReconfRqstFDD,
+ id-SecondarySCH-Information-Cell-SetupRqstFDD,
+ id-SegmentInformationListIE-SystemInfoUpdate,
+ id-SFN,
+ id-SFNReportingIndicator,
+ id-ShutdownTimer,
+ id-SignallingBearerRequestIndicator,
+ id-SSDT-CellIDforEDSCHPC,
+ id-Start-Of-Audit-Sequence-Indicator,
+ id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Successful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Synchronisation-Configuration-Cell-ReconfRqst,
+ id-Synchronisation-Configuration-Cell-SetupRqst,
+ id-SyncCase,
+ id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH,
+ id-SyncFrameNumber,
+ id-SynchronisationReportType,
+ id-SynchronisationReportCharacteristics,
+ id-SyncReportType-CellSyncReprtTDD,
+ id-T-Cell,
+ id-TargetCommunicationControlPortID,
+ id-TFCI2-Bearer-Information-RL-SetupRqstFDD,
+ id-TFCI2-BearerInformationResponse,
+ id-TFCI2BearerRequestIndicator,
+ id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD,
+ id-Transmission-Gap-Pattern-Sequence-Information,
+ id-TimeSlotConfigurationList-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-Cell-SetupRqstTDD,
+ id-timeslotInfo-CellSyncInitiationRqstTDD,
+ id-TimeslotISCPInfo,
+ id-TimingAdvanceApplied,
+ id-TnlQos,
+ id-TransmissionDiversityApplied,
+ id-transportlayeraddress,
+ id-UARFCNforNt,
+ id-UARFCNforNd,
+ id-UARFCNforNu,
+ id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD,
+ id-UL-CCTrCH-InformationList-RL-SetupRqstTDD,
+ id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD,
+ id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD,
+ id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationItem-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationList-RL-SetupRqstTDD,
+ id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-Information-RL-ReconfPrepFDD,
+ id-UL-DPCH-Information-RL-ReconfRqstFDD,
+ id-UL-DPCH-Information-RL-SetupRqstFDD,
+ id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD,
+ id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD,
+ id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD,
+ id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD,
+ id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD,
+ id-USCH-Information-Add,
+ id-USCH-Information-DeleteList-RL-ReconfPrepTDD,
+ id-USCH-Information-ModifyList-RL-ReconfPrepTDD,
+ id-USCH-InformationResponse,
+ id-USCH-Information,
+ id-USCH-RearrangeList-Bearer-RearrangeInd,
+ id-DL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DwPCH-LCR-Information ,
+ id-DwPCH-LCR-InformationList-AuditRsp,
+ id-DwPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-DwPCH-LCR-Information-Cell-ReconfRqstTDD,
+ id-DwPCH-LCR-Information-ResourceStatusInd,
+ id-maxFACH-Power-LCR-CTCH-SetupRqstTDD,
+ id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-FPACH-LCR-Information,
+ id-FPACH-LCR-Information-AuditRsp,
+ id-FPACH-LCR-InformationList-AuditRsp,
+ id-FPACH-LCR-InformationList-ResourceStatusInd,
+ id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD,
+ id-PCCPCH-LCR-Information-Cell-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-SetupRqstTDD,
+ id-PCH-Power-LCR-CTCH-ReconfRqstTDD,
+ id-PICH-LCR-Parameters-CTCH-SetupRqstTDD,
+ id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD,
+ id-RL-InformationResponse-LCR-RL-SetupRspTDD ,
+ id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD,
+ id-TimeSlot,
+ id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD,
+ id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD,
+ id-TimeSlotLCR-CM-Rqst,
+ id-UL-DPCH-LCR-Information-RL-SetupRqstTDD,
+ id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD,
+ id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD,
+ id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD,
+ id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD,
+ id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD,
+ id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD,
+ id-UL-DPCH-LCR-InformationModify-AddList,
+ id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD,
+ id-UL-SIRTarget,
+ id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-AddInformation-LCR-AddListIE-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst,
+ id-PUSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst,
+ id-PUSCH-Info-DM-Rqst,
+ id-PUSCH-Info-DM-Rsp,
+ id-PUSCH-Info-DM-Rprt,
+ id-RL-InformationResponse-LCR-RL-AdditionRspTDD,
+ id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD,
+ id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD,
+ id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst,
+ id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst,
+ id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst,
+ id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst,
+ id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst,
+ id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD,
+ id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD,
+ id-SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD,
+ id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD,
+ id-DwPCH-Power,
+ id-AccumulatedClockupdate-CellSyncReprtTDD,
+ id-HSDPA-Capability,
+ id-HSDSCH-FDD-Information,
+ id-HSDSCH-FDD-Information-Response,
+ id-HSDSCH-Information-to-Modify,
+ id-HSDSCH-Information-to-Modify-Unsynchronised,
+ id-HSDSCH-MACdFlows-to-Add,
+ id-HSDSCH-MACdFlows-to-Delete,
+ id-HSDSCH-RearrangeList-Bearer-RearrangeInd,
+ id-HSDSCH-Resources-Information-AuditRsp,
+ id-HSDSCH-Resources-Information-ResourceStatusInd,
+ id-HSDSCH-RNTI,
+ id-HSDSCH-TDD-Information,
+ id-HSDSCH-TDD-Information-Response,
+ id-HSPDSCH-RL-ID,
+ id-HSSICH-Info-DM-Rprt,
+ id-HSSICH-Info-DM-Rqst,
+ id-HSSICH-Info-DM-Rsp,
+ id-PrimCCPCH-RSCP-DL-PC-RqstTDD,
+ id-HSDSCH-FDD-Update-Information,
+ id-HSDSCH-TDD-Update-Information,
+ id-UL-Synchronisation-Parameters-LCR,
+ id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD,
+ id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD,
+ id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD,
+ id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD,
+ id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD,
+ id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD,
+ id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD,
+ id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD,
+ id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD,
+ id-TimingAdjustmentValueLCR,
+ id-PrimaryCCPCH-RSCP-Delta,
+
+
+ maxNrOfCCTrCHs,
+ maxNrOfCellSyncBursts,
+ maxNrOfCodes,
+ maxNrOfCPCHs,
+ maxNrOfDCHs,
+ maxNrOfDLTSs,
+ maxNrOfDLTSLCRs,
+ maxNrOfDPCHs,
+ maxNrOfDPCHLCRs,
+ maxNrOfDSCHs,
+ maxNrOfFACHs,
+ maxNrOfRLs,
+ maxNrOfRLs-1,
+ maxNrOfRLs-2,
+ maxNrOfRLSets,
+ maxNrOfPCPCHs,
+ maxNrOfPDSCHs,
+ maxNrOfPUSCHs,
+ maxNrOfPRACHLCRs,
+ maxNrOfPDSCHSets,
+ maxNrOfPUSCHSets,
+ maxNrOfReceptsPerSyncFrame,
+ maxNrOfSCCPCHs,
+ maxNrOfSCCPCHLCRs,
+ maxNrOfULTSs,
+ maxNrOfULTSLCRs,
+ maxNrOfUSCHs,
+ maxAPSigNum,
+ maxCPCHCell,
+ maxFACHCell,
+ maxFPACHCell,
+ maxNoofLen,
+ maxRACHCell,
+ maxPCPCHCell,
+ maxPRACHCell,
+ maxSCCPCHCell,
+ maxSCPICHCell,
+ maxCellinNodeB,
+ maxCCPinNodeB,
+ maxCommunicationContext,
+ maxLocalCellinNodeB,
+ maxNrOfSlotFormatsPRACH,
+ maxIB,
+ maxIBSEG,
+ maxNrOfHSSCCHs,
+ maxNrOfHSSICHs,
+ maxNrOfHSPDSCHs,
+ maxNrOfSyncFramesLCR,
+ maxNrOfReceptionsperSyncFrameLCR,
+ maxNrOfSyncDLCodesLCR,
+ maxNrOfMACdFlows
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonTransportChannelSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstFDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstFDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstFDD,
+ pCPCHes-parameters PCPCH-CTCH-SetupRqstFDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-S-CCPCH-Offset FDD-S-CCPCH-Offset,
+ dl-ScramblingCode DL-ScramblingCode OPTIONAL,
+ -- This IE shall be present if the PCH Parameters IE is not present
+ fdd-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ tFCS TFCS,
+ secondary-CCPCH-SlotFormat SecondaryCCPCH-SlotFormat,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the Secondary CCPCH Slot Format is set to any of the values from 8 to 17
+ multiplexingPosition MultiplexingPosition,
+ powerOffsetInformation PowerOffsetInformation-CTCH-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ fACH-Parameters FACH-ParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstFDD
+
+FACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ maxFACH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+{ ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstFDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pCH-Power DL-Power,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pICH-Power PICH-Power,
+ pICH-Mode PICH-Mode,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ scramblingCodeNumber ScramblingCodeNumber,
+ tFCS TFCS,
+ preambleSignatures PreambleSignatures,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-SetupRqstFDD,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers,
+ ul-punctureLimit PunctureLimit,
+ preambleThreshold PreambleThreshold,
+ rACH-Parameters RACH-Parameters-CTCH-SetupRqstFDD,
+ aICH-Parameters AICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ rACHSlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameters-CTCH-SetupRqstFDD ::= ProtocolIE-Single-Container {{ RACH-ParametersIE-CTCH-SetupRqstFDD }}
+
+RACH-ParametersIE-CTCH-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParametersItem-CTCH-SetupRqstFDD CRITICALITY reject TYPE RACH-ParametersItem-CTCH-SetupRqstFDD PRESENCE mandatory }
+}
+
+RACH-ParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACH-ParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-TransmissionTiming AICH-TransmissionTiming,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCPCH-CTCH-SetupRqstFDD ::= SEQUENCE {
+ cPCH-Parameters CPCH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PCPCHItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ transportFormatSet TransportFormatSet,
+ aPPreambleScramblingCode CPCHScramblingCodeNumber,
+ cDPreambleScramblingCode CPCHScramblingCodeNumber,
+ tFCS TFCS,
+ cDSignatures PreambleSignatures OPTIONAL,
+ cDSubChannelNumbers CDSubChannelNumbers OPTIONAL,
+ punctureLimit PunctureLimit,
+ cPCH-UL-DPCCH-SlotFormat CPCH-UL-DPCCH-SlotFormat,
+ uL-SIR UL-SIR,
+ initialDL-transmissionPower DL-Power,
+ maximumDLPower DL-Power,
+ minimumDLPower DL-Power,
+ pO2-ForTPC-Bits PowerOffset,
+ fDD-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ nStartMessage NStartMessage,
+ nEOT NEOT,
+ channel-Assignment-Indication Channel-Assignment-Indication,
+ cPCH-Allowed-Total-Rate CPCH-Allowed-Total-Rate,
+ pCPCHChannelInfomation PCPCHChannelInformationList-CTCH-SetupRqstFDD,
+ vCAMMapping-Information VCAMMapping-InformationList-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is set to "CA Active" --
+ aP-AICH-Parameters AP-AICH-Parameters-CTCH-SetupRqstFDD,
+ cDCA-ICH-Parameters CDCA-ICH-Parameters-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+PCPCHChannelInformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfPCPCHs)) OF PCPCHChannelInformationItem-CTCH-SetupRqstFDD
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cPCHScramblingCodeNumber CPCHScramblingCodeNumber,
+ dL-ScramblingCode DL-ScramblingCode,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ pCP-Length PCP-Length,
+ uCSM-Information UCSM-Information-CTCH-SetupRqstFDD OPTIONAL,
+ -- this IE shall be present if the Channel Assignment Indication is equal to "CA Inactive" --
+ iE-Extensions ProtocolExtensionContainer { { PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCPCHChannelInformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UCSM-Information-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ channelRequestParameters ChannelRequestParametersList-CTCH-SetupRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+UCSM-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChannelRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF ChannelRequestParametersItem-CTCH-SetupRqstFDD
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ChannelRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VCAMMapping-InformationList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNoofLen)) OF VCAMMapping-InformationItem-CTCH-SetupRqstFDD
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ nFmax NFmax,
+ max-Number-of-PCPCHes Max-Number-of-PCPCHes,
+ sFRequestParameters SFRequestParametersList-CTCH-SetupRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+VCAMMapping-InformationItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SFRequestParametersList-CTCH-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxAPSigNum)) OF SFRequestParametersItem-CTCH-SetupRqstFDD
+
+SFRequestParametersItem-CTCH-SetupRqstFDD ::= SEQUENCE {
+ aPPreambleSignature APPreambleSignature,
+ aPSubChannelNumber APSubChannelNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SFRequestParametersItem-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION::= {
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ aP-AICH-Power AICH-Power,
+ cSICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ fdd-dl-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ cDCA-ICH-Power AICH-Power,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-Parameters-CTCH-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-SetupRqstTDD CRITICALITY ignore TYPE CommonPhysicalChannelType-CTCH-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-SetupRqstTDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCH-CTCH-SetupRqstTDD,
+ pRACH-parameters PRACH-CTCH-SetupRqstTDD,
+ ...
+}
+
+Secondary-CCPCH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ sCCPCH-CCTrCH-ID CCTrCH-ID, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCS TFCS, -- For DL CCTrCH supporting one or several Secondary CCPCHs
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ secondaryCCPCH-parameterList Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD,
+ fACH-ParametersList FACH-ParametersList-CTCH-SetupRqstTDD OPTIONAL,
+ pCH-Parameters PCH-Parameters-CTCH-SetupRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-parameterList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD }}
+
+Secondary-CCPCH-parameterListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+Secondary-CCPCH-parameterListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeslot TimeSlot,
+ midambleShiftandBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-SetupRqstTDD }}
+
+FACH-ParametersListIEs-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-SetupRqstTDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-SetupRqstTDD
+
+FACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ fACH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet,
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PCH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PCH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-CCTrCH-ID CCTrCH-ID,
+ dl-TransportFormatSet TransportFormatSet, -- For the DL.
+ toAWS ToAWS,
+ toAWE ToAWE,
+ pICH-Parameters PICH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PICH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PICH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PICH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject TYPE PICH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ timeSlot TimeSlot,
+ midambleshiftAndBurstType MidambleShiftAndBurstType,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pagingIndicatorLength PagingIndicatorLength,
+ pICH-Power PICH-Power,
+ second-TDD-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHLCRs)) OF Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ s-CCPCH-Power DL-Power,
+ s-CCPCH-TimeSlotFormat-LCR TDD-DL-DPCH-TimeSlotFormat-LCR,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-LCR-parameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD ::= SEQUENCE {
+ pRACH-Parameters-CTCH-SetupRqstTDD PRACH-Parameters-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-SetupRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-SetupRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-SetupRqstTDD PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PRACH-Parameters-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersIE-CTCH-SetupRqstTDD }}
+
+PRACH-ParametersIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-ParametersItem-CTCH-SetupRqstTDD PRESENCE optional }|
+ { ID id-PRACH-LCR-ParametersList-CTCH-SetupRqstTDD CRITICALITY reject TYPE PRACH-LCR-ParametersList-CTCH-SetupRqstTDD PRESENCE optional }
+}
+
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslot TimeSlot,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ maxPRACH-MidambleShifts MaxPRACH-MidambleShifts,
+ pRACH-Midamble PRACH-Midamble,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-Parameter-CTCH-SetupRqstTDD ::= ProtocolIE-Single-Container {{ RACH-ParameterIE-CTCH-SetupRqstTDD }}
+
+RACH-ParameterIE-CTCH-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-ParameterItem-CTCH-SetupRqstTDD CRITICALITY reject TYPE RACH-ParameterItem-CTCH-SetupRqstTDD PRESENCE mandatory }
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-TransportFormatSet TransportFormatSet, -- For the UL
+ iE-Extensions ProtocolExtensionContainer { { RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACH-ParameterItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+PRACH-LCR-ParametersList-CTCH-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfPRACHLCRs)) OF PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tFCS TFCS,
+ timeslotLCR TimeSlotLCR,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ rACH RACH-Parameter-CTCH-SetupRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ timeslotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ fPACH-Power FPACH-Power,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-ParametersItem-CTCH-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersList-CTCH-SetupRsp CRITICALITY ignore TYPE FACH-CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-RACH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CPCH-Parameters-CTCH-SetupRsp CRITICALITY ignore TYPE CommonTransportChannel-InformationResponse PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-CommonTransportChannel-InformationResponse ::= SEQUENCE (SIZE (1..maxNrOfFACHs)) OF CommonTransportChannel-InformationResponse
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL SETUP FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-CommonPhysicalChannelType-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CommonPhysicalChannelType-CTCH-ReconfRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonPhysicalChannelType-CTCH-ReconfRqstFDD ::= CHOICE {
+ secondary-CCPCH-parameters Secondary-CCPCHList-CTCH-ReconfRqstFDD,
+ pRACH-parameters PRACHList-CTCH-ReconfRqstFDD,
+ cPCH-parameters CPCHList-CTCH-ReconfRqstFDD,
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ fACH-ParametersList-CTCH-ReconfRqstFDD FACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ pCH-Parameters-CTCH-ReconfRqstFDD PCH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ pICH-Parameters-CTCH-ReconfRqstFDD PICH-Parameters-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ FACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+FACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE FACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+FACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxFACHCell)) OF FACH-ParametersItem-CTCH-ReconfRqstFDD
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ maxFACH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PCH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PCH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PCH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ pCH-Power DL-Power OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PICH-ParametersIE-CTCH-ReconfRqstFDD }}
+
+PICH-ParametersIE-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-ParametersItem-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PICH-ParametersItem-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ pRACH-ParametersList-CTCH-ReconfRqstFDD PRACH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aICH-ParametersList-CTCH-ReconfRqstFDD AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PRACH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ PRACH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+PRACH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE PRACH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+PRACH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF PRACH-ParametersItem-CTCH-ReconfRqstFDD
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ preambleSignatures PreambleSignatures OPTIONAL,
+ allowedSlotFormatInformation AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD OPTIONAL,
+ rACH-SubChannelNumbers RACH-SubChannelNumbers OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PRACH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedSlotFormatInformationList-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1.. maxNrOfSlotFormatsPRACH)) OF AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ rACH-SlotFormat RACH-SlotFormat,
+ iE-Extensions ProtocolExtensionContainer { { AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllowedSlotFormatInformationItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCHList-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ cPCH-ParametersList-CTCH-ReconfRqstFDD CPCH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ aP-AICH-ParametersList-CTCH-ReconfRqstFDD AP-AICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ cDCA-ICH-ParametersList-CTCH-ReconfRqstFDD CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHListItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CPCH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CPCH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CPCH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CPCH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CPCH-ParametersItem-CTCH-ReconfRqstFDD
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ uL-SIR UL-SIR OPTIONAL,
+ initialDL-transmissionPower DL-Power OPTIONAL,
+ maximumDLPower DL-Power OPTIONAL,
+ minimumDLPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCH-ParametersItem-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AP-AICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+AP-AICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+AP-AICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF AP-AICH-ParametersItem-CTCH-ReconfRqstFDD
+
+AP-AICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ aP-AICH-Power AICH-Power OPTIONAL,
+ cSICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AP-AICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CDCA-ICH-ParametersList-CTCH-ReconfRqstFDD ::= ProtocolIE-Single-Container {{ CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD }}
+
+CDCA-ICH-ParametersListIEs-CTCH-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD CRITICALITY reject TYPE CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD PRESENCE mandatory }
+}
+
+CDCA-ICH-ParametersListIE-CTCH-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfCPCHs)) OF CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD
+
+CDCA-ICH-ParametersItem-CTCH-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ cDCA-ICH-Power AICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CDCA-ICH-ParametersItemIE-CTCH-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PICH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PICH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-FACH-ParametersList-CTCH-ReconfRqstTDD CRITICALITY reject TYPE FACH-ParametersList-CTCH-ReconfRqstTDD PRESENCE optional }|
+ { ID id-PCH-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject TYPE PCH-Parameters-CTCH-ReconfRqstTDD PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-Parameters-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION FPACH-LCR-Parameters-CTCH-ReconfRqstTDD PRESENCE optional }, -- Mandatory For 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+Secondary-CCPCH-Parameters-CTCH-ReconfRqstTDD::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ secondaryCCPCHList Secondary-CCPCHList-CTCH-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCH-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Secondary-CCPCHList-CTCH-ReconfRqstTDD ::= ProtocolIE-Single-Container {{ Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD }}
+
+Secondary-CCPCHListIEs-CTCH-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Secondary-CCPCHListIE-CTCH-ReconfRqstTDD CRITICALITY reject TYPE Secondary-CCPCHListIE-CTCH-ReconfRqstTDD PRESENCE mandatory }
+}
+
+Secondary-CCPCHListIE-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSCCPCHs)) OF Secondary-CCPCHItem-CTCH-ReconfRqstTDD
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCCPCH-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Secondary-CCPCHItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pICH-Power PICH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PICH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FACH-ParametersList-CTCH-ReconfRqstTDD ::= SEQUENCE (SIZE (0..maxNrOfFACHs)) OF FACH-ParametersItem-CTCH-ReconfRqstTDD
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FACH-ParametersItem-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-maxFACH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCH-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PCH-Power-LCR-CTCH-ReconfRqstTDD CRITICALITY reject EXTENSION DL-Power PRESENCE optional },
+ ... -- Applicable to 1.28Mcps TDD only
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ fPACHPower FPACH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FPACH-LCR-Parameters-CTCH-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CommonTransportChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonTransportChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION REQUEST
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory}|
+ { ID id-CommonPhysicalChannelID CRITICALITY reject TYPE CommonPhysicalChannelID PRESENCE mandatory}|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory},
+ ...
+}
+
+CommonTransportChannelDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON TRANSPORT CHANNEL DELETION RESPONSE
+--
+-- **************************************************************
+
+CommonTransportChannelDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonTransportChannelDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonTransportChannelDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonTransportChannelDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CommonTransportChannelDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE REQUEST
+--
+-- **************************************************************
+
+BlockResourceRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BlockingPriorityIndicator CRITICALITY reject TYPE BlockingPriorityIndicator PRESENCE mandatory }|
+ { ID id-ShutdownTimer CRITICALITY reject TYPE ShutdownTimer PRESENCE conditional },
+ -- The IE shall be present if the Blocking Priority Indicator IE indicates "Normal Priority"--
+ ...
+}
+
+BlockResourceRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE RESPONSE
+--
+-- **************************************************************
+
+BlockResourceResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+BlockResourceResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BLOCK RESOURCE FAILURE
+--
+-- **************************************************************
+
+BlockResourceFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BlockResourceFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BlockResourceFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+BlockResourceFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+BlockResourceFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UNBLOCK RESOURCE INDICATION
+--
+-- **************************************************************
+
+UnblockResourceIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UnblockResourceIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{UnblockResourceIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+UnblockResourceIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+UnblockResourceIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUIRED INDICATION
+--
+-- **************************************************************
+
+AuditRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ ...
+}
+
+AuditRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT REQUEST
+--
+-- **************************************************************
+
+AuditRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Start-Of-Audit-Sequence-Indicator CRITICALITY reject TYPE Start-Of-Audit-Sequence-Indicator PRESENCE mandatory },
+ ...
+}
+
+AuditRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT RESPONSE
+--
+-- **************************************************************
+
+AuditResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-End-Of-Audit-Sequence-Indicator CRITICALITY ignore TYPE End-Of-Audit-Sequence-Indicator PRESENCE mandatory }|
+ { ID id-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CCP-InformationList-AuditRsp CRITICALITY ignore TYPE CCP-InformationList-AuditRsp PRESENCE optional }|
+ -- CCP (Communication Control Port) --
+ { ID id-Local-Cell-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationList-AuditRsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-AuditRsp CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-AuditRsp PRESENCE optional },
+ ...
+}
+
+Cell-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-AuditRsp}}
+
+Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Cell-InformationItem-AuditRsp PRESENCE optional }
+}
+
+Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ c-ID C-ID,
+ configurationGenerationID ConfigurationGenerationID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ local-Cell-ID Local-Cell-ID,
+ primary-SCH-Information P-SCH-Information-AuditRsp OPTIONAL,
+ secondary-SCH-Information S-SCH-Information-AuditRsp OPTIONAL,
+ primary-CPICH-Information P-CPICH-Information-AuditRsp OPTIONAL,
+ secondary-CPICH-InformationList S-CPICH-InformationList-AuditRsp OPTIONAL,
+ primary-CCPCH-Information P-CCPCH-Information-AuditRsp OPTIONAL,
+ bCH-Information BCH-Information-AuditRsp OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-AuditRsp OPTIONAL,
+ pCH-Information PCH-Information-AuditRsp OPTIONAL,
+ pICH-Information PICH-Information-AuditRsp OPTIONAL,
+ fACH-InformationList FACH-InformationList-AuditRsp OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-AuditRsp OPTIONAL,
+ rACH-InformationList RACH-InformationList-AuditRsp OPTIONAL,
+ aICH-InformationList AICH-InformationList-AuditRsp OPTIONAL,
+ pCPCH-InformationList PCPCH-InformationList-AuditRsp OPTIONAL,
+ cPCH-InformationList CPCH-InformationList-AuditRsp OPTIONAL,
+ aP-AICH-InformationList AP-AICH-InformationList-AuditRsp OPTIONAL,
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-AuditRsp OPTIONAL,
+ sCH-Information SCH-Information-AuditRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-AuditRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-AuditRsp PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-InformationList-AuditRsp CRITICALITY ignore EXTENSION Common-PhysicalChannel-Status-Information PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-AuditRsp CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-AuditRsp PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-AuditRsp }}
+
+P-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-AuditRsp }}
+
+S-SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-AuditRsp }}
+
+P-CPICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-AuditRsp }}
+
+S-CPICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-AuditRsp }}
+
+P-CCPCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ BCH-InformationIE-AuditRsp }}
+
+BCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-AuditRsp }}
+
+S-CCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+PCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PCH-InformationIE-AuditRsp }}
+
+PCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ PICH-InformationIE-AuditRsp }}
+
+PICH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-AuditRsp }}
+
+FACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-AuditRsp }}
+
+PRACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-AuditRsp }}
+
+RACH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-AuditRsp }}
+
+AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-AuditRsp }}
+
+PCPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-AuditRsp }}
+
+CPCH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-AuditRsp }}
+
+AP-AICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CDCA-ICH-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-AuditRsp }}
+
+CDCA-ICH-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+SCH-Information-AuditRsp ::= ProtocolIE-Single-Container {{ SCH-InformationIE-AuditRsp }}
+
+SCH-InformationIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+CCP-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-AuditRsp }}
+
+CCP-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ {ID id-CCP-InformationItem-AuditRsp CRITICALITY ignore TYPE CCP-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+CCP-InformationItem-AuditRsp ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ CCP-InformationItem-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FPACH-LCR-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-AuditRsp }}
+
+FPACH-LCR-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information-AuditRsp CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-AuditRsp ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-AuditRsp-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Local-Cell-InformationList-AuditRsp ::=SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-AuditRsp }}
+
+Local-Cell-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer {{ Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-AuditRsp ::= SEQUENCE (SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-AuditRsp }}
+
+Power-Local-Cell-Group-InformationItemIE-AuditRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-AuditRsp CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-AuditRsp PRESENCE mandatory}
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp ::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer {{ Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-AuditRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- AUDIT FAILURE
+--
+-- **************************************************************
+
+AuditFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{AuditFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{AuditFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+AuditFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+AuditFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rqst CRITICALITY reject TYPE CommonMeasurementObjectType-CM-Rqst PRESENCE mandatory }|
+ { ID id-CommonMeasurementType CRITICALITY reject TYPE CommonMeasurementType PRESENCE mandatory }|
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional }|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory }|
+ { ID id-SFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY reject EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rqst ::= CHOICE {
+ cell Cell-CM-Rqst,
+ rACH RACH-CM-Rqst,
+ cPCH CPCH-CM-Rqst,
+ ...
+}
+
+Cell-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ timeSlot TimeSlot OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotLCR-CM-Rqst CRITICALITY reject EXTENSION TimeSlotLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ {ID id-NeighbouringCellMeasurementInformation CRITICALITY ignore EXTENSION NeighbouringCellMeasurementInformation PRESENCE optional },
+ ...
+}
+
+RACH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RACHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ commonTransportChannelID CommonTransportChannelID,
+ spreadingfactor MinUL-ChannelisationCodeLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPCHItem-CM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rsp CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rsp PRESENCE optional }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-CommonMeasurementAccuracy CRITICALITY ignore EXTENSION CommonMeasurementAccuracy PRESENCE optional},
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rsp ::= CHOICE {
+ cell Cell-CM-Rsp,
+ rACH RACH-CM-Rsp,
+ cPCH CPCH-CM-Rsp,
+ ...
+ }
+
+Cell-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RACH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { RACHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rsp ::= SEQUENCE {
+ commonMeasurementValue CommonMeasurementValue,
+ iE-Extensions ProtocolExtensionContainer { { CPCHItem-CM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+CommonMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CommonMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT REPORT
+--
+-- **************************************************************
+
+CommonMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-CommonMeasurementObjectType-CM-Rprt CRITICALITY ignore TYPE CommonMeasurementObjectType-CM-Rprt PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY ignore TYPE SFN PRESENCE optional },
+ ...
+}
+
+CommonMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommonMeasurementObjectType-CM-Rprt ::= CHOICE {
+ cell Cell-CM-Rprt,
+ rACH RACH-CM-Rprt,
+ cPCH CPCH-CM-Rprt,
+ ...
+ }
+
+Cell-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RACH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ RACHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+RACHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CPCH-CM-Rprt ::= SEQUENCE {
+ commonMeasurementValueInformation CommonMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CPCHItem-CM-Rprt-ExtIEs }} OPTIONAL,
+ ...
+ }
+
+CPCHItem-CM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+CommonMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory},
+ ...
+}
+
+CommonMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+CommonMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CommonMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CommonMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+CommonMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+CommonMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST FDD
+--
+-- **************************************************************
+
+CellSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-T-Cell CRITICALITY reject TYPE T-Cell PRESENCE mandatory }|
+ { ID id-UARFCNforNu CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-UARFCNforNd CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-Closed-Loop-Timing-Adjustment-Mode CRITICALITY reject TYPE Closedlooptimingadjustmentmode PRESENCE optional }|
+ { ID id-PrimaryScramblingCode CRITICALITY reject TYPE PrimaryScramblingCode PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DL-TPC-Pattern01Count CRITICALITY reject TYPE DL-TPC-Pattern01Count PRESENCE mandatory }|
+ { ID id-PrimarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondarySCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-PrimaryCPICH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-SecondaryCPICH-InformationList-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-SetupRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-SetupRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Limited-power-increase-information-Cell-SetupRqstFDD CRITICALITY reject TYPE Limited-power-increase-information-Cell-SetupRqstFDD PRESENCE mandatory },
+ ...
+}
+
+CellSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-SetupRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-SetupRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-SetupRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-SetupRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondarySCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCPICH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-SetupRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-SetupRqstFDD PRESENCE mandatory}
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ dl-ScramblingCode DL-ScramblingCode,
+ fDD-DL-ChannelisationCodeNumber FDD-DL-ChannelisationCodeNumber,
+ secondaryCPICH-Power DL-Power,
+ transmitDiversityIndicator TransmitDiversityIndicator,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryCPICH-InformationItem-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ bCH-information BCH-Information-Cell-SetupRqstFDD,
+ sTTD-Indicator STTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD ::= SEQUENCE {
+ powerRaiseLimit PowerRaiseLimit,
+ dLPowerAveragingWindowSize DLPowerAveragingWindowSize,
+ iE-Extensions ProtocolExtensionContainer { { Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Limited-power-increase-information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD ::= SEQUENCE {
+ maximum-PDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP REQUEST TDD
+--
+-- **************************************************************
+
+CellSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-ID CRITICALITY reject TYPE Local-Cell-ID PRESENCE mandatory }|
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-UARFCNforNt CRITICALITY reject TYPE UARFCN PRESENCE mandatory }|
+ { ID id-CellParameterID CRITICALITY reject TYPE CellParameterID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE mandatory }|
+ { ID id-TransmissionDiversityApplied CRITICALITY reject TYPE TransmissionDiversityApplied PRESENCE mandatory }|
+ { ID id-SyncCase CRITICALITY reject TYPE SyncCase PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-SetupRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-SetupRqst PRESENCE mandatory }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE mandatory }| -- This IE shall be ignored by the Node B.
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE mandatory }|
+ { ID id-SCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-PCCPCH-Information-Cell-SetupRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-TimeSlotConfigurationList-Cell-SetupRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-SetupRqstTDD PRESENCE optional }, -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ ...
+}
+
+CellSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PCCPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION PCCPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-ReferenceSFNoffset CRITICALITY ignore EXTENSION ReferenceSFNoffset PRESENCE optional }|
+ { ID id-IPDLParameter-Information-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-SetupRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-SetupRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-SetupRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+SCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ syncCaseIndicator SyncCaseIndicator-Cell-SetupRqstTDD-PSCH,
+ sCH-Power DL-Power,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { SCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncCaseIndicator-Cell-SetupRqstTDD-PSCH ::= ProtocolIE-Single-Container {{ SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH }}
+
+SyncCaseIndicatorIE-Cell-SetupRqstTDD-PSCH NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH CRITICALITY reject TYPE SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH PRESENCE mandatory }
+}
+
+SyncCaseIndicatorItem-Cell-SetupRqstTDD-PSCH ::= CHOICE {
+ case1 Case1-Cell-SetupRqstTDD,
+ case2 Case2-Cell-SetupRqstTDD,
+ ...
+}
+
+Case1-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case1Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case1Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Case2-Cell-SetupRqstTDD ::= SEQUENCE {
+ sCH-TimeSlot SCH-TimeSlot,
+ iE-Extensions ProtocolExtensionContainer { { Case2Item-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Case2Item-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PCCPCH-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-SetupRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSlotConfigurationItem-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ pCCPCH-Power PCCPCH-Power,
+ sCTD-Indicator SCTD-Indicator,
+ tSTD-Indicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ tSTD-Indicator TSTD-Indicator,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DwPCH-LCR-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP RESPONSE
+--
+-- **************************************************************
+
+CellSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellSetupResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SETUP FAILURE
+--
+-- **************************************************************
+
+CellSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSetupFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSetupFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSetupFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellSetupFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-PrimarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondarySCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondarySCH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCPICH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCPICH-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-SecondaryCPICH-InformationList-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationList-Cell-ReconfRqstFDD PRESENCE optional }|
+ { ID id-PrimaryCCPCH-Information-Cell-ReconfRqstFDD CRITICALITY reject TYPE PrimaryCCPCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+CellReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-IPDLParameter-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstFDD PRESENCE optional }|
+ {ID id-PDSCH-Information-Cell-ReconfRqstFDD CRITICALITY reject EXTENSION PDSCH-Information-Cell-ReconfRqstFDD PRESENCE optional },
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst ::= SEQUENCE {
+ n-INSYNC-IND N-INSYNC-IND,
+ n-OUTSYNC-IND N-OUTSYNC-IND,
+ t-RLFAILURE T-RLFAILURE,
+ iE-Extensions ProtocolExtensionContainer { { Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Synchronisation-Configuration-Cell-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondarySCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondarySCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondarySCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ primaryCPICH-Power PrimaryCPICH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCPICH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryCPICH-InformationList-Cell-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container{{ SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD }}
+
+SecondaryCPICH-InformationItemIE-Cell-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD CRITICALITY reject TYPE SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD PRESENCE mandatory }
+}
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ secondaryCPICH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SecondaryCPICH-InformationItem-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ bCH-information BCH-information-Cell-ReconfRqstFDD,
+ iE-Extensions ProtocolExtensionContainer { { PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PrimaryCCPCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BCH-information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ commonTransportChannelID CommonTransportChannelID,
+ bCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { BCH-information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+BCH-information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD::= SEQUENCE {
+ iPDL-FDD-Parameters IPDL-FDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD ::= SEQUENCE {
+ maximumPDSCH-Power Maximum-PDSCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCH-Information-Cell-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-Synchronisation-Configuration-Cell-ReconfRqst CRITICALITY reject TYPE Synchronisation-Configuration-Cell-ReconfRqst PRESENCE optional }|
+ { ID id-TimingAdvanceApplied CRITICALITY reject TYPE TimingAdvanceApplied PRESENCE optional }|
+ { ID id-SCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE SCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ -- Applicable to 3.84Mcps TDD only
+ { ID id-PCCPCH-Information-Cell-ReconfRqstTDD CRITICALITY reject TYPE PCCPCH-Information-Cell-ReconfRqstTDD PRESENCE optional }|
+ { ID id-MaximumTransmissionPower CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-DPCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PUSCHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-PRACHConstant CRITICALITY reject TYPE ConstantValue PRESENCE optional }|
+ -- This IE shall be ignored by the Node B.
+ { ID id-TimeSlotConfigurationList-Cell-ReconfRqstTDD CRITICALITY reject TYPE TimeSlotConfigurationList-Cell-ReconfRqstTDD PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD only. Not Applicable to 1.28Mcps TDD.
+ ...
+}
+
+CellReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-DwPCH-LCR-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION DwPCH-LCR-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-IPDLParameter-Information-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-Cell-ReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-IPDLParameter-Information-LCR-Cell-ReconfRqstTDD CRITICALITY reject EXTENSION IPDLParameter-Information-LCR-Cell-ReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+SCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ sCH-Power DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { PSCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PSCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelID CommonPhysicalChannelID,
+ pCCPCH-Power PCCPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PCCPCH-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..15)) OF TimeSlotConfigurationItem-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeSlotConfigurationList-LCR-Cell-ReconfRqstTDD ::= SEQUENCE (SIZE (1..7)) OF TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ timeSlotStatus TimeSlotStatus,
+ timeSlotDirection TimeSlotDirection,
+ iE-Extensions ProtocolExtensionContainer { { TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+TimeSlotConfigurationItem-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ commonPhysicalChannelId CommonPhysicalChannelID,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DwPCH-LCR-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters IPDL-TDD-Parameters OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD ::= SEQUENCE {
+ iPDL-TDD-Parameters-LCR IPDL-TDD-Parameters-LCR OPTIONAL,
+ iPDL-Indicator IPDL-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IPDLParameter-Information-LCR-Cell-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+CellReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+CellReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+CellReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CellReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION REQUEST
+--
+-- **************************************************************
+
+CellDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory},
+ ...
+}
+
+CellDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL DELETION RESPONSE
+--
+-- **************************************************************
+
+CellDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+CellDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+CellDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESOURCE STATUS INDICATION
+--
+-- **************************************************************
+
+ResourceStatusIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResourceStatusIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ResourceStatusIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-IndicationType-ResourceStatusInd CRITICALITY ignore TYPE IndicationType-ResourceStatusInd PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional },
+ ...
+}
+
+ResourceStatusIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IndicationType-ResourceStatusInd ::= CHOICE {
+ no-Failure No-Failure-ResourceStatusInd,
+ serviceImpacting ServiceImpacting-ResourceStatusInd,
+ ...
+}
+
+No-Failure-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList-ResourceStatusInd,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { No-FailureItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-FailureItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ local-CellID Local-Cell-ID,
+ addorDeleteIndicator AddorDeleteIndicator,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ maximumDL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add"
+ local-Cell-Group-ID Local-Cell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ -- This IE shall be present if AddorDeleteIndicator IE is set to "add" and the Local Cell is related to a TDD cell
+ { ID id-Power-Local-Cell-Group-ID CRITICALITY ignore EXTENSION Local-Cell-ID PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServiceImpacting-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-InformationList Local-Cell-InformationList2-ResourceStatusInd OPTIONAL,
+ local-Cell-Group-InformationList Local-Cell-Group-InformationList2-ResourceStatusInd OPTIONAL,
+ cCP-InformationList CCP-InformationList-ResourceStatusInd OPTIONAL,
+ cell-InformationList Cell-InformationList-ResourceStatusInd OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ServiceImpactingItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServiceImpactingItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Power-Local-Cell-Group-InformationList2-ResourceStatusInd CRITICALITY ignore EXTENSION Power-Local-Cell-Group-InformationList2-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+Local-Cell-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ maximum-DL-PowerCapability MaximumDL-PowerCapability OPTIONAL,
+ minSpreadingFactor MinSpreadingFactor OPTIONAL,
+ minimumDL-PowerCapability MinimumDL-PowerCapability OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReferenceClockAvailability CRITICALITY ignore EXTENSION ReferenceClockAvailability PRESENCE optional }|
+ { ID id-HSDPA-Capability CRITICALITY ignore EXTENSION HSDPA-Capability PRESENCE optional },
+ ...
+}
+
+Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd ::= SEQUENCE {
+ local-Cell-Group-ID Local-Cell-ID,
+ dl-or-global-capacityCredit DL-or-Global-CapacityCredit OPTIONAL,
+ ul-capacityCredit UL-CapacityCredit OPTIONAL,
+ commonChannelsCapacityConsumptionLaw CommonChannelsCapacityConsumptionLaw OPTIONAL,
+ dedicatedChannelsCapacityConsumptionLaw DedicatedChannelsCapacityConsumptionLaw OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Power-Local-Cell-Group-InformationList2-ResourceStatusInd ::= SEQUENCE(SIZE (1..maxLocalCellinNodeB)) OF ProtocolIE-Single-Container {{ Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd }}
+
+Power-Local-Cell-Group-InformationItemIE2-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Power-Local-Cell-Group-InformationItem2-ResourceStatusInd CRITICALITY ignore TYPE Power-Local-Cell-Group-InformationItem2-ResourceStatusInd PRESENCE mandatory }
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd::= SEQUENCE {
+ power-Local-Cell-Group-ID Local-Cell-ID,
+ maximumDL-PowerCapability MaximumDL-PowerCapability,
+ iE-Extensions ProtocolExtensionContainer { { Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Power-Local-Cell-Group-InformationItem2-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCP-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCCPinNodeB)) OF ProtocolIE-Single-Container {{ CCP-InformationItemIE-ResourceStatusInd }}
+
+CCP-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCP-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE CCP-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+CCP-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer { { CCP-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCP-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cell-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Cell-InformationItemIE-ResourceStatusInd }}
+
+Cell-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-Cell-InformationItem-ResourceStatusInd CRITICALITY ignore TYPE Cell-InformationItem-ResourceStatusInd PRESENCE mandatory }
+}
+
+Cell-InformationItem-ResourceStatusInd ::= SEQUENCE {
+ c-ID C-ID,
+ resourceOperationalState ResourceOperationalState OPTIONAL,
+ availabilityStatus AvailabilityStatus OPTIONAL,
+ primary-SCH-Information P-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-SCH-Information S-SCH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CPICH-Information P-CPICH-Information-ResourceStatusInd OPTIONAL, -- FDD only
+ secondary-CPICH-Information S-CPICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ primary-CCPCH-Information P-CCPCH-Information-ResourceStatusInd OPTIONAL,
+ bCH-Information BCH-Information-ResourceStatusInd OPTIONAL,
+ secondary-CCPCH-InformationList S-CCPCH-InformationList-ResourceStatusInd OPTIONAL,
+ pCH-Information PCH-Information-ResourceStatusInd OPTIONAL,
+ pICH-Information PICH-Information-ResourceStatusInd OPTIONAL,
+ fACH-InformationList FACH-InformationList-ResourceStatusInd OPTIONAL,
+ pRACH-InformationList PRACH-InformationList-ResourceStatusInd OPTIONAL,
+ rACH-InformationList RACH-InformationList-ResourceStatusInd OPTIONAL,
+ aICH-InformationList AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ pCPCH-InformationList PCPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cPCH-InformationList CPCH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ aP-AICH-InformationList AP-AICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ cDCA-ICH-InformationList CDCA-ICH-InformationList-ResourceStatusInd OPTIONAL, -- FDD only
+ sCH-Information SCH-Information-ResourceStatusInd OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { Cell-InformationItem-ResourceStatusInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cell-InformationItem-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FPACH-LCR-InformationList-ResourceStatusInd CRITICALITY ignore EXTENSION FPACH-LCR-InformationList-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-DwPCH-LCR-Information-ResourceStatusInd CRITICALITY ignore EXTENSION DwPCH-LCR-Information-ResourceStatusInd PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-HSDSCH-Resources-Information-ResourceStatusInd CRITICALITY ignore EXTENSION HS-DSCH-Resources-Information-ResourceStatusInd PRESENCE optional },
+ ...
+}
+
+P-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-SCH-InformationIE-ResourceStatusInd }}
+
+P-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ S-SCH-InformationIE-ResourceStatusInd }}
+
+S-SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CPICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CPICH-InformationIE-ResourceStatusInd }}
+
+P-CPICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CPICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCPICHCell)) OF ProtocolIE-Single-Container {{ S-CPICH-InformationItemIE-ResourceStatusInd }}
+
+S-CPICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CPICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+P-CCPCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ P-CCPCH-InformationIE-ResourceStatusInd }}
+
+P-CCPCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-P-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+BCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ BCH-InformationIE-ResourceStatusInd }}
+
+BCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-BCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+S-CCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxSCCPCHCell)) OF ProtocolIE-Single-Container {{ S-CCPCH-InformationItemIE-ResourceStatusInd }}
+
+S-CCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-S-CCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PCH-InformationIE-ResourceStatusInd }}
+
+PCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PICH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ PICH-InformationIE-ResourceStatusInd }}
+
+PICH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFACHCell)) OF ProtocolIE-Single-Container {{ FACH-InformationItemIE-ResourceStatusInd }}
+
+FACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+PRACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ PRACH-InformationItemIE-ResourceStatusInd }}
+
+PRACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PRACH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+RACH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ RACH-InformationItemIE-ResourceStatusInd }}
+
+RACH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RACH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE mandatory }
+}
+
+AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPRACHCell)) OF ProtocolIE-Single-Container {{ AICH-InformationItemIE-ResourceStatusInd }}
+
+AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+PCPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxPCPCHCell)) OF ProtocolIE-Single-Container {{ PCPCH-InformationItemIE-ResourceStatusInd }}
+
+PCPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-PCPCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CPCH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CPCH-InformationItemIE-ResourceStatusInd }}
+
+CPCH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CPCH-Information CRITICALITY ignore TYPE Common-TransportChannel-Status-Information PRESENCE optional }
+}
+
+AP-AICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ AP-AICH-InformationItemIE-ResourceStatusInd }}
+
+AP-AICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-AP-AICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+CDCA-ICH-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxCPCHCell)) OF ProtocolIE-Single-Container {{ CDCA-ICH-InformationItemIE-ResourceStatusInd }}
+
+CDCA-ICH-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CDCA-ICH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE optional }
+}
+
+SCH-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ SCH-InformationIE-ResourceStatusInd }}
+
+SCH-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-SCH-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+FPACH-LCR-InformationList-ResourceStatusInd ::= SEQUENCE (SIZE (1..maxFPACHCell)) OF ProtocolIE-Single-Container {{ FPACH-LCR-InformationItemIE-ResourceStatusInd }}
+
+FPACH-LCR-InformationItemIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-FPACH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+DwPCH-LCR-Information-ResourceStatusInd ::= ProtocolIE-Single-Container {{ DwPCH-LCR-InformationIE-ResourceStatusInd }}
+
+DwPCH-LCR-InformationIE-ResourceStatusInd NBAP-PROTOCOL-IES ::= {
+ { ID id-DwPCH-LCR-Information CRITICALITY ignore TYPE Common-PhysicalChannel-Status-Information PRESENCE mandatory }
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd ::= SEQUENCE {
+ resourceOperationalState ResourceOperationalState,
+ availabilityStatus AvailabilityStatus,
+ iE-Extensions ProtocolExtensionContainer {{ HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs }} OPTIONAL,
+ ...
+}
+
+HS-DSCH-Resources-Information-ResourceStatusInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE REQUEST
+--
+-- **************************************************************
+
+SystemInformationUpdateRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-BCCH-ModificationTime CRITICALITY reject TYPE BCCH-ModificationTime PRESENCE optional }|
+ { ID id-MIB-SB-SIB-InformationList-SystemInfoUpdateRqst CRITICALITY reject TYPE MIB-SB-SIB-InformationList-SystemInfoUpdateRqst PRESENCE mandatory },
+ ...
+}
+
+SystemInformationUpdateRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MIB-SB-SIB-InformationList-SystemInfoUpdateRqst ::= SEQUENCE (SIZE (1..maxIB)) OF MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst ::= SEQUENCE {
+ iB-Type IB-Type,
+ iB-OC-ID IB-OC-ID,
+ deletionIndicator DeletionIndicator-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MIB-SB-SIB-InformationItem-SystemInfoUpdateRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DeletionIndicator-SystemInfoUpdate ::= CHOICE {
+ no-Deletion No-Deletion-SystemInfoUpdate,
+ yes-Deletion NULL
+
+}
+
+No-Deletion-SystemInfoUpdate ::= SEQUENCE {
+ sIB-Originator SIB-Originator OPTIONAL,
+ -- This IE shall be present if the IB-Type IE is set to "SIB"
+ iB-SG-REP IB-SG-REP OPTIONAL,
+ segmentInformationList SegmentInformationList-SystemInfoUpdate,
+ iE-Extensions ProtocolExtensionContainer { { No-DeletionItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+No-DeletionItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SegmentInformationList-SystemInfoUpdate ::= ProtocolIE-Single-Container {{ SegmentInformationListIEs-SystemInfoUpdate }}
+
+SegmentInformationListIEs-SystemInfoUpdate NBAP-PROTOCOL-IES ::= {
+ { ID id-SegmentInformationListIE-SystemInfoUpdate CRITICALITY reject TYPE SegmentInformationListIE-SystemInfoUpdate PRESENCE mandatory }
+}
+
+SegmentInformationListIE-SystemInfoUpdate ::= SEQUENCE (SIZE (1..maxIBSEG)) OF SegmentInformationItem-SystemInfoUpdate
+
+SegmentInformationItem-SystemInfoUpdate ::= SEQUENCE {
+ iB-SG-POS IB-SG-POS OPTIONAL,
+ segment-Type Segment-Type OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iB-SG-DATA IB-SG-DATA OPTIONAL,
+ -- This IE shall be present if the SIB Originator IE is set to "CRNC" or the IB-Type IE is set to "MIB", "SB1" or "SB2"
+ iE-Extensions ProtocolExtensionContainer { { SegmentInformationItem-SystemInfoUpdate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SegmentInformationItem-SystemInfoUpdate-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE RESPONSE
+--
+-- **************************************************************
+
+SystemInformationUpdateResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+SystemInformationUpdateResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SYSTEM INFORMATION UPDATE FAILURE
+--
+-- **************************************************************
+
+SystemInformationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SystemInformationUpdateFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{SystemInformationUpdateFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+SystemInformationUpdateFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SystemInformationUpdateFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DL-DPCH-Information-RL-SetupRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-DCH-FDD-Information CRITICALITY reject TYPE DCH-FDD-Information PRESENCE mandatory }|
+ { ID id-DSCH-FDD-Information CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional }|
+ { ID id-TFCI2-Bearer-Information-RL-SetupRqstFDD CRITICALITY ignore TYPE TFCI2-Bearer-Information-RL-SetupRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-SetupRqstFDD PRESENCE mandatory }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY reject TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-DL-PowerBalancing-Information CRITICALITY ignore EXTENSION DL-PowerBalancing-Information PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional },
+ -- The IE shall be present if HS-DSCH Information IE is present
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if Min UL Channelisation Code length IE is set to 4 --
+ ul-PunctureLimit PunctureLimit,
+ tFCS TFCS,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat,
+ ul-SIR-Target UL-SIR,
+ diversityMode DiversityMode,
+ sSDT-CellID-Length SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-DPC-Mode CRITICALITY reject EXTENSION DPC-Mode PRESENCE optional },
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ tFCS TFCS,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat,
+ tFCI-SignallingMode TFCI-SignallingMode,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- this IE shall be present if the DL DPCH slot format IE is set to any of the values from 12 to 16 --
+ multiplexingPosition MultiplexingPosition,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ -- This IE shall be present if the DSCH Information IE is present --
+ powerOffsetInformation PowerOffsetInformation-RL-SetupRqstFDD,
+ fdd-TPC-DownlinkStepSize FDD-TPC-DownlinkStepSize,
+ limitedPowerIncrease LimitedPowerIncrease,
+ innerLoopDLPCStatus InnerLoopDLPCStatus,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD ::= SEQUENCE {
+ pO1-ForTFCI-Bits PowerOffset,
+ pO2-ForTPC-Bits PowerOffset,
+ pO3-ForPilotBits PowerOffset,
+ iE-Extensions ProtocolExtensionContainer { { PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PowerOffsetInformation-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TFCI2-Bearer-Information-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-SetupRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF
+ ProtocolIE-Single-Container{{ RL-InformationItemIE-RL-SetupRqstFDD }}
+
+RL-InformationItemIE-RL-SetupRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-SetupRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-SetupRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-SetupRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ firstRLS-indicator FirstRLS-Indicator,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ propagationDelay PropagationDelay OPTIONAL,
+ diversityControlField DiversityControlField OPTIONAL,
+ -- This IE shall be present if the RL is not the first one in the RL Information IE
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE in UL DPCH Information group is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-SetupRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-SetupRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkSetupRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationList-RL-SetupRqstTDD PRESENCE optional }|
+ { ID id-DCH-TDD-Information CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-TDD-Information CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-USCH-Information CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-RL-Information-RL-SetupRqstTDD CRITICALITY reject TYPE RL-Information-RL-SetupRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkSetupRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE conditional }|
+ -- The IE shall be present if HS-DSCH Information IE is present
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE(1..maxNrOfCCTrCHs)) OF
+ ProtocolIE-Single-Container{{ UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+UL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ uL-DPCH-Information UL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION UL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-SetupRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+UL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ UL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+UL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container{{ DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD }}
+
+DL-CCTrCH-InformationItemIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationItem-RL-SetupRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ tdd-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize,
+ cCTrCH-TPCList CCTrCH-TPCList-RL-SetupRqstTDD OPTIONAL,
+ dL-DPCH-Information DL-DPCH-Information-RL-SetupRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-Information-RL-SetupRqstTDD CRITICALITY notify EXTENSION DL-DPCH-LCR-Information-RL-SetupRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-SetupRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+CCTrCH-TPCList-RL-SetupRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCItem-RL-SetupRqstTDD
+
+CCTrCH-TPCItem-RL-SetupRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-SetupRqstTDD ::= ProtocolIE-Single-Container{{ DL-DPCH-InformationIE-RL-SetupRqstTDD }}
+
+DL-DPCH-InformationIE-RL-SetupRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationList-RL-SetupRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-SetupRqstTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ tstdIndicator TSTD-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationItem-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ specialBurstScheduling SpecialBurstScheduling,
+ initialDL-transmissionPower DL-Power,
+ maximumDL-power DL-Power,
+ minimumDL-power DL-Power,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-SetupRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-SetupRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-LCR-InfoList-RL-SetupRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional },
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory}|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory}|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory}|
+ { ID id-RL-InformationResponseList-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-SetupRspFDD PRESENCE mandatory}|
+ { ID id-TFCI2-BearerInformationResponse CRITICALITY ignore TYPE TFCI2-BearerInformationResponse PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+RadioLinkSetupResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional}, ...
+}
+
+RL-InformationResponseList-RL-SetupRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container{{ RL-InformationResponseItemIE-RL-SetupRspFDD }}
+
+RL-InformationResponseItemIE-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-SetupRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-SetupRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupRspFDD,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspFDD OPTIONAL,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupRspFDD ::= CHOICE {
+ combining Combining-RL-SetupRspFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupRspFDD
+}
+
+Combining-RL-SetupRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { Combining-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Combining-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-SetupRspFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspFDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-SetupRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-SetupRspTDD PRESENCE optional }|
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-SetupRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-SetupRspTDD PRESENCE optional }| -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ ...
+}
+
+RL-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container{{ DCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory}
+ }
+
+DSCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-SetupRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-SetupRspTDD }}
+
+USCH-InformationResponseListIEs-RL-SetupRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-SetupRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-LCR-Info UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-InformationResponseList DCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-SetupRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseList-LCR-RL-SetupRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE conditional }|
+ -- This IE shall be present if at least one of the radio links has been successfully set up
+ { ID id-CommunicationControlPortID CRITICALITY ignore TYPE CommunicationControlPortID PRESENCE optional }|
+ { ID id-CauseLevel-RL-SetupFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-SetupFailureFDD Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD,
+ successful-RL-InformationRespList-RL-SetupFailureFDD Successful-RL-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional},
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-SetupFailureFDD ::= SEQUENCE (SIZE (1.. maxNrOfRLs)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-SetupFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-SetupFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-SetupFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-SetupFailureFDD,
+ dSCH-InformationResponseList DSCH-InformationRespList-RL-SetupFailureFDD OPTIONAL,
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- There shall be only one TFCI2 bearer per Node B Communication Context.
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-SetupFailureFDD ::= CHOICE {
+ combining Combining-RL-SetupFailureFDD,
+ nonCombiningOrFirstRL NonCombiningOrFirstRL-RL-SetupFailureFDD
+}
+
+Combining-RL-SetupFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NonCombiningOrFirstRL-RL-SetupFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonCombiningOrFirstRLItem-RL-SetupFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationRespList-RL-SetupFailureFDD ::= ProtocolIE-Single-Container {{ DSCH-InformationRespListIEs-RL-SetupFailureFDD }}
+
+DSCH-InformationRespListIEs-RL-SetupFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK SETUP FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkSetupFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkSetupFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkSetupFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkSetupFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-SetupFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-SetupFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkSetupFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-SetupFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-SetupFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-SetupFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-SetupFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-SetupFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-SetupFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-SetupFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-SetupFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-SetupFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Compressed-Mode-Deactivation-Flag CRITICALITY reject TYPE Compressed-Mode-Deactivation-Flag PRESENCE optional }|
+ { ID id-RL-InformationList-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationList-RL-AdditionRqstFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-AdditionRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-AdditionRqstFDD}}
+
+RL-InformationItemIE-RL-AdditionRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-AdditionRqstFDD CRITICALITY notify TYPE RL-InformationItem-RL-AdditionRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-AdditionRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ chipOffset ChipOffset,
+ diversityControlField DiversityControlField,
+ dl-CodeInformation FDD-DL-CodeInformation,
+ initialDL-TransmissionPower DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ sSDT-CellIdentity SSDT-Cell-Identity OPTIONAL,
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-AdditionRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-AdditionRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional}|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE UL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationList-RL-AdditionRqstTDD CRITICALITY reject TYPE DL-CCTrCH-InformationList-RL-AdditionRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-AdditionRqstTDD CRITICALITY reject TYPE RL-Information-RL-AdditionRqstTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkAdditionRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ uL-DPCH-Information UL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84cps TDD only
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28cps TDD only
+ { ID id-TDD-TPC-UplinkStepSize-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional },
+-- Applicable to 1.28cps TDD only
+ ...
+}
+
+UL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+UL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE UL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE optional} -- For 3.84Mcps TDD only
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationList-RL-AdditionRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationItem-RL-AdditionRqstTDD
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ dL-DPCH-Information DL-DPCH-InformationList-RL-AdditionRqstTDD OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD CRITICALITY notify EXTENSION DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Initial-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-TDD-TPC-DownlinkStepSize-RL-AdditionRqstTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional }|
+ { ID id-CCTrCH-Maximum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-RL-AdditionRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-InformationList-RL-AdditionRqstTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationItemIE-RL-AdditionRqstTDD }}
+
+DL-DPCH-InformationItemIE-RL-AdditionRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationItem-RL-AdditionRqstTDD CRITICALITY notify TYPE DL-DPCH-InformationItem-RL-AdditionRqstTDD PRESENCE mandatory}
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Information-RL-AdditionRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ c-ID C-ID,
+ frameOffset FrameOffset,
+ diversityControlField DiversityControlField,
+ initial-DL-Transmission-Power DL-Power OPTIONAL,
+ maximumDL-Power DL-Power OPTIONAL,
+ minimumDL-Power DL-Power OPTIONAL,
+ dL-TimeSlotISCPInfo DL-TimeslotISCPInfo OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-information-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-information-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCP-InformationList-LCR-RL-AdditionRqstTDD CRITICALITY reject EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DelayedActivation CRITICALITY reject EXTENSION DelayedActivation PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-TimeslotLCR-Information UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-TimeslotLCR-Information DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationItem-LCR-RL-AdditionRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseList-RL-AdditionRspFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationResponseList-RL-AdditionRspFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-AdditionRspFDD }}
+
+RL-InformationResponseItemIE-RL-AdditionRspFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-AdditionRspFDD CRITICALITY ignore TYPE RL-InformationResponseItem-RL-AdditionRspFDD PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionRspFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionRspFDD ::= CHOICE {
+ combining Combining-RL-AdditionRspFDD,
+ non-combining Non-Combining-RL-AdditionRspFDD
+}
+
+Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION RESPONSE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponse-RL-AdditionRspTDD CRITICALITY ignore TYPE RL-InformationResponse-RL-AdditionRspTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-InformationResponse-LCR-RL-AdditionRspTDD CRITICALITY ignore EXTENSION RL-InformationResponse-LCR-RL-AdditionRspTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-Info UL-TimeSlot-ISCP-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD ::= SEQUENCE {
+ diversityIndication DiversityIndication-RL-AdditionRspTDD,
+ iE-Extensions ProtocolExtensionContainer { { DCH-Information-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-Information-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DiversityIndication-RL-AdditionRspTDD ::= CHOICE {
+ combining Combining-RL-AdditionRspTDD, -- Indicates whether the old Transport Bearer shall be reused or not
+ non-Combining Non-Combining-RL-AdditionRspTDD
+}
+
+Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID, -- Reference RL
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionRspTDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+DSCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-AdditionRspTDD ::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-AdditionRspTDD }}
+
+USCH-InformationResponseListIEs-RL-AdditionRspTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ uL-TimeSlot-ISCP-InfoLCR UL-TimeSlot-ISCP-LCR-Info,
+ ul-PhysCH-SF-Variation UL-PhysCH-SF-Variation,
+ dCH-Information DCH-Information-RL-AdditionRspTDD OPTIONAL,
+ dSCH-InformationResponseList DSCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ uSCH-InformationResponseList USCH-InformationResponseList-RL-AdditionRspTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponse-LCR-RL-AdditionRspTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE FDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureFDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureFDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureFDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureFDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureFDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureFDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD,
+ successful-RL-InformationRespList-RL-AdditionFailureFDD Successful-RL-InformationRespList-RL-AdditionFailureFDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF ProtocolIE-Single-Container {{ Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Successful-RL-InformationRespList-RL-AdditionFailureFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-2)) OF ProtocolIE-Single-Container {{ Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD }}
+
+Successful-RL-InformationRespItemIE-RL-AdditionFailureFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD CRITICALITY ignore TYPE Successful-RL-InformationRespItem-RL-AdditionFailureFDD PRESENCE mandatory}
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ rL-Set-ID RL-Set-ID,
+ received-total-wide-band-power Received-total-wide-band-power-Value,
+ diversityIndication DiversityIndication-RL-AdditionFailureFDD,
+ sSDT-SupportIndicator SSDT-SupportIndicator,
+ iE-Extensions ProtocolExtensionContainer { { Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Successful-RL-InformationRespItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-ActivationIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-ActivationIndicator PRESENCE optional},
+ ...
+}
+
+DiversityIndication-RL-AdditionFailureFDD ::= CHOICE {
+ combining Combining-RL-AdditionFailureFDD,
+ non-Combining Non-Combining-RL-AdditionFailureFDD
+}
+
+Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Combining-RL-AdditionFailureFDD ::= SEQUENCE {
+ dCH-InformationResponse DCH-InformationResponse,
+ iE-Extensions ProtocolExtensionContainer { { Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Non-CombiningItem-RL-AdditionFailureFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ADDITION FAILURE TDD
+--
+-- **************************************************************
+
+RadioLinkAdditionFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkAdditionFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkAdditionFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkAdditionFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CauseLevel-RL-AdditionFailureTDD CRITICALITY ignore TYPE CauseLevel-RL-AdditionFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkAdditionFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-AdditionFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-RL-AdditionFailureTDD,
+ rLSpecificCause RLSpecificCauseList-RL-AdditionFailureTDD,
+ ...
+}
+
+GeneralCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-AdditionFailureTDD ::= SEQUENCE {
+ unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLSpecificCauseItem-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-RL-InformationRespItem-RL-AdditionFailureTDD ::= ProtocolIE-Single-Container { {Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD} }
+
+Unsuccessful-RL-InformationRespItemIE-RL-AdditionFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD CRITICALITY ignore TYPE Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD PRESENCE mandatory }
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DL-DPCH-Information-RL-ReconfPrepFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional } |
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional } |
+ { ID id-DCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCH-ModifyList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-DSCHs-to-Add-FDD CRITICALITY reject TYPE DSCH-FDD-Information PRESENCE optional } |
+ { ID id-DSCH-DeleteList-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteList-RL-ReconfPrepFDD PRESENCE optional } |
+ { ID id-TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD CRITICALITY reject TYPE TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD
+ PRESENCE optional } |
+ { ID id-RL-InformationList-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfPrepFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationPrepareFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DSCH-FDD-Common-Information CRITICALITY ignore EXTENSION DSCH-FDD-Common-Information PRESENCE optional }|
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ ul-ScramblingCode UL-ScramblingCode OPTIONAL,
+ ul-SIR-Target UL-SIR OPTIONAL,
+ minUL-ChannelisationCodeLength MinUL-ChannelisationCodeLength OPTIONAL,
+ maxNrOfUL-DPDCHs MaxNrOfUL-DPDCHs OPTIONAL,
+ -- This IE shall be present if minUL-ChannelisationCodeLength Ie is set to 4
+ ul-PunctureLimit PunctureLimit OPTIONAL,
+ tFCS TFCS OPTIONAL,
+ ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat OPTIONAL,
+ diversityMode DiversityMode OPTIONAL,
+ sSDT-CellIDLength SSDT-CellID-Length OPTIONAL,
+ s-FieldLength S-FieldLength OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD ::= SEQUENCE {
+ tFCS TFCS OPTIONAL,
+ dl-DPCH-SlotFormat DL-DPCH-SlotFormat OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ -- This IE shall be present if the DL DPCH Slot Format IE is set to any of the values from 12 to 16
+ multiplexingPosition MultiplexingPosition OPTIONAL,
+ pDSCH-CodeMapping PDSCH-CodeMapping OPTIONAL,
+ pDSCH-RL-ID RL-ID OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepFDD
+
+DCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-ModifyList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-ModifyItemIE-RL-ReconfPrepFDD }}
+
+DSCH-ModifyItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-ModifyItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-ModifyItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ dl-TransportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-ModifyItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+DSCH-DeleteList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF ProtocolIE-Single-Container {{DSCH-DeleteItemIE-RL-ReconfPrepFDD }}
+
+DSCH-DeleteItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-DeleteItem-RL-ReconfPrepFDD CRITICALITY reject TYPE DSCH-DeleteItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-DeleteItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TFCI2-BearerSpecificInformation-RL-ReconfPrepFDD ::= CHOICE {
+ addOrModify AddOrModify-TFCI2-RL-ReconfPrepFDD,
+ delete NULL
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD ::= SEQUENCE {
+ toAWS ToAWS,
+ toAWE ToAWE,
+ iE-Extensions ProtocolExtensionContainer { { AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AddOrModify-TFCI2-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY reject EXTENSION TFCI2BearerRequestIndicator PRESENCE optional }|
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+RL-InformationList-RL-ReconfPrepFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfPrepFDD }}
+
+RL-InformationItemIE-RL-ReconfPrepFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfPrepFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfPrepFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfPrepFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ sSDT-Indication SSDT-Indication OPTIONAL,
+ sSDT-Cell-Identity SSDT-Cell-Identity OPTIONAL,
+ -- The IE shall be present if the SSDT Indication IE is set to "SSDT Active in the UE"
+ transmitDiversityIndicator TransmitDiversityIndicator OPTIONAL,
+ -- This IE shall be present if Diversity Mode IE is present in UL DPCH Information IE and it is not set to "none"
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfPrepFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfPrepFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SSDT-CellIDforEDSCHPC CRITICALITY ignore EXTENSION SSDT-Cell-Identity PRESENCE conditional }|
+ -- This IE shall be present if Enhanced DSCH PC IE is present in the DSCH Common Information IE.
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-DL-DPCH-TimingAdjustment CRITICALITY reject EXTENSION DL-DPCH-TimingAdjustment PRESENCE optional }|
+ { ID id-Qth-Parameter CRITICALITY ignore EXTENSION Qth-Parameter PRESENCE optional }|
+ { ID id-Primary-CPICH-Usage-for-Channel-Estimation CRITICALITY ignore EXTENSION Primary-CPICH-Usage-for-Channel-Estimation PRESENCE optional }|
+ { ID id-Secondary-CPICH-Information-Change CRITICALITY ignore EXTENSION Secondary-CPICH-Information-Change PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION PREPARE TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationPrepareTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationPrepareTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationPrepareTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-DSCHs-to-Add-TDD CRITICALITY reject TYPE DSCH-TDD-Information PRESENCE optional }|
+ { ID id-DSCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE DSCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-ModifyList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-ModifyList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-USCH-Information-Add CRITICALITY reject TYPE USCH-Information PRESENCE optional }|
+ { ID id-USCH-Information-DeleteList-RL-ReconfPrepTDD CRITICALITY reject TYPE USCH-Information-DeleteList-RL-ReconfPrepTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject TYPE RL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 1st RL IE repetition
+ ...
+}
+
+RadioLinkReconfigurationPrepareTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional }|
+ { ID id-PDSCH-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION MultipleRL-Information-RL-ReconfPrepTDD PRESENCE optional },
+-- This RL Information is the for the 2nd and beyond repetition of RL information,
+ ...
+}
+
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationAdd-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+-- This Information is the for the first RL repetition, TPCinformation for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional}|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link repetitions.
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationList UL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationListLCR UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD.
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-DPCH-LCR-InformationModify-AddList CRITICALITY reject EXTENSION UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only.
+-- This Information is the for the first RL repetition, SIR Target information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-UplinkStepSize-InformationModify-LCR-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-UplinkStepSize-LCR PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+-- This Information is the for the first RL repetition, Step Size information for RL repetitions 2 and on, should be defined in MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+MultipleRL-UL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ ul-DPCH-InformationAddList UL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationModifyList UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationDeleteList UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ ul-DPCH-InformationAddListLCR UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ ul-sir-target UL-SIR OPTIONAL,
+ tDD-TPC-UplinkStepSize-LCR TDD-TPC-UplinkStepSize-LCR OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+
+MultipleRL-UL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-Information UL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ uL-Timeslot-InformationLCR UL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ uL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-TimeslotLCR-Information-RL-ReconfPrepTDD CRITICALITY reject EXTENSION UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-TimeslotLCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD -- Applicable to 1.28Mcps TDD only
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModify-ModifyList-RL-ReconfPrepTDDLCR ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDDLCR-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-UL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+UL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS,
+ tFCI-Coding TFCI-Coding,
+ punctureLimit PunctureLimit,
+ cCTrCH-TPCList CCTrCH-TPCAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Initial-DL-Power-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationAdd-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This DL step size is the for the first RL repetition, DL step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This DL Power inforrmation is the for the first RL repetition, DL power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-ul-DPCH-InformationList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetition,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationList DL-DPCH-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationListLCR DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD OPTIONAL,
+ cCTrCH-Initial-DL-Power DL-Power OPTIONAL,
+ tDD-TPC-DownlinkStepSize TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationAdd-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCAddList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCAddItem-RL-ReconfPrepTDD -- Applicable to 3.84Mcps TDD only
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationAddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationAddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationAddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationAddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationAddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ tFCI-Coding TFCI-Coding OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ cCTrCH-TPCList CCTrCH-TPCModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+-- This DPCH Information is the for the first RL repetition, DPCH information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-TDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-TPC-DownlinkStepSize PRESENCE optional}|
+-- This Step Size Information is the for the first RL repetition, step size information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+-- This power Information is the for the first RL repetition, power information for RL repetitions 2 and on, should be defined in MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD
+ { ID id-RL-ID CRITICALITY ignore EXTENSION RL-ID PRESENCE optional }|
+-- This is the RL ID for the first RL repetition
+ { ID id-multipleRL-dl-DPCH-InformationModifyList CRITICALITY reject EXTENSION MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD PRESENCE optional },
+-- This DPCH Information is the for the 2nd and beyond RL repetitions,
+ ...
+}
+
+MultipleRL-DL-DPCH-InformationModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD ::= SEQUENCE {
+ dl-DPCH-InformationAddList DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationModifyList DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationDeleteList DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD OPTIONAL,
+ dl-DPCH-InformationAddListLCR DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD OPTIONAL,
+ tDD-TPC-DownlinkStepSize-InformationModify-RL-ReconfPrepTDD TDD-TPC-DownlinkStepSize OPTIONAL,
+ cCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ cCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfPrepTDD DL-Power OPTIONAL,
+ rL-ID RL-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+...
+}
+
+MultipleRL-DL-DPCH-InformationModifyListIE-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-TPCModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF CCTrCH-TPCModifyItem-RL-ReconfPrepTDD
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CCTrCH-TPCModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-AddList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD }}
+-- Applicable to 3.84Mcps TDD only
+
+DL-DPCH-InformationModify-AddListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-Information DL-Timeslot-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddList-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-DPCHOffset TDD-DPCHOffset,
+ dL-Timeslot-InformationLCR DL-TimeslotLCR-Information,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-AddItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-ModifyListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-DPCHOffset TDD-DPCHOffset OPTIONAL,
+ dL-Timeslot-InformationAddModify-ModifyList-RL-ReconfPrepTDD DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD CRITICALITY reject EXTENSION DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD PRESENCE optional },
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-Maximum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ -- Applicable to 1.28Mcps TDD only
+ { ID id-Minimum-DL-Power-Modify-LCR-InformationModify-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+DL-Code-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (0..maxNrOfDPCHs)) OF DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+DL-Code-LCR-InformationModify-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHLCRs)) OF DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModify-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-TimeSlotFormat-LCR-ModifyItem-RL-ReconfPrepTDD CRITICALITY reject EXTENSION TDD-DL-DPCH-TimeSlotFormat-LCR PRESENCE optional},
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteList-RL-ReconfPrepTDD ::= ProtocolIE-Single-Container {{ DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD }}
+
+DL-DPCH-InformationModify-DeleteListIEs-RL-ReconfPrepTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD CRITICALITY reject TYPE DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD PRESENCE mandatory }
+}
+
+DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDPCHs)) OF DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dPCH-ID DPCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-InformationModify-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfPrepTDD
+
+DCH-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ cCTrCH-ID CCTrCH-ID OPTIONAL,
+ -- DL CCTrCH in which the DSCH is mapped
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ frameHandlingPriority FrameHandlingPriority OPTIONAL,
+ toAWS ToAWS OPTIONAL,
+ toAWE ToAWE OPTIONAL,
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DSCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ -- Shall be ignored if bearer establishment with ALCAP.
+ ...
+}
+
+DSCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-Information-ModifyList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-ModifyItem-RL-ReconfPrepTDD
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ transportFormatSet TransportFormatSet OPTIONAL,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ cCTrCH-ID CCTrCH-ID OPTIONAL, -- UL CCTrCH in which the USCH is mapped
+ transportBearerRequestIndicator TransportBearerRequestIndicator,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-Information-ModifyItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-bindingID CRITICALITY ignore EXTENSION BindingID PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-transportlayeraddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ -- Shall be ignored if bearer establishment with ALCAP.
+ { ID id-TnlQos CRITICALITY ignore EXTENSION TnlQos PRESENCE optional },
+ ...
+}
+
+USCH-Information-DeleteList-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-Information-DeleteItem-RL-ReconfPrepTDD
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+USCH-Information-DeleteItem-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MultipleRL-Information-RL-ReconfPrepTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfPrepTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfPrepTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Information-RL-ReconfPrepTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Information-RL-ReconfPrepTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-InitDL-Power CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-TimeslotISCP-LCR-InfoList-RL-ReconfPrepTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION READY
+--
+-- **************************************************************
+
+RadioLinkReconfigurationReady ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationReady-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationReady-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationReady-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-InformationResponseList-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfReady PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationReady-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfReady ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationResponseItemIE-RL-ReconfReady}}
+
+RL-InformationResponseItemIE-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfReady CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfReady PRESENCE mandatory }
+}
+
+RL-InformationResponseItem-RL-ReconfReady ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfReady DCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ dSCH-InformationResponseList-RL-ReconfReady DSCH-InformationResponseList-RL-ReconfReady OPTIONAL,
+ uSCH-InformationResponseList-RL-ReconfReady USCH-InformationResponseList-RL-ReconfReady OPTIONAL, -- TDD only
+ tFCI2-BearerInformationResponse TFCI2-BearerInformationResponse OPTIONAL,
+ -- FDD only. There shall be only one TFCI2 bearer per Node B Communication Context.
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfReady-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfReady-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional},
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+DSCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ DSCH-InformationResponseListIEs-RL-ReconfReady }}
+
+DSCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-DSCH-InformationResponse CRITICALITY ignore TYPE DSCH-InformationResponse PRESENCE mandatory }
+}
+
+USCH-InformationResponseList-RL-ReconfReady::= ProtocolIE-Single-Container {{ USCH-InformationResponseListIEs-RL-ReconfReady }}
+
+USCH-InformationResponseListIEs-RL-ReconfReady NBAP-PROTOCOL-IES ::= {
+ { ID id-USCH-InformationResponse CRITICALITY ignore TYPE USCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CauseLevel-RL-ReconfFailure CRITICALITY ignore TYPE CauseLevel-RL-ReconfFailure PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-RL-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-RL-ReconfFailure,
+ rLSpecificCause RLSpecificCauseList-RL-ReconfFailure,
+ ...
+}
+
+GeneralCauseList-RL-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GeneralCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RLSpecificCauseList-RL-ReconfFailure ::= SEQUENCE {
+ rL-ReconfigurationFailureList-RL-ReconfFailure RL-ReconfigurationFailureList-RL-ReconfFailure OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RLSpecificCauseItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RLSpecificCauseItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-ReconfigurationFailureList-RL-ReconfFailure ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-ReconfigurationFailureItemIE-RL-ReconfFailure}}
+
+RL-ReconfigurationFailureItemIE-RL-ReconfFailure NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-ReconfigurationFailureItem-RL-ReconfFailure CRITICALITY ignore TYPE RL-ReconfigurationFailureItem-RL-ReconfFailure PRESENCE mandatory}
+}
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-ReconfigurationFailureItem-RL-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION COMMIT
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCommit ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCommit-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCommit-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCommit-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY ignore TYPE CFN PRESENCE mandatory }|
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+RadioLinkReconfigurationCommit-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION CANCEL
+--
+-- **************************************************************
+
+RadioLinkReconfigurationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationCancel-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationCancel-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationCancel-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory },
+ ...
+}
+
+RadioLinkReconfigurationCancel-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE UL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-DL-DPCH-Information-RL-ReconfRqstFDD CRITICALITY reject TYPE DL-DPCH-Information-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-FDD-DCHs-to-Modify CRITICALITY reject TYPE FDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-FDD CRITICALITY reject TYPE DCH-FDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstFDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-RL-InformationList-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationList-RL-ReconfRqstFDD PRESENCE optional }|
+ { ID id-Transmission-Gap-Pattern-Sequence-Information CRITICALITY reject TYPE Transmission-Gap-Pattern-Sequence-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information CRITICALITY reject EXTENSION HSDSCH-FDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+
+UL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ ul-TFCS TFCS OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-DPCH-Information-RL-ReconfRqstFDD ::= SEQUENCE {
+ dl-TFCS TFCS OPTIONAL,
+ tFCI-SignallingMode TFCI-SignallingMode OPTIONAL,
+ limitedPowerIncrease LimitedPowerIncrease OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DL-DPCH-Information-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstFDD
+
+DCH-DeleteItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+DCH-DeleteItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-ReconfRqstFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-ReconfRqstFDD}}
+
+RL-InformationItemIE-RL-ReconfRqstFDD NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-ReconfRqstFDD CRITICALITY reject TYPE RL-InformationItem-RL-ReconfRqstFDD PRESENCE mandatory}
+}
+
+RL-InformationItem-RL-ReconfRqstFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ dl-CodeInformation FDD-DL-CodeInformation OPTIONAL,
+-- The IE shall be present if the Transmission Gap Pattern Sequence Information IE is included and the indicated Downlink Compressed Mode method for at least one of the included Transmission Gap Pattern Sequence is set to "SF/2".
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DLReferencePower CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+RadioLinkReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD PRESENCE optional } |
+ { ID id-TDD-DCHs-to-Modify CRITICALITY reject TYPE TDD-DCHs-to-Modify PRESENCE optional }|
+ { ID id-DCHs-to-Add-TDD CRITICALITY reject TYPE DCH-TDD-Information PRESENCE optional }|
+ { ID id-DCH-DeleteList-RL-ReconfRqstTDD CRITICALITY reject TYPE DCH-DeleteList-RL-ReconfRqstTDD PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject TYPE RL-Information-RL-ReconfRqstTDD PRESENCE optional },
+-- This RL-Information-RL-ReconfRqstTDD is the first RL information repetition in the RL-Information List. Repetition 2 and on, should be defined in Multiple-RL-Information-RL-ReconfRqstTDD,
+ ...
+}
+
+RadioLinkReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBearerRequestIndicator CRITICALITY reject EXTENSION SignallingBearerRequestIndicator PRESENCE optional }|
+ { ID id-RL-Information-RL-ReconfRqstTDD CRITICALITY reject EXTENSION Multiple-RL-Information-RL-ReconfRqstTDD PRESENCE optional }|
+--Includes the 2nd through the max number of radio link information repetitions.
+ { ID id-HSDSCH-TDD-Information CRITICALITY reject EXTENSION HSDSCH-TDD-Information PRESENCE optional }|
+ { ID id-HSDSCH-Information-to-Modify-Unsynchronised CRITICALITY reject EXTENSION HSDSCH-Information-to-Modify-Unsynchronised PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Add CRITICALITY reject EXTENSION HSDSCH-MACdFlows-Information PRESENCE optional }|
+ { ID id-HSDSCH-MACdFlows-to-Delete CRITICALITY reject EXTENSION HSDSCH-MACdFlows-to-Delete PRESENCE optional }|
+ { ID id-HSDSCH-RNTI CRITICALITY reject EXTENSION HSDSCH-RNTI PRESENCE conditional }|
+ -- The IE shall be present if HS-PDSCH RL ID IE is present.
+ { ID id-HSPDSCH-RL-ID CRITICALITY reject EXTENSION RL-ID PRESENCE optional },
+ ...
+}
+
+UL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+{ ID id-UL-SIRTarget CRITICALITY reject EXTENSION UL-SIR PRESENCE optional },
+ -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+UL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+UL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationModifyItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ tFCS TFCS OPTIONAL,
+ punctureLimit PunctureLimit OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-CCTrCH-Maximum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional }|
+ { ID id-CCTrCH-Minimum-DL-Power-InformationModify-RL-ReconfRqstTDD CRITICALITY ignore EXTENSION DL-Power PRESENCE optional },
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE {
+ dL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-DPCH-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ maxPowerLCR DL-Power OPTIONAL,
+ minPowerLCR DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModify-ModifyItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CCTrCH-InformationDeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD}}
+
+DL-CCTrCH-InformationDeleteItemIE-RL-ReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD CRITICALITY notify TYPE DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD PRESENCE mandatory}
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CCTrCH-InformationDeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-DeleteList-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-DeleteItem-RL-ReconfRqstTDD
+
+DCH-DeleteItem-RL-ReconfRqstTDD ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-DeleteItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Multiple-RL-Information-RL-ReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs-1)) OF RL-Information-RL-ReconfRqstTDD
+--Includes the 2nd through the max number of radio link information repetitions.
+
+RL-Information-RL-ReconfRqstTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ maxDL-Power DL-Power OPTIONAL,
+ minDL-Power DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-ReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-ReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-RL-Specific-DCH-Info CRITICALITY ignore EXTENSION RL-Specific-DCH-Info PRESENCE optional }|
+ { ID id-UL-Synchronisation-Parameters-LCR CRITICALITY ignore EXTENSION UL-Synchronisation-Parameters-LCR PRESENCE optional }, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationResponseList-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseList-RL-ReconfRsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TargetCommunicationControlPortID CRITICALITY ignore EXTENSION CommunicationControlPortID PRESENCE optional }|
+ { ID id-HSDSCH-FDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-FDD-Information-Response PRESENCE optional }|
+ -- FDD only
+ { ID id-HSDSCH-TDD-Information-Response CRITICALITY ignore EXTENSION HSDSCH-TDD-Information-Response PRESENCE optional },
+ -- TDD only
+ ...
+}
+
+RL-InformationResponseList-RL-ReconfRsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationResponseItemIE-RL-ReconfRsp}}
+
+RL-InformationResponseItemIE-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationResponseItem-RL-ReconfRsp CRITICALITY ignore TYPE RL-InformationResponseItem-RL-ReconfRsp PRESENCE mandatory}
+}
+
+RL-InformationResponseItem-RL-ReconfRsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dCH-InformationResponseList-RL-ReconfRsp DCH-InformationResponseList-RL-ReconfRsp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationResponseItem-RL-ReconfRsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationResponseItem-RL-ReconfRsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DL-PowerBalancing-UpdatedIndicator CRITICALITY ignore EXTENSION DL-PowerBalancing-UpdatedIndicator PRESENCE optional },
+ -- FDD only
+ ...
+}
+
+DCH-InformationResponseList-RL-ReconfRsp::= ProtocolIE-Single-Container {{ DCH-InformationResponseListIEs-RL-ReconfRsp }}
+
+DCH-InformationResponseListIEs-RL-ReconfRsp NBAP-PROTOCOL-IES ::= {
+ { ID id-DCH-InformationResponse CRITICALITY ignore TYPE DCH-InformationResponse PRESENCE mandatory }
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION REQUEST
+--
+-- **************************************************************
+
+RadioLinkDeletionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CRNC-CommunicationContextID CRITICALITY reject TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-RL-informationList-RL-DeletionRqst CRITICALITY notify TYPE RL-informationList-RL-DeletionRqst PRESENCE mandatory },
+ ...
+}
+
+RadioLinkDeletionRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-informationList-RL-DeletionRqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-informationItemIE-RL-DeletionRqst}}
+
+RL-informationItemIE-RL-DeletionRqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-informationItem-RL-DeletionRqst CRITICALITY notify TYPE RL-informationItem-RL-DeletionRqst PRESENCE mandatory}
+}
+
+RL-informationItem-RL-DeletionRqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-informationItem-RL-DeletionRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RL-informationItem-RL-DeletionRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK DELETION RESPONSE
+--
+-- **************************************************************
+
+RadioLinkDeletionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkDeletionResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkDeletionResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkDeletionResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RadioLinkDeletionResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DL POWER CONTROL REQUEST FDD
+--
+-- **************************************************************
+
+DL-PowerControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-PowerAdjustmentType CRITICALITY ignore TYPE PowerAdjustmentType PRESENCE mandatory} |
+ { ID id-DLReferencePower CRITICALITY ignore TYPE DL-Power PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common'
+ { ID id-InnerLoopDLPCStatus CRITICALITY ignore TYPE InnerLoopDLPCStatus PRESENCE optional } |
+ { ID id-DLReferencePowerList-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationList-DL-PC-Rqst PRESENCE conditional } |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Individual'
+ { ID id-MaxAdjustmentStep CRITICALITY ignore TYPE MaxAdjustmentStep PRESENCE conditional} |
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentPeriod CRITICALITY ignore TYPE AdjustmentPeriod PRESENCE conditional }|
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ { ID id-AdjustmentRatio CRITICALITY ignore TYPE ScaledAdjustmentRatio PRESENCE conditional },
+ -- This IE shall be present if the Adjustment Type IE is set to 'Common' or 'Individual'
+ ...
+}
+
+DL-PowerControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-ReferencePowerInformationList-DL-PC-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{DL-ReferencePowerInformationItemIE-DL-PC-Rqst }}
+
+DL-ReferencePowerInformationItemIE-DL-PC-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-DL-ReferencePowerInformationItem-DL-PC-Rqst CRITICALITY ignore TYPE DL-ReferencePowerInformationItem-DL-PC-Rqst PRESENCE mandatory
+}
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dl-ReferencePower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DL-ReferencePowerInformationItem-DL-PC-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DL POWER TIMESLOT CONTROL REQUEST TDD
+--
+-- **************************************************************
+
+DL-PowerTimeslotControlRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DL-PowerTimeslotControlRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DL-PowerTimeslotControlRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DL-PowerTimeslotControlRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-TimeslotISCPInfo CRITICALITY ignore TYPE DL-TimeslotISCPInfo PRESENCE optional },
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+ ...
+}
+
+DL-PowerTimeslotControlRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-TimeslotISCPInfoList-LCR-DL-PC-RqstTDD CRITICALITY ignore EXTENSION DL-TimeslotISCPInfoLCR PRESENCE optional }|
+ -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ { ID id-PrimCCPCH-RSCP-DL-PC-RqstTDD CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP PRESENCE optional }|
+ { ID id-PrimaryCCPCH-RSCP-Delta CRITICALITY ignore EXTENSION PrimaryCCPCH-RSCP-Delta PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY reject TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY reject TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rqst CRITICALITY reject TYPE DedicatedMeasurementObjectType-DM-Rqst PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementType CRITICALITY reject TYPE DedicatedMeasurementType PRESENCE mandatory } |
+ { ID id-MeasurementFilterCoefficient CRITICALITY reject TYPE MeasurementFilterCoefficient PRESENCE optional } |
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory } |
+ { ID id-CFNReportingIndicator CRITICALITY reject TYPE FNReportingIndicator PRESENCE mandatory } |
+ { ID id-CFN CRITICALITY reject TYPE CFN PRESENCE optional } ,
+ ...
+}
+
+DedicatedMeasurementInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NumberOfReportedCellPortions CRITICALITY reject EXTENSION NumberOfReportedCellPortions PRESENCE conditional },
+ -- The IE shall be present if the Dedicated Measurement Type IE is set to "Best Cell Portions", FDD only.
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rqst ::= CHOICE {
+ rL RL-DM-Rqst,
+ rLS RL-Set-DM-Rqst, -- for FDD only
+ all-RL AllRL-DM-Rqst,
+ all-RLS AllRL-Set-DM-Rqst, -- for FDD only
+ ...
+}
+
+RL-DM-Rqst ::= SEQUENCE {
+ rL-InformationList RL-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rqst }}
+
+RL-InformationItemIE-DM-Rqst NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rqst CRITICALITY reject TYPE RL-InformationItem-DM-Rqst PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PUSCH-Info-DM-Rqst CRITICALITY reject EXTENSION PUSCH-Info-DM-Rqst PRESENCE optional}|
+ -- TDD only
+ { ID id-HSSICH-Info-DM-Rqst CRITICALITY reject EXTENSION HSSICH-Info-DM-Rqst PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+HSSICH-Info-DM-Rqst ::= SEQUENCE (SIZE (1..maxNrOfHSSICHs)) OF HS-SICH-ID
+
+RL-Set-DM-Rqst ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rqst RL-Set-InformationList-DM-Rqst,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rqst-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rqst ::= SEQUENCE (SIZE(1..maxNrOfRLSets)) OF RL-Set-InformationItem-DM-Rqst
+
+RL-Set-InformationItem-DM-Rqst ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllRL-DM-Rqst ::= NULL
+
+
+AllRL-Set-DM-Rqst ::= NULL
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION RESPONSE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rsp CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rsp PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rsp ::= CHOICE {
+ rL RL-DM-Rsp,
+ rLS RL-Set-DM-Rsp, -- for FDD only
+ all-RL RL-DM-Rsp,
+ all-RLS RL-Set-DM-Rsp, -- for FDD only
+ ...
+}
+
+RL-DM-Rsp ::= SEQUENCE {
+ rL-InformationList-DM-Rsp RL-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rsp }}
+
+RL-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-InformationItem-DM-Rsp PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rsp CRITICALITY reject EXTENSION PUSCH-Info-DM-Rsp PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rsp CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rsp ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rsp RL-Set-InformationList-DM-Rsp,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rsp-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rsp ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rsp }}
+
+RL-Set-InformationItemIE-DM-Rsp NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rsp CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rsp PRESENCE mandatory}
+}
+
+RL-Set-InformationItem-DM-Rsp ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValue DedicatedMeasurementValue,
+ cFN CFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rsp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT INITIATION FAILURE
+--
+-- **************************************************************
+
+DedicatedMeasurementInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DedicatedMeasurementInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT REPORT
+--
+-- **************************************************************
+
+DedicatedMeasurementReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementReport-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-DedicatedMeasurementObjectType-DM-Rprt CRITICALITY ignore TYPE DedicatedMeasurementObjectType-DM-Rprt PRESENCE mandatory } ,
+ ...
+}
+
+DedicatedMeasurementReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DedicatedMeasurementObjectType-DM-Rprt ::= CHOICE {
+ rL RL-DM-Rprt,
+ rLS RL-Set-DM-Rprt, -- for FDD only
+ all-RL RL-DM-Rprt,
+ all-RLS RL-Set-DM-Rprt, -- for FDD only
+ ...
+}
+
+RL-DM-Rprt ::= SEQUENCE {
+ rL-InformationList-DM-Rprt RL-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RLItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-DM-Rprt }}
+
+RL-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-ID RL-ID,
+ dPCH-ID DPCH-ID OPTIONAL, -- for TDD only
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-Info-DM-Rprt CRITICALITY reject EXTENSION PUSCH-Info-DM-Rprt PRESENCE optional}|
+ -- TDD only
+ {ID id-HSSICH-Info-DM-Rprt CRITICALITY reject EXTENSION HS-SICH-ID PRESENCE optional},
+ -- TDD only
+ ...
+}
+
+PUSCH-Info-DM-Rprt ::= SEQUENCE (SIZE (0..maxNrOfPUSCHs)) OF PUSCH-ID
+
+RL-Set-DM-Rprt ::= SEQUENCE {
+ rL-Set-InformationList-DM-Rprt RL-Set-InformationList-DM-Rprt,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-DM-Rprt-ExtIEs } } OPTIONAL,
+ ...
+}
+
+RL-SetItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-DM-Rprt ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-DM-Rprt }}
+
+RL-Set-InformationItemIE-DM-Rprt NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-DM-Rprt CRITICALITY ignore TYPE RL-Set-InformationItem-DM-Rprt PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-DM-Rprt ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ dedicatedMeasurementValueInformation DedicatedMeasurementValueInformation,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-DM-Rprt-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-DM-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT TERMINATION REQUEST
+--
+-- **************************************************************
+
+DedicatedMeasurementTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DEDICATED MEASUREMENT FAILURE INDICATION
+--
+-- **************************************************************
+
+DedicatedMeasurementFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DedicatedMeasurementFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{DedicatedMeasurementFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+DedicatedMeasurementFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-MeasurementID CRITICALITY ignore TYPE MeasurementID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+DedicatedMeasurementFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK FAILURE INDICATION
+--
+-- **************************************************************
+
+RadioLinkFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-FailureInd CRITICALITY ignore TYPE Reporting-Object-RL-FailureInd PRESENCE mandatory } ,
+ ...
+}
+
+RadioLinkFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-FailureInd ::= CHOICE {
+ rL RL-RL-FailureInd,
+ rL-Set RL-Set-RL-FailureInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-FailureInd --TDD only
+}
+
+RL-RL-FailureInd ::= SEQUENCE {
+ rL-InformationList-RL-FailureInd RL-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{ RL-InformationItemIE-RL-FailureInd}}
+
+RL-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-FailureInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-FailureInd RL-Set-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-FailureInd }}
+
+RL-Set-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-FailureInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-FailureInd PRESENCE mandatory }
+}
+
+RL-Set-InformationItem-RL-FailureInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-FailureInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-FailureInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-FailureInd CCTrCH-InformationList-RL-FailureInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-FailureInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-FailureInd}}
+
+CCTrCH-InformationItemIE-RL-FailureInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-FailureInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-FailureInd PRESENCE mandatory}
+ }
+
+CCTrCH-InformationItem-RL-FailureInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-FailureInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-FailureInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PREEMPTION REQUIRED INDICATION
+--
+-- **************************************************************
+
+RadioLinkPreemptionRequiredIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkPreemptionRequiredIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkPreemptionRequiredIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-RL-InformationList-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationList-RL-PreemptRequiredInd PRESENCE optional },
+ ...
+}
+
+RadioLinkPreemptionRequiredIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-PreemptRequiredInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container { {RL-InformationItemIE-RL-PreemptRequiredInd}}
+
+RL-InformationItemIE-RL-PreemptRequiredInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-PreemptRequiredInd CRITICALITY ignore TYPE RL-InformationItem-RL-PreemptRequiredInd PRESENCE mandatory },
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { {RL-InformationItem-RL-PreemptRequiredInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-InformationItem-RL-PreemptRequiredInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK RESTORE INDICATION
+--
+-- **************************************************************
+
+RadioLinkRestoreIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkRestoreIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkRestoreIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkRestoreIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Reporting-Object-RL-RestoreInd CRITICALITY ignore TYPE Reporting-Object-RL-RestoreInd PRESENCE mandatory },
+ ...
+}
+
+RadioLinkRestoreIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Reporting-Object-RL-RestoreInd ::= CHOICE {
+ rL RL-RL-RestoreInd, --TDD only
+ rL-Set RL-Set-RL-RestoreInd, --FDD only
+ ...,
+ cCTrCH CCTrCH-RL-RestoreInd --TDD only
+}
+
+RL-RL-RestoreInd ::= SEQUENCE {
+ rL-InformationList-RL-RestoreInd RL-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RLItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RLItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {{RL-InformationItemIE-RL-RestoreInd}}
+
+RL-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-InformationItem-RL-RestoreInd PRESENCE mandatory}
+ }
+
+RL-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-InformationList-RL-RestoreInd RL-Set-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { RL-SetItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+RL-SetItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RL-Set-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfRLSets)) OF ProtocolIE-Single-Container {{ RL-Set-InformationItemIE-RL-RestoreInd }}
+
+RL-Set-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-RL-Set-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE RL-Set-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+RL-Set-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ rL-Set-ID RL-Set-ID,
+ iE-Extensions ProtocolExtensionContainer { { RL-Set-InformationItem-RL-RestoreInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RL-Set-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-RL-RestoreInd ::= SEQUENCE {
+ rL-ID RL-ID,
+ cCTrCH-InformationList-RL-RestoreInd CCTrCH-InformationList-RL-RestoreInd,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCHItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCHItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CCTrCH-InformationList-RL-RestoreInd ::= SEQUENCE (SIZE (1..maxNrOfCCTrCHs)) OF ProtocolIE-Single-Container {{ CCTrCH-InformationItemIE-RL-RestoreInd}}
+
+CCTrCH-InformationItemIE-RL-RestoreInd NBAP-PROTOCOL-IES ::= {
+ { ID id-CCTrCH-InformationItem-RL-RestoreInd CRITICALITY ignore TYPE CCTrCH-InformationItem-RL-RestoreInd PRESENCE mandatory }
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd ::= SEQUENCE {
+ cCTrCH-ID CCTrCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { CCTrCH-InformationItem-RL-RestoreInd-ExtIEs } } OPTIONAL,
+ ...
+ }
+
+CCTrCH-InformationItem-RL-RestoreInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMPRESSED MODE COMMAND FDD
+--
+-- **************************************************************
+
+CompressedModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CompressedModeCommand-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CompressedModeCommand-Extensions}} OPTIONAL,
+ ...
+}
+
+CompressedModeCommand-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory } |
+ { ID id-Active-Pattern-Sequence-Information CRITICALITY ignore TYPE Active-Pattern-Sequence-Information PRESENCE mandatory },
+ ...
+}
+
+CompressedModeCommand-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ErrorIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+ErrorIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE optional } |
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+ErrorIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs NBAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST FDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-ConfigurationGenerationID CRITICALITY reject TYPE ConfigurationGenerationID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-MaxPower-PSCH-ReconfRqst CRITICALITY reject TYPE MaximumTransmissionPower PRESENCE optional }|
+ { ID id-HS-PDSCH-HS-SCCH-ScramblingCode-PSCH-ReconfRqst CRITICALITY reject TYPE DL-ScramblingCode PRESENCE optional }|
+ { ID id-HS-PDSCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-PDSCH-FDD-Code-Information PRESENCE optional }|
+ { ID id-HS-SCCH-FDD-Code-Information-PSCH-ReconfRqst CRITICALITY reject TYPE HS-SCCH-FDD-Code-Information PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-SFN CRITICALITY reject TYPE SFN PRESENCE optional }|
+ { ID id-PDSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PDSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-AddList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-AddList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-ModifyList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-ModifyList-PSCH-ReconfRqst PRESENCE optional }|
+ { ID id-PUSCHSets-DeleteList-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCHSets-DeleteList-PSCH-ReconfRqst PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-HS-PDSCH-TDD-Information-PSCH-ReconfRqst CRITICALITY reject EXTENSION HS-PDSCH-TDD-Information-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst CRITICALITY reject EXTENSION Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst PRESENCE optional } |
+ { ID id-ConfigurationGenerationID CRITICALITY reject EXTENSION ConfigurationGenerationID PRESENCE optional },
+ ...
+}
+
+PDSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-AddItem-PSCH-ReconfRqst
+
+PDSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL, -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PDSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PDSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+-- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+
+PDSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-PSCH-ReconfRqst DL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-PSCH-ReconfRqst DL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ dL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ dL-Code-InformationAddList-LCR-PSCH-ReconfRqst DL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ pDSCH-InformationList PDSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PDSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PDSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PDSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+
+}
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSs)) OF DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-InformationModifyList-PSCH-ReconfRqst DL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ dL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PDSCH-ModifyInformation-LCR-ModifyListIE-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfDLTSLCRs)) OF DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ dL-Code-LCR-InformationModifyList-PSCH-ReconfRqst DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHs)) OF DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCH-ID PDSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPDSCHSets)) OF PDSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-AddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-AddItem-PSCH-ReconfRqst
+
+PUSCHSets-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-AddList-PSCH-ReconfRqst OPTIONAL,
+ -- Mandatory for 3.84Mcps TDD, Not Applicable to 1.28Mcps TDD
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PUSCH-AddInformation-LCR-PSCH-ReconfRqst CRITICALITY reject EXTENSION PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst PRESENCE optional}, -- Mandatory for 1.28Mcps TDD, Not Applicable to 3.84Mcps TDD
+ ...
+}
+
+PUSCH-Information-AddList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-AddListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-AddListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-AddListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-AddItem-PSCH-ReconfRqst PRESENCE mandatory}
+}
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-PSCH-ReconfRqst UL-Timeslot-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationAddItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-PSCH-ReconfRqst UL-Code-InformationAddList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod,
+ repetitionLength RepetitionLength,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset,
+ uL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-AddInformation-LCR-AddItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1.. maxNrOfULTSLCRs)) OF UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tFCI-Presence TFCI-Presence,
+ uL-Code-InformationAddList-LCR-PSCH-ReconfRqst UL-Code-InformationAddList-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationAddList-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationAddItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-ModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-ModifyItem-PSCH-ReconfRqst
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ pUSCH-InformationList PUSCH-Information-ModifyList-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-Information-ModifyList-PSCH-ReconfRqst ::= ProtocolIE-Single-Container {{ PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst }}
+
+PUSCH-Information-ModifyListIEs-PSCH-ReconfRqst NBAP-PROTOCOL-IES ::= {
+ {ID id-PUSCH-Information-ModifyListIE-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-Information-ModifyItem-PSCH-ReconfRqst PRESENCE optional}|
+ {ID id-PUSCH-ModifyInformation-LCR-PSCH-ReconfRqst CRITICALITY reject TYPE PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst PRESENCE optional}
+}
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-PSCH-ReconfRqst UL-Timeslot-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-Information-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSs)) OF UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-InformationModifyList-PSCH-ReconfRqst UL-Code-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ repetitionPeriod RepetitionPeriod OPTIONAL,
+ repetitionLength RepetitionLength OPTIONAL,
+ tdd-PhysicalChannelOffset TDD-PhysicalChannelOffset OPTIONAL,
+ uL-Timeslot-InformationModifyList-LCR-PSCH-ReconfRqst UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+PUSCH-ModifyInformation-LCR-ModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfULTSLCRs)) OF UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tFCI-Presence TFCI-Presence OPTIONAL,
+ uL-Code-LCR-InformationModifyList-PSCH-ReconfRqst UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Timeslot-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Code-LCR-InformationModifyList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHs)) OF UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCH-ID PUSCH-ID,
+ tdd-ChannelisationCodeLCR TDD-ChannelisationCodeLCR,
+ iE-Extensions ProtocolExtensionContainer { { UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-Code-LCR-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PUSCHSets-DeleteList-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfPUSCHSets)) OF PUSCHSets-DeleteItem-PSCH-ReconfRqst
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ iE-Extensions ProtocolExtensionContainer { {PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PUSCHSets-DeleteItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ dL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst OPTIONAL,
+ dL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+HS-PDSCH-TDD-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-Information-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSs)) OF DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ dl-HS-PDSCH-Codelist-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+DL-HS-PDSCH-Timeslot-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfDLTSLCRs)) OF DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst::= SEQUENCE {
+ timeSlot TimeSlotLCR,
+ midambleShiftAndBurstType MidambleShiftLCR,
+ dl-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst,
+ maxHSDSCH-HSSCCH-Power MaximumTransmissionPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-HS-PDSCH-Timeslot-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-HS-PDSCH-Codelist-LCR-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSPDSCHs)) OF TDD-ChannelisationCode
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-Information-PSCH-ReconfRqst HS-SCCH-Information-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-Information-LCR-PSCH-ReconfRqst HS-SCCH-Information-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Add-To-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information HS-SICH-Information-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot,
+ midambleShiftAndBurstType MidambleShiftAndBurstType,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-Information-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode,
+ hS-SCCH-MaxPower DL-Power,
+ hS-SICH-Information-LCR HS-SICH-Information-LCR-PSCH-ReconfRqst,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR,
+ midambleShiftLCR MidambleShiftLCR,
+ tdd-ChannelisationCode TDD-ChannelisationCode,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-Information-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst::= SEQUENCE {
+ hS-SCCH-InformationModify-PSCH-ReconfRqst HS-SCCH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ hS-SCCH-InformationModify-LCR-PSCH-ReconfRqst HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Modify-HS-SCCH-Resource-Pool-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information HS-SICH-InformationModify-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlot TimeSlot OPTIONAL,
+ midambleShiftAndBurstType MidambleShiftAndBurstType OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SCCH-InformationModify-LCR-PSCH-ReconfRqst::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ first-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ second-TDD-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ hS-SCCH-MaxPower DL-Power OPTIONAL,
+ hS-SICH-Information-LCR HS-SICH-InformationModify-LCR-PSCH-ReconfRqst OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SCCH-InformationModifyItem-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst ::= SEQUENCE {
+ hsSICH-ID HS-SICH-ID,
+ timeSlotLCR TimeSlotLCR OPTIONAL,
+ midambleShiftLCR MidambleShiftLCR OPTIONAL,
+ tdd-ChannelisationCode TDD-ChannelisationCode OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HS-SICH-InformationModify-LCR-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-Pool-PSCH-ReconfRqst ::= SEQUENCE (SIZE (1..maxNrOfHSSCCHs)) OF Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst ::= SEQUENCE {
+ hS-SCCH-ID HS-SCCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Delete-From-HS-SCCH-Resource-PoolItem-PSCH-ReconfRqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PHYSICAL SHARED CHANNEL RECONFIGURATION FAILURE
+--
+-- **************************************************************
+
+PhysicalSharedChannelReconfigurationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PhysicalSharedChannelReconfigurationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{PhysicalSharedChannelReconfigurationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-PSCH-ReconfFailure CRITICALITY ignore TYPE CauseLevel-PSCH-ReconfFailure PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+PhysicalSharedChannelReconfigurationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CauseLevel-PSCH-ReconfFailure ::= CHOICE {
+ generalCause GeneralCauseList-PSCH-ReconfFailure,
+ setSpecificCause SetSpecificCauseList-PSCH-ReconfFailureTDD,
+ ...
+}
+
+GeneralCauseList-PSCH-ReconfFailure ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseItem-PSCH-ReconfFailure-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseItem-PSCH-ReconfFailure-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SetSpecificCauseList-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SetSpecificCauseItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PDSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPDSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PDSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pDSCHSet-ID PDSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PDSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-PUSCHSetList-PSCH-ReconfFailureTDD ::= SEQUENCE (SIZE (0.. maxNrOfPUSCHSets)) OF ProtocolIE-Single-Container {{ Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD }}
+
+Unsuccessful-PUSCHSetItemIE-PSCH-ReconfFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD CRITICALITY ignore TYPE Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD PRESENCE mandatory}
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD ::= SEQUENCE {
+ pUSCHSet-ID PUSCHSet-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-PUSCHSetItem-PSCH-ReconfFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET REQUEST
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetRequest-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-ResetIndicator CRITICALITY ignore TYPE ResetIndicator PRESENCE mandatory},
+ ...
+}
+
+ResetRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetIndicator ::= CHOICE {
+ communicationContext CommunicationContextList-Reset,
+ communicationControlPort CommunicationControlPortList-Reset,
+ nodeB NULL,
+ ...
+}
+
+CommunicationContextList-Reset ::= SEQUENCE {
+ communicationContextInfoList-Reset CommunicationContextInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationContextItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCommunicationContext)) OF ProtocolIE-Single-Container {{ CommunicationContextInfoItemIE-Reset }}
+
+CommunicationContextInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationContextInfoItem-Reset CRITICALITY reject TYPE CommunicationContextInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationContextInfoItem-Reset ::= SEQUENCE {
+ communicationContextType-Reset CommunicationContextType-Reset,
+ iE-Extensions ProtocolExtensionContainer { { CommunicationContextInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationContextInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationContextType-Reset ::= CHOICE {
+ cRNC-CommunicationContextID CRNC-CommunicationContextID,
+ nodeB-CommunicationContextID NodeB-CommunicationContextID,
+ ...
+}
+
+CommunicationControlPortList-Reset ::= SEQUENCE {
+ communicationControlPortInfoList-Reset CommunicationControlPortInfoList-Reset,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CommunicationControlPortInfoList-Reset ::= SEQUENCE (SIZE (1.. maxCCPinNodeB)) OF ProtocolIE-Single-Container {{CommunicationControlPortInfoItemIE-Reset }}
+
+CommunicationControlPortInfoItemIE-Reset NBAP-PROTOCOL-IES ::= {
+ {ID id-CommunicationControlPortInfoItem-Reset CRITICALITY reject TYPE CommunicationControlPortInfoItem-Reset PRESENCE mandatory}
+}
+
+CommunicationControlPortInfoItem-Reset ::= SEQUENCE {
+ communicationControlPortID CommunicationControlPortID,
+ iE-Extensions ProtocolExtensionContainer { {CommunicationControlPortInfoItem-Reset-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CommunicationControlPortInfoItem-Reset-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET RESPONSE
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{ResetResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+ResetResponse-IEs NBAP-PROTOCOL-IES ::= {
+ {ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ResetResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeInitiationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY reject TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rqst CRITICALITY reject TYPE InformationExchangeObjectType-InfEx-Rqst PRESENCE mandatory }|
+ { ID id-InformationType CRITICALITY reject TYPE InformationType PRESENCE mandatory }|
+ { ID id-InformationReportCharacteristics CRITICALITY reject TYPE InformationReportCharacteristics PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeInitiationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rqst ::= CHOICE {
+ cell Cell-InfEx-Rqst,
+ ...
+}
+
+Cell-InfEx-Rqst ::= SEQUENCE {
+ c-ID C-ID,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rqst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellItem-InfEx-Rqst-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION RESPONSE
+--
+-- **************************************************************
+
+InformationExchangeInitiationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationResponse-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationResponse-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationResponse-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rsp CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rsp PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationResponse-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rsp ::= CHOICE {
+ cell Cell-InfEx-Rsp,
+ ...
+ }
+
+Cell-InfEx-Rsp ::= SEQUENCE {
+ requestedDataValue RequestedDataValue,
+ iE-Extensions ProtocolExtensionContainer { { CellItem-InfEx-Rsp-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellItem-InfEx-Rsp-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE INITIATION FAILURE
+--
+-- **************************************************************
+
+InformationExchangeInitiationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeInitiationFailure-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeInitiationFailure-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeInitiationFailure-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+InformationExchangeInitiationFailure-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION REPORT
+--
+-- **************************************************************
+
+InformationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationReport-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationReport-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationReport-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-InformationExchangeObjectType-InfEx-Rprt CRITICALITY ignore TYPE InformationExchangeObjectType-InfEx-Rprt PRESENCE mandatory },
+ ...
+}
+
+InformationReport-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InformationExchangeObjectType-InfEx-Rprt ::= CHOICE {
+ cell Cell-Inf-Rprt,
+ ...
+ }
+
+Cell-Inf-Rprt ::= SEQUENCE {
+ requestedDataValueInformation RequestedDataValueInformation,
+ iE-Extensions ProtocolExtensionContainer {{ CellItem-Inf-Rprt-ExtIEs }} OPTIONAL,
+ ...
+
+ }
+
+CellItem-Inf-Rprt-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE TERMINATION REQUEST
+--
+-- **************************************************************
+
+InformationExchangeTerminationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeTerminationRequest-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeTerminationRequest-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeTerminationRequest-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory},
+ ...
+}
+
+InformationExchangeTerminationRequest-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INFORMATION EXCHANGE FAILURE INDICATION
+--
+-- **************************************************************
+
+InformationExchangeFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InformationExchangeFailureIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{InformationExchangeFailureIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+InformationExchangeFailureIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-InformationExchangeID CRITICALITY ignore TYPE InformationExchangeID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+InformationExchangeFailureIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationInitiationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-cellSyncBurstRepetitionPeriod CRITICALITY reject TYPE CellSyncBurstRepetitionPeriod PRESENCE mandatory }|
+ { ID id-timeslotInfo-CellSyncInitiationRqstTDD CRITICALITY reject TYPE TimeslotInfo-CellSyncInitiationRqstTDD PRESENCE optional }| -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+ { ID id-CellSyncBurstTransInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstTransInit-CellSyncInitiationRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ initialDLTransPower DL-Power,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstTransInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeslotInfo-CellSyncInitiationRqstTDD::= SEQUENCE (SIZE (1..15)) OF TimeSlot
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ synchronisationReportType SynchronisationReportType,
+ sfn SFN OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellSyncBurstMeasureInit-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ sfn SFN,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ dwPCH-Power DwPCH-Power,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-TransInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sfn SFN OPTIONAL,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId,
+ synchronisationReportType SynchronisationReportType,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeId-MeasureInitLCR-CellSyncInitiationRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION INITIATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationInitiationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationInitiationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationInitiationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationInitiationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-NSubCyclesPerCyclePeriod-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION NSubCyclesPerCyclePeriod PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-SYNCDlCodeIdMeasReconfigurationLCR-CellSyncReconfRqstTDD CRITICALITY reject EXTENSION SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+CellSynchronisationReconfigurationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY reject TYPE C-ID PRESENCE mandatory }|
+ { ID id-TimeSlot CRITICALITY reject TYPE TimeSlot PRESENCE mandatory }|
+ -- Applicable to 3.84Mcps TDD only. For 1.28Mcps TDD, the CRNC should set this to 0 and the Node B shall ignore it.
+ { ID id-NCyclesPerSFNperiod CRITICALITY reject TYPE NCyclesPerSFNperiod PRESENCE mandatory }|
+ { ID id-NRepetitionsPerCyclePeriod CRITICALITY reject TYPE NRepetitionsPerCyclePeriod PRESENCE mandatory }|
+ { ID id-CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD PRESENCE optional }| -- Applicable to 3.84Mcps TDD only
+ { ID id-CellSyncBurstMeasReconfiguration-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfo-CellSyncReconfRqstTDD PRESENCE optional }, -- Applicable to 3.84Mcps TDD only
+ ...
+}
+
+CellSyncBurstTransReconfInfo-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberToTransmit SyncFrameNumber,
+ cellSyncBurstCode CellSyncBurstCode OPTIONAL,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift OPTIONAL,
+ dlTransPower DL-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstTransInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportTypeIE OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristicsIE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfo-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD ::= ProtocolIE-Single-Container {{ CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD }}
+
+CellSyncBurstMeasInfoListIEs-CellSyncReconfRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncBurstMeasInfoList-CellSyncReconfRqstTDD CRITICALITY reject TYPE CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD PRESENCE mandatory }
+}
+
+SynchronisationReportTypeIE ::= ProtocolIE-Single-Container {{ SynchronisationReportTypeIEs }}
+
+SynchronisationReportTypeIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportType CRITICALITY reject TYPE SynchronisationReportType PRESENCE mandatory }
+}
+
+SynchronisationReportCharacteristicsIE ::= ProtocolIE-Single-Container {{ SynchronisationReportCharacteristicsIEs }}
+
+SynchronisationReportCharacteristicsIEs NBAP-PROTOCOL-IES ::= {
+ { ID id-SynchronisationReportCharacteristics CRITICALITY reject TYPE SynchronisationReportCharacteristics PRESENCE mandatory }
+}
+
+
+CellSyncBurstMeasInfoListIE-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ syncBurstInfo CellSyncBurstInfoList-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfoList-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfoItem-CellSyncReconfRqstTDD
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ cellSyncBurstCode CellSyncBurstCode,
+ cellSyncBurstCodeShift CellSyncBurstCodeShift,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1..maxNrOfSyncFramesLCR)) OF SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdTransReconfItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBTransmissionID CSBTransmissionID,
+ syncFrameNumberforTransmit SyncFrameNumber,
+ uARFCN UARFCN,
+ sYNCDlCodeId SYNCDlCodeId OPTIONAL,
+ dwPCH-Power DwPCH-Power OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdTransReconfInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD::= SEQUENCE {
+ sYNCDlCodeIdMeasInfoList SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD,
+ synchronisationReportType SynchronisationReportType OPTIONAL,
+ synchronisationReportCharacteristics SynchronisationReportCharacteristics OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdMeasInfoList-CellSyncReconfRqstTDD::= SEQUENCE (SIZE (1.. maxNrOfSyncDLCodesLCR)) OF SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD ::= SEQUENCE {
+ syncFrameNrToReceive SyncFrameNumber,
+ sYNCDlCodeIdInfoLCR SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdMeasInfoItem-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SYNCDlCodeIdInfoListLCR-CellSyncReconfRqstTDD ::= SEQUENCE (SIZE (1.. maxNrOfReceptionsperSyncFrameLCR)) OF SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD ::= SEQUENCE {
+ cSBMeasurementID CSBMeasurementID,
+ sYNCDlCodeId SYNCDlCodeId,
+ uARFCN UARFCN,
+ propagationDelayCompensation TimingAdjustmentValueLCR OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SYNCDlCodeIdInfoItemLCR-CellSyncReconfRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION RECONFIGURATION FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationReconfigurationFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReconfigurationFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReconfigurationFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReconfigurationFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfo-SyncAdjustmntRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfo-SyncAdjustmentRqstTDD PRESENCE mandatory },
+ ...
+}
+
+CellAdjustmentInfo-SyncAdjustmentRqstTDD::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD }}
+
+CellAdjustmentInfoItemIE-SyncAdjustmntRqstTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-CellAdjustmentInfoItem-SyncAdjustmentRqstTDD CRITICALITY ignore TYPE CellAdjustmentInfoItem-SyncAdjustmentRqstTDD PRESENCE mandatory }
+}
+
+CellAdjustmentInfoItem-SyncAdjustmentRqstTDD ::= SEQUENCE {
+ c-ID C-ID,
+ frameAdjustmentValue FrameAdjustmentValue OPTIONAL,
+ timingAdjustmentValue TimingAdjustmentValue OPTIONAL,
+ dLTransPower DL-Power OPTIONAL, -- Applicable to 3.84Mcps TDD only
+ sfn SFN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CellAdjustmentInfoItem-SyncAdjustmntRqstTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DwPCH-Power CRITICALITY ignore EXTENSION DwPCH-Power PRESENCE optional }| -- Applicable to 1.28Mcps TDD only
+ { ID id-TimingAdjustmentValueLCR CRITICALITY ignore EXTENSION TimingAdjustmentValueLCR PRESENCE optional }, -- Applicable to 1.28Mcps TDD only
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT RESPONSE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentResponseTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentResponseTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentResponseTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentResponseTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION ADJUSTMENT FAILURE TDD
+--
+-- **************************************************************
+
+CellSynchronisationAdjustmentFailureTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationAdjustmentFailureTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationAdjustmentFailureTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationAdjustmentFailureTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CauseLevel-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE CauseLevel-SyncAdjustmntFailureTDD PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+CauseLevel-SyncAdjustmntFailureTDD ::= CHOICE {
+ generalCause GeneralCauseList-SyncAdjustmntFailureTDD,
+ cellSpecificCause CellSpecificCauseList-SyncAdjustmntFailureTDD,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeneralCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD ::= SEQUENCE {
+ unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSpecificCauseList-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Unsuccessful-cell-InformationRespList-SyncAdjustmntFailureTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF ProtocolIE-Single-Container {{ Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD }}
+
+Unsuccessful-cell-InformationRespItemIE-SyncAdjustmntFailureTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD CRITICALITY ignore TYPE Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD PRESENCE mandatory},
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD::= SEQUENCE {
+ c-ID C-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Unsuccessful-cell-InformationRespItem-SyncAdjustmntFailureTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION TERMINATION REQUEST TDD
+--
+-- **************************************************************
+
+CellSynchronisationTerminationRequestTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationTerminationRequestTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationTerminationRequestTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationTerminationRequestTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION FAILURE INDICATION TDD
+--
+-- **************************************************************
+
+CellSynchronisationFailureIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationFailureIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationFailureIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationFailureIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory }|
+ { ID id-CSBTransmissionID CRITICALITY ignore TYPE CSBTransmissionID PRESENCE optional }|
+ { ID id-CSBMeasurementID CRITICALITY ignore TYPE CSBMeasurementID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL SYNCHRONISATION REPORT TDD
+--
+-- **************************************************************
+
+CellSynchronisationReportTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellSynchronisationReportTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{CellSynchronisationReportTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+CellSynchronisationReportTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSynchronisationReportTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CellSyncInfo-CellSyncReprtTDD CRITICALITY ignore TYPE CellSyncInfo-CellSyncReprtTDD PRESENCE mandatory },
+ ...
+}
+
+
+CellSyncInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxCellinNodeB)) OF CellSyncInfoItemIE-CellSyncReprtTDD
+
+CellSyncInfoItemIE-CellSyncReprtTDD ::= SEQUENCE {
+ c-ID-CellSyncReprtTDD C-ID-IE-CellSyncReprtTDD,
+ syncReportType-CellSyncReprtTDD SyncReportTypeIE-CellSyncReprtTDD OPTIONAL,
+ ...
+}
+
+C-ID-IE-CellSyncReprtTDD ::= ProtocolIE-Single-Container {{ C-ID-IEs-CellSyncReprtTDD }}
+
+C-ID-IEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-C-ID CRITICALITY ignore TYPE C-ID PRESENCE mandatory}
+}
+
+SyncReportTypeIE-CellSyncReprtTDD::= ProtocolIE-Single-Container {{ SyncReportTypeIEs-CellSyncReprtTDD }}
+
+SyncReportTypeIEs-CellSyncReprtTDD NBAP-PROTOCOL-IES ::= {
+ { ID id-SyncReportType-CellSyncReprtTDD CRITICALITY ignore TYPE SyncReportType-CellSyncReprtTDD PRESENCE mandatory}
+}
+
+
+SyncReportType-CellSyncReprtTDD ::= CHOICE {
+ intStdPhSyncInfo-CellSyncReprtTDD IntStdPhCellSyncInfo-CellSyncReprtTDD,
+ lateEntrantCell NULL,
+ frequencyAcquisition NULL,
+ ...
+}
+
+IntStdPhCellSyncInfo-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstMeasuredInfo CellSyncBurstMeasInfoList-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IntStdPhCellSyncInfoList-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ { ID id-AccumulatedClockupdate-CellSyncReprtTDD CRITICALITY ignore EXTENSION TimingAdjustmentValue PRESENCE optional }|
+ { ID id-SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD CRITICALITY ignore EXTENSION SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD PRESENCE optional }, -- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+ ...
+}
+
+CellSyncBurstMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0.. maxNrOfCellSyncBursts)) OF CellSyncBurstMeasInfoItem-CellSyncReprtTDD -- Mandatory for 3.84Mcps TDD. Not Applicable to 1.28Mcps TDD.
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ cellSyncBurstInfo-CellSyncReprtTDD SEQUENCE (SIZE (1..maxNrOfReceptsPerSyncFrame)) OF CellSyncBurstInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellSyncBurstInfo-CellSyncReprtTDD ::= CHOICE {
+ cellSyncBurstAvailable CellSyncBurstAvailable-CellSyncReprtTDD,
+ cellSyncBurstNotAvailable NULL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ cellSyncBurstTiming CellSyncBurstTiming,
+ cellSyncBurstSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellSyncBurstAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdsMeasInfoList-CellSyncReprtTDD ::= SEQUENCE (SIZE (0..maxNrOfSyncFramesLCR)) OF SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD
+-- Mandatory for 1.28Mcps TDD. Not Applicable to 3.84Mcps TDD.
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD ::= SEQUENCE {
+ sFN SFN,
+ syncDLCodeIdInfo-CellSyncReprtTDD SyncDLCodeIdInfo-CellSyncReprtTDD,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdsMeasInfoItem-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SyncDLCodeIdInfo-CellSyncReprtTDD ::= SEQUENCE (SIZE (1..maxNrOfReceptionsperSyncFrameLCR)) OF SyncDLCodeIdItem-CellSyncReprtTDD
+
+SyncDLCodeIdItem-CellSyncReprtTDD ::= CHOICE {
+ syncDLCodeIdAvailable SyncDLCodeIdAvailable-CellSyncReprtTDD,
+ syncDLCodeIDNotAvailable NULL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD ::= SEQUENCE {
+ syncDLCodeIdTiming CellSyncBurstTimingLCR,
+ syncDLCodeIdSIR CellSyncBurstSIR,
+ iE-Extensions ProtocolExtensionContainer { { SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SyncDLCodeIdAvailable-CellSyncReprtTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER REARRANGEMENT INDICATION
+--
+-- **************************************************************
+
+BearerRearrangementIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{BearerRearrangementIndication-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{BearerRearrangementIndication-Extensions}} OPTIONAL,
+ ...
+}
+
+BearerRearrangementIndication-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-SignallingBearerRequestIndicator CRITICALITY ignore TYPE SignallingBearerRequestIndicator PRESENCE optional } |
+ { ID id-DCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-DSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE DSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+ { ID id-USCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE USCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional } |
+-- TDD only.
+ { ID id-TFCI2BearerRequestIndicator CRITICALITY ignore TYPE TFCI2BearerRequestIndicator PRESENCE optional }|
+ -- FDD only.
+ { ID id-HSDSCH-RearrangeList-Bearer-RearrangeInd CRITICALITY ignore TYPE HSDSCH-RearrangeList-Bearer-RearrangeInd PRESENCE optional },
+ ...
+}
+
+BearerRearrangementIndication-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDCHs)) OF DCH-RearrangeItem-Bearer-RearrangeInd
+
+DCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dCH-ID DCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfDSCHs)) OF DSCH-RearrangeItem-Bearer-RearrangeInd
+
+DSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ dSCH-ID DSCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+USCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfUSCHs)) OF USCH-RearrangeItem-Bearer-RearrangeInd
+
+USCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ uSCH-ID USCH-ID,
+ iE-Extensions ProtocolExtensionContainer { { USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+USCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HSDSCH-RearrangeList-Bearer-RearrangeInd ::= SEQUENCE (SIZE (1..maxNrOfMACdFlows)) OF HSDSCH-RearrangeItem-Bearer-RearrangeInd
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd ::= SEQUENCE {
+ hsDSCH-MACdFlow-ID HSDSCH-MACdFlow-ID,
+ iE-Extensions ProtocolExtensionContainer { { HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HSDSCH-RearrangeItem-Bearer-RearrangeInd-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND FDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdFDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdFDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdFDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdFDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdFDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdFDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK ACTIVATION COMMAND TDD
+--
+-- **************************************************************
+
+RadioLinkActivationCommandTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkActivationCommandTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkActivationCommandTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkActivationCommandTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-NodeB-CommunicationContextID CRITICALITY ignore TYPE NodeB-CommunicationContextID PRESENCE mandatory }|
+ { ID id-DelayedActivationList-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformationList-RL-ActivationCmdTDD PRESENCE mandatory },
+ ...
+}
+
+RadioLinkActivationCommandTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DelayedActivationInformationList-RL-ActivationCmdTDD ::= SEQUENCE (SIZE (1..maxNrOfRLs)) OF ProtocolIE-Single-Container {
+ { DelayedActivationInformation-RL-ActivationCmdTDD-IEs} }
+
+DelayedActivationInformation-RL-ActivationCmdTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-DelayedActivationInformation-RL-ActivationCmdTDD CRITICALITY ignore TYPE DelayedActivationInformation-RL-ActivationCmdTDD PRESENCE optional }
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD ::= SEQUENCE {
+ rL-ID RL-ID,
+ delayed-activation-update DelayedActivationUpdate,
+ iE-Extensions ProtocolExtensionContainer { { DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DelayedActivationInformation-RL-ActivationCmdTDD-ExtIEs NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION FDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationFDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationFDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationFDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-FDD-Update-Information CRITICALITY ignore TYPE HSDSCH-FDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationFDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RADIO LINK PARAMETER UPDATE INDICATION TDD
+--
+-- **************************************************************
+
+RadioLinkParameterUpdateIndicationTDD ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RadioLinkParameterUpdateIndicationTDD-IEs}},
+ protocolExtensions ProtocolExtensionContainer {{RadioLinkParameterUpdateIndicationTDD-Extensions}} OPTIONAL,
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-IEs NBAP-PROTOCOL-IES ::= {
+ { ID id-CRNC-CommunicationContextID CRITICALITY ignore TYPE CRNC-CommunicationContextID PRESENCE mandatory } |
+ { ID id-HSDSCH-TDD-Update-Information CRITICALITY ignore TYPE HSDSCH-TDD-Update-Information PRESENCE optional },
+ ...
+}
+
+RadioLinkParameterUpdateIndicationTDD-Extensions NBAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
new file mode 100755
index 0000000000..b9be9934e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/nbapsystem/NBAP-PDU-Discriptions.asn
@@ -0,0 +1,916 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+NBAP-PDU-Discriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) nbap (2) version1 (1) nbap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureID,
+ MessageDiscriminator,
+ TransactionID
+FROM NBAP-CommonDataTypes
+
+ CommonTransportChannelSetupRequestFDD,
+ CommonTransportChannelSetupRequestTDD,
+ CommonTransportChannelSetupResponse,
+ CommonTransportChannelSetupFailure,
+ CommonTransportChannelReconfigurationRequestFDD,
+ CommonTransportChannelReconfigurationRequestTDD,
+ CommonTransportChannelReconfigurationResponse,
+ CommonTransportChannelReconfigurationFailure,
+ CommonTransportChannelDeletionRequest,
+ CommonTransportChannelDeletionResponse,
+ BlockResourceRequest,
+ BlockResourceResponse,
+ BlockResourceFailure,
+ UnblockResourceIndication,
+ AuditFailure,
+ AuditRequiredIndication,
+ AuditRequest,
+ AuditResponse,
+ CommonMeasurementInitiationRequest,
+ CommonMeasurementInitiationResponse,
+ CommonMeasurementInitiationFailure,
+ CommonMeasurementReport,
+ CommonMeasurementTerminationRequest,
+ CommonMeasurementFailureIndication,
+ CellSetupRequestFDD,
+ CellSetupRequestTDD,
+ CellSetupResponse,
+ CellSetupFailure,
+ CellReconfigurationRequestFDD,
+ CellReconfigurationRequestTDD,
+ CellReconfigurationResponse,
+ CellReconfigurationFailure,
+ CellDeletionRequest,
+ CellDeletionResponse,
+ InformationExchangeInitiationRequest,
+ InformationExchangeInitiationResponse,
+ InformationExchangeInitiationFailure,
+ InformationReport,
+ InformationExchangeTerminationRequest,
+ InformationExchangeFailureIndication,
+ BearerRearrangementIndication,
+ ResourceStatusIndication,
+ SystemInformationUpdateRequest,
+ SystemInformationUpdateResponse,
+ SystemInformationUpdateFailure,
+ ResetRequest,
+ ResetResponse,
+ RadioLinkActivationCommandFDD,
+ RadioLinkActivationCommandTDD,
+ RadioLinkPreemptionRequiredIndication,
+ RadioLinkSetupRequestFDD,
+ RadioLinkSetupRequestTDD,
+ RadioLinkSetupResponseFDD,
+ RadioLinkSetupResponseTDD,
+ RadioLinkSetupFailureFDD,
+ RadioLinkSetupFailureTDD,
+ RadioLinkAdditionRequestFDD,
+ RadioLinkAdditionRequestTDD,
+ RadioLinkAdditionResponseFDD,
+ RadioLinkAdditionResponseTDD,
+ RadioLinkAdditionFailureFDD,
+ RadioLinkAdditionFailureTDD,
+ RadioLinkParameterUpdateIndicationFDD,
+ RadioLinkParameterUpdateIndicationTDD,
+ RadioLinkReconfigurationPrepareFDD,
+ RadioLinkReconfigurationPrepareTDD,
+ RadioLinkReconfigurationReady,
+ RadioLinkReconfigurationFailure,
+ RadioLinkReconfigurationCommit,
+ RadioLinkReconfigurationCancel,
+ RadioLinkReconfigurationRequestFDD,
+ RadioLinkReconfigurationRequestTDD,
+ RadioLinkReconfigurationResponse,
+ RadioLinkDeletionRequest,
+ RadioLinkDeletionResponse,
+ DL-PowerControlRequest,
+ DL-PowerTimeslotControlRequest,
+ DedicatedMeasurementInitiationRequest,
+ DedicatedMeasurementInitiationResponse,
+ DedicatedMeasurementInitiationFailure,
+ DedicatedMeasurementReport,
+ DedicatedMeasurementTerminationRequest,
+ DedicatedMeasurementFailureIndication,
+ RadioLinkFailureIndication,
+ RadioLinkRestoreIndication,
+ CompressedModeCommand,
+ ErrorIndication,
+ PrivateMessage,
+ PhysicalSharedChannelReconfigurationRequestTDD,
+ PhysicalSharedChannelReconfigurationRequestFDD,
+ PhysicalSharedChannelReconfigurationResponse,
+ PhysicalSharedChannelReconfigurationFailure,
+ CellSynchronisationInitiationRequestTDD,
+ CellSynchronisationInitiationResponseTDD,
+ CellSynchronisationInitiationFailureTDD,
+ CellSynchronisationReconfigurationRequestTDD,
+ CellSynchronisationReconfigurationResponseTDD,
+ CellSynchronisationReconfigurationFailureTDD,
+ CellSynchronisationAdjustmentRequestTDD,
+ CellSynchronisationAdjustmentResponseTDD,
+ CellSynchronisationAdjustmentFailureTDD,
+ CellSynchronisationReportTDD,
+ CellSynchronisationTerminationRequestTDD,
+ CellSynchronisationFailureIndicationTDD
+FROM NBAP-PDU-Contents
+
+ id-audit,
+ id-auditRequired,
+ id-blockResource,
+ id-cellDeletion,
+ id-cellReconfiguration,
+ id-cellSetup,
+ id-cellSynchronisationInitiation,
+ id-cellSynchronisationReconfiguration,
+ id-cellSynchronisationReporting,
+ id-cellSynchronisationTermination,
+ id-cellSynchronisationFailure,
+ id-commonMeasurementFailure,
+ id-commonMeasurementInitiation,
+ id-commonMeasurementReport,
+ id-commonMeasurementTermination,
+ id-commonTransportChannelDelete,
+ id-commonTransportChannelReconfigure,
+ id-commonTransportChannelSetup,
+ id-compressedModeCommand,
+ id-dedicatedMeasurementFailure,
+ id-dedicatedMeasurementInitiation,
+ id-dedicatedMeasurementReport,
+ id-dedicatedMeasurementTermination,
+ id-downlinkPowerControl,
+ id-downlinkPowerTimeslotControl,
+ id-errorIndicationForDedicated,
+ id-errorIndicationForCommon,
+ id-informationExchangeFailure,
+ id-informationExchangeInitiation,
+ id-informationReporting,
+ id-informationExchangeTermination,
+ id-BearerRearrangement,
+ id-physicalSharedChannelReconfiguration,
+ id-privateMessageForDedicated,
+ id-privateMessageForCommon,
+ id-radioLinkActivation,
+ id-radioLinkAddition,
+ id-radioLinkDeletion,
+ id-radioLinkFailure,
+ id-radioLinkParameterUpdate,
+ id-radioLinkPreemption,
+ id-radioLinkRestoration,
+ id-radioLinkSetup,
+ id-reset,
+ id-resourceStatusIndication,
+ id-cellSynchronisationAdjustment,
+ id-synchronisedRadioLinkReconfigurationCancellation,
+ id-synchronisedRadioLinkReconfigurationCommit,
+ id-synchronisedRadioLinkReconfigurationPreparation,
+ id-systemInformationUpdate,
+ id-unblockResource,
+ id-unSynchronisedRadioLinkReconfiguration
+FROM NBAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &messageDiscriminator MessageDiscriminator,
+ &procedureID ProcedureID UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ MESSAGE DISCRIMINATOR &messageDiscriminator
+ PROCEDURE ID &procedureID
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+NBAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ succesfulOutcome SuccessfulOutcome,
+ unsuccesfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+Outcome ::= SEQUENCE {
+ procedureID NBAP-ELEMENTARY-PROCEDURE.&procedureID ({NBAP-ELEMENTARY-PROCEDURES}),
+ criticality NBAP-ELEMENTARY-PROCEDURE.&criticality ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ messageDiscriminator NBAP-ELEMENTARY-PROCEDURE.&messageDiscriminator({NBAP-ELEMENTARY-PROCEDURES}{@procedureID}),
+ transactionID TransactionID,
+ value NBAP-ELEMENTARY-PROCEDURE.&Outcome ({NBAP-ELEMENTARY-PROCEDURES}{@procedureID})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+NBAP-ELEMENTARY-PROCEDURES NBAP-ELEMENTARY-PROCEDURE ::= {
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ NBAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-1 NBAP-ELEMENTARY-PROCEDURE ::= {
+ cellSetupFDD |
+ cellSetupTDD |
+ cellReconfigurationFDD |
+ cellReconfigurationTDD |
+ cellDeletion |
+ commonTransportChannelSetupFDD |
+ commonTransportChannelSetupTDD |
+ commonTransportChannelReconfigureFDD |
+ commonTransportChannelReconfigureTDD |
+ commonTransportChannelDelete |
+ audit |
+ blockResource |
+ radioLinkSetupFDD |
+ radioLinkSetupTDD |
+ systemInformationUpdate |
+ commonMeasurementInitiation |
+ radioLinkAdditionFDD |
+ radioLinkAdditionTDD |
+ radioLinkDeletion |
+ reset |
+ synchronisedRadioLinkReconfigurationPreparationFDD |
+ synchronisedRadioLinkReconfigurationPreparationTDD |
+ unSynchronisedRadioLinkReconfigurationFDD |
+ unSynchronisedRadioLinkReconfigurationTDD |
+ dedicatedMeasurementInitiation |
+ physicalSharedChannelReconfigurationTDD ,
+ ...,
+ informationExchangeInitiation |
+ cellSynchronisationInitiationTDD |
+ cellSynchronisationReconfigurationTDD |
+ cellSynchronisationAdjustmentTDD |
+ physicalSharedChannelReconfigurationFDD
+}
+
+NBAP-ELEMENTARY-PROCEDURES-CLASS-2 NBAP-ELEMENTARY-PROCEDURE ::= {
+ resourceStatusIndication |
+ auditRequired |
+ commonMeasurementReport |
+ commonMeasurementTermination |
+ commonMeasurementFailure |
+ synchronisedRadioLinkReconfigurationCommit |
+ synchronisedRadioLinkReconfigurationCancellation |
+ radioLinkFailure |
+ radioLinkPreemption |
+ radioLinkRestoration |
+ dedicatedMeasurementReport |
+ dedicatedMeasurementTermination |
+ dedicatedMeasurementFailure |
+ downlinkPowerControlFDD |
+ downlinkPowerTimeslotControl |
+ compressedModeCommand |
+ unblockResource |
+ errorIndicationForDedicated |
+ errorIndicationForCommon |
+ privateMessageForDedicated |
+ privateMessageForCommon ,
+ ...,
+ informationReporting |
+ informationExchangeTermination |
+ informationExchangeFailure |
+ cellSynchronisationReportingTDD |
+ cellSynchronisationTerminationTDD |
+ cellSynchronisationFailureTDD |
+ bearerRearrangement |
+ radioLinkActivationFDD |
+ radioLinkActivationTDD |
+ radioLinkParameterUpdateFDD |
+ radioLinkParameterUpdateTDD
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+-- Class 1
+
+-- *** CellSetup (FDD) ***
+cellSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestFDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellSetup (TDD) ***
+cellSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSetupRequestTDD
+ SUCCESSFUL OUTCOME CellSetupResponse
+ UNSUCCESSFUL OUTCOME CellSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(FDD) ***
+cellReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CellReconfiguration(TDD) ***
+cellReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CellReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellDeletion ***
+cellDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellDeletionRequest
+ SUCCESSFUL OUTCOME CellDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (FDD) ***
+commonTransportChannelSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelSetup (TDD) ***
+commonTransportChannelSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelSetupRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelSetupResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelSetupFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (FDD) ***
+commonTransportChannelReconfigureFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelReconfigure (TDD) ***
+commonTransportChannelReconfigureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CommonTransportChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME CommonTransportChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelReconfigure, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CommonTransportChannelDelete ***
+commonTransportChannelDelete NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonTransportChannelDeletionRequest
+ SUCCESSFUL OUTCOME CommonTransportChannelDeletionResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonTransportChannelDelete, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Audit ***
+audit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequest
+ SUCCESSFUL OUTCOME AuditResponse
+ UNSUCCESSFUL OUTCOME AuditFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-audit, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** BlockResourceRequest ***
+blockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BlockResourceRequest
+ SUCCESSFUL OUTCOME BlockResourceResponse
+ UNSUCCESSFUL OUTCOME BlockResourceFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-blockResource, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (FDD) ***
+radioLinkSetupFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureFDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkSetup (TDD) ***
+radioLinkSetupTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkSetupRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkSetupResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkSetupFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-radioLinkSetup, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** SystemInformationUpdate ***
+systemInformationUpdate NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SystemInformationUpdateRequest
+ SUCCESSFUL OUTCOME SystemInformationUpdateResponse
+ UNSUCCESSFUL OUTCOME SystemInformationUpdateFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-systemInformationUpdate, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** Reset ***
+reset NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-reset, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CommonMeasurementInitiation ***
+commonMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME CommonMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME CommonMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (FDD) ***
+radioLinkAdditionFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseFDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkAddition (TDD) ***
+radioLinkAdditionTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkAdditionRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkAdditionResponseTDD
+ UNSUCCESSFUL OUTCOME RadioLinkAdditionFailureTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkAddition, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** RadioLinkDeletion ***
+radioLinkDeletion NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkDeletionRequest
+ SUCCESSFUL OUTCOME RadioLinkDeletionResponse
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkDeletion, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (FDD) ***
+synchronisedRadioLinkReconfigurationPreparationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** SynchronisedRadioLinkReconfigurationPreparation (TDD) ***
+synchronisedRadioLinkReconfigurationPreparationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationPrepareTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationReady
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationPreparation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (FDD) ***
+unSynchronisedRadioLinkReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** UnSynchronisedRadioLinkReconfiguration (TDD) ***
+unSynchronisedRadioLinkReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME RadioLinkReconfigurationResponse
+ UNSUCCESSFUL OUTCOME RadioLinkReconfigurationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-unSynchronisedRadioLinkReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** DedicatedMeasurementInitiation ***
+dedicatedMeasurementInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementInitiationRequest
+ SUCCESSFUL OUTCOME DedicatedMeasurementInitiationResponse
+ UNSUCCESSFUL OUTCOME DedicatedMeasurementInitiationFailure
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (FDD) ***
+physicalSharedChannelReconfigurationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestFDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode fdd }
+ CRITICALITY reject
+}
+
+-- *** PhysicalSharedChannelReconfiguration (TDD) ***
+physicalSharedChannelReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PhysicalSharedChannelReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationResponse
+ UNSUCCESSFUL OUTCOME PhysicalSharedChannelReconfigurationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-physicalSharedChannelReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** InformationExchangeInitiation ***
+informationExchangeInitiation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeInitiationRequest
+ SUCCESSFUL OUTCOME InformationExchangeInitiationResponse
+ UNSUCCESSFUL OUTCOME InformationExchangeInitiationFailure
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeInitiation, ddMode common }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationInitiation (TDD only) ***
+cellSynchronisationInitiationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationInitiationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationInitiationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationInitiationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationInitiation, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationReconfiguration (TDD only) ***
+cellSynchronisationReconfigurationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReconfigurationRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationReconfigurationResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationReconfigurationFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReconfiguration, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- *** CellSynchronisationAdjustment (TDD only) ***
+cellSynchronisationAdjustmentTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationAdjustmentRequestTDD
+ SUCCESSFUL OUTCOME CellSynchronisationAdjustmentResponseTDD
+ UNSUCCESSFUL OUTCOME CellSynchronisationAdjustmentFailureTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationAdjustment, ddMode tdd }
+ CRITICALITY reject
+}
+
+-- Class 2
+
+-- *** ResourceStatusIndication ***
+resourceStatusIndication NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-resourceStatusIndication, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** AuditRequired ***
+auditRequired NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE AuditRequiredIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-auditRequired, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementReport ***
+commonMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementTermination ***
+commonMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CommonMeasurementFailure ***
+commonMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-commonMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioLinkReconfigurationCommit ***
+synchronisedRadioLinkReconfigurationCommit NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCommit
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCommit, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** SynchronisedRadioReconfigurationCancellation ***
+synchronisedRadioLinkReconfigurationCancellation NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkReconfigurationCancel
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-synchronisedRadioLinkReconfigurationCancellation, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkFailure ***
+radioLinkFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkPreemption ***
+radioLinkPreemption NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkPreemptionRequiredIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkPreemption, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkRestoration ***
+radioLinkRestoration NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkRestoreIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkRestoration, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementReport ***
+dedicatedMeasurementReport NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementReport
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementReport, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementTermination ***
+dedicatedMeasurementTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementTerminationRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DedicatedMeasurementFailure ***
+dedicatedMeasurementFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DedicatedMeasurementFailureIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-dedicatedMeasurementFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerControl (FDD only) ***
+downlinkPowerControlFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerControl, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** DLPowerTimeslotControl (TDD only) ***
+downlinkPowerTimeslotControl NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DL-PowerTimeslotControlRequest
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-downlinkPowerTimeslotControl, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CompressedModeCommand (FDD only) ***
+compressedModeCommand NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CompressedModeCommand
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-compressedModeCommand, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** UnblockResourceIndication ***
+unblockResource NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UnblockResourceIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-unblockResource, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Dedicated procedures ***
+errorIndicationForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-errorIndicationForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** ErrorIndication for Common procedures ***
+errorIndicationForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-errorIndicationForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationReporting (TDD only) ***
+cellSynchronisationReportingTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationReportTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationReporting, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationTermination (TDD only) ***
+cellSynchronisationTerminationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationTerminationRequestTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationTermination, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** CellSynchronisationFailure (TDD only) ***
+cellSynchronisationFailureTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellSynchronisationFailureIndicationTDD
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-cellSynchronisationFailure, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Dedicated procedures ***
+privateMessageForDedicated NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-privateMessageForDedicated, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** PrivateMessage for Common procedures ***
+privateMessageForCommon NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-privateMessageForCommon, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationReporting ***
+informationReporting NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationReport
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationReporting, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeTermination ***
+informationExchangeTermination NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeTerminationRequest
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeTermination, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** InformationExchangeFailure ***
+informationExchangeFailure NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InformationExchangeFailureIndication
+ MESSAGE DISCRIMINATOR common
+ PROCEDURE ID { procedureCode id-informationExchangeFailure, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** BearerRearrangement ***
+bearerRearrangement NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerRearrangementIndication
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-BearerRearrangement, ddMode common }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (FDD) ***
+radioLinkActivationFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkActivation (TDD) ***
+radioLinkActivationTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkActivationCommandTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkActivation, ddMode tdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (FDD) ***
+radioLinkParameterUpdateFDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationFDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode fdd }
+ CRITICALITY ignore
+}
+
+-- *** RadioLinkParameterUpdate (TDD) ***
+radioLinkParameterUpdateTDD NBAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RadioLinkParameterUpdateIndicationTDD
+ MESSAGE DISCRIMINATOR dedicated
+ PROCEDURE ID { procedureCode id-radioLinkParameterUpdate, ddMode tdd }
+ CRITICALITY ignore
+}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.asn1config b/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.asn1config
new file mode 100644
index 0000000000..a8eb00d43d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.asn1config
@@ -0,0 +1 @@
+{selective_decode,{'p_record',[{sel_dec,['PersonnelRecord',title]}]}}.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.set.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.set.asn
new file mode 100644
index 0000000000..24d502d067
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/p_record.set.asn
@@ -0,0 +1 @@
+P-Record.py
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/MySO.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/MySO.asn
new file mode 100644
index 0000000000..4c649da4c4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/MySO.asn
@@ -0,0 +1,14 @@
+MySO DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ T
+ FROM IMP;
+
+
+Seq2 ::= SEQUENCE {
+ a T,
+ b INTEGER}
+
+END \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/subsubdir/.gitignore b/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/subsubdir/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/subdir/subsubdir/.gitignore
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/DialoguePDUs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/DialoguePDUs.asn
new file mode 100644
index 0000000000..541dc55f6b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/DialoguePDUs.asn
@@ -0,0 +1,80 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module DialoguePDUs (Q.773:06/1997)
+DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS dialogue-as-id, DialoguePDU;
+
+-- abstract syntax name for structured dialogue APDUs
+dialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)}
+
+DialoguePDU ::= CHOICE {
+ dialogueRequest AARQ-apdu,
+ dialogueResponse AARE-apdu,
+ dialogueAbort ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRQ PDU is currently not used.
+-- It is included for completeness only.
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRE PDU is currently not used.
+-- It is included for completeness only
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+ dialogue-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2)},
+ dialogue-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+-- Release-request-reason is currently not used.
+-- It is included for completeness only.
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}
+
+-- Release-response-reason is currently not used.
+-- It is included for completeness only.
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}
+
+END -- DialoguePDUs
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000000..26367c8f39
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ApplicationContexts.asn
@@ -0,0 +1,186 @@
+MAP-ApplicationContexts {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ApplicationContexts (2) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+
+-- EXPORTS everything
+
+
+IMPORTS
+ gsm-NetworkId,
+ ac-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+;
+
+-- application-context-names
+
+map-ac OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id}
+
+networkLocUpContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac networkLocUp(1) version3(3)}
+
+locationCancellationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationCancel(2) version3(3)}
+
+roamingNumberEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac roamingNbEnquiry(3) version3(3)}
+
+authenticationFailureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac authenticationFailureReport(39) version3(3)}
+
+locationInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locInfoRetrieval(5) version3(3)}
+
+resetContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac reset(10) version2(2)}
+
+handoverControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac handoverControl(11) version3(3)}
+
+equipmentMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac equipmentMngt(13) version3(3)}
+
+infoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac infoRetrieval(14) version3(3)}
+
+interVlrInfoRetrievalContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac interVlrInfoRetrieval(15) version3(3)}
+
+subscriberDataMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataMngt(16) version3(3)}
+
+tracingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac tracing(17) version3(3)}
+
+networkFunctionalSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkFunctionalSs(18) version2(2)}
+
+networkUnstructuredSsContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac networkUnstructuredSs(19) version2(2)}
+
+shortMsgGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgGateway(20) version3(3)}
+
+shortMsgMO-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMO-Relay(21) version3(3)}
+
+shortMsgAlertContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgAlert(23) version2(2)}
+
+mwdMngtContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mwdMngt(24) version3(3)}
+
+shortMsgMT-RelayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac shortMsgMT-Relay(25) version3(3)}
+
+imsiRetrievalContext-v2 OBJECT IDENTIFIER ::=
+ {map-ac imsiRetrieval(26) version2(2)}
+
+msPurgingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac msPurging(27) version3(3)}
+
+subscriberInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberInfoEnquiry(28) version3(3)}
+
+anyTimeInfoEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoEnquiry(29) version3(3)}
+
+callControlTransferContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac callControlTransfer(6) version4(4)}
+
+ss-InvocationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac ss-InvocationNotification(36) version3(3)}
+
+groupCallControlContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac groupCallControl(31) version3(3)}
+
+gprsLocationUpdateContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationUpdate(32) version3(3)}
+
+gprsLocationInfoRetrievalContext-v4 OBJECT IDENTIFIER ::=
+ {map-ac gprsLocationInfoRetrieval(33) version4(4)}
+
+failureReportContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac failureReport(34) version3(3)}
+
+gprsNotifyContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac gprsNotify(35) version3(3)}
+
+reportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac reporting(7) version3(3)}
+
+callCompletionContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac callCompletion(8) version3(3)}
+
+istAlertingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac istAlerting(4) version3(3)}
+
+serviceTerminationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac immediateTermination(9) version3(3)}
+
+locationSvcGatewayContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcGateway(37) version3(3)}
+
+locationSvcEnquiryContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac locationSvcEnquiry(38) version3(3)}
+
+mm-EventReportingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac mm-EventReporting(42) version3(3)}
+
+anyTimeInfoHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac anyTimeInfoHandling(43) version3(3)}
+
+subscriberDataModificationNotificationContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac subscriberDataModificationNotification(22) version3(3)}
+
+secureTransportHandlingContext-v3 OBJECT IDENTIFIER ::=
+ {map-ac secureTransportHandling(40) version3(3)}
+
+-- The following Object Identifiers are reserved for application-contexts
+-- existing in previous versions of the protocol
+
+-- AC Name & Version Object Identifier
+--
+-- networkLocUpContext-v1 map-ac networkLocUp (1) version1 (1)
+-- networkLocUpContext-v2 map-ac networkLocUp (1) version2 (2)
+-- locationCancellationContext-v1 map-ac locationCancellation (2) version1 (1)
+-- locationCancellationContext-v2 map-ac locationCancellation (2) version2 (2)
+-- roamingNumberEnquiryContext-v1 map-ac roamingNumberEnquiry (3) version1 (1)
+-- roamingNumberEnquiryContext-v2 map-ac roamingNumberEnquiry (3) version2 (2)
+-- locationInfoRetrievalContext-v1 map-ac locationInfoRetrieval (5) version1 (1)
+-- locationInfoRetrievalContext-v2 map-ac locationInfoRetrieval (5) version2 (2)
+-- resetContext-v1 map-ac reset (10) version1 (1)
+-- handoverControlContext-v1 map-ac handoverControl (11) version1 (1)
+-- handoverControlContext-v2 map-ac handoverControl (11) version2 (2)
+-- sIWFSAllocationContext-v3 map-ac sIWFSAllocation (12) version3 (3)
+-- equipmentMngtContext-v1 map-ac equipmentMngt (13) version1 (1)
+-- equipmentMngtContext-v2 map-ac equipmentMngt (13) version2 (2)
+-- infoRetrievalContext-v1 map-ac infoRetrieval (14) version1 (1)
+-- infoRetrievalContext-v2 map-ac infoRetrieval (14) version2 (2)
+-- interVlrInfoRetrievalContext-v2 map-ac interVlrInfoRetrieval (15) version2 (2)
+-- subscriberDataMngtContext-v1 map-ac subscriberDataMngt (16) version1 (1)
+-- subscriberDataMngtContext-v2 map-ac subscriberDataMngt (16) version2 (2)
+-- tracingContext-v1 map-ac tracing (17) version1 (1)
+-- tracingContext-v2 map-ac tracing (17) version2 (2)
+-- networkFunctionalSsContext-v1 map-ac networkFunctionalSs (18) version1 (1)
+-- shortMsgGatewayContext-v1 map-ac shortMsgGateway (20) version1 (1)
+-- shortMsgGatewayContext-v2 map-ac shortMsgGateway (20) version2 (2)
+-- shortMsgRelayContext-v1 map-ac shortMsgRelay (21) version1 (1)
+-- shortMsgAlertContext-v1 map-ac shortMsgAlert (23) version1 (1)
+-- mwdMngtContext-v1 map-ac mwdMngt (24) version1 (1)
+-- mwdMngtContext-v2 map-ac mwdMngt (24) version2 (2)
+-- shortMsgMT-RelayContext-v2 map-ac shortMsgMT-Relay (25) version2 (2)
+-- msPurgingContext-v2 map-ac msPurging (27) version2 (2)
+-- callControlTransferContext-v3 map-ac callControlTransferContext (6) version3 (3)
+-- gprsLocationInfoRetrievalContext-v3 map-ac gprsLocationInfoRetrievalContext (33) version3 (3)
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-BS-Code.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-BS-Code.asn
new file mode 100644
index 0000000000..d12501098e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-BS-Code.asn
@@ -0,0 +1,126 @@
+MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+BearerServiceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- bearer service, a group of bearer services, or all bearer
+ -- services. The services are defined in TS 3GPP TS 22.002 [3].
+ -- The internal structure is defined as follows:
+ --
+ -- OCTET 1:
+ -- plmn-specific bearer services:
+ -- bits 87654321: defined by the HPLMN operator
+ --
+ -- rest of bearer services:
+ -- bit 8: 0 (unused)
+ -- bits 7654321: group (bits 7654), and rate, if applicable
+ -- (bits 321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+
+ -- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
+
+allBearerServices BearerServiceCode ::= '00000000'B
+
+allDataCDA-Services BearerServiceCode ::= '00010000'B
+dataCDA-300bps BearerServiceCode ::= '00010001'B
+dataCDA-1200bps BearerServiceCode ::= '00010010'B
+dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
+dataCDA-2400bps BearerServiceCode ::= '00010100'B
+dataCDA-4800bps BearerServiceCode ::= '00010101'B
+dataCDA-9600bps BearerServiceCode ::= '00010110'B
+general-dataCDA BearerServiceCode ::= '00010111'B
+
+allDataCDS-Services BearerServiceCode ::= '00011000'B
+dataCDS-1200bps BearerServiceCode ::= '00011010'B
+dataCDS-2400bps BearerServiceCode ::= '00011100'B
+dataCDS-4800bps BearerServiceCode ::= '00011101'B
+dataCDS-9600bps BearerServiceCode ::= '00011110'B
+general-dataCDS BearerServiceCode ::= '00011111'B
+
+allPadAccessCA-Services BearerServiceCode ::= '00100000'B
+padAccessCA-300bps BearerServiceCode ::= '00100001'B
+padAccessCA-1200bps BearerServiceCode ::= '00100010'B
+padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
+padAccessCA-2400bps BearerServiceCode ::= '00100100'B
+padAccessCA-4800bps BearerServiceCode ::= '00100101'B
+padAccessCA-9600bps BearerServiceCode ::= '00100110'B
+general-padAccessCA BearerServiceCode ::= '00100111'B
+
+allDataPDS-Services BearerServiceCode ::= '00101000'B
+dataPDS-2400bps BearerServiceCode ::= '00101100'B
+dataPDS-4800bps BearerServiceCode ::= '00101101'B
+dataPDS-9600bps BearerServiceCode ::= '00101110'B
+general-dataPDS BearerServiceCode ::= '00101111'B
+
+allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
+
+allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
+
+allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
+
+allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
+
+-- The following non-hierarchical Compound Bearer Service
+-- Groups are defined in TS 3GPP TS 22.030:
+allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
+ -- "allSpeechFollowedByDataCDA"
+allAsynchronousServices BearerServiceCode ::= '01100000'B
+ -- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
+ -- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
+allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
+ -- "allSpeechFollowedByDataCDS"
+allSynchronousServices BearerServiceCode ::= '01101000'B
+ -- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
+ -- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
+--
+-- Compound Bearer Service Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allPLMN-specificBS BearerServiceCode ::= '11010000'B
+plmn-specificBS-1 BearerServiceCode ::= '11010001'B
+plmn-specificBS-2 BearerServiceCode ::= '11010010'B
+plmn-specificBS-3 BearerServiceCode ::= '11010011'B
+plmn-specificBS-4 BearerServiceCode ::= '11010100'B
+plmn-specificBS-5 BearerServiceCode ::= '11010101'B
+plmn-specificBS-6 BearerServiceCode ::= '11010110'B
+plmn-specificBS-7 BearerServiceCode ::= '11010111'B
+plmn-specificBS-8 BearerServiceCode ::= '11011000'B
+plmn-specificBS-9 BearerServiceCode ::= '11011001'B
+plmn-specificBS-A BearerServiceCode ::= '11011010'B
+plmn-specificBS-B BearerServiceCode ::= '11011011'B
+plmn-specificBS-C BearerServiceCode ::= '11011100'B
+plmn-specificBS-D BearerServiceCode ::= '11011101'B
+plmn-specificBS-E BearerServiceCode ::= '11011110'B
+plmn-specificBS-F BearerServiceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000000..10e9d8ff98
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CH-DataTypes.asn
@@ -0,0 +1,438 @@
+MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ NumberOfForwarding,
+ SuppressionOfAnnouncement,
+ CallReferenceNumber,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+IST-CommandRes
+;
+
+IMPORTS
+ SubscriberInfo,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ CUG-Interlock,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ IST-SupportIndicator,
+ IST-AlertTimerValue,
+ T-CSI,
+ NumberPortabilityStatus
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ForwardingOptions,
+ SS-List,
+ CCBS-Feature
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ IMSI,
+ LMSI,
+ Ext-BasicServiceCode,
+ AlertingPattern,
+ NAEA-PreferredCI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+CUG-CheckInfo ::= SEQUENCE {
+ cug-Interlock CUG-Interlock,
+ cug-OutgoingAccess NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NumberOfForwarding ::= INTEGER (1..5)
+
+SendRoutingInfoArg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ cug-CheckInfo [1] CUG-CheckInfo OPTIONAL,
+ numberOfForwarding [2] NumberOfForwarding OPTIONAL,
+ interrogationType [3] InterrogationType,
+ or-Interrogation [4] NULL OPTIONAL,
+ or-Capability [5] OR-Phase OPTIONAL,
+ gmsc-OrGsmSCF-Address [6] ISDN-AddressString,
+ callReferenceNumber [7] CallReferenceNumber OPTIONAL,
+ forwardingReason [8] ForwardingReason OPTIONAL,
+ basicServiceGroup [9] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo [10] ExternalSignalInfo OPTIONAL,
+ camelInfo [11] CamelInfo OPTIONAL,
+ suppressionOfAnnouncement [12] SuppressionOfAnnouncement OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ alertingPattern [14] AlertingPattern OPTIONAL,
+ ccbs-Call [15] NULL OPTIONAL,
+ supportedCCBS-Phase [16] SupportedCCBS-Phase OPTIONAL,
+ additionalSignalInfo [17] Ext-ExternalSignalInfo OPTIONAL,
+ istSupportIndicator [18] IST-SupportIndicator OPTIONAL,
+ pre-pagingSupported [19] NULL OPTIONAL,
+ callDiversionTreatmentIndicator [20] CallDiversionTreatmentIndicator OPTIONAL,
+ longFTN-Supported [21] NULL OPTIONAL,
+ suppress-VT-CSI [22] NULL OPTIONAL,
+ suppressIncomingCallBarring [23] NULL OPTIONAL,
+ gsmSCF-InitiatedCall [24] NULL OPTIONAL,
+ basicServiceGroup2 [25] Ext-BasicServiceCode OPTIONAL,
+ networkSignalInfo2 [26] ExternalSignalInfo OPTIONAL
+ }
+
+SuppressionOfAnnouncement ::= NULL
+
+InterrogationType ::= ENUMERATED {
+ basicCall (0),
+ forwarding (1)}
+
+OR-Phase ::= INTEGER (1..127)
+
+CallReferenceNumber ::= OCTET STRING (SIZE (1..8))
+
+ForwardingReason ::= ENUMERATED {
+ notReachable (0),
+ busy (1),
+ noReply (2)}
+
+SupportedCCBS-Phase ::= INTEGER (1..127)
+-- exception handling:
+-- Only value 1 is used.
+-- Values in the ranges 2-127 are reserved for future use.
+-- If received values 2-127 shall be mapped on to value 1.
+
+CallDiversionTreatmentIndicator ::= OCTET STRING (SIZE(1))
+-- callDiversionAllowed (xxxx xx01)
+-- callDiversionNotAllowed (xxxx xx10)
+-- network default is call diversion allowed
+
+SendRoutingInfoRes ::= [3] SEQUENCE {
+ imsi [9] IMSI OPTIONAL,
+ -- IMSI must be present if SendRoutingInfoRes is not segmented.
+ -- If the TC-Result-NL segmentation option is taken the IMSI must be
+ -- present in one segmented transmission of SendRoutingInfoRes.
+ extendedRoutingInfo ExtendedRoutingInfo OPTIONAL,
+ cug-CheckInfo [3] CUG-CheckInfo OPTIONAL,
+ cugSubscriptionFlag [6] NULL OPTIONAL,
+ subscriberInfo [7] SubscriberInfo OPTIONAL,
+ ss-List [1] SS-List OPTIONAL,
+ basicService [5] Ext-BasicServiceCode OPTIONAL,
+ forwardingInterrogationRequired [4] NULL OPTIONAL,
+ vmsc-Address [2] ISDN-AddressString OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [10] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ ccbs-Indicators [11] CCBS-Indicators OPTIONAL,
+ msisdn [12] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [13] NumberPortabilityStatus OPTIONAL,
+ istAlertTimer [14] IST-AlertTimerValue OPTIONAL,
+ supportedCamelPhasesInVMSC [15] SupportedCamelPhases OPTIONAL,
+ offeredCamel4CSIsInVMSC [16] OfferedCamel4CSIs OPTIONAL,
+ routingInfo2 [17] RoutingInfo OPTIONAL,
+ ss-List2 [18] SS-List OPTIONAL,
+ basicService2 [19] Ext-BasicServiceCode OPTIONAL,
+ allowedServices [20] AllowedServices OPTIONAL,
+ unavailabilityCause [21] UnavailabilityCause OPTIONAL
+ }
+
+AllowedServices ::= BIT STRING {
+ firstServiceAllowed (0),
+ secondServiceAllowed (1) } (SIZE (2..8))
+ -- firstService is the service indicated in the networkSignalInfo
+ -- secondService is the service indicated in the networkSignalInfo2
+ -- Other bits than listed above shall be discarded
+
+UnavailabilityCause ::= ENUMERATED {
+ bearerServiceNotProvisioned (1),
+ teleserviceNotProvisioned (2),
+ absentSubscriber (3),
+ busySubscriber (4),
+ callBarred (5),
+ cug-Reject (6),
+ ...}
+ -- exception handling:
+ -- Reception of other values than the ones listed shall result in the service
+ -- being unavailable for that call.
+
+CCBS-Indicators ::= SEQUENCE {
+ ccbs-Possible [0] NULL OPTIONAL,
+ keepCCBS-CallIndicator [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfo ::= CHOICE {
+ roamingNumber ISDN-AddressString,
+ forwardingData ForwardingData}
+
+ForwardingData ::= SEQUENCE {
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this datatype is sent from an HLR which supports CAMEL Phase 2
+ -- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the
+ -- format of the number
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [8] FTN-AddressString OPTIONAL}
+
+ProvideRoamingNumberArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msc-Number [1] ISDN-AddressString,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ gsm-BearerCapability [5] ExternalSignalInfo OPTIONAL,
+ networkSignalInfo [6] ExternalSignalInfo OPTIONAL,
+ suppressionOfAnnouncement [7] SuppressionOfAnnouncement OPTIONAL,
+ gmsc-Address [8] ISDN-AddressString OPTIONAL,
+ callReferenceNumber [9] CallReferenceNumber OPTIONAL,
+ or-Interrogation [10] NULL OPTIONAL,
+ extensionContainer [11] ExtensionContainer OPTIONAL,
+ ... ,
+ alertingPattern [12] AlertingPattern OPTIONAL,
+ ccbs-Call [13] NULL OPTIONAL,
+ supportedCamelPhasesInInterrogatingNode [15] SupportedCamelPhases OPTIONAL,
+ additionalSignalInfo [14] Ext-ExternalSignalInfo OPTIONAL,
+ orNotSupportedInGMSC [16] NULL OPTIONAL,
+ pre-pagingSupported [17] NULL OPTIONAL,
+ longFTN-Supported [18] NULL OPTIONAL,
+ suppress-VT-CSI [19] NULL OPTIONAL,
+ offeredCamel4CSIsInInterrogatingNode [20] OfferedCamel4CSIs OPTIONAL
+ }
+
+ProvideRoamingNumberRes ::= SEQUENCE {
+ roamingNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResumeCallHandlingArg ::= SEQUENCE {
+ callReferenceNumber [0] CallReferenceNumber OPTIONAL,
+ basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL,
+ forwardingData [2] ForwardingData OPTIONAL,
+ imsi [3] IMSI OPTIONAL,
+ cug-CheckInfo [4] CUG-CheckInfo OPTIONAL,
+ o-CSI [5] O-CSI OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ccbs-Possible [8] NULL OPTIONAL,
+ msisdn [9] ISDN-AddressString OPTIONAL,
+ uu-Data [10] UU-Data OPTIONAL,
+ allInformationSent [11] NULL OPTIONAL,
+ ...,
+ d-csi [12] D-CSI OPTIONAL,
+ o-BcsmCamelTDPCriteriaList [13] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ basicServiceGroup2 [14] Ext-BasicServiceCode OPTIONAL
+ }
+
+UU-Data ::= SEQUENCE {
+ uuIndicator [0] UUIndicator OPTIONAL,
+ uui [1] UUI OPTIONAL,
+ uusCFInteraction [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+UUIndicator ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to ETS 300 356
+
+UUI ::= OCTET STRING (SIZE (1..131))
+ -- Octets are coded according to ETS 300 356
+
+ResumeCallHandlingRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CamelInfo ::= SEQUENCE {
+ supportedCamelPhases SupportedCamelPhases,
+ suppress-T-CSI NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [0] OfferedCamel4CSIs OPTIONAL }
+
+ExtendedRoutingInfo ::= CHOICE {
+ routingInfo RoutingInfo,
+ camelRoutingInfo [8] CamelRoutingInfo}
+
+CamelRoutingInfo ::= SEQUENCE {
+ forwardingData ForwardingData OPTIONAL,
+ gmscCamelSubscriptionInfo [0] GmscCamelSubscriptionInfo,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+GmscCamelSubscriptionInfo ::= SEQUENCE {
+ t-CSI [0] T-CSI OPTIONAL,
+ o-CSI [1] O-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ o-BcsmCamelTDP-CriteriaList [3] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-csi [5] D-CSI OPTIONAL}
+
+SetReportingStateArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ lmsi [1] LMSI OPTIONAL,
+ ccbs-Monitoring [2] ReportingState OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ReportingState ::= ENUMERATED {
+ stopMonitoring (0),
+ startMonitoring (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to 'stopMonitoring'
+ -- reception of values > 10 shall be mapped to 'startMonitoring'
+
+SetReportingStateRes ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CCBS-SubscriberStatus ::= ENUMERATED {
+ ccbsNotIdle (0),
+ ccbsIdle (1),
+ ccbsNotReachable (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'ccbsNotIdle'
+ -- reception of values 11-20 shall be mapped to 'ccbsIdle'
+ -- reception of values > 20 shall be mapped to 'ccbsNotReachable'
+
+StatusReportArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ eventReportData [1] EventReportData OPTIONAL,
+ callReportdata [2] CallReportData OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+EventReportData ::= SEQUENCE{
+ ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+CallReportData ::= SEQUENCE{
+ monitoringMode [0] MonitoringMode OPTIONAL,
+ callOutcome [1] CallOutcome OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+MonitoringMode ::= ENUMERATED {
+ a-side (0),
+ b-side (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped 'a-side'
+ -- reception of values > 10 shall be mapped to 'b-side'
+
+CallOutcome ::= ENUMERATED {
+ success (0),
+ failure (1),
+ busy (2),
+ ...}
+ -- exception handling:
+ -- reception of values 3-10 shall be mapped to 'success'
+ -- reception of values 11-20 shall be mapped to 'failure'
+ -- reception of values > 20 shall be mapped to 'busy'
+
+StatusReportRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ callInfo [1] ExternalSignalInfo,
+ ccbs-Feature [2] CCBS-Feature,
+ translatedB-Number [3] ISDN-AddressString,
+ replaceB-Number [4] NULL OPTIONAL,
+ alertingPattern [5] AlertingPattern OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+RemoteUserFreeRes ::= SEQUENCE{
+ ruf-Outcome [0] RUF-Outcome,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+RUF-Outcome ::= ENUMERATED{
+ accepted (0),
+ rejected (1),
+ noResponseFromFreeMS (2), -- T4 Expiry
+ noResponseFromBusyMS (3), -- T10 Expiry
+ udubFromFreeMS (4),
+ udubFromBusyMS (5),
+ ...}
+ -- exception handling:
+ -- reception of values 6-20 shall be mapped to 'accepted'
+ -- reception of values 21-30 shall be mapped to 'rejected'
+ -- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS'
+ -- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS'
+ -- reception of values 51-60 shall be mapped to 'udubFromFreeMS'
+ -- reception of values > 60 shall be mapped to 'udubFromBusyMS'
+
+IST-AlertArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-AlertRes ::= SEQUENCE{
+ istAlertTimer [0] IST-AlertTimerValue OPTIONAL,
+ istInformationWithdraw [1] NULL OPTIONAL,
+ callTerminationIndicator [2] CallTerminationIndicator OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandArg ::= SEQUENCE{
+ imsi [0] IMSI,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+IST-CommandRes ::= SEQUENCE{
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CallTerminationIndicator ::= ENUMERATED {
+ terminateCallActivityReferred (0),
+ terminateAllCallActivities (1),
+ ...}
+ -- exception handling:
+ -- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred '
+ -- reception of values > 10 shall be mapped to ' terminateAllCallActivities '
+
+ -- In MSCs not supporting linkage of all call activities, any value received shall
+ -- be interpreted as ' terminateCallActivityReferred '
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000000..473e968247
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CallHandlingOperations.asn
@@ -0,0 +1,198 @@
+MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ or-NotAllowed,
+ unknownSubscriber,
+ numberChanged,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ noRoamingNumberAvailable,
+ absentSubscriber,
+ busySubscriber,
+ noSubscriberReply,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+ resourceLimitation,
+ incompatibleTerminal,
+ unidentifiedSubscriber
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+ SendRoutingInfoArg,
+ SendRoutingInfoRes,
+ ProvideRoamingNumberArg,
+ ProvideRoamingNumberRes,
+ ResumeCallHandlingArg,
+ ResumeCallHandlingRes,
+ SetReportingStateArg,
+ SetReportingStateRes,
+ StatusReportArg,
+ StatusReportRes,
+ RemoteUserFreeArg,
+ RemoteUserFreeRes,
+ IST-AlertArg,
+ IST-AlertRes,
+ IST-CommandArg,
+ IST-CommandRes
+FROM MAP-CH-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}
+
+;
+
+sendRoutingInfo OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the GMSC supports pre-paging.
+ ARGUMENT
+ SendRoutingInfoArg
+ RESULT
+ SendRoutingInfoRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ unknownSubscriber |
+ numberChanged |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ absentSubscriber |
+ busySubscriber |
+ noSubscriberReply |
+ callBarred |
+ cug-Reject |
+ forwardingViolation}
+ CODE local:22 }
+
+provideRoamingNumber OPERATION ::= { --Timer m
+-- The timer is set to the upper limit of the range if the HLR supports pre-paging.
+ ARGUMENT
+ ProvideRoamingNumberArg
+ RESULT
+ ProvideRoamingNumberRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ or-NotAllowed |
+ absentSubscriber |
+ noRoamingNumberAvailable}
+ CODE local:4 }
+
+resumeCallHandling OPERATION ::= { --Timer m
+ ARGUMENT
+ ResumeCallHandlingArg
+ RESULT
+ ResumeCallHandlingRes
+ -- optional
+ ERRORS {
+ forwardingFailed |
+ or-NotAllowed |
+ unexpectedDataValue |
+ dataMissing }
+ CODE local:6 }
+
+setReportingState OPERATION ::= { --Timer m
+ ARGUMENT
+ SetReportingStateArg
+ RESULT
+ SetReportingStateRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unidentifiedSubscriber |
+ unexpectedDataValue |
+ dataMissing |
+ resourceLimitation |
+ facilityNotSupported}
+ CODE local:73 }
+
+statusReport OPERATION ::= { --Timer m
+ ARGUMENT
+ StatusReportArg
+ RESULT
+ StatusReportRes
+ -- optional
+ ERRORS {
+ unknownSubscriber |
+ systemFailure |
+ unexpectedDataValue |
+ dataMissing}
+ CODE local:74 }
+
+remoteUserFree OPERATION ::= { --Timer ml
+ ARGUMENT
+ RemoteUserFreeArg
+ RESULT
+ RemoteUserFreeRes
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ incompatibleTerminal |
+ absentSubscriber |
+ systemFailure |
+ busySubscriber}
+ CODE local:75 }
+
+ist-Alert OPERATION ::= { --Timer m
+ ARGUMENT
+ IST-AlertArg
+ RESULT
+ IST-AlertRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:87 }
+
+ist-Command OPERATION::= { --Timer m
+ ARGUMENT
+ IST-CommandArg
+ RESULT
+ IST-CommandRes
+ -- optional
+ ERRORS {
+ unexpectedDataValue |
+ resourceLimitation |
+ unknownSubscriber |
+ systemFailure |
+ facilityNotSupported}
+ CODE local:88 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000000..55d234e91f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-CommonDataTypes.asn
@@ -0,0 +1,612 @@
+MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- general data types and values
+ AddressString,
+ ISDN-AddressString,
+ maxISDN-AddressLength,
+ FTN-AddressString,
+ ISDN-SubaddressString,
+ ExternalSignalInfo,
+ Ext-ExternalSignalInfo,
+ AccessNetworkSignalInfo,
+ SignalInfo,
+ maxSignalInfoLength,
+ AlertingPattern,
+ TBCD-STRING,
+
+ -- data types for numbering and identification
+ IMSI,
+ TMSI,
+ Identity,
+ SubscriberId,
+ IMEI,
+ HLR-List,
+ LMSI,
+ GlobalCellId,
+ NetworkResource,
+ AdditionalNetworkResource,
+ NAEA-PreferredCI,
+ NAEA-CIC,
+ ASCI-CallReference,
+ SubscriberIdentity,
+
+ -- data types for CAMEL
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ CellGlobalIdOrServiceAreaIdFixedLength,
+ LAIFixedLength,
+
+ -- data types for subscriber management
+ BasicServiceCode,
+ Ext-BasicServiceCode,
+ EMLPP-Info,
+ EMLPP-Priority,
+ MC-SS-Info,
+ MaxMC-Bearers,
+ MC-Bearers,
+ Ext-SS-Status,
+
+ -- data types for geographic location
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID
+;
+
+IMPORTS
+ TeleserviceCode,
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ BearerServiceCode,
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+-- general data types
+
+TBCD-STRING ::= OCTET STRING
+ -- This type (Telephony Binary Coded Decimal String) is used to
+ -- represent several digits from 0 through 9, *, #, a, b, c, two
+ -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
+ -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
+ -- as filler when there is an odd number of digits.
+
+ -- bits 8765 of octet n encoding digit 2n
+ -- bits 4321 of octet n encoding digit 2(n-1) +1
+
+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
+ -- This type is used to represent a number for addressing
+ -- purposes. It is composed of
+ -- a) one octet for nature of address, and numbering plan
+ -- indicator.
+ -- b) digits of an address encoded as TBCD-String.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits nature of address indicator and a 4 bits numbering
+ -- plan indicator, encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: nature of address indicator
+ -- 000 unknown
+ -- 001 international number
+ -- 010 national significant number
+ -- 011 network specific number
+ -- 100 subscriber number
+ -- 101 reserved
+ -- 110 abbreviated number
+ -- 111 reserved for extension
+
+ -- bits 4321: numbering plan indicator
+ -- 0000 unknown
+ -- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
+ -- 0010 spare
+ -- 0011 data numbering plan (ITU-T Rec X.121)
+ -- 0100 telex numbering plan (ITU-T Rec F.69)
+ -- 0101 spare
+ -- 0110 land mobile numbering plan (ITU-T Rec E.212)
+ -- 0111 spare
+ -- 1000 national numbering plan
+ -- 1001 private numbering plan
+ -- 1111 reserved for extension
+
+ -- all other values are reserved.
+
+ -- b) The following octets representing digits of an address
+ -- encoded as a TBCD-STRING.
+
+maxAddressLength INTEGER ::= 20
+
+ISDN-AddressString ::=
+ AddressString (SIZE (1..maxISDN-AddressLength))
+ -- This type is used to represent ISDN numbers.
+
+maxISDN-AddressLength INTEGER ::= 9
+
+FTN-AddressString ::=
+ AddressString (SIZE (1..maxFTN-AddressLength))
+ -- This type is used to represent forwarded-to numbers.
+ -- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown;
+ -- if NAI = international the first digits represent the country code (CC)
+ -- and the network destination code (NDC) as for E.164.
+
+maxFTN-AddressLength INTEGER ::= 15
+
+ISDN-SubaddressString ::=
+ OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
+ -- This type is used to represent ISDN subaddresses.
+ -- It is composed of
+ -- a) one octet for type of subaddress and odd/even indicator.
+ -- b) 20 octets for subaddress information.
+
+ -- a) The first octet includes a one bit extension indicator, a
+ -- 3 bits type of subaddress and a one bit odd/even indicator,
+ -- encoded as follows:
+
+ -- bit 8: 1 (no extension)
+
+ -- bits 765: type of subaddress
+ -- 000 NSAP (X.213/ISO 8348 AD2)
+ -- 010 User Specified
+ -- All other values are reserved
+
+ -- bit 4: odd/even indicator
+ -- 0 even number of address signals
+ -- 1 odd number of address signals
+ -- The odd/even indicator is used when the type of subaddress
+ -- is "user specified" and the coding is BCD.
+
+ -- bits 321: 000 (unused)
+
+ -- b) Subaddress information.
+ -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
+ -- by octet 4 which contains the Authority and Format Identifier
+ -- (AFI). The encoding is made according to the "preferred binary
+ -- encoding" as defined in X.213/ISO834AD2. For the definition
+ -- of this type of subaddress, see ITU-T Rec I.334.
+
+ -- For User-specific subaddress, this field is encoded according
+ -- to the user specification, subject to a maximum length of 20
+ -- octets. When interworking with X.25 networks BCD coding should
+ -- be applied.
+
+maxISDN-SubaddressLength INTEGER ::= 21
+
+ExternalSignalInfo ::= SEQUENCE {
+ protocolId ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ ...}
+
+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
+
+maxSignalInfoLength INTEGER ::= 200
+ -- This NamedValue represents the theoretical maximum number of octets which is
+ -- available to carry a single instance of the SignalInfo data type,
+ -- without requiring segmentation to cope with the network layer service.
+ -- However, the actual maximum size available for an instance of the data
+ -- type may be lower, especially when other information elements
+ -- have to be included in the same component.
+
+ProtocolId ::= ENUMERATED {
+ gsm-0408 (1),
+ gsm-0806 (2),
+ gsm-BSSMAP (3),
+ -- Value 3 is reserved and must not be used
+ ets-300102-1 (4)}
+
+Ext-ExternalSignalInfo ::= SEQUENCE {
+ ext-ProtocolId Ext-ProtocolId,
+ signalInfo SignalInfo,
+ -- Information about the internal structure is given in
+ -- clause 7.6.9.10
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ProtocolId ::= ENUMERATED {
+ ets-300356 (1),
+ ...
+ }
+-- exception handling:
+-- For Ext-ExternalSignalInfo sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- Ext-ExternalSignalInfo sequence.
+
+AccessNetworkSignalInfo ::= SEQUENCE {
+ accessNetworkProtocolId AccessNetworkProtocolId,
+ signalInfo LongSignalInfo,
+ -- Information about the internal structure is given in clause 7.6.9.1
+
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
+
+maxLongSignalInfoLength INTEGER ::= 2560
+ -- This Named Value represents the maximum number of octets which is available
+ -- to carry a single instance of the LongSignalInfo data type using
+ -- White Book SCCP with the maximum number of segments.
+ -- It takes account of the octets used by the lower layers of the protocol, and
+ -- other information elements which may be included in the same component.
+
+AccessNetworkProtocolId ::= ENUMERATED {
+ ts3G-48006 (1),
+ ts3G-25413 (2),
+ ...}
+ -- exception handling:
+ -- For AccessNetworkSignalInfo sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- AccessNetworkSignalInfo sequence.
+
+AlertingPattern ::= OCTET STRING (SIZE (1) )
+ -- This type is used to represent Alerting Pattern
+
+ -- bits 8765 : 0000 (unused)
+
+ -- bits 43 : type of Pattern
+ -- 00 level
+ -- 01 category
+ -- 10 category
+ -- all other values are reserved.
+
+ -- bits 21 : type of alerting
+
+alertingLevel-0 AlertingPattern ::= '00000000'B
+alertingLevel-1 AlertingPattern ::= '00000001'B
+alertingLevel-2 AlertingPattern ::= '00000010'B
+ -- all other values of Alerting level are reserved
+ -- Alerting Levels are defined in GSM 02.07
+
+alertingCategory-1 AlertingPattern ::= '00000100'B
+alertingCategory-2 AlertingPattern ::= '00000101'B
+alertingCategory-3 AlertingPattern ::= '00000110'B
+alertingCategory-4 AlertingPattern ::= '00000111'B
+alertingCategory-5 AlertingPattern ::= '00001000'B
+ -- all other values of Alerting Category are reserved
+ -- Alerting categories are defined in GSM 02.07
+
+-- data types for numbering and identification
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+Identity ::= CHOICE {
+ imsi IMSI,
+ imsi-WithLMSI IMSI-WithLMSI}
+
+IMSI-WithLMSI ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI,
+ -- a special value 00000000 indicates that the LMSI is not in use
+ ...}
+
+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
+ -- digits of VGCS/VBC-area,Group-ID are concatenated in this order.
+
+TMSI ::= OCTET STRING (SIZE (1..4))
+
+SubscriberId ::= CHOICE {
+ imsi [0] IMSI,
+ tmsi [1] TMSI}
+
+IMEI ::= TBCD-STRING (SIZE (8))
+ -- Refers to International Mobile Station Equipment Identity
+ -- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
+ -- If the SVN is not present the last octet shall contain the
+ -- digit 0 and a filler.
+ -- If present the SVN shall be included in the last octet.
+
+HLR-Id ::= IMSI
+ -- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
+ -- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].
+
+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
+ HLR-Id
+
+maxNumOfHLR-Id INTEGER ::= 50
+
+LMSI ::= OCTET STRING (SIZE (4))
+
+GlobalCellId ::= OCTET STRING (SIZE (5..7))
+ -- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+ -- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35]
+
+NetworkResource ::= ENUMERATED {
+ plmn (0),
+ hlr (1),
+ vlr (2),
+ pvlr (3),
+ controllingMSC (4),
+ vmsc (5),
+ eir (6),
+ rss (7)}
+
+AdditionalNetworkResource ::= ENUMERATED {
+ sgsn (0),
+ ggsn (1),
+ gmlc (2),
+ gsmSCF (3),
+ nplr (4),
+ auc (5),
+ ...}
+ -- if unknown value is received in AdditionalNetworkResource
+ -- it shall be ignored.
+
+
+NAEA-PreferredCI ::= SEQUENCE {
+ naea-PreferredCIC [0] NAEA-CIC,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+NAEA-CIC ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined by the Carrier Identification
+ -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
+ -- be encoded as 3 digits using "000" to "999" or as 4 digits using
+ -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
+ -- using 4 digits.
+
+SubscriberIdentity ::= CHOICE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString
+ }
+
+LCSClientExternalID ::= SEQUENCE {
+ externalAddress [0] ISDN-AddressString OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+LCSClientInternalID ::= ENUMERATED {
+ broadcastService (0),
+ o-andM-HPLMN (1),
+ o-andM-VPLMN (2),
+ anonymousLocation (3),
+ targetMSsubscribedService (4),
+ ... }
+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
+
+LCSServiceTypeID ::= INTEGER (0..127)
+ -- the integer values 0-63 are reserved for Standard LCS service types
+ -- the integer values 64-127 are reserved for Non Standard LCS service types
+
+-- Standard LCS Service Types
+emergencyServices LCSServiceTypeID ::= 0
+emergencyAlertServices LCSServiceTypeID ::= 1
+personTracking LCSServiceTypeID ::= 2
+fleetManagement LCSServiceTypeID ::= 3
+assetManagement LCSServiceTypeID ::= 4
+trafficCongestionReporting LCSServiceTypeID ::= 5
+roadsideAssistance LCSServiceTypeID ::= 6
+routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7
+navigation LCSServiceTypeID ::= 8
+ --this service type is reserved for use in previous releases
+citySightseeing LCSServiceTypeID ::= 9
+localizedAdvertising LCSServiceTypeID ::= 10
+mobileYellowPages LCSServiceTypeID ::= 11
+trafficAndPublicTransportationInfo LCSServiceTypeID ::= 12
+weather LCSServiceTypeID ::= 13
+assetAndServiceFinding LCSServiceTypeID ::= 14
+gaming LCSServiceTypeID ::= 15
+findYourFriend LCSServiceTypeID ::= 16
+dating LCSServiceTypeID ::= 17
+chatting LCSServiceTypeID ::= 18
+routeFinding LCSServiceTypeID ::= 19
+whereAmI LCSServiceTypeID ::= 20
+
+-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.
+
+-- Non Standard LCS Service Types
+serv64 LCSServiceTypeID ::= 64
+serv65 LCSServiceTypeID ::= 65
+serv66 LCSServiceTypeID ::= 66
+serv67 LCSServiceTypeID ::= 67
+serv68 LCSServiceTypeID ::= 68
+serv69 LCSServiceTypeID ::= 69
+serv70 LCSServiceTypeID ::= 70
+serv71 LCSServiceTypeID ::= 71
+serv72 LCSServiceTypeID ::= 72
+serv73 LCSServiceTypeID ::= 73
+serv74 LCSServiceTypeID ::= 74
+serv75 LCSServiceTypeID ::= 75
+serv76 LCSServiceTypeID ::= 76
+serv77 LCSServiceTypeID ::= 77
+serv78 LCSServiceTypeID ::= 78
+serv79 LCSServiceTypeID ::= 79
+serv80 LCSServiceTypeID ::= 80
+serv81 LCSServiceTypeID ::= 81
+serv82 LCSServiceTypeID ::= 82
+serv83 LCSServiceTypeID ::= 83
+serv84 LCSServiceTypeID ::= 84
+serv85 LCSServiceTypeID ::= 85
+serv86 LCSServiceTypeID ::= 86
+serv87 LCSServiceTypeID ::= 87
+serv88 LCSServiceTypeID ::= 88
+serv89 LCSServiceTypeID ::= 89
+serv90 LCSServiceTypeID ::= 90
+serv91 LCSServiceTypeID ::= 91
+serv92 LCSServiceTypeID ::= 92
+serv93 LCSServiceTypeID ::= 93
+serv94 LCSServiceTypeID ::= 94
+serv95 LCSServiceTypeID ::= 95
+serv96 LCSServiceTypeID ::= 96
+serv97 LCSServiceTypeID ::= 97
+serv98 LCSServiceTypeID ::= 98
+serv99 LCSServiceTypeID ::= 99
+serv100 LCSServiceTypeID ::= 100
+serv101 LCSServiceTypeID ::= 101
+serv102 LCSServiceTypeID ::= 102
+serv103 LCSServiceTypeID ::= 103
+serv104 LCSServiceTypeID ::= 104
+serv105 LCSServiceTypeID ::= 105
+serv106 LCSServiceTypeID ::= 106
+serv107 LCSServiceTypeID ::= 107
+serv108 LCSServiceTypeID ::= 108
+serv109 LCSServiceTypeID ::= 109
+serv110 LCSServiceTypeID ::= 110
+serv111 LCSServiceTypeID ::= 111
+serv112 LCSServiceTypeID ::= 112
+serv113 LCSServiceTypeID ::= 113
+serv114 LCSServiceTypeID ::= 114
+serv115 LCSServiceTypeID ::= 115
+serv116 LCSServiceTypeID ::= 116
+serv117 LCSServiceTypeID ::= 117
+serv118 LCSServiceTypeID ::= 118
+serv119 LCSServiceTypeID ::= 119
+serv120 LCSServiceTypeID ::= 120
+serv121 LCSServiceTypeID ::= 121
+serv122 LCSServiceTypeID ::= 122
+serv123 LCSServiceTypeID ::= 123
+serv124 LCSServiceTypeID ::= 124
+serv125 LCSServiceTypeID ::= 125
+serv126 LCSServiceTypeID ::= 126
+serv127 LCSServiceTypeID ::= 127
+
+-- data types for CAMEL
+
+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+ cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+ laiFixedLength [1] LAIFixedLength}
+
+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification or Service Are Identification
+ -- defined in 3GPP TS 23.003.
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 Cell Identity (CI) value or
+ -- Service Area Code (SAC) value
+ -- according to 3GPP TS 23.003
+
+LAIFixedLength ::= OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17].
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
+
+-- data types for subscriber management
+
+BasicServiceCode ::= CHOICE {
+ bearerService [2] BearerServiceCode,
+ teleservice [3] TeleserviceCode}
+
+Ext-BasicServiceCode ::= CHOICE {
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode}
+
+EMLPP-Info ::= SEQUENCE {
+ maximumentitledPriority EMLPP-Priority,
+ defaultPriority EMLPP-Priority,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+EMLPP-Priority ::= INTEGER (0..15)
+ -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
+ -- specified as follows where A is the highest and 4 is the lowest
+ -- priority level
+ -- the integer values 7-15 are spare and shall be mapped to value 4
+
+priorityLevelA EMLPP-Priority ::= 6
+priorityLevelB EMLPP-Priority ::= 5
+priorityLevel0 EMLPP-Priority ::= 0
+priorityLevel1 EMLPP-Priority ::= 1
+priorityLevel2 EMLPP-Priority ::= 2
+priorityLevel3 EMLPP-Priority ::= 3
+priorityLevel4 EMLPP-Priority ::= 4
+
+MC-SS-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] Ext-SS-Status,
+ nbrSB [2] MaxMC-Bearers,
+ nbrUser [3] MC-Bearers,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
+
+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
+
+maxNumOfMC-Bearers INTEGER ::= 7
+
+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+ --
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+
+ -- data types for geographic location
+
+AgeOfLocationInformation ::= INTEGER (0..32767)
+-- the value represents the elapsed time in minutes since the last
+-- network contact of the mobile station (i.e. the actuality of the
+-- location information).
+-- value "0" indicates that the MS is currently in contact with the
+-- network
+-- value "32767" indicates that the location information is at least
+-- 32767 minutes old
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-DialogueInformation.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
new file mode 100644
index 0000000000..5854cbe6b8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-DialogueInformation.asn
@@ -0,0 +1,149 @@
+MAP-DialogueInformation {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-DialogueInformation (3) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ map-DialogueAS,
+ MAP-DialoguePDU,
+ map-ProtectedDialogueAS,
+ MAP-ProtectedDialoguePDU
+
+;
+
+IMPORTS
+ gsm-NetworkId,
+ as-Id
+FROM MobileDomainDefinitions {
+ itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+
+ AddressString
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network(1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+;
+
+
+-- abstract syntax name for MAP-DialoguePDU
+
+map-DialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}
+
+MAP-DialoguePDU ::= CHOICE {
+ map-open [0] MAP-OpenInfo,
+ map-accept [1] MAP-AcceptInfo,
+ map-close [2] MAP-CloseInfo,
+ map-refuse [3] MAP-RefuseInfo,
+ map-userAbort [4] MAP-UserAbortInfo,
+ map-providerAbort [5] MAP-ProviderAbortInfo}
+
+MAP-OpenInfo ::= SEQUENCE {
+ destinationReference [0] AddressString OPTIONAL,
+ originationReference [1] AddressString OPTIONAL,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-AcceptInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-CloseInfo ::= SEQUENCE {
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-RefuseInfo ::= SEQUENCE {
+ reason Reason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL,
+ -- extensionContainer must not be used in version 2
+ alternativeApplicationContext OBJECT IDENTIFIER OPTIONAL
+ -- alternativeApplicationContext must not be used in version 2
+ }
+
+Reason ::= ENUMERATED {
+ noReasonGiven (0),
+ invalidDestinationReference (1),
+ invalidOriginatingReference (2),
+ encapsulatedAC-NotSupported (3) ,
+ transportProtectionNotAdequate (4)}
+ -- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in
+ -- dialogues with an AC different from secureTransportHandling
+
+MAP-UserAbortInfo ::= SEQUENCE {
+ map-UserAbortChoice MAP-UserAbortChoice,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-UserAbortChoice ::= CHOICE {
+ userSpecificReason [0] NULL,
+ userResourceLimitation [1] NULL,
+ resourceUnavailable [2] ResourceUnavailableReason,
+ applicationProcedureCancellation [3] ProcedureCancellationReason}
+
+ResourceUnavailableReason ::= ENUMERATED {
+ shortTermResourceLimitation (0),
+ longTermResourceLimitation (1)}
+
+ProcedureCancellationReason ::= ENUMERATED {
+ handoverCancellation (0),
+ radioChannelRelease (1),
+ networkPathRelease (2),
+ callRelease (3),
+ associatedProcedureFailure (4),
+ tandemDialogueRelease (5),
+ remoteOperationsFailure (6)}
+
+MAP-ProviderAbortInfo ::= SEQUENCE {
+ map-ProviderAbortReason MAP-ProviderAbortReason,
+ ...,
+ extensionContainer ExtensionContainer OPTIONAL
+ -- extensionContainer must not be used in version 2
+ }
+
+MAP-ProviderAbortReason ::= ENUMERATED {
+ abnormalDialogue (0),
+ invalidPDU (1)}
+
+-- abstract syntax name for MAP-ProtectedDialoguePDU
+
+map-ProtectedDialogueAS OBJECT IDENTIFIER ::=
+ {gsm-NetworkId as-Id map-ProtectedDialoguePDU (3) version1 (1)}
+
+MAP-ProtectedDialoguePDU ::= SEQUENCE {
+ encapsulatedAC OBJECT IDENTIFIER,
+ securityHeader SecurityHeader OPTIONAL,
+ protectedPayload ProtectedPayload OPTIONAL,
+ ...}
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported
+ -- MAP-DialoguePDU
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000000..b66702cb61
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ER-DataTypes.asn
@@ -0,0 +1,405 @@
+MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoamingNotAllowedParam,
+ CallBarredParam,
+ CUG-RejectParam,
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ OR-NotAllowedParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ AbsentSubscriberDiagnosticSM,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ SecureTransportErrorParam,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param
+
+;
+
+IMPORTS
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SignalInfo,
+ BasicServiceCode,
+ NetworkResource,
+ AdditionalNetworkResource
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ SecurityHeader,
+ ProtectedPayload
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+RoamingNotAllowedParam ::= SEQUENCE {
+ roamingNotAllowedCause RoamingNotAllowedCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RoamingNotAllowedCause ::= ENUMERATED {
+ plmnRoamingNotAllowed (0),
+ operatorDeterminedBarring (3)}
+
+CallBarredParam ::= CHOICE {
+ callBarringCause CallBarringCause,
+ -- call BarringCause must not be used in version 3 and higher
+ extensibleCallBarredParam ExtensibleCallBarredParam
+ -- extensibleCallBarredParam must not be used in version <3
+ }
+
+CallBarringCause ::= ENUMERATED {
+ barringServiceActive (0),
+ operatorBarring (1)}
+
+ExtensibleCallBarredParam ::= SEQUENCE {
+ callBarringCause CallBarringCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ unauthorisedMessageOriginator [1] NULL OPTIONAL }
+
+CUG-RejectParam ::= SEQUENCE {
+ cug-RejectCause CUG-RejectCause OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-RejectCause ::= ENUMERATED {
+ incomingCallsBarredWithinCUG (0),
+ subscriberNotMemberOfCUG (1),
+ requestedBasicServiceViolatesCUG-Constraints (5),
+ calledPartySS-InteractionViolation (7)}
+
+SS-IncompatibilityCause ::= SEQUENCE {
+ ss-Code [1] SS-Code OPTIONAL,
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+PW-RegistrationFailureCause ::= ENUMERATED {
+ undetermined (0),
+ invalidFormat (1),
+ newPasswordsMismatch (2)}
+
+SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ equipmentProtocolError (1),
+ equipmentNotSM-Equipped (2),
+ unknownServiceCentre (3),
+ sc-Congestion (4),
+ invalidSME-Address (5),
+ subscriberNotSC-Subscriber (6)}
+
+SM-DeliveryFailureCause ::= SEQUENCE {
+ sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause,
+ diagnosticInfo SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberSM-Param ::= SEQUENCE {
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ -- AbsentSubscriberDiagnosticSM can be either for non-GPRS
+ -- or for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- if received, additionalAbsentSubscriberDiagnosticSM
+ -- is for GPRS and absentSubscriberDiagnosticSM is
+ -- for non-GPRS
+
+AbsentSubscriberDiagnosticSM ::= INTEGER (0..255)
+ -- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040
+
+SystemFailureParam ::= CHOICE {
+ networkResource NetworkResource,
+ -- networkResource must not be used in version 3
+ extensibleSystemFailureParam ExtensibleSystemFailureParam
+ -- extensibleSystemFailureParam must not be used in version <3
+ }
+
+ExtensibleSystemFailureParam ::= SEQUENCE {
+ networkResource NetworkResource OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ additionalNetworkResource [0] AdditionalNetworkResource OPTIONAL }
+
+DataMissingParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnexpectedDataParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FacilityNotSupParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL,
+ neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL }
+
+OR-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnknownSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
+
+UnknownSubscriberDiagnostic ::= ENUMERATED {
+ imsiUnknown (0),
+ gprsSubscriptionUnknown (1),
+ ...,
+ npdbMismatch (2)}
+ -- if unknown values are received in
+ -- UnknownSubscriberDiagnostic they shall be discarded
+
+NumberChangedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnidentifiedSubParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalEquipmentParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+BearerServNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TeleservNotProvParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TracingBufferFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoRoamingNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AbsentSubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL}
+
+AbsentSubscriberReason ::= ENUMERATED {
+ imsiDetach (0),
+ restrictedArea (1),
+ noPageResponse (2),
+ ... ,
+ purgedMS (3)}
+-- exception handling: at reception of other values than the ones listed the
+-- AbsentSubscriberReason shall be ignored.
+-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature
+-- (see TS 23.116). If this value is received in a Provide Roaming Number response
+-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing
+-- Information response
+
+BusySubscriberParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ccbs-Possible [0] NULL OPTIONAL,
+ ccbs-Busy [1] NULL OPTIONAL}
+
+NoSubscriberReplyParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardingFailedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATSI-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ATM-NotAllowedParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IllegalSS-OperationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-NotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-SubscriptionViolationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InformationNotAvailableParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubBusyForMT-SMS-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ gprsConnectionSuspended NULL OPTIONAL }
+ -- If GprsConnectionSuspended is not understood it shall
+ -- be discarded
+
+MessageWaitListFullParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ResourceLimitationParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoGroupCallNbParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+IncompatibleTerminalParam ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ShortTermDenialParam ::= SEQUENCE {
+ ...}
+
+LongTermDenialParam ::= SEQUENCE {
+ ...}
+
+UnauthorizedRequestingNetwork-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+UnauthorizedLCSClient-Param ::= SEQUENCE {
+ unauthorizedLCSClient-Diagnostic [0] UnauthorizedLCSClient-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {
+ noAdditionalInformation (0),
+ clientNotInMSPrivacyExceptionList (1),
+ callToClientNotSetup (2),
+ privacyOverrideNotApplicable (3),
+ disallowedByLocalRegulatoryRequirements (4),
+ ...,
+ unauthorizedPrivacyClass (5),
+ unauthorizedCallSessionUnrelatedExternalClient (6),
+ unauthorizedCallSessionRelatedExternalClient (7) }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+PositionMethodFailure-Param ::= SEQUENCE {
+ positionMethodFailure-Diagnostic [0] PositionMethodFailure-Diagnostic OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... }
+
+PositionMethodFailure-Diagnostic ::= ENUMERATED {
+ congestion (0),
+ insufficientResources (1),
+ insufficientMeasurementData (2),
+ inconsistentMeasurementData (3),
+ locationProcedureNotCompleted (4),
+ locationProcedureNotSupportedByTargetMS (5),
+ qoSNotAttainable (6),
+ positionMethodNotAvailableInNetwork (7),
+ positionMethodNotAvailableInLocationArea (8),
+ ... }
+-- exception handling:
+-- any unrecognized value shall be ignored
+
+UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MM-EventNotSupported-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+TargetCellOutsideGCA-Param ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SecureTransportErrorParam ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the securely transported error
+ -- parameter
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Errors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Errors.asn
new file mode 100644
index 0000000000..f0aa2b0a3a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Errors.asn
@@ -0,0 +1,507 @@
+MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- generic errors
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ incompatibleTerminal,
+ resourceLimitation,
+
+ -- identification and numbering errors
+ unknownSubscriber,
+ numberChanged,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+
+ -- subscription errors
+ roamingNotAllowed,
+ illegalSubscriber,
+ illegalEquipment,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+
+ -- handover errors
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ targetCellOutsideGroupCallArea,
+
+ -- operation and maintenance errors
+ tracingBufferFull,
+
+ -- call handling errors
+ or-NotAllowed,
+ noRoamingNumberAvailable,
+ busySubscriber,
+ noSubscriberReply,
+ absentSubscriber,
+ callBarred,
+ forwardingViolation,
+ forwardingFailed,
+ cug-Reject,
+
+ -- any time interrogation errors
+ ati-NotAllowed,
+
+ -- any time information handling errors
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ informationNotAvailable,
+
+ -- supplementary service errors
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ unknownAlphabet,
+ ussd-Busy,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ shortTermDenial,
+ longTermDenial,
+
+ -- short message service errors
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM,
+
+ -- Group Call errors
+ noGroupCallNumberAvailable,
+
+ -- location service errors
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ unknownOrUnreachableLCSClient,
+
+ -- Mobility Management errors
+ mm-EventNotSupported,
+
+ -- Secure transport errors
+ secureTransportError
+
+;
+
+IMPORTS
+ ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0) }
+
+ SS-Status
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-IncompatibilityCause,
+ PW-RegistrationFailureCause,
+ SM-DeliveryFailureCause,
+ SystemFailureParam,
+ DataMissingParam,
+ UnexpectedDataParam,
+ FacilityNotSupParam,
+ UnknownSubscriberParam,
+ NumberChangedParam,
+ UnidentifiedSubParam,
+ RoamingNotAllowedParam,
+ IllegalSubscriberParam,
+ IllegalEquipmentParam,
+ BearerServNotProvParam,
+ TeleservNotProvParam,
+ TracingBufferFullParam,
+ NoRoamingNbParam,
+ OR-NotAllowedParam,
+ AbsentSubscriberParam,
+ BusySubscriberParam,
+ NoSubscriberReplyParam,
+ CallBarredParam,
+ ForwardingViolationParam,
+ ForwardingFailedParam,
+ CUG-RejectParam,
+ ATI-NotAllowedParam,
+ SubBusyForMT-SMS-Param,
+ MessageWaitListFullParam,
+ AbsentSubscriberSM-Param,
+ ResourceLimitationParam,
+ NoGroupCallNbParam,
+ IncompatibleTerminalParam,
+ ShortTermDenialParam,
+ LongTermDenialParam,
+ UnauthorizedRequestingNetwork-Param,
+ UnauthorizedLCSClient-Param,
+ PositionMethodFailure-Param,
+ UnknownOrUnreachableLCSClient-Param,
+ MM-EventNotSupported-Param,
+ ATSI-NotAllowedParam,
+ ATM-NotAllowedParam,
+ IllegalSS-OperationParam,
+ SS-NotAvailableParam,
+ SS-SubscriptionViolationParam,
+ InformationNotAvailableParam,
+ TargetCellOutsideGCA-Param,
+ SecureTransportErrorParam
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+;
+
+-- generic errors
+
+systemFailure ERROR ::= {
+ PARAMETER
+ SystemFailureParam
+ -- optional
+ CODE local:34 }
+
+dataMissing ERROR ::= {
+ PARAMETER
+ DataMissingParam
+ -- optional
+ -- DataMissingParam must not be used in version <3
+ CODE local:35 }
+
+unexpectedDataValue ERROR ::= {
+ PARAMETER
+ UnexpectedDataParam
+ -- optional
+ -- UnexpectedDataParam must not be used in version <3
+ CODE local:36 }
+
+facilityNotSupported ERROR ::= {
+ PARAMETER
+ FacilityNotSupParam
+ -- optional
+ -- FacilityNotSupParam must not be used in version <3
+ CODE local:21 }
+
+incompatibleTerminal ERROR ::= {
+ PARAMETER
+ IncompatibleTerminalParam
+ -- optional
+ CODE local:28 }
+
+resourceLimitation ERROR ::= {
+ PARAMETER
+ ResourceLimitationParam
+ -- optional
+ CODE local:51 }
+
+-- identification and numbering errors
+
+unknownSubscriber ERROR ::= {
+ PARAMETER
+ UnknownSubscriberParam
+ -- optional
+ -- UnknownSubscriberParam must not be used in version <3
+ CODE local:1 }
+
+numberChanged ERROR ::= {
+ PARAMETER
+ NumberChangedParam
+ -- optional
+ CODE local:44 }
+
+unknownMSC ERROR ::= {
+ CODE local:3 }
+
+unidentifiedSubscriber ERROR ::= {
+ PARAMETER
+ UnidentifiedSubParam
+ -- optional
+ -- UunidentifiedSubParam must not be used in version <3
+ CODE local:5 }
+
+unknownEquipment ERROR ::= {
+ CODE local:7 }
+
+-- subscription errors
+
+roamingNotAllowed ERROR ::= {
+ PARAMETER
+ RoamingNotAllowedParam
+ CODE local:8 }
+
+illegalSubscriber ERROR ::= {
+ PARAMETER
+ IllegalSubscriberParam
+ -- optional
+ -- IllegalSubscriberParam must not be used in version <3
+ CODE local:9 }
+
+illegalEquipment ERROR ::= {
+ PARAMETER
+ IllegalEquipmentParam
+ -- optional
+ -- IllegalEquipmentParam must not be used in version <3
+ CODE local:12 }
+
+bearerServiceNotProvisioned ERROR ::= {
+ PARAMETER
+ BearerServNotProvParam
+ -- optional
+ -- BearerServNotProvParam must not be used in version <3
+ CODE local:10 }
+
+teleserviceNotProvisioned ERROR ::= {
+ PARAMETER
+ TeleservNotProvParam
+ -- optional
+ -- TeleservNotProvParam must not be used in version <3
+ CODE local:11 }
+
+-- handover errors
+
+noHandoverNumberAvailable ERROR ::= {
+ CODE local:25 }
+
+subsequentHandoverFailure ERROR ::= {
+ CODE local:26 }
+
+targetCellOutsideGroupCallArea ERROR ::= {
+ PARAMETER
+ TargetCellOutsideGCA-Param
+ -- optional
+ CODE local:42 }
+
+-- operation and maintenance errors
+
+tracingBufferFull ERROR ::= {
+ PARAMETER
+ TracingBufferFullParam
+ -- optional
+ CODE local: 40 }
+
+-- call handling errors
+
+noRoamingNumberAvailable ERROR ::= {
+ PARAMETER
+ NoRoamingNbParam
+ -- optional
+ CODE local:39 }
+
+absentSubscriber ERROR ::= {
+ PARAMETER
+ AbsentSubscriberParam
+ -- optional
+ -- AbsentSubscriberParam must not be used in version <3
+ CODE local:27 }
+
+busySubscriber ERROR ::= {
+ PARAMETER
+ BusySubscriberParam
+ -- optional
+ CODE local:45 }
+
+noSubscriberReply ERROR ::= {
+ PARAMETER
+ NoSubscriberReplyParam
+ -- optional
+ CODE local:46 }
+
+callBarred ERROR ::= {
+ PARAMETER
+ CallBarredParam
+ -- optional
+ CODE local:13 }
+
+forwardingViolation ERROR ::= {
+ PARAMETER
+ ForwardingViolationParam
+ -- optional
+ CODE local:14 }
+
+forwardingFailed ERROR ::= {
+ PARAMETER
+ ForwardingFailedParam
+ -- optional
+ CODE local:47 }
+
+cug-Reject ERROR ::= {
+ PARAMETER
+ CUG-RejectParam
+ -- optional
+ CODE local:15 }
+
+or-NotAllowed ERROR ::= {
+ PARAMETER
+ OR-NotAllowedParam
+ -- optional
+ CODE local:48 }
+
+-- any time interrogation errors
+ati-NotAllowed ERROR ::= {
+ PARAMETER
+ ATI-NotAllowedParam
+ -- optional
+ CODE local:49 }
+
+-- any time information handling errors
+atsi-NotAllowed ERROR ::= {
+ PARAMETER
+ ATSI-NotAllowedParam
+ -- optional
+ CODE local:60 }
+
+atm-NotAllowed ERROR ::= {
+ PARAMETER
+ ATM-NotAllowedParam
+ -- optional
+ CODE local:61 }
+
+informationNotAvailable ERROR ::= {
+ PARAMETER
+ InformationNotAvailableParam
+ -- optional
+ CODE local:62 }
+
+-- supplementary service errors
+
+illegalSS-Operation ERROR ::= {
+ PARAMETER
+ IllegalSS-OperationParam
+ -- optional
+ -- IllegalSS-OperationParam must not be used in version <3
+ CODE local:16 }
+
+ss-ErrorStatus ERROR ::= {
+ PARAMETER
+ SS-Status
+ -- optional
+ CODE local:17 }
+
+ss-NotAvailable ERROR ::= {
+ PARAMETER
+ SS-NotAvailableParam
+ -- optional
+ -- SS-NotAvailableParam must not be used in version <3
+ CODE local:18 }
+
+ss-SubscriptionViolation ERROR ::= {
+ PARAMETER
+ SS-SubscriptionViolationParam
+ -- optional
+ -- SS-SubscriptionViolationParam must not be used in version <3
+ CODE local:19 }
+
+ss-Incompatibility ERROR ::= {
+ PARAMETER
+ SS-IncompatibilityCause
+ -- optional
+ CODE local:20 }
+
+unknownAlphabet ERROR ::= {
+ CODE local:71 }
+
+ussd-Busy ERROR ::= {
+ CODE local:72 }
+
+pw-RegistrationFailure ERROR ::= {
+ PARAMETER
+ PW-RegistrationFailureCause
+ CODE local:37 }
+
+negativePW-Check ERROR ::= {
+ CODE local:38 }
+
+numberOfPW-AttemptsViolation ERROR ::= {
+ CODE local:43 }
+
+shortTermDenial ERROR ::= {
+ PARAMETER
+ ShortTermDenialParam
+ -- optional
+ CODE local:29 }
+
+longTermDenial ERROR ::= {
+ PARAMETER
+ LongTermDenialParam
+ -- optional
+ CODE local:30 }
+
+-- short message service errors
+
+subscriberBusyForMT-SMS ERROR ::= {
+ PARAMETER
+ SubBusyForMT-SMS-Param
+ -- optional
+ CODE local:31 }
+
+sm-DeliveryFailure ERROR ::= {
+ PARAMETER
+ SM-DeliveryFailureCause
+ CODE local:32 }
+
+messageWaitingListFull ERROR ::= {
+ PARAMETER
+ MessageWaitListFullParam
+ -- optional
+ CODE local:33 }
+
+absentSubscriberSM ERROR ::= {
+ PARAMETER
+ AbsentSubscriberSM-Param
+ -- optional
+ CODE local:6 }
+
+-- Group Call errors
+
+noGroupCallNumberAvailable ERROR ::= {
+ PARAMETER
+ NoGroupCallNbParam
+ -- optional
+ CODE local:50 }
+
+-- location service errors
+
+unauthorizedRequestingNetwork ERROR ::= {
+ PARAMETER
+ UnauthorizedRequestingNetwork-Param
+ -- optional
+ CODE local:52 }
+
+unauthorizedLCSClient ERROR ::= {
+ PARAMETER
+ UnauthorizedLCSClient-Param
+ -- optional
+ CODE local:53 }
+
+positionMethodFailure ERROR ::= {
+ PARAMETER
+ PositionMethodFailure-Param
+ -- optional
+ CODE local:54 }
+
+unknownOrUnreachableLCSClient ERROR ::= {
+ PARAMETER
+ UnknownOrUnreachableLCSClient-Param
+ -- optional
+ CODE local:58 }
+
+mm-EventNotSupported ERROR ::= {
+ PARAMETER
+ MM-EventNotSupported-Param
+ -- optional
+ CODE local:59 }
+
+ -- Secure transport errors
+
+secureTransportError ERROR ::= {
+ PARAMETER
+ SecureTransportErrorParam
+ CODE local:4 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..ab4cb9c3b1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,65 @@
+MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ PrivateExtension,
+ ExtensionContainer,
+ SLR-ArgExtensionContainer;
+
+
+-- IOC for private MAP extensions
+
+
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+
+-- data types
+
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+
+SLR-ArgExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
+ ...}
+
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+
+PCS-Extensions ::= SEQUENCE {
+ ...}
+
+SLR-Arg-PCS-Extensions ::= SEQUENCE {
+ ...,
+ na-ESRK-Request [0] NULL OPTIONAL }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000000..8ceeea183b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-GR-DataTypes.asn
@@ -0,0 +1,122 @@
+MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+;
+
+IMPORTS
+ ISDN-AddressString,
+ IMSI,
+ EMLPP-Priority,
+ ASCI-CallReference
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ Kc
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+PrepareGroupCallArg ::= SEQUENCE {
+ teleservice Ext-TeleserviceCode,
+ asciCallReference ASCI-CallReference,
+ codec-Info CODEC-Info,
+ cipheringAlgorithm CipheringAlgorithm,
+ groupKeyNumber [0] GroupKeyNumber OPTIONAL,
+ groupKey [1] Kc OPTIONAL,
+ priority [2] EMLPP-Priority OPTIONAL,
+ uplinkFree [3] NULL OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+PrepareGroupCallRes ::= SEQUENCE {
+ groupCallNumber ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendGroupCallEndSignalRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ForwardGroupCallSignallingArg ::= SEQUENCE {
+ imsi IMSI OPTIONAL,
+ uplinkRequestAck [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ uplinkRejectCommand [2] NULL OPTIONAL,
+ uplinkSeizedCommand [3] NULL OPTIONAL,
+ uplinkReleaseCommand [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ stateAttributes [5] StateAttributes OPTIONAL }
+
+ProcessGroupCallSignallingArg ::= SEQUENCE {
+ uplinkRequest [0] NULL OPTIONAL,
+ uplinkReleaseIndication [1] NULL OPTIONAL,
+ releaseGroupCall [2] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupKeyNumber ::= INTEGER (0..15)
+
+CODEC-Info ::= OCTET STRING (SIZE (5..10))
+ -- Refers to channel type
+ -- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length
+
+CipheringAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Refers to 'permitted algorithms' in 'encryption information'
+ -- coded according to 3GPP TS 48.008 [49]:
+
+ -- Bits 8-1
+ -- 8765 4321
+ -- 0000 0001 No encryption
+ -- 0000 0010 GSM A5/1
+ -- 0000 0100 GSM A5/2
+ -- 0000 1000 GSM A5/3
+ -- 0001 0000 GSM A5/4
+ -- 0010 0000 GSM A5/5
+ -- 0100 0000 GSM A5/6
+ -- 1000 0000 GSM A5/7
+
+StateAttributes ::= SEQUENCE {
+ downlinkAttached [5] NULL OPTIONAL,
+ uplinkAttached [6] NULL OPTIONAL,
+ dualCommunication [7] NULL OPTIONAL,
+ callOriginator [8] NULL OPTIONAL }
+
+ -- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields.
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000000..55777fec68
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Group-Call-Operations.asn
@@ -0,0 +1,72 @@
+MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ prepareGroupCall,
+ sendGroupCallEndSignal,
+ forwardGroupCallSignalling,
+ processGroupCallSignalling
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ unexpectedDataValue,
+ noGroupCallNumberAvailable
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ PrepareGroupCallArg,
+ PrepareGroupCallRes,
+ SendGroupCallEndSignalArg,
+ SendGroupCallEndSignalRes,
+ ForwardGroupCallSignallingArg,
+ ProcessGroupCallSignallingArg
+FROM MAP-GR-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}
+
+;
+
+prepareGroupCall OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareGroupCallArg
+ RESULT
+ PrepareGroupCallRes
+ ERRORS {
+ systemFailure |
+ noGroupCallNumberAvailable |
+ unexpectedDataValue}
+ CODE local:39 }
+
+sendGroupCallEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendGroupCallEndSignalArg
+ RESULT
+ SendGroupCallEndSignalRes
+ CODE local:40 }
+
+processGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessGroupCallSignallingArg
+ CODE local:41 }
+
+forwardGroupCallSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardGroupCallSignallingArg
+ CODE local:42 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000000..08962d6874
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LCS-DataTypes.asn
@@ -0,0 +1,533 @@
+MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res,
+ LocationType,
+ DeferredLocationEventType,
+ LCSClientName,
+ LCS-QoS,
+ Horizontal-Accuracy,
+ ResponseTime,
+ Ext-GeographicalInformation,
+ SupportedGADShapes,
+ Add-GeographicalInformation,
+ LCSRequestorID,
+ LCS-ReferenceNumber,
+ LCSCodeword,
+ AreaEventInfo
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ IMEI,
+ IMSI,
+ LMSI,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID,
+ CellGlobalIdOrServiceAreaIdOrLAI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ USSD-DataCodingScheme,
+ USSD-String
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version9 (9)}
+
+ APN,
+ GSN-Address,
+ SupportedLCS-CapabilitySets
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+ Additional-Number
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+;
+
+
+RoutingInfoForLCS-Arg ::= SEQUENCE {
+ mlcNumber [0] ISDN-AddressString,
+ targetMS [1] SubscriberIdentity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfoForLCS-Res ::= SEQUENCE {
+ targetMS [0] SubscriberIdentity,
+ lcsLocationInfo [1] LCSLocationInfo,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ h-gmlc-Address [4] GSN-Address OPTIONAL,
+ ppr-Address [5] GSN-Address OPTIONAL,
+ additional-v-gmlc-Address [6] GSN-Address OPTIONAL }
+
+LCSLocationInfo ::= SEQUENCE {
+ networkNode-Number ISDN-AddressString,
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ lmsi [0] LMSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsNodeIndicator [2] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
+ additional-Number [3] Additional-Number OPTIONAL,
+ supportedLCS-CapabilitySets [4] SupportedLCS-CapabilitySets OPTIONAL,
+ additional-LCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL
+ }
+
+ProvideSubscriberLocation-Arg ::= SEQUENCE {
+ locationType LocationType,
+ mlc-Number ISDN-AddressString,
+ lcs-ClientID [0] LCS-ClientID OPTIONAL,
+ privacyOverride [1] NULL OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ msisdn [3] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ lcs-Priority [6] LCS-Priority OPTIONAL,
+ lcs-QoS [7] LCS-QoS OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ supportedGADShapes [9] SupportedGADShapes OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
+ lcsCodeword [12] LCSCodeword OPTIONAL,
+ lcs-PrivacyCheck [13] LCS-PrivacyCheck OPTIONAL,
+ areaEventInfo [14] AreaEventInfo OPTIONAL,
+ h-gmlc-Address [15] GSN-Address OPTIONAL }
+
+ -- one of imsi or msisdn is mandatory
+ -- If a location estimate type indicates activate deferred location or cancel deferred
+ -- location, a lcs-Reference number shall be included.
+
+LocationType ::= SEQUENCE {
+ locationEstimateType [0] LocationEstimateType,
+ ...,
+ deferredLocationEventType [1] DeferredLocationEventType OPTIONAL }
+
+LocationEstimateType ::= ENUMERATED {
+ currentLocation (0),
+ currentOrLastKnownLocation (1),
+ initialLocation (2),
+ ...,
+ activateDeferredLocation (3),
+ cancelDeferredLocation (4) }
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+DeferredLocationEventType ::= BIT STRING {
+ msAvailable (0) ,
+ enteringIntoArea (1),
+ leavingFromArea (2),
+ beingInsideArea (3) } (SIZE (1..16))
+-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value
+-- of occurrenceInfo inside areaEventInfo.
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing other values than listed above in
+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+
+LCS-ClientID ::= SEQUENCE {
+ lcsClientType [0] LCSClientType,
+ lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [2] AddressString OPTIONAL,
+ lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
+ lcsClientName [4] LCSClientName OPTIONAL,
+ ...,
+ lcsAPN [5] APN OPTIONAL,
+ lcsRequestorID [6] LCSRequestorID OPTIONAL }
+
+LCSClientType ::= ENUMERATED {
+ emergencyServices (0),
+ valueAddedServices (1),
+ plmnOperatorServices (2),
+ lawfulInterceptServices (3),
+ ... }
+ -- exception handling:
+ -- unrecognized values may be ignored if the LCS client uses the privacy override
+ -- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
+ -- a return error shall then be returned if received in a MAP invoke
+
+LCSClientName ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ nameString [2] NameString,
+ ...,
+ lcs-FormatIndicator [3] LCS-FormatIndicator OPTIONAL }
+
+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
+-- following encoding
+-- bit 7 6 5 4 3 2 1 0
+-- 0 0 0 0 1 1 1 1
+
+NameString ::= USSD-String (SIZE (1..maxNameStringLength))
+
+maxNameStringLength INTEGER ::= 63
+
+LCSRequestorID ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ requestorIDString [1] RequestorIDString,
+ ...,
+ lcs-FormatIndicator [2] LCS-FormatIndicator OPTIONAL }
+
+RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))
+
+maxRequestorIDStringLength INTEGER ::= 63
+
+LCS-FormatIndicator ::= ENUMERATED {
+ logicalName (0),
+ e-mailAddress (1),
+ msisdn (2),
+ url (3),
+ sipUrl (4),
+ ... }
+
+LCS-Priority ::= OCTET STRING (SIZE (1))
+ -- 0 = highest priority
+ -- 1 = normal priority
+ -- all other values treated as 1
+
+LCS-QoS ::= SEQUENCE {
+ horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
+ verticalCoordinateRequest [1] NULL OPTIONAL,
+ vertical-accuracy [2] Vertical-Accuracy OPTIONAL, responseTime [3] ResponseTime OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+Horizontal-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
+ -- error should be less than the error indicated by the uncertainty code with 67%
+ -- confidence.
+
+Vertical-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
+ -- The vertical location error should be less than the error indicated
+ -- by the uncertainty code with 67% confidence.
+
+ResponseTime ::= SEQUENCE {
+ responseTimeCategory ResponseTimeCategory,
+ ...}
+-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
+
+ResponseTimeCategory ::= ENUMERATED {
+ lowdelay (0),
+ delaytolerant (1),
+ ... }
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
+
+SupportedGADShapes ::= BIT STRING {
+ ellipsoidPoint (0),
+ ellipsoidPointWithUncertaintyCircle (1),
+ ellipsoidPointWithUncertaintyEllipse (2),
+ polygon (3),
+ ellipsoidPointWithAltitude (4),
+ ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),
+ ellipsoidArc (6) } (SIZE (7..16))
+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
+-- exception handling: bits 7 to 15 shall be ignored if received.
+
+LCS-ReferenceNumber::= OCTET STRING (SIZE(1))
+
+LCSCodeword ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lcsCodewordString [1] LCSCodewordString,
+ ...}
+
+LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))
+
+maxLCSCodewordStringLength INTEGER ::= 20
+
+LCS-PrivacyCheck ::= SEQUENCE {
+ callSessionUnrelated [0] PrivacyCheckRelatedAction,
+ callSessionRelated [1] PrivacyCheckRelatedAction OPTIONAL,
+ ...}
+
+PrivacyCheckRelatedAction ::= ENUMERATED {
+ allowedWithoutNotification (0),
+ allowedWithNotification (1),
+ allowedIfNoResponse (2),
+ restrictedIfNoResponse (3),
+ notAllowed (4),
+ ...}
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+AreaEventInfo ::= SEQUENCE {
+ areaDefinition [0] AreaDefinition,
+ occurrenceInfo [1] OccurrenceInfo OPTIONAL,
+ intervalTime [2] IntervalTime OPTIONAL,
+ ...}
+
+AreaDefinition ::= SEQUENCE {
+ areaList [0] AreaList,
+ ...}
+
+AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area
+
+maxNumOfAreas INTEGER ::= 10
+
+Area ::= SEQUENCE {
+ areaType [0] AreaType,
+ areaIdentification [1] AreaIdentification,
+ ...}
+
+AreaType ::= ENUMERATED {
+ countryCode (0),
+ plmnId (1),
+ locationAreaId (2),
+ routingAreaId (3),
+ cellGlobalId (4),
+ ...}
+
+AreaIdentification ::= OCTET STRING (SIZE (2..7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included
+ -- or filler (1111)
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code (LAC)
+ -- octet 6 Routing Area Code (RAC) for Routing Area Id
+ -- octets 6 and 7 Cell Identity (CI) for Cell Global Id
+
+OccurrenceInfo ::= ENUMERATED {
+ oneTimeEvent (0),
+ multipleTimeEvent (1),
+ ...}
+
+IntervalTime ::= INTEGER (1..32767)
+ -- minimum interval time between area reports in seconds
+
+ProvideSubscriberLocation-Res ::= SEQUENCE {
+ locationEstimate Ext-GeographicalInformation,
+ ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrResponseIndicator [3] NULL OPTIONAL,
+ geranPositioningData [4] PositioningDataInformation OPTIONAL,
+ utranPositioningData [5] UtranPositioningDataInfo OPTIONAL,
+ cellIdOrSai [6] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ sai-Present [7] NULL OPTIONAL }
+
+-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.
+
+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the
+-- geographic shapes supported in the ProvideSubscriberLocation-Arg
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported.
+-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:
+ -- (a) Ellipsoid point with uncertainty circle
+ -- (b) Ellipsoid point with uncertainty ellipse
+ -- (c) Ellipsoid point with altitude and uncertainty ellipsoid
+ -- (d) Ellipsoid Arc
+ -- (e) Ellipsoid Point
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty code 1 octet
+ -- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse:
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Altitude 2 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Uncertainty altitude 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 13 for case (d) - Ellipsoid Arc
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Inner radius 2 octets
+ -- Uncertainty radius 1 octet
+ -- Offset angle 1 octet
+ -- Included angle 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 7 for case (e) - Ellipsoid Point
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+
+ --
+ -- An Ext-GeographicalInformation parameter comprising more than one octet and
+ -- containing any other shape or an incorrect number of octets or coding according
+ -- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be discarded
+ -- by the receiver if an Add-GeographicalInformation parameter is received
+ -- in the same message.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be treated as
+ -- invalid data by the receiver if an Add-GeographicalInformation parameter is not
+ -- received in the same message.
+
+maxExt-GeographicalInformation INTEGER ::= 20
+ -- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later
+ -- versions of 3GPP TS 29.002
+
+PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation))
+ -- Refers to the Positioning Data defined in 3GPP TS 49.031.
+ -- This is composed of 2 or more octets with an internal structure according to
+ -- 3GPP TS 49.031.
+
+maxPositioningDataInformation INTEGER ::= 10
+ --
+
+UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the positioningDataDiscriminator and the positioningDataSet
+ -- included in positionData as defined in 3GPP TS 25.413.
+
+maxUtranPositioningDataInfo INTEGER ::= 11
+ --
+
+Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:
+ -- Octets 2 to n (where n is the total number of octets necessary to encode the shape
+ -- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the
+ -- encoding defined in 3GPP TS 23.032
+ --
+ -- An Add-GeographicalInformation parameter, whether valid or invalid, received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message
+ -- shall be discarded.
+ --
+ -- An Add-GeographicalInformation parameter containing any shape not defined in
+ -- 3GPP TS 23.032 or an incorrect number of octets or coding according to
+ -- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message.
+
+maxAdd-GeographicalInformation INTEGER ::= 91
+ -- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032
+
+SubscriberLocationReport-Arg ::= SEQUENCE {
+ lcs-Event LCS-Event,
+ lcs-ClientID LCS-ClientID,
+ lcsLocationInfo LCSLocationInfo,
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ imei [2] IMEI OPTIONAL,
+ na-ESRD [3] ISDN-AddressString OPTIONAL,
+ na-ESRK [4] ISDN-AddressString OPTIONAL,
+ locationEstimate [5] Ext-GeographicalInformation OPTIONAL,
+ ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrData [9] Deferredmt-lrData OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ geranPositioningData [11] PositioningDataInformation OPTIONAL,
+ utranPositioningData [12] UtranPositioningDataInfo OPTIONAL,
+ na-ESRK-Request [16] NULL OPTIONAL,
+ cellIdOrSai [13] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ h-gmlc-Address [14] GSN-Address OPTIONAL,
+ lcsServiceTypeID [15] LCSServiceTypeID OPTIONAL,
+ sai-Present [17] NULL OPTIONAL }
+
+ -- one of msisdn or imsi is mandatory
+ -- a location estimate that is valid for the locationEstimate parameter should
+ -- be transferred in this parameter in preference to the add-LocationEstimate.
+ -- the deferredmt-lrData parameter shall be included if and only if the lcs-Event
+ -- indicates a deferredmt-lrResponse.
+ -- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate
+ -- and the add-locationEstimate parameters shall not be sent if the
+ -- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg
+ -- and the shape encoded in locationEstimate or add-LocationEstimate was not marked
+ -- as supported in supportedGADShapes. In such a case terminationCause
+ -- in deferredmt-lrData shall be present with value
+ -- shapeOfLocationEstimateNotSupported.
+ -- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be
+ -- included.
+ -- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Deferredmt-lrData ::= SEQUENCE {
+ deferredLocationEventType DeferredLocationEventType,
+ terminationCause [0] TerminationCause OPTIONAL,
+ lcsLocationInfo [1] LCSLocationInfo OPTIONAL,
+ ...}
+ -- lcsLocationInfo may be included only if a terminationCause is present
+ -- indicating mt-lrRestart.
+
+LCS-Event ::= ENUMERATED {
+ emergencyCallOrigination (0),
+ emergencyCallRelease (1),
+ mo-lr (2),
+ ...,
+ deferredmt-lrResponse (3) }
+ -- exception handling:
+ -- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event
+ -- shall be rejected by a receiver with a return error cause of unexpected data value
+
+TerminationCause ::= ENUMERATED {
+ normal (0),
+ errorundefined (1),
+ internalTimeout (2),
+ congestion (3),
+ mt-lrRestart (4),
+ privacyViolation (5),
+ ...,
+ shapeOfLocationEstimateNotSupported (6) }
+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure,
+-- either because the sending node knows that the terminal has moved under coverage
+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber
+-- has been deregistered due to a Cancel Location received from HLR.
+--
+-- exception handling
+-- an unrecognized value shall be treated the same as value 1 (errorundefined)
+
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ na-ESRK [0] ISDN-AddressString OPTIONAL }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000000..c28ac884ce
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-LocationServiceOperations.asn
@@ -0,0 +1,103 @@
+MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ provideSubscriberLocation,
+sendRoutingInfoForLCS,
+subscriberLocationReport
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ absentSubscriber,
+ unauthorizedRequestingNetwork,
+ unauthorizedLCSClient,
+ positionMethodFailure,
+ resourceLimitation,
+ unknownOrUnreachableLCSClient,
+ unidentifiedSubscriber,
+ illegalEquipment,
+ illegalSubscriber
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res
+FROM MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}
+;
+
+sendRoutingInfoForLCS OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForLCS-Arg
+ RESULT
+ RoutingInfoForLCS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ absentSubscriber |
+ unauthorizedRequestingNetwork }
+ CODE local:85 }
+
+provideSubscriberLocation OPERATION ::= { --Timer ml
+ ARGUMENT
+ ProvideSubscriberLocation-Arg
+ RESULT
+ ProvideSubscriberLocation-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ absentSubscriber |
+ unauthorizedRequestingNetwork |
+ unauthorizedLCSClient |
+ positionMethodFailure }
+ CODE local:83 }
+
+subscriberLocationReport OPERATION ::= { --Timer m
+ ARGUMENT
+ SubscriberLocationReport-Arg
+ RESULT
+ SubscriberLocationReport-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ resourceLimitation |
+ unexpectedDataValue |
+ unknownSubscriber |
+ unauthorizedRequestingNetwork |
+ unknownOrUnreachableLCSClient}
+ CODE local:86 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000000..e905c44077
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MS-DataTypes.asn
@@ -0,0 +1,2458 @@
+MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration types
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ IST-SupportIndicator,
+ SupportedLCS-CapabilitySets,
+
+ -- gprs location registration types
+ GSN-Address,
+
+ -- handover types
+ ForwardAccessSignalling-Arg,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ PrepareSubsequentHO-Arg,
+ PrepareSubsequentHO-Res,
+ ProcessAccessSignalling-Arg,
+ SendEndSignal-Arg,
+ SendEndSignal-Res,
+
+ -- authentication management types
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+
+ -- security management types
+ Kc,
+
+ -- equipment management types
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+
+ -- subscriber management types
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ LSAIdentity,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ Ext-QoS-Subscribed,
+ Ext2-QoS-Subscribed,
+ SubscriberData,
+ ODB-Data,
+ SubscriberStatus,
+ ZoneCodeList,
+ maxNumOfZoneCodes,
+ O-CSI,
+ D-CSI,
+ O-BcsmCamelTDPCriteriaList,
+ T-BCSM-CAMEL-TDP-CriteriaList,
+ SS-CSI,
+ ServiceKey,
+ DefaultCallHandling,
+ CamelCapabilityHandling,
+ BasicServiceCriteria,
+ SupportedCamelPhases,
+ OfferedCamel4CSIs,
+ OfferedCamel4Functionalities,
+ maxNumOfCamelTDPData,
+ CUG-Index,
+ CUG-Info,
+ CUG-Interlock,
+ InterCUG-Restrictions,
+ IntraCUG-Options,
+ NotificationToMSUser,
+ QoS-Subscribed,
+ IST-AlertTimerValue,
+ T-CSI,
+ T-BcsmTriggerDetectionPoint,
+ APN,
+
+ -- fault recovery types
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+
+-- provide subscriber info types
+ GeographicalInformation,
+ MS-Classmark2,
+ GPRSMSClass,
+
+ -- subscriber information enquiry types
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ SubscriberInfo,
+ LocationInformation,
+ LocationInformationGPRS,
+ RAIdentity,
+ SubscriberState,
+ GPRSChargingID,
+ MNPInfoRes,
+ RouteingNumber,
+
+ -- any time information enquiry types
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+
+ -- any time information handling types
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+
+ -- subscriber data modification notification types
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+
+ -- gprs location information retrieval types
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+
+ -- failure reporting types
+ FailureReportArg,
+ FailureReportRes,
+
+ -- gprs notification types
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+
+ -- Mobility Management types
+ NoteMM-EventArg,
+ NoteMM-EventRes,
+ NumberPortabilityStatus
+
+;
+
+IMPORTS
+ maxNumOfSS,
+ SS-SubscriptionOption,
+ SS-List,
+ SS-ForBS-Code,
+ Password
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+ Ext-BearerServiceCode
+FROM MAP-BS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}
+
+ Ext-TeleserviceCode
+FROM MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ AccessNetworkSignalInfo,
+ IMSI,
+ IMEI,
+ TMSI,
+ HLR-List,
+ LMSI,
+ Identity,
+ GlobalCellId,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ Ext-BasicServiceCode,
+ NAEA-PreferredCI,
+ EMLPP-Info,
+ MC-SS-Info,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ Ext-SS-Status,
+ LCSServiceTypeID,
+ ASCI-CallReference,
+ TBCD-STRING
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+;
+
+-- location registration types
+
+UpdateLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ msc-Number [1] ISDN-AddressString,
+ vlr-Number ISDN-AddressString,
+ lmsi [10] LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL,
+ informPreviousNetworkEntity [11] NULL OPTIONAL,
+ cs-LCS-NotSupportedByUE [12] NULL OPTIONAL,
+ v-gmlc-Address [2] GSN-Address OPTIONAL,
+ add-info [13] ADD-Info OPTIONAL }
+
+VLR-Capability ::= SEQUENCE{
+ supportedCamelPhases [0] SupportedCamelPhases OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ solsaSupportIndicator [2] NULL OPTIONAL,
+ istSupportIndicator [1] IST-SupportIndicator OPTIONAL,
+ superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL }
+
+SuperChargerInfo ::= CHOICE {
+ sendSubscriberData [0] NULL,
+ subscriberDataStored [1] AgeIndicator }
+
+AgeIndicator ::= OCTET STRING (SIZE (1..6))
+ -- The internal structure of this parameter is implementation specific.
+
+IST-SupportIndicator ::= ENUMERATED {
+ basicISTSupported (0),
+ istCommandSupported (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to ' istCommandSupported '
+
+SupportedLCS-CapabilitySets ::= BIT STRING {
+ lcsCapabilitySet1 (0),
+ lcsCapabilitySet2 (1),
+ lcsCapabilitySet3 (2),
+ lcsCapabilitySet4 (3) } (SIZE (2..16))
+-- Core network signalling capability set1 indicates LCS Release98 or Release99 version.
+-- Core network signalling capability set2 indicates LCS Release4.
+-- Core network signalling capability set3 indicates LCS Release5.
+-- Core network signalling capability set4 indicates LCS Release6 or later version.
+-- A node shall mark in the BIT STRING all LCS capability sets it supports.
+-- If no bit is set then the sending node does not support LCS.
+-- If the parameter is not sent by an VLR then the VLR may support at most capability set1.
+-- If the parameter is not sent by an SGSN then no support for LCS is assumed.
+-- An SGSN is not allowed to indicate support of capability set1.
+-- Other bits than listed above shall be discarded.
+
+UpdateLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+ADD-Info ::= SEQUENCE {
+ imeisv [0] IMEI,
+ skipSubscriberDataUpdate [1] NULL OPTIONAL,
+ ...}
+
+
+CancelLocationArg ::= [3] SEQUENCE {
+ identity Identity,
+ cancellationType CancellationType OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CancellationType ::= ENUMERATED {
+ updateProcedure (0),
+ subscriptionWithdraw (1),
+ ...}
+ -- The HLR shall not send values other than listed above
+
+CancelLocationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Arg ::= [3] SEQUENCE {
+ imsi IMSI,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+PurgeMS-Res ::= SEQUENCE {
+ freezeTMSI [0] NULL OPTIONAL,
+ freezeP-TMSI [1] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SendIdentificationArg ::= SEQUENCE {
+ tmsi TMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL,
+ -- within a dialogue numberOfRequestedVectors shall be present in
+ -- the first service request and shall not be present in subsequent service requests.
+ -- If received in a subsequent service request it shall be discarded.
+ segmentationProhibited NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ msc-Number ISDN-AddressString OPTIONAL }
+
+SendIdentificationRes ::= [3] SEQUENCE {
+ imsi IMSI OPTIONAL,
+ -- IMSI shall be present in the first (or only) service response of a dialogue.
+ -- If multiple service requests are present in a dialogue then IMSI
+ -- shall not be present in any service response other than the first one.
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ currentSecurityContext [2]CurrentSecurityContext OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- authentication management types
+
+AuthenticationSetList ::= CHOICE {
+ tripletList [0] TripletList,
+ quintupletList [1] QuintupletList }
+
+TripletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationTriplet
+
+QuintupletList ::= SEQUENCE SIZE (1..5) OF
+ AuthenticationQuintuplet
+
+AuthenticationTriplet ::= SEQUENCE {
+ rand RAND,
+ sres SRES,
+ kc Kc,
+ ...}
+
+AuthenticationQuintuplet ::= SEQUENCE {
+ rand RAND,
+ xres XRES,
+ ck CK,
+ ik IK,
+ autn AUTN,
+ ...}
+
+CurrentSecurityContext ::= CHOICE {
+ gsm-SecurityContextData [0] GSM-SecurityContextData,
+ umts-SecurityContextData [1] UMTS-SecurityContextData }
+
+GSM-SecurityContextData ::= SEQUENCE {
+ kc Kc,
+ cksn Cksn,
+ ... }
+
+UMTS-SecurityContextData ::= SEQUENCE {
+ ck CK,
+ ik IK,
+ ksi KSI,
+ ... }
+
+RAND ::= OCTET STRING (SIZE (16))
+
+SRES ::= OCTET STRING (SIZE (4))
+
+Kc ::= OCTET STRING (SIZE (8))
+
+XRES ::= OCTET STRING (SIZE (4..16))
+
+CK ::= OCTET STRING (SIZE (16))
+
+IK ::= OCTET STRING (SIZE (16))
+
+AUTN ::= OCTET STRING (SIZE (16))
+
+AUTS ::= OCTET STRING (SIZE (14))
+
+Cksn ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+KSI ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in 3GPP TS 24.008
+
+AuthenticationFailureReportArg ::= SEQUENCE {
+ imsi IMSI,
+ failureCause FailureCause,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ re-attempt BOOLEAN OPTIONAL,
+ accessType AccessType OPTIONAL,
+ rand RAND OPTIONAL,
+ vlr-Number [0] ISDN-AddressString OPTIONAL,
+ sgsn-Number [1] ISDN-AddressString OPTIONAL }
+
+AccessType ::= ENUMERATED {
+ call (0),
+ emergencyCall (1),
+ locationUpdating (2),
+ supplementaryService (3),
+ shortMessage (4),
+ gprsAttach (5),
+ routingAreaUpdating (6),
+ serviceRequest (7),
+ pdpContextActivation (8),
+ pdpContextDeactivation (9),
+ ...,
+ gprsDetach (10)}
+ -- exception handling:
+ -- received values greater than 10 shall be ignored.
+
+AuthenticationFailureReportRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+FailureCause ::= ENUMERATED {
+ wrongUserResponse (0),
+ wrongNetworkSignature (1)}
+
+-- gprs location registration types
+
+UpdateGprsLocationArg ::= SEQUENCE {
+ imsi IMSI,
+ sgsn-Number ISDN-AddressString,
+ sgsn-Address GSN-Address,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ sgsn-Capability [0] SGSN-Capability OPTIONAL,
+ informPreviousNetworkEntity [1] NULL OPTIONAL,
+ ps-LCS-NotSupportedByUE [2] NULL OPTIONAL,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ add-info [4] ADD-Info OPTIONAL }
+
+SGSN-Capability ::= SEQUENCE{
+ solsaSupportIndicator NULL OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ superChargerSupportedInServingNetworkEntity [2] SuperChargerInfo OPTIONAL ,
+ gprsEnhancementsSupportIndicator [3] NULL OPTIONAL,
+ supportedCamelPhases [4] SupportedCamelPhases OPTIONAL,
+ supportedLCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL,
+ offeredCamel4CSIs [6] OfferedCamel4CSIs OPTIONAL,
+ smsCallBarringSupportIndicator [7] NULL OPTIONAL }
+
+GSN-Address ::= OCTET STRING (SIZE (5..17))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+UpdateGprsLocationRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ add-Capability NULL OPTIONAL }
+
+-- handover types
+
+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [1] EncryptionInformation OPTIONAL,
+ keyStatus [2] KeyStatus OPTIONAL,
+ allowedGSM-Algorithms [4] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [5] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceInformation [6] RadioResourceInformation OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ radioResourceList [7] RadioResourceList OPTIONAL,
+ bssmap-ServiceHandover [9] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [8] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [10] BSSMAP-ServiceHandoverList OPTIONAL,
+ currentlyUsedCodec [11] Codec OPTIONAL,
+ iuSupportedCodecsList [12] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [13] NULL OPTIONAL,
+ iuSelectedCodec [14] Codec OPTIONAL }
+
+AllowedGSM-Algorithms ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from
+ -- Permitted Algorithms defined in 3GPP TS 48.008
+ -- A node shall mark all GSM algorithms that are allowed in MSC-B
+
+AllowedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithms [0] PermittedIntegrityProtectionAlgorithms OPTIONAL,
+ encryptionAlgorithms [1] PermittedEncryptionAlgorithms OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+PermittedIntegrityProtectionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength))
+ -- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413.
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= 9
+
+PermittedEncryptionAlgorithms ::=
+ OCTET STRING (SIZE (1..maxPermittedEncryptionAlgorithmsLength))
+ -- Octets contain a complete PermittedEncryptionAlgorithms data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+
+maxPermittedEncryptionAlgorithmsLength INTEGER ::= 9
+
+KeyStatus ::= ENUMERATED {
+ old (0),
+ new (1),
+ ...}
+ -- exception handling:
+ -- received values in range 2-31 shall be treated as "old"
+ -- received values greater than 31 shall be treated as "new"
+
+PrepareHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ ho-NumberNotRequired NULL OPTIONAL,
+ targetRNCId [1] RNCId OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multipleBearerRequested [3] NULL OPTIONAL,
+ imsi [4] IMSI OPTIONAL,
+ integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL,
+ encryptionInfo [6] EncryptionInformation OPTIONAL,
+ radioResourceInformation [7] RadioResourceInformation OPTIONAL,
+ allowedGSM-Algorithms [9] AllowedGSM-Algorithms OPTIONAL,
+ allowedUMTS-Algorithms [10] AllowedUMTS-Algorithms OPTIONAL,
+ radioResourceList [11] RadioResourceList OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ rab-Id [12] RAB-Id OPTIONAL,
+ bssmap-ServiceHandover [13] BSSMAP-ServiceHandover OPTIONAL,
+ ranap-ServiceHandover [14] RANAP-ServiceHandover OPTIONAL,
+ bssmap-ServiceHandoverList [15] BSSMAP-ServiceHandoverList OPTIONAL,
+ asciCallReference [20] ASCI-CallReference OPTIONAL,
+ geran-classmark [16] GERAN-Classmark OPTIONAL,
+ iuCurrentlyUsedCodec [17] Codec OPTIONAL,
+ iuSupportedCodecsList [18] SupportedCodecsList OPTIONAL,
+ rab-ConfigurationIndicator [19] NULL OPTIONAL,
+ uesbi-Iu [21] UESBI-Iu OPTIONAL }
+
+BSSMAP-ServiceHandoverList ::= SEQUENCE SIZE (1.. maxNumOfServiceHandovers) OF
+ BSSMAP-ServiceHandoverInfo
+
+BSSMAP-ServiceHandoverInfo ::= SEQUENCE {
+ bssmap-ServiceHandover BSSMAP-ServiceHandover,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the service handovers with the radio access bearers.
+ ...}
+
+maxNumOfServiceHandovers INTEGER ::= 7
+
+BSSMAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Service Handover information element in
+ -- 3GPP TS 48.008.
+
+RANAP-ServiceHandover ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete Service-Handover data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+
+RadioResourceList ::= SEQUENCE SIZE (1.. maxNumOfRadioResources) OF
+ RadioResource
+
+RadioResource ::= SEQUENCE {
+ radioResourceInformation RadioResourceInformation,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the radio resources with the radio access bearers.
+ ...}
+
+maxNumOfRadioResources INTEGER ::= 7
+
+PrepareHO-Res ::= [3] SEQUENCE {
+ handoverNumber [0] ISDN-AddressString OPTIONAL,
+ relocationNumberList [1] RelocationNumberList OPTIONAL,
+ an-APDU [2] AccessNetworkSignalInfo OPTIONAL,
+ multicallBearerInfo [3] MulticallBearerInfo OPTIONAL,
+ multipleBearerNotSupported NULL OPTIONAL,
+ selectedUMTS-Algorithms [5] SelectedUMTS-Algorithms OPTIONAL,
+ chosenRadioResourceInformation [6] ChosenRadioResourceInformation OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ iuSelectedCodec [7] Codec OPTIONAL,
+ iuAvailableCodecsList [8] CodecList OPTIONAL }
+
+SelectedUMTS-Algorithms ::= SEQUENCE {
+ integrityProtectionAlgorithm [0] ChosenIntegrityProtectionAlgorithm OPTIONAL,
+ encryptionAlgorithm [1] ChosenEncryptionAlgorithm OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ChosenIntegrityProtectionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete IntegrityProtectionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenEncryptionAlgorithm ::= OCTET STRING (SIZE (1))
+ -- Octet contains a complete EncryptionAlgorithm data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included in the least significant bits.
+
+ChosenRadioResourceInformation ::= SEQUENCE {
+ chosenChannelInfo [0] ChosenChannelInfo OPTIONAL,
+ chosenSpeechVersion [1] ChosenSpeechVersion OPTIONAL,
+ ...}
+
+ChosenChannelInfo ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008
+
+ChosenSpeechVersion ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according the Speech Version (chosen) information element in 3GPP TS
+ -- 48.008
+
+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {
+ targetCellId [0] GlobalCellId OPTIONAL,
+ targetMSC-Number [1] ISDN-AddressString,
+ targetRNCId [2] RNCId OPTIONAL,
+ an-APDU [3] AccessNetworkSignalInfo OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ geran-classmark [6] GERAN-Classmark OPTIONAL,
+ rab-ConfigurationIndicator [7] NULL OPTIONAL }
+
+PrepareSubsequentHO-Res ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ selectedUMTS-Algorithms [1] SelectedUMTS-Algorithms OPTIONAL,
+ selectedGSM-Algorithm [2] SelectedGSM-Algorithm OPTIONAL,
+ chosenRadioResourceInformation [3] ChosenRadioResourceInformation OPTIONAL,
+ selectedRab-Id [4] RAB-Id OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...,
+ iUSelectedCodec [5] Codec OPTIONAL,
+ iuAvailableCodecsList [6] CodecList OPTIONAL }
+
+SupportedCodecsList ::= SEQUENCE {
+ utranCodecList [0] CodecList OPTIONAL,
+ geranCodecList [1] CodecList OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+CodecList ::= SEQUENCE {
+ codec1 [1] Codec,
+ codec2 [2] Codec OPTIONAL,
+ codec3 [3] Codec OPTIONAL,
+ codec4 [4] Codec OPTIONAL,
+ codec5 [5] Codec OPTIONAL,
+ codec6 [6] Codec OPTIONAL,
+ codec7 [7] Codec OPTIONAL,
+ codec8 [8] Codec OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...}
+ -- Codecs are sent in priority order where codec1 has highest priority
+
+Codec ::= OCTET STRING (SIZE (1..4))
+
+ -- The internal structure is defined as follows:
+ -- octet 1 Coded as Codec Identification code in 3GPP TS 26.103
+ -- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS
+ -- 26.103, if available, length depending on the codec
+
+GERAN-Classmark ::= OCTET STRING (SIZE (2..87))
+ -- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008
+
+SelectedGSM-Algorithm ::= OCTET STRING (SIZE (1))
+ -- internal structure is coded as Algorithm identifier octet from Chosen Encryption
+ -- Algorithm defined in 3GPP TS 48.008
+ -- A node shall mark only the selected GSM algorithm
+
+SendEndSignal-Arg ::= [3] SEQUENCE {
+ an-APDU AccessNetworkSignalInfo,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SendEndSignal-Res ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RNCId ::= OCTET STRING (SIZE (7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
+ -- octets 6 and 7 RNC Id value according to 3GPP TS 25.413
+
+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF
+ RelocationNumber
+
+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)
+
+RelocationNumber ::= SEQUENCE {
+ handoverNumber ISDN-AddressString,
+ rab-Id RAB-Id,
+ -- RAB Identity is needed to relate the calls with the radio access bearers.
+ ...}
+
+RAB-Id ::= INTEGER (1..maxNrOfRABs)
+
+maxNrOfRABs INTEGER ::= 255
+
+maxNumOfRelocationNumber INTEGER ::= 7
+
+RadioResourceInformation ::= OCTET STRING (SIZE (3..13))
+ -- Octets are coded according the Channel Type information element in 3GPP TS 48.008
+
+IntegrityProtectionInformation ::= OCTET STRING (SIZE (18..maxNumOfIntegrityInfo))
+ -- Octets contain a complete IntegrityProtectionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfIntegrityInfo INTEGER ::= 100
+
+EncryptionInformation ::= OCTET STRING (SIZE (18..maxNumOfEncryptionInfo))
+ -- Octets contain a complete EncryptionInformation data type
+ -- as defined in 3GPP TS 25.413, encoded according to the encoding scheme
+ -- mandated by 3GPP TS 25.413
+ -- Padding bits are included, if needed, in the least significant bits of the
+ -- last octet of the octet string.
+
+maxNumOfEncryptionInfo INTEGER ::= 100
+
+-- authentication management types
+
+SendAuthenticationInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ numberOfRequestedVectors NumberOfRequestedVectors,
+ segmentationProhibited NULL OPTIONAL,
+ immediateResponsePreferred [1] NULL OPTIONAL,
+ re-synchronisationInfo Re-synchronisationInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ requestingNodeType [3] RequestingNodeType OPTIONAL,
+ requestingPLMN-Id [4] PLMN-Id OPTIONAL }
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit
+ -- or filler (1111) for 2 digit MNCs
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+
+NumberOfRequestedVectors ::= INTEGER (1..5)
+
+Re-synchronisationInfo ::= SEQUENCE {
+ rand RAND,
+ auts AUTS,
+ ...}
+
+SendAuthenticationInfoRes ::= [3] SEQUENCE {
+ authenticationSetList AuthenticationSetList OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+RequestingNodeType ::= ENUMERATED {
+ vlr (0),
+ sgsn (1),
+ ...}
+ -- exception handling:
+ -- received values in the range 2-15 shall be treated as "vlr"
+ -- received values greater than 15 shall be treated as "sgsn"
+
+-- equipment management types
+
+CheckIMEI-Arg ::= SEQUENCE {
+ imei IMEI,
+ requestedEquipmentInfo RequestedEquipmentInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CheckIMEI-Res ::= SEQUENCE {
+ equipmentStatus EquipmentStatus OPTIONAL,
+ bmuef UESBI-Iu OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+RequestedEquipmentInfo::= BIT STRING {
+ equipmentStatus (0),
+ bmuef (1)} (SIZE (2..8))
+ -- exception handling: reception of unknown bit assignments in the
+ -- RequestedEquipmentInfo data type shall be discarded by the receiver
+
+UESBI-Iu ::= SEQUENCE {
+ uesbi-IuA [0] UESBI-IuA OPTIONAL,
+ uesbi-IuB [1] UESBI-IuB OPTIONAL,
+ ...}
+
+UESBI-IuA ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+UESBI-IuB ::= BIT STRING (SIZE(1..128))
+-- See 3GPP TS 25.413
+
+EquipmentStatus ::= ENUMERATED {
+ whiteListed (0),
+ blackListed (1),
+ greyListed (2)}
+
+-- subscriber management types
+
+InsertSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ COMPONENTS OF SubscriberData,
+ extensionContainer [14] ExtensionContainer OPTIONAL,
+ ... ,
+ naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL,
+ -- naea-PreferredCI is included at the discretion of the HLR operator.
+ gprsSubscriptionData [16] GPRSSubscriptionData OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL
+ OPTIONAL,
+ networkAccessMode [24] NetworkAccessMode OPTIONAL,
+ lsaInformation [25] LSAInformation OPTIONAL,
+ lmu-Indicator [21] NULL OPTIONAL,
+ lcsInformation [22] LCSInformation OPTIONAL,
+ istAlertTimer [26] IST-AlertTimerValue OPTIONAL,
+ superChargerSupportedInHLR [27] AgeIndicator OPTIONAL,
+ mc-SS-Info [28] MC-SS-Info OPTIONAL,
+ cs-AllocationRetentionPriority [29] CS-AllocationRetentionPriority OPTIONAL,
+ sgsn-CAMEL-SubscriptionInfo [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL,
+ chargingCharacteristics [18] ChargingCharacteristics OPTIONAL,
+ accessRestrictionData [19] AccessRestrictionData OPTIONAL
+ }
+ -- If the Network Access Mode parameter is sent, it shall be present only in
+ -- the first sequence if seqmentation is used
+
+AccessRestrictionData ::= BIT STRING {
+ utranNotAllowed (0),
+ geranNotAllowed (1) } (SIZE (2..8))
+ -- exception handling:
+ -- bits 2 to 7 shall be ignored if received and not understood
+
+
+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))
+ -- This data type encodes each priority level defined in TS 23.107 as the binary value
+ -- of the priority level.
+
+IST-AlertTimerValue ::= INTEGER (15..255)
+
+LCSInformation ::= SEQUENCE {
+ gmlc-List [0] GMLC-List OPTIONAL,
+ lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL,
+ molr-List [2] MOLR-List OPTIONAL,
+ ...,
+ add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL }
+ -- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is
+ -- present and contains four instances of LCS-PrivacyClass. If the mentioned condition
+ -- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList.
+ -- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in
+ -- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected
+ -- data value shall be returned.
+
+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF
+ ISDN-AddressString
+ -- if segmentation is used, the complete GMLC-List shall be sent in one segment
+
+maxNumOfGMLC INTEGER ::= 5
+
+NetworkAccessMode ::= ENUMERATED {
+ bothMSCAndSGSN (0),
+ onlyMSC (1),
+ onlySGSN (2),
+ ...}
+ -- if unknown values are received in NetworkAccessMode
+ -- they shall be discarded.
+
+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-Context
+
+maxNumOfPDP-Contexts INTEGER ::= 50
+
+PDP-Context ::= SEQUENCE {
+ pdp-ContextId ContextId,
+ pdp-Type [16] PDP-Type,
+ pdp-Address [17] PDP-Address OPTIONAL,
+ qos-Subscribed [18] QoS-Subscribed,
+ vplmnAddressAllowed [19] NULL OPTIONAL,
+ apn [20] APN,
+ extensionContainer [21] ExtensionContainer OPTIONAL,
+ ... ,
+ ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL,
+ pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL,
+ ext2-QoS-Subscribed [2] Ext2-QoS-Subscribed OPTIONAL
+ -- ext2-QoS-Subscribed may be present only if ext-QoS-Subscribed is present.
+ }
+
+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)
+
+GPRSSubscriptionData ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ gprsDataList [1] GPRSDataList,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {
+ gprs-CSI [0] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [1] SMS-CSI OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ mt-sms-CSI [3] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [4] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [5] MG-CSI OPTIONAL
+ }
+
+GPRS-CSI ::= SEQUENCE {
+ gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in
+-- the GPRS-CSI sequence.
+-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ GPRS-CamelTDPData
+-- GPRS-CamelTDPDataList shall not contain more than one instance of
+-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.
+
+GPRS-CamelTDPData ::= SEQUENCE {
+ gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSessionHandling [3] DefaultGPRS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+DefaultGPRS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+GPRS-TriggerDetectionPoint ::= ENUMERATED {
+ attach (1),
+ attachChangeOfPosition (2),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ pdp-ContextChangeOfPosition (14),
+ ... }
+-- exception handling:
+-- For GPRS-CamelTDPData sequences containing this parameter with any
+-- other value than the ones listed the receiver shall ignore the whole
+-- GPRS-CamelTDPDatasequence.
+
+APN ::= OCTET STRING (SIZE (2..63))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+PDP-Type ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+PDP-Address ::= OCTET STRING (SIZE (1..16))
+ -- Octets are coded according to TS 3GPP TS 29.060 [105]
+
+ -- The possible size values are:
+ -- 1-7 octets X.25 address type
+ -- 4 octets IPv4 address type
+ -- 16 octets Ipv6 address type
+
+QoS-Subscribed ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 3-5.
+
+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))
+ -- OCTET 1:
+ -- Allocation/Retention Priority (This octet encodes each priority level defined in
+ -- 23.107 as the binary value of the priority level, declaration in 29.060)
+ -- Octets 2-9 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets
+ -- 6-13.
+
+Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))
+ -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.
+ -- If Quality of Service information is structured with 14 octet length, then
+ -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.
+
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+ -- Octets are coded according to 3GPP TS 32.215.
+
+LSAOnlyAccessIndicator ::= ENUMERATED {
+ accessOutsideLSAsAllowed (0),
+ accessOutsideLSAsRestricted (1)}
+
+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAData
+
+maxNumOfLSAs INTEGER ::= 20
+
+LSAData ::= SEQUENCE {
+ lsaIdentity [0] LSAIdentity,
+ lsaAttributes [1] LSAAttributes,
+ lsaActiveModeIndicator [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAInformation ::= SEQUENCE {
+ completeDataListIncluded NULL OPTIONAL,
+
+ -- If segmentation is used, completeDataListIncluded may only be present in the
+ -- first segment.
+ lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL,
+ lsaDataList [2] LSADataList OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+LSAIdentity ::= OCTET STRING (SIZE (3))
+ -- Octets are coded according to TS 3GPP TS 23.003 [17]
+
+LSAAttributes ::= OCTET STRING (SIZE (1))
+ -- Octets are coded according to TS 3GPP TS 48.008 [49]
+
+SubscriberData ::= SEQUENCE {
+ msisdn [1] ISDN-AddressString OPTIONAL,
+ category [2] Category OPTIONAL,
+ subscriberStatus [3] SubscriberStatus OPTIONAL,
+ bearerServiceList [4] BearerServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- bearerServiceCodes is defined in section 8.8.1
+ teleserviceList [6] TeleserviceList OPTIONAL,
+ -- The exception handling for reception of unsupported / not allocated
+ -- teleserviceCodes is defined in section 8.8.1
+ provisionedSS [7] Ext-SS-InfoList OPTIONAL,
+ odb-Data [8] ODB-Data OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL,
+ regionalSubscriptionData [10] ZoneCodeList OPTIONAL,
+ vbsSubscriptionData [11] VBSDataList OPTIONAL,
+ vgcsSubscriptionData [12] VGCSDataList OPTIONAL,
+ vlrCamelSubscriptionInfo [13] VlrCamelSubscriptionInfo OPTIONAL
+ }
+
+Category ::= OCTET STRING (SIZE (1))
+ -- The internal structure is defined in ITU-T Rec Q.763.
+
+SubscriberStatus ::= ENUMERATED {
+ serviceGranted (0),
+ operatorDeterminedBarring (1)}
+
+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF
+ Ext-BearerServiceCode
+
+maxNumOfBearerServices INTEGER ::= 50
+
+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF
+ Ext-TeleserviceCode
+
+maxNumOfTeleservices INTEGER ::= 20
+
+ODB-Data ::= SEQUENCE {
+ odb-GeneralData ODB-GeneralData,
+ odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ODB-GeneralData ::= BIT STRING {
+ allOG-CallsBarred (0),
+ internationalOGCallsBarred (1),
+ internationalOGCallsNotToHPLMN-CountryBarred (2),
+ interzonalOGCallsBarred (6),
+ interzonalOGCallsNotToHPLMN-CountryBarred (7),
+ interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
+ premiumRateInformationOGCallsBarred (3),
+ premiumRateEntertainementOGCallsBarred (4),
+ ss-AccessBarred (5),
+ allECT-Barred (9),
+ chargeableECT-Barred (10),
+ internationalECT-Barred (11),
+ interzonalECT-Barred (12),
+ doublyChargeableECT-Barred (13),
+ multipleECT-Barred (14),
+ allPacketOrientedServicesBarred (15),
+ roamerAccessToHPLMN-AP-Barred (16),
+ roamerAccessToVPLMN-AP-Barred (17),
+ roamingOutsidePLMNOG-CallsBarred (18),
+ allIC-CallsBarred (19),
+ roamingOutsidePLMNIC-CallsBarred (20),
+ roamingOutsidePLMNICountryIC-CallsBarred (21),
+ roamingOutsidePLMN-Barred (22),
+ roamingOutsidePLMN-CountryBarred (23),
+ registrationAllCF-Barred (24),
+ registrationCFNotToHPLMN-Barred (25),
+ registrationInterzonalCF-Barred (26),
+ registrationInterzonalCFNotToHPLMN-Barred (27),
+ registrationInternationalCF-Barred (28)} (SIZE (15..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData
+ -- When the ODB-GeneralData type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+ODB-HPLMN-Data ::= BIT STRING {
+ plmn-SpecificBarringType1 (0),
+ plmn-SpecificBarringType2 (1),
+ plmn-SpecificBarringType3 (2),
+ plmn-SpecificBarringType4 (3)} (SIZE (4..32))
+ -- exception handling: reception of unknown bit assignments in the
+ -- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data
+ -- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber,
+ -- in NoteSubscriberDataModified operation sent toward the gsmSCF
+ -- all bits shall be set to "O".
+
+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ Ext-SS-Info
+
+Ext-SS-Info ::= CHOICE {
+ forwardingInfo [0] Ext-ForwInfo,
+ callBarringInfo [1] Ext-CallBarInfo,
+ cug-Info [2] CUG-Info,
+ ss-Data [3] Ext-SS-Data,
+ emlpp-Info [4] EMLPP-Info}
+
+Ext-ForwInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ forwardingFeatureList Ext-ForwFeatureList,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-ForwFeature
+
+Ext-ForwFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ -- When this data type is sent from an HLR which supports CAMEL Phase 2
+ -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the
+ -- format of the number
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] Ext-ForwOptions OPTIONAL,
+ noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL,
+ extensionContainer [9] ExtensionContainer OPTIONAL,
+ ...,
+ longForwardedToNumber [10] FTN-AddressString OPTIONAL }
+
+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))
+
+ -- OCTET 1:
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional
+
+ -- bits 21: 00 (unused)
+
+ -- OCTETS 2-5: reserved for future use. They shall be discarded if
+ -- received and not understood.
+
+Ext-NoRepCondTime ::= INTEGER (1..100)
+ -- Only values 5-30 are used.
+ -- Values in the ranges 1-4 and 31-100 are reserved for future use
+ -- If received:
+ -- values 1-4 shall be mapped on to value 5
+ -- values 31-100 shall be mapped on to value 30
+
+Ext-CallBarInfo ::= SEQUENCE {
+ ss-Code SS-Code,
+ callBarringFeatureList Ext-CallBarFeatureList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-CallBarringFeature
+
+Ext-CallBarringFeature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ ss-Status [4] Ext-SS-Status,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Info ::= SEQUENCE {
+ cug-SubscriptionList CUG-SubscriptionList,
+ cug-FeatureList CUG-FeatureList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF
+ CUG-Subscription
+
+CUG-Subscription ::= SEQUENCE {
+ cug-Index CUG-Index,
+ cug-Interlock CUG-Interlock,
+ intraCUG-Options IntraCUG-Options,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CUG-Index ::= INTEGER (0..32767)
+ -- The internal structure is defined in ETS 300 138.
+
+CUG-Interlock ::= OCTET STRING (SIZE (4))
+
+IntraCUG-Options ::= ENUMERATED {
+ noCUG-Restrictions (0),
+ cugIC-CallBarred (1),
+ cugOG-CallBarred (2)}
+
+maxNumOfCUG INTEGER ::= 10
+
+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ CUG-Feature
+
+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
+ Ext-BasicServiceCode
+
+maxNumOfExt-BasicServiceGroups INTEGER ::= 32
+
+CUG-Feature ::= SEQUENCE {
+ basicService Ext-BasicServiceCode OPTIONAL,
+ preferentialCUG-Indicator CUG-Index OPTIONAL,
+ interCUG-Restrictions InterCUG-Restrictions,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))
+
+ -- bits 876543: 000000 (unused)
+ -- Exception handling:
+ -- bits 876543 shall be ignored if received and not understood
+
+ -- bits 21
+ -- 00 CUG only facilities
+ -- 01 CUG with outgoing access
+ -- 10 CUG with incoming access
+ -- 11 CUG with both outgoing and incoming access
+
+Ext-SS-Data ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status [4] Ext-SS-Status,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF
+ LCS-PrivacyClass
+
+maxNumOfPrivacyClass INTEGER ::= 4
+
+LCS-PrivacyClass ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ notificationToMSUser [0] NotificationToMSUser OPTIONAL,
+ -- notificationToMSUser may be sent only for SS-codes callSessionRelated
+ -- and callSessionUnrelated. If not received for SS-codes callSessionRelated
+ -- and callSessionUnrelated,
+ -- the default values according to 3GPP TS 23.271 shall be assumed.
+ externalClientList [1] ExternalClientList OPTIONAL,
+ -- externalClientList may be sent only for SS-code callSessionUnrelated to a
+ -- visited node that does not support LCS Release 4 or later versions.
+ -- externalClientList may be sent only for SS-codes callSessionUnrelated and
+ -- callSessionRelated to a visited node that supports LCS Release 4 or later versions.
+ plmnClientList [2] PLMNClientList OPTIONAL,
+ -- plmnClientList may be sent only for SS-code plmnoperator.
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ ext-externalClientList [4] Ext-ExternalClientList OPTIONAL,
+ -- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or
+ -- later versions, the user did specify more than 5 clients, and White Book SCCP is used.
+ serviceTypeList [5] ServiceTypeList OPTIONAL
+ -- serviceTypeList may be sent only for SS-code serviceType and if the visited node
+ -- supports LCS Release 5 or later versions.
+ --
+ -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment
+}
+
+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF
+ ExternalClient
+
+maxNumOfExternalClient INTEGER ::= 5
+
+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF
+ LCSClientInternalID
+
+maxNumOfPLMNClient INTEGER ::= 5
+
+Ext-ExternalClientList ::= SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF
+ ExternalClient
+
+maxNumOfExt-ExternalClient INTEGER ::= 35
+
+ExternalClient ::= SEQUENCE {
+ clientIdentity LCSClientExternalID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+GMLC-Restriction ::= ENUMERATED {
+ gmlc-List (0),
+ home-Country (1) ,
+ ... }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- GMLC-Restriction.
+
+NotificationToMSUser ::= ENUMERATED {
+ notifyLocationAllowed (0),
+ notifyAndVerify-LocationAllowedIfNoResponse (1),
+ notifyAndVerify-LocationNotAllowedIfNoResponse (2),
+ ...,
+ locationNotAllowed (3) }
+-- exception handling:
+-- At reception of any other value than the ones listed the receiver shall ignore
+-- NotificationToMSUser.
+
+ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF
+ ServiceType
+
+maxNumOfServiceType INTEGER ::= 32
+
+ServiceType ::= SEQUENCE {
+ serviceTypeIdentity LCSServiceTypeID,
+ gmlc-Restriction [0] GMLC-Restriction OPTIONAL,
+ notificationToMSUser [1] NotificationToMSUser OPTIONAL,
+ -- If notificationToMSUser is not received, the default value according to
+ -- 3GPP TS 23.271 shall be assumed.
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... }
+
+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF
+ MOLR-Class
+
+maxNumOfMOLR-Class INTEGER ::= 3
+
+MOLR-Class ::= SEQUENCE {
+ ss-Code SS-Code,
+ ss-Status Ext-SS-Status,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)
+ OF ZoneCode
+
+ZoneCode ::= OCTET STRING (SIZE (2))
+ -- internal structure is defined in TS 3GPP TS 23.003 [17]
+
+maxNumOfZoneCodes INTEGER ::= 10
+
+InsertSubscriberDataRes ::= SEQUENCE {
+ teleserviceList [1] TeleserviceList OPTIONAL,
+ bearerServiceList [2] BearerServiceList OPTIONAL,
+ ss-List [3] SS-List OPTIONAL,
+ odb-GeneralData [4] ODB-GeneralData OPTIONAL,
+ regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL,
+ supportedCamelPhases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIs [8] OfferedCamel4CSIs OPTIONAL }
+
+RegionalSubscriptionResponse ::= ENUMERATED {
+ networkNode-AreaRestricted (0),
+ tooManyZoneCodes (1),
+ zoneCodesConflict (2),
+ regionalSubscNotSupported (3)}
+
+DeleteSubscriberDataArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ basicServiceList [1] BasicServiceList OPTIONAL,
+ -- The exception handling for reception of unsupported/not allocated
+ -- basicServiceCodes is defined in section 6.8.2
+ ss-List [2] SS-List OPTIONAL,
+ roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL,
+ regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL,
+ vbsGroupIndication [7] NULL OPTIONAL,
+ vgcsGroupIndication [8] NULL OPTIONAL,
+ camelSubscriptionInfoWithdraw [9] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSubscriptionDataWithdraw [10] GPRSSubscriptionDataWithdraw OPTIONAL,
+ roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL,
+ lsaInformationWithdraw [12] LSAInformationWithdraw OPTIONAL,
+ gmlc-ListWithdraw [13] NULL OPTIONAL,
+ istInformationWithdraw [14] NULL OPTIONAL,
+ specificCSI-Withdraw [15] SpecificCSI-Withdraw OPTIONAL }
+
+SpecificCSI-Withdraw ::= BIT STRING {
+ o-csi (0),
+ ss-csi (1),
+ tif-csi (2),
+ d-csi (3),
+ vt-csi (4),
+ mo-sms-csi (5),
+ m-csi (6),
+ gprs-csi (7),
+ t-csi (8),
+ mt-sms-csi (9),
+ mg-csi (10),
+ o-IM-CSI (11),
+ d-IM-CSI (12),
+ vt-IM-CSI (13) } (SIZE(8..32))
+-- exception handling:
+-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity.
+-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity.
+-- bits 11-13 are only applicable in an IP Multimedia Core Network.
+-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation.
+
+GPRSSubscriptionDataWithdraw ::= CHOICE {
+ allGPRSData NULL,
+ contextIdList ContextIdList}
+
+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ ContextId
+
+LSAInformationWithdraw ::= CHOICE {
+ allLSAData NULL,
+ lsaIdentityList LSAIdentityList }
+
+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF
+ LSAIdentity
+
+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF
+ Ext-BasicServiceCode
+
+maxNumOfBasicServices INTEGER ::= 70
+
+DeleteSubscriberDataRes ::= SEQUENCE {
+ regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VlrCamelSubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ ss-CSI [2] SS-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ tif-CSI [3] NULL OPTIONAL,
+ m-CSI [5] M-CSI OPTIONAL,
+ mo-sms-CSI [6] SMS-CSI OPTIONAL,
+ vt-CSI [7] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ d-CSI [9] D-CSI OPTIONAL,
+ mt-sms-CSI [10] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [11] MT-smsCAMELTDP-CriteriaList OPTIONAL
+ }
+
+MT-smsCAMELTDP-CriteriaList ::= SEQUENCE SIZE (1.. maxNumOfCamelTDPData) OF
+ MT-smsCAMELTDP-Criteria
+
+MT-smsCAMELTDP-Criteria ::= SEQUENCE {
+ sms-TriggerDetectionPoint SMS-TriggerDetectionPoint,
+ tpdu-TypeCriterion [0] TPDU-TypeCriterion OPTIONAL,
+ ... }
+
+TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF
+ MT-SMS-TPDU-Type
+
+
+maxNumOfTPDUTypes INTEGER ::= 5
+
+MT-SMS-TPDU-Type ::= ENUMERATED {
+ sms-DELIVER (0),
+ sms-SUBMIT-REPORT (1),
+ sms-STATUS-REPORT (2),
+ ... }
+
+-- exception handling:
+-- For TPDU-TypeCriterion sequences containing this parameter with any
+-- other value than the ones listed above the receiver shall ignore
+-- the whole TPDU-TypeCriterion sequence.
+-- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion
+-- sequence containing sms-SUBMIT-REPORT shall be wholly ignored.
+
+D-CSI ::= SEQUENCE {
+ dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in
+-- the D-CSI sequence.
+-- If D-CSI is segmented, then the first segment shall contain dp-AnalysedInfoCriteriaList
+-- and camelCapabilityHandling. Subsequent segments shall not contain
+-- camelCapabilityHandling, but may contain dp-AnalysedInfoCriteriaList.
+
+DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF
+ DP-AnalysedInfoCriterium
+
+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10
+
+DP-AnalysedInfoCriterium ::= SEQUENCE {
+ dialledNumber ISDN-AddressString,
+ serviceKey ServiceKey,
+ gsmSCF-Address ISDN-AddressString,
+ defaultCallHandling DefaultCallHandling,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SS-CSI ::= SEQUENCE {
+ ss-CamelData SS-CamelData,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ notificationToCSE [0] NULL OPTIONAL,
+ csi-Active [1] NULL OPTIONAL
+-- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+}
+
+SS-CamelData ::= SEQUENCE {
+ ss-EventList SS-EventList,
+ gsmSCF-Address ISDN-AddressString,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code
+ -- Actions for the following SS-Code values are defined in CAMEL Phase 3:
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ -- all other SS codes shall be ignored
+ -- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.
+ -- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the
+ -- ccbs marking in SS-CSI.
+
+maxNumOfCamelSSEvents INTEGER ::= 10
+
+O-CSI ::= SEQUENCE {
+ o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csiActive [2] NULL OPTIONAL}
+-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- O-CSI shall not be segmented.
+
+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDPData
+ -- O-BcsmCamelTDPDataList shall not contain more than one instance of
+ -- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.
+ -- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed
+ -- with o-BcsmTriggerDetectionPoint being equal to DP2.
+
+maxNumOfCamelTDPData INTEGER ::= 10
+
+O-BcsmCamelTDPData ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+ServiceKey ::= INTEGER (0..2147483647)
+
+O-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ collectedInfo (2),
+ ...,
+ routeSelectFailure (4) }
+ -- exception handling:
+ -- For O-BcsmCamelTDPData sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDPDatasequence.
+ -- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any
+ -- other value than the ones listed the receiver shall ignore the whole
+ -- O-BcsmCamelTDP-Criteria sequence.
+
+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ O-BcsmCamelTDP-Criteria
+
+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BCSM-CAMEL-TDP-Criteria
+
+O-BcsmCamelTDP-Criteria ::= SEQUENCE {
+ o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint,
+ destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL,
+ basicServiceCriteria [1] BasicServiceCriteria OPTIONAL,
+ callTypeCriteria [2] CallTypeCriteria OPTIONAL,
+ ...,
+ o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL }
+
+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {
+ t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ basicServiceCriteria [0] BasicServiceCriteria OPTIONAL,
+ t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL,
+ ... }
+
+DestinationNumberCriteria ::= SEQUENCE {
+ matchType [0] MatchType,
+ destinationNumberList [1] DestinationNumberList OPTIONAL,
+ destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL,
+ -- one or both of destinationNumberList and destinationNumberLengthList
+ -- shall be present
+ ...}
+
+DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF
+ ISDN-AddressString
+ -- The receiving entity shall not check the format of a number in
+ -- the dialled number list
+
+DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF
+ INTEGER(1..maxNumOfISDN-AddressDigits)
+
+BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF
+ Ext-BasicServiceCode
+
+maxNumOfISDN-AddressDigits INTEGER ::= 15
+
+maxNumOfCamelDestinationNumbers INTEGER ::= 10
+
+maxNumOfCamelDestinationNumberLengths INTEGER ::= 3
+
+maxNumOfCamelBasicServiceCriteria INTEGER ::= 5
+
+CallTypeCriteria ::= ENUMERATED {
+ forwarded (0),
+ notForwarded (1)}
+
+MatchType ::= ENUMERATED {
+ inhibiting (0),
+ enabling (1)}
+
+O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF
+ CauseValue
+
+T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF
+ CauseValue
+
+maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5
+
+maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5
+
+CauseValue ::= OCTET STRING (SIZE(1))
+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.
+-- For the use of cause value refer to ITU-T Recommendation Q.850.
+
+DefaultCallHandling ::= ENUMERATED {
+ continueCall (0) ,
+ releaseCall (1) ,
+ ...}
+ -- exception handling:
+ -- reception of values in range 2-31 shall be treated as "continueCall"
+ -- reception of values greater than 31 shall be treated as "releaseCall"
+
+CamelCapabilityHandling ::= INTEGER(1..16)
+ -- value 1 = CAMEL phase 1,
+ -- value 2 = CAMEL phase 2,
+ -- value 3 = CAMEL Phase 3,
+ -- value 4 = CAMEL phase 4:
+ -- reception of values greater than 4 shall be treated as CAMEL phase 4.
+
+SupportedCamelPhases ::= BIT STRING {
+ phase1 (0),
+ phase2 (1),
+ phase3 (2),
+ phase4 (3)} (SIZE (1..16))
+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4CSIs ::= BIT STRING {
+ o-csi (0),
+ d-csi (1),
+ vt-csi (2),
+ t-csi (3),
+ mt-sms-csi (4),
+ mg-csi (5),
+ psi-enhancements (6)
+} (SIZE (7..16))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs
+-- it offers.
+-- Other values than listed above shall be discarded.
+
+OfferedCamel4Functionalities ::= BIT STRING {
+ initiateCallAttempt (0),
+ splitLeg (1),
+ moveLeg (2),
+ disconnectLeg (3),
+ entityReleased (4),
+ dfc-WithArgument (5),
+ playTone (6),
+ dtmf-MidCall (7),
+ chargingIndicator (8),
+ alertingDP (9),
+ locationAtAlerting (10),
+ changeOfPositionDP (11),
+ or-Interactions (12),
+ warningToneEnhancements (13),
+ cf-Enhancements (14),
+ subscribedEnhancedDialledServices (15),
+ servingNetworkEnhancedDialledServices (16),
+ criteriaForChangeOfPositionDP (17),
+ serviceChangeDP (18)
+} (SIZE (15..64))
+-- A node supporting Camel phase 4 shall mark in the BIT STRING all CAMEL4
+-- functionalities it offers.
+-- Other values than listed above shall be discarded.
+
+SMS-CSI ::= SEQUENCE {
+ sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL,
+ camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ notificationToCSE [3] NULL OPTIONAL,
+ csi-Active [4] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present
+-- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in
+-- the SMS-CSI sequence.
+-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be
+-- present in the first segment
+
+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ SMS-CAMEL-TDP-Data
+-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of
+-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.
+
+SMS-CAMEL-TDP-Data ::= SEQUENCE {
+ sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint,
+ serviceKey [1] ServiceKey,
+ gsmSCF-Address [2] ISDN-AddressString,
+ defaultSMS-Handling [3] DefaultSMS-Handling,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SMS-TriggerDetectionPoint ::= ENUMERATED {
+ sms-CollectedInfo (1),
+ ...,
+ sms-DeliveryRequest (2)
+ }
+-- exception handling:
+-- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this
+-- parameter with any other value than the ones listed the receiver shall ignore
+-- the whole sequence.
+--
+-- If this parameter is received with any other value than sms-CollectedInfo
+-- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall
+-- ignore the whole SMS-CAMEL-TDP-Data sequence.
+--
+-- If this parameter is received with any other value than sms-DeliveryRequest
+-- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall
+-- ignore the whole MT-smsCAMELTDP-Criteria sequence.
+
+DefaultSMS-Handling ::= ENUMERATED {
+ continueTransaction (0) ,
+ releaseTransaction (1) ,
+ ...}
+-- exception handling:
+-- reception of values in range 2-31 shall be treated as "continueTransaction"
+-- reception of values greater than 31 shall be treated as "releaseTransaction"
+
+M-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MG-CSI ::= SEQUENCE {
+ mobilityTriggers MobilityTriggers,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ notificationToCSE [2] NULL OPTIONAL,
+ csi-Active [3] NULL OPTIONAL,
+ ...}
+-- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+
+MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF
+ MM-Code
+
+maxNumOfMobilityTriggers INTEGER ::= 10
+
+MM-Code ::= OCTET STRING (SIZE (1))
+-- This type is used to indicate a Mobility Management event.
+-- Actions for the following MM-Code values are defined in CAMEL Phase 4:
+--
+-- CS domain MM events:
+-- Location-update-in-same-VLR MM-Code ::= '00000000'B
+-- Location-update-to-other-VLR MM-Code ::= '00000001'B
+-- IMSI-Attach MM-Code ::= '00000010'B
+-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B
+-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B
+--
+-- PS domain MM events:
+-- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B
+-- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN
+-- MM-Code ::= '10000001'B
+-- Routeing-Area-update-to-other-SGSN-disconnect-by-detach
+-- MM-Code ::= '10000010'B
+-- GPRS-Attach MM-Code ::= '10000011'B
+-- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B
+-- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B
+-- Network-initiated-transfer-to-MS-not-reachable-for-paging
+-- MM-Code ::= '10000110'B
+--
+-- If the MSC receives any other MM-code than the ones listed above for the
+-- CS domain, then the MSC shall ignore that MM-code.
+-- If the SGSN receives any other MM-code than the ones listed above for the
+-- PS domain, then the SGSN shall ignore that MM-code.
+
+T-CSI ::= SEQUENCE {
+ t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL,
+ notificationToCSE [1] NULL OPTIONAL,
+ csi-Active [2] NULL OPTIONAL}
+-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent
+-- to VLR/GMSC.
+-- They may only be included in ATSI/ATM ack/NSDC message.
+-- T-CSI shall not be segmented.
+
+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF
+ T-BcsmCamelTDPData
+ --- T-BcsmCamelTDPDataList shall not contain more than one instance of
+ --- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.
+ --- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed
+ --- with t-BcsmTriggerDetectionPoint being equal to DP12.
+ --- For CAMEL Phase 3, more TDP's are allowed.
+
+T-BcsmCamelTDPData ::= SEQUENCE {
+ t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint,
+ serviceKey ServiceKey,
+ gsmSCF-Address [0] ISDN-AddressString,
+ defaultCallHandling [1] DefaultCallHandling,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+T-BcsmTriggerDetectionPoint ::= ENUMERATED {
+ termAttemptAuthorized (12),
+ ... ,
+ tBusy (13),
+ tNoAnswer (14)}
+ -- exception handling:
+ -- For T-BcsmCamelTDPData sequences containing this parameter with any other
+ -- value than the ones listed above, the receiver shall ignore the whole
+ -- T-BcsmCamelTDPData sequence.
+
+-- gprs location information retrieval types
+
+SendRoutingInfoForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ ggsn-Number [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+SendRoutingInfoForGprsRes ::= SEQUENCE {
+ sgsn-Address [0] GSN-Address,
+ ggsn-Address [1] GSN-Address OPTIONAL,
+ mobileNotReachableReason [2] AbsentSubscriberDiagnosticSM OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+-- failure report types
+
+FailureReportArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ ggsn-Number [1] ISDN-AddressString ,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+FailureReportRes ::= SEQUENCE {
+ ggsn-Address [0] GSN-Address OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...}
+
+-- gprs notification types
+
+NoteMsPresentForGprsArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ sgsn-Address [1] GSN-Address,
+ ggsn-Address [2] GSN-Address OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+NoteMsPresentForGprsRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+-- fault recovery types
+
+ResetArg ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ hlr-List HLR-List OPTIONAL,
+ ...}
+
+RestoreDataArg ::= SEQUENCE {
+ imsi IMSI,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ vlr-Capability [6] VLR-Capability OPTIONAL }
+
+RestoreDataRes ::= SEQUENCE {
+ hlr-Number ISDN-AddressString,
+ msNotReachable NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- VBS/VGCS types
+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF
+ VoiceBroadcastData
+
+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF
+ VoiceGroupCallData
+
+maxNumOfVBSGroupIds INTEGER ::= 50
+
+maxNumOfVGCSGroupIds INTEGER ::= 50
+
+VoiceGroupCallData ::= SEQUENCE {
+ groupId GroupId,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+VoiceBroadcastData ::= SEQUENCE {
+ groupid GroupId,
+ broadcastInitEntitlement NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+GroupId ::= TBCD-STRING (SIZE (3))
+ -- When Group-Id is less than six characters in length, the TBCD filler (1111)
+ -- is used to fill unused half octets.
+ -- Refers to the Group Identification as specified in 3GPP TS 23.003
+ -- and 3GPP TS 43.068/ 43.069
+
+-- provide subscriber info types
+
+ProvideSubscriberInfoArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI OPTIONAL,
+ requestedInfo [2] RequestedInfo,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+ProvideSubscriberInfoRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SubscriberInfo ::= SEQUENCE {
+ locationInformation [0] LocationInformation OPTIONAL,
+ subscriberState [1] SubscriberState OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ... ,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ ps-SubscriberState [4] PS-SubscriberState OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ ms-Classmark2 [6] MS-Classmark2 OPTIONAL,
+ gprs-MS-Class [7] GPRSMSClass OPTIONAL,
+ mnpInfoRes [8] MNPInfoRes OPTIONAL }
+
+-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN
+-- it shall discard them.
+-- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from
+-- a VLR it shall discard them.
+-- If the HLR receives parameters which it has not requested, it shall discard them.
+
+MNPInfoRes ::= SEQUENCE {
+ routeingNumber [0] RouteingNumber OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ msisdn [2] ISDN-AddressString OPTIONAL,
+ numberPortabilityStatus [3] NumberPortabilityStatus OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... }
+-- The IMSI parameter contains a generic IMSI, i.e. it is not tied necessarily to the
+-- Subscriber. MCC and MNC values in this IMSI shall point to the Subscription Network of
+-- the Subscriber. See 3GPP TS 23.066 [108].
+
+RouteingNumber ::= TBCD-STRING (SIZE (1..5))
+
+
+NumberPortabilityStatus ::= ENUMERATED {
+ notKnownToBePorted (0),
+ ownNumberPortedOut (1),
+ foreignNumberPortedToForeignNetwork (2),
+ ...,
+ ownNumberNotPortedOut (4),
+ foreignNumberPortedIn (5)
+ }
+ -- exception handling:
+ -- reception of other values than the ones listed the receiver shall ignore the
+ -- whole NumberPortabilityStatus;
+ -- ownNumberNotPortedOut or foreignNumberPortedIn may only be included in Any Time
+ -- Interrogation message.
+
+MS-Classmark2 ::= OCTET STRING (SIZE (3))
+ -- This parameter carries the value part of the MS Classmark 2 IE defined in
+ -- 3GPP TS 24.008 [35].
+
+GPRSMSClass ::= SEQUENCE {
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL
+ }
+
+MSNetworkCapability ::= OCTET STRING (SIZE (1..8))
+ -- This parameter carries the value part of the MS Network Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50))
+ -- This parameter carries the value part of the MS Radio Access Capability IE defined in
+ -- 3GPP TS 24.008 [35].
+
+RequestedInfo ::= SEQUENCE {
+ locationInformation [0] NULL OPTIONAL,
+ subscriberState [1] NULL OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ currentLocation [3] NULL OPTIONAL,
+ requestedDomain [4] DomainType OPTIONAL,
+ imei [6] NULL OPTIONAL,
+ ms-classmark [5] NULL OPTIONAL,
+ mnpRequestedInfo [7] NULL OPTIONAL }
+
+-- currentLocation shall be absent if locationInformation is absent
+
+DomainType ::= ENUMERATED {
+ cs-Domain (0),
+ ps-Domain (1),
+ ...}
+-- exception handling:
+-- reception of values > 1 shall be mapped to 'cs-Domain'
+
+LocationInformation ::= SEQUENCE {
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellGlobalIdOrServiceAreaIdOrLAI [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ... ,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-Number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ sai-Present [9] NULL OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present
+-- if the location information were retrieved after a successfull paging.
+
+LocationInformationGPRS ::= SEQUENCE {
+ cellGlobalIdOrServiceAreaIdOrLAI [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ routeingAreaIdentity [1] RAIdentity OPTIONAL,
+ geographicalInformation [2] GeographicalInformation OPTIONAL,
+ sgsn-Number [3] ISDN-AddressString OPTIONAL,
+ selectedLSAIdentity [4] LSAIdentity OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...,
+ sai-Present [6] NULL OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL }
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity.
+-- currentLocationRetrieved shall be present if the location information
+-- was retrieved after successful paging.
+
+RAIdentity ::= OCTET STRING (SIZE (6))
+-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105].
+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060
+-- type identifier octet shall not be included.
+
+
+GeographicalInformation ::= OCTET STRING (SIZE (8))
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in 3GPP TS 23.032 is allowed to be used
+-- The internal structure according to 3GPP TS 23.032 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+GeodeticInformation ::= OCTET STRING (SIZE (10))
+-- Refers to Calling Geodetic Location defined in Q.763 (1999).
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in Q.763 (1999) is allowed to be used
+-- The internal structure according to Q.763 (1999) is as follows:
+-- Screening and presentation indicators 1 octet
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+-- Confidence 1 octet
+
+LocationNumber ::= OCTET STRING (SIZE (2..10))
+ -- the internal structure is defined in ITU-T Rec Q.763
+
+SubscriberState ::= CHOICE {
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL}
+
+PS-SubscriberState ::= CHOICE {
+ notProvidedFromSGSN [0] NULL,
+ ps-Detached [1] NULL,
+ ps-AttachedNotReachableForPaging [2] NULL,
+ ps-AttachedReachableForPaging [3] NULL,
+ ps-PDP-ActiveNotReachableForPaging [4] PDP-ContextInfoList,
+ ps-PDP-ActiveReachableForPaging [5] PDP-ContextInfoList,
+ netDetNotReachable NotReachableReason }
+
+PDP-ContextInfoList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF
+ PDP-ContextInfo
+
+PDP-ContextInfo ::= SEQUENCE {
+ pdp-ContextIdentifier [0] ContextId,
+ pdp-ContextActive [1] NULL OPTIONAL,
+ pdp-Type [2] PDP-Type,
+ pdp-Address [3] PDP-Address OPTIONAL,
+ apn-Subscribed [4] APN OPTIONAL,
+ apn-InUse [5] APN OPTIONAL,
+ nsapi [6] NSAPI OPTIONAL,
+ transactionId [7] TransactionId OPTIONAL,
+ teid-ForGnAndGp [8] TEID OPTIONAL,
+ teid-ForIu [9] TEID OPTIONAL,
+ ggsn-Address [10] GSN-Address OPTIONAL,
+ qos-Subscribed [11] Ext-QoS-Subscribed OPTIONAL,
+ qos-Requested [12] Ext-QoS-Subscribed OPTIONAL,
+ qos-Negotiated [13] Ext-QoS-Subscribed OPTIONAL,
+ chargingId [14] GPRSChargingID OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics OPTIONAL,
+ rnc-Address [16] GSN-Address OPTIONAL,
+ extensionContainer [17] ExtensionContainer OPTIONAL,
+ ...,
+ qos2-Subscribed [18] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Subscribed may be present only if qos-Subscribed is present.
+ qos2-Requested [19] Ext2-QoS-Subscribed OPTIONAL,
+ -- qos2-Requested may be present only if qos-Requested is present.
+ qos2-Negotiated [20] Ext2-QoS-Subscribed OPTIONAL
+ -- qos2-Negotiated may be present only if qos-Negotiated is present.
+ }
+
+NSAPI ::= INTEGER (0..15)
+-- This type is used to indicate the Network layer Service Access Point
+
+TransactionId ::= OCTET STRING (SIZE (1..2))
+-- This type carries the value part of the transaction identifier which is used in the
+-- session management messages on the access interface. The encoding is defined in
+-- 3GPP TS 24.008
+
+TEID ::= OCTET STRING (SIZE (4))
+-- This type carries the value part of the Tunnel Endpoint Identifier which is used to
+-- distinguish between different tunnels between the same pair of entities which communicate
+-- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060.
+
+GPRSChargingID ::= OCTET STRING (SIZE (4))
+-- The Charging ID is a unique four octet value generated by the GGSN when
+-- a PDP Context is activated. A Charging ID is generated for each activated context.
+-- The encoding is defined in 3GPP TS 29.060.
+
+NotReachableReason ::= ENUMERATED {
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistered (3)}
+
+-- any time interrogation info types
+
+AnyTimeInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedInfo [1] RequestedInfo,
+ gsmSCF-Address [3] ISDN-AddressString,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+AnyTimeInterrogationRes ::= SEQUENCE {
+ subscriberInfo SubscriberInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- any time information handling types
+
+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ requestedSubscriptionInfo [1] RequestedSubscriptionInfo,
+ gsmSCF-Address [2] ISDN-AddressString,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ longFTN-Supported [4] NULL OPTIONAL,
+ ...}
+
+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {
+ callForwardingData [1] CallForwardingData OPTIONAL,
+ callBarringData [2] CallBarringData OPTIONAL,
+ odb-Info [3] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL,
+ supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ... ,
+ offeredCamel4CSIsInVLR [8] OfferedCamel4CSIs OPTIONAL,
+ offeredCamel4CSIsInSGSN [9] OfferedCamel4CSIs OPTIONAL }
+
+RequestedSubscriptionInfo ::= SEQUENCE {
+ requestedSS-Info [1] SS-ForBS-Code OPTIONAL,
+ odb [2] NULL OPTIONAL,
+ requestedCAMEL-SubscriptionInfo [3] RequestedCAMEL-SubscriptionInfo OPTIONAL,
+ supportedVLR-CAMEL-Phases [4] NULL OPTIONAL,
+ supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [7] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+
+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ o-CSI (0),
+ t-CSI (1),
+ vt-CSI (2),
+ tif-CSI (3),
+ gprs-CSI (4),
+ mo-sms-CSI (5),
+ ss-CSI (6),
+ m-CSI (7),
+ d-csi (8)}
+
+AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED {
+ mt-sms-CSI (0),
+ mg-csi (1),
+ o-IM-CSI (2),
+ d-IM-CSI (3),
+ vt-IM-CSI (4),
+ ...}
+-- exception handling: unknown values shall be discarded by the receiver.
+
+CallForwardingData ::= SEQUENCE {
+ forwardingFeatureList Ext-ForwFeatureList,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+CallBarringData ::= SEQUENCE {
+ callBarringFeatureList Ext-CallBarFeatureList,
+ password Password OPTIONAL,
+ wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+WrongPasswordAttemptsCounter ::= INTEGER (0..4)
+
+ODB-Info ::= SEQUENCE {
+ odb-Data ODB-Data,
+ notificationToCSE NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+CAMEL-SubscriptionInfo ::= SEQUENCE {
+ o-CSI [0] O-CSI OPTIONAL,
+ o-BcsmCamelTDP-CriteriaList [1] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-CSI [2] D-CSI OPTIONAL,
+ t-CSI [3] T-CSI OPTIONAL,
+ t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ vt-CSI [5] T-CSI OPTIONAL,
+ vt-BCSM-CAMEL-TDP-CriteriaList [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL,
+ tif-CSI [7] NULL OPTIONAL,
+ tif-CSI-NotificationToCSE [8] NULL OPTIONAL,
+ gprs-CSI [9] GPRS-CSI OPTIONAL,
+ mo-sms-CSI [10] SMS-CSI OPTIONAL,
+ ss-CSI [11] SS-CSI OPTIONAL,
+ m-CSI [12] M-CSI OPTIONAL,
+ extensionContainer [13] ExtensionContainer OPTIONAL,
+ ...,
+ specificCSIDeletedList [14] SpecificCSI-Withdraw OPTIONAL,
+ mt-sms-CSI [15] SMS-CSI OPTIONAL,
+ mt-smsCAMELTDP-CriteriaList [16] MT-smsCAMELTDP-CriteriaList OPTIONAL,
+ mg-csi [17] MG-CSI OPTIONAL,
+ o-IM-CSI [18] O-CSI OPTIONAL,
+ o-IM-BcsmCamelTDP-CriteriaList [19] O-BcsmCamelTDPCriteriaList OPTIONAL,
+ d-IM-CSI [20] D-CSI OPTIONAL,
+ vt-IM-CSI [21] T-CSI OPTIONAL,
+ vt-IM-BCSM-CAMEL-TDP-CriteriaList [22] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL
+ }
+
+AnyTimeModificationArg ::= SEQUENCE {
+ subscriberIdentity [0] SubscriberIdentity,
+ gsmSCF-Address [1] ISDN-AddressString,
+ modificationRequestFor-CF-Info [2] ModificationRequestFor-CF-Info OPTIONAL,
+ modificationRequestFor-CB-Info [3] ModificationRequestFor-CB-Info OPTIONAL,
+ modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ longFTN-Supported [6] NULL OPTIONAL,
+ ...,
+ modificationRequestFor-ODB-data [7] ModificationRequestFor-ODB-data OPTIONAL }
+
+AnyTimeModificationRes ::= SEQUENCE {
+ ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL,
+ camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ odb-Info [3] ODB-Info OPTIONAL }
+
+ModificationRequestFor-CF-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ forwardedToNumber [3] AddressString OPTIONAL,
+ forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL,
+ modifyNotificationToCSE [6] ModificationInstruction OPTIONAL,
+ extensionContainer [7] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CB-Info ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ basicService [1] Ext-BasicServiceCode OPTIONAL,
+ ss-Status [2] Ext-SS-Status OPTIONAL,
+ password [3] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL,
+ modifyNotificationToCSE [5] ModificationInstruction OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-ODB-data ::= SEQUENCE {
+ odb-data [0] ODB-Data OPTIONAL,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+ModificationRequestFor-CSI ::= SEQUENCE {
+ requestedCamel-SubscriptionInfo [0] RequestedCAMEL-SubscriptionInfo,
+ modifyNotificationToCSE [1] ModificationInstruction OPTIONAL,
+ modifyCSI-State [2] ModificationInstruction OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...,
+ additionalRequestedCAMEL-SubscriptionInfo
+ [4] AdditionalRequestedCAMEL-SubscriptionInfo
+ OPTIONAL }
+-- requestedCamel-SubscriptionInfo shall be discarded if
+-- additionalRequestedCAMEL-SubscriptionInfo is received
+
+ModificationInstruction ::= ENUMERATED {
+ deactivate (0),
+ activate (1)}
+
+-- subscriber data modification notification types
+
+NoteSubscriberDataModifiedArg ::= SEQUENCE {
+ imsi IMSI,
+ msisdn ISDN-AddressString,
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL,
+ odb-Info [2] ODB-Info OPTIONAL,
+ camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL,
+ allInformationSent [4] NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+NoteSubscriberDataModifiedRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+-- mobility management event notificatioon info types
+
+NoteMM-EventArg::= SEQUENCE {
+ serviceKey ServiceKey,
+ eventMet [0] MM-Code,
+ imsi [1] IMSI,
+ msisdn [2] ISDN-AddressString,
+ locationInformation [3] LocationInformation OPTIONAL,
+ supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ...,
+ locationInformationGPRS [7] LocationInformationGPRS OPTIONAL,
+ offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL
+}
+
+NoteMM-EventRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-SS-InfoFor-CSE ::= CHOICE {
+ forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE,
+ callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE
+ }
+
+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ forwardingFeatureList [1] Ext-ForwFeatureList,
+ notificationToCSE [2] NULL OPTIONAL,
+ extensionContainer [3] ExtensionContainer OPTIONAL,
+ ...}
+
+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ callBarringFeatureList [1] Ext-CallBarFeatureList,
+ password [2] Password OPTIONAL,
+ wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter OPTIONAL,
+ notificationToCSE [4] NULL OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000000..b91eac7cdf
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-MobileServiceOperations.asn
@@ -0,0 +1,506 @@
+MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ -- location registration operations
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+
+ -- gprs location registration operations
+ updateGprsLocation,
+
+ -- subscriber information enquiry operations
+ provideSubscriberInfo,
+
+ -- any time information enquiry operations
+ anyTimeInterrogation,
+
+ -- any time information handling operations
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+
+ -- subscriber data modification notification operations
+ noteSubscriberDataModified,
+
+
+ -- handover operations
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+
+ -- authentication management operations
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+
+ -- IMEI management operations
+ checkIMEI,
+
+ -- subscriber management operations
+ insertSubscriberData,
+ deleteSubscriberData,
+
+ -- fault recovery operations
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+
+-- gprs location information retrieval operations
+ sendRoutingInfoForGprs,
+
+ -- failure reporting operations
+ failureReport,
+
+ -- gprs notification operations
+ noteMsPresentForGprs,
+
+-- Mobility Management operations
+ noteMM-Event
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ unknownMSC,
+ unidentifiedSubscriber,
+ unknownEquipment,
+ roamingNotAllowed,
+ ati-NotAllowed,
+ noHandoverNumberAvailable,
+ subsequentHandoverFailure,
+ absentSubscriber,
+ mm-EventNotSupported,
+ atsi-NotAllowed,
+ atm-NotAllowed,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-Incompatibility,
+ ss-SubscriptionViolation,
+ informationNotAvailable,
+ targetCellOutsideGroupCallArea
+
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ UpdateLocationArg,
+ UpdateLocationRes,
+ CancelLocationArg,
+ CancelLocationRes,
+ PurgeMS-Arg,
+ PurgeMS-Res,
+ SendIdentificationArg,
+ SendIdentificationRes,
+ UpdateGprsLocationArg,
+ UpdateGprsLocationRes,
+ PrepareHO-Arg,
+ PrepareHO-Res,
+ForwardAccessSignalling-Arg,
+ProcessAccessSignalling-Arg,
+SendEndSignal-Arg,
+SendEndSignal-Res,
+PrepareSubsequentHO-Res,
+ PrepareSubsequentHO-Arg,
+ SendAuthenticationInfoArg,
+ SendAuthenticationInfoRes,
+ AuthenticationFailureReportArg,
+ AuthenticationFailureReportRes,
+ CheckIMEI-Arg,
+ CheckIMEI-Res,
+ InsertSubscriberDataArg,
+ InsertSubscriberDataRes,
+ DeleteSubscriberDataArg,
+ DeleteSubscriberDataRes,
+ ResetArg,
+ RestoreDataArg,
+ RestoreDataRes,
+ ProvideSubscriberInfoArg,
+ ProvideSubscriberInfoRes,
+ AnyTimeSubscriptionInterrogationArg,
+ AnyTimeSubscriptionInterrogationRes,
+ AnyTimeModificationArg,
+ AnyTimeModificationRes,
+ NoteSubscriberDataModifiedArg,
+ NoteSubscriberDataModifiedRes,
+ AnyTimeInterrogationArg,
+ AnyTimeInterrogationRes,
+ SendRoutingInfoForGprsArg,
+ SendRoutingInfoForGprsRes,
+ FailureReportArg,
+ FailureReportRes,
+ NoteMsPresentForGprsArg,
+ NoteMsPresentForGprsRes,
+ NoteMM-EventArg,
+ NoteMM-EventRes
+
+
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}
+
+;
+
+
+-- location registration operations
+
+updateLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateLocationArg
+ RESULT
+ UpdateLocationRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:2 }
+
+cancelLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ CancelLocationArg
+ RESULT
+ CancelLocationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:3 }
+
+purgeMS OPERATION ::= { --Timer m
+ ARGUMENT
+ PurgeMS-Arg
+ RESULT
+ PurgeMS-Res
+ -- optional
+ ERRORS{
+ dataMissing |
+ unexpectedDataValue|
+ unknownSubscriber}
+ CODE local:67 }
+
+sendIdentification OPERATION ::= { --Timer s
+ ARGUMENT
+ SendIdentificationArg
+ RESULT
+ SendIdentificationRes
+ ERRORS {
+ dataMissing |
+ unidentifiedSubscriber}
+ CODE local:55 }
+
+-- gprs location registration operations
+
+updateGprsLocation OPERATION ::= { --Timer m
+ ARGUMENT
+ UpdateGprsLocationArg
+ RESULT
+ UpdateGprsLocationRes
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber |
+ roamingNotAllowed}
+ CODE local:23 }
+
+-- subscriber information enquiry operations
+
+provideSubscriberInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ ProvideSubscriberInfoArg
+ RESULT
+ ProvideSubscriberInfoRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:70 }
+
+-- any time information enquiry operations
+
+anyTimeInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeInterrogationArg
+ RESULT
+ AnyTimeInterrogationRes
+ ERRORS {
+ systemFailure |
+ ati-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:71 }
+
+-- any time information handling operations
+
+anyTimeSubscriptionInterrogation OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeSubscriptionInterrogationArg
+ RESULT
+ AnyTimeSubscriptionInterrogationRes
+ ERRORS {
+ atsi-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable |
+ informationNotAvailable}
+ CODE local:62 }
+
+anyTimeModification OPERATION ::= { --Timer m
+ ARGUMENT
+ AnyTimeModificationArg
+ RESULT
+ AnyTimeModificationRes
+ ERRORS {
+ atm-NotAllowed |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-SubscriptionViolation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ informationNotAvailable}
+ CODE local:65 }
+
+-- subscriber data modification notification operations
+
+noteSubscriberDataModified OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteSubscriberDataModifiedArg
+ RESULT
+ NoteSubscriberDataModifiedRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:5 }
+
+-- handover operations
+
+prepareHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareHO-Arg
+ RESULT
+ PrepareHO-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ noHandoverNumberAvailable |
+ targetCellOutsideGroupCallArea }
+ CODE local:68 }
+
+sendEndSignal OPERATION ::= { --Timer l
+ ARGUMENT
+ SendEndSignal-Arg
+ RESULT
+ SendEndSignal-Res
+ CODE local:29 }
+
+processAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ProcessAccessSignalling-Arg
+ CODE local:33 }
+
+forwardAccessSignalling OPERATION ::= { --Timer s
+ ARGUMENT
+ ForwardAccessSignalling-Arg
+ CODE local:34 }
+
+prepareSubsequentHandover OPERATION ::= { --Timer m
+ ARGUMENT
+ PrepareSubsequentHO-Arg
+ RESULT
+ PrepareSubsequentHO-Res
+ ERRORS {
+ unexpectedDataValue |
+ dataMissing |
+ unknownMSC |
+ subsequentHandoverFailure}
+ CODE local:69 }
+
+-- authentication management operations
+
+sendAuthenticationInfo OPERATION ::= { --Timer m
+ ARGUMENT
+ SendAuthenticationInfoArg
+ -- optional
+ -- within a dialogue sendAuthenticationInfoArg shall not be present in
+ -- subsequent invoke components. If received in a subsequent invoke component
+ -- it shall be discarded.
+
+ RESULT
+ SendAuthenticationInfoRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:56 }
+
+authenticationFailureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ AuthenticationFailureReportArg
+ RESULT
+ AuthenticationFailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:15 }
+
+-- IMEI management operations
+
+checkIMEI OPERATION ::= { --Timer m
+ ARGUMENT
+ CheckIMEI-Arg
+ RESULT
+ CheckIMEI-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unknownEquipment}
+ CODE local:43 }
+
+-- subscriber management operations
+
+insertSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ InsertSubscriberDataArg
+ RESULT
+ InsertSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:7 }
+
+deleteSubscriberData OPERATION ::= { --Timer m
+ ARGUMENT
+ DeleteSubscriberDataArg
+ RESULT
+ DeleteSubscriberDataRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unidentifiedSubscriber}
+ CODE local:8 }
+
+-- fault recovery operations
+
+reset OPERATION ::= { --Timer m
+ ARGUMENT
+ ResetArg
+ CODE local:37 }
+
+forwardCheckSS-Indication OPERATION ::= { --Timer s
+ CODE local:38 }
+
+restoreData OPERATION ::= { --Timer m
+ ARGUMENT
+ RestoreDataArg
+ RESULT
+ RestoreDataRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:57 }
+
+-- gprs location information retrieval operations
+
+sendRoutingInfoForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ SendRoutingInfoForGprsArg
+ RESULT
+ SendRoutingInfoForGprsRes
+ ERRORS {
+ absentSubscriber |
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ callBarred }
+ CODE local:24 }
+
+-- failure reporting operations
+
+failureReport OPERATION ::= { --Timer m
+ ARGUMENT
+ FailureReportArg
+ RESULT
+ FailureReportRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:25 }
+
+-- gprs notification operations
+
+noteMsPresentForGprs OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMsPresentForGprsArg
+ RESULT
+ NoteMsPresentForGprsRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:26 }
+
+noteMM-Event OPERATION ::= { --Timer m
+ ARGUMENT
+ NoteMM-EventArg
+ RESULT
+ NoteMM-EventRes
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ mm-EventNotSupported}
+ CODE local:89 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000000..3866b1e6e5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OM-DataTypes.asn
@@ -0,0 +1,62 @@
+MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+;
+
+IMPORTS
+ AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+;
+
+ActivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ traceType [2] TraceType,
+ omc-Id [3] AddressString OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+TraceReference ::= OCTET STRING (SIZE (1..2))
+
+TraceType ::= INTEGER
+ (0..255)
+ -- Trace types are fully defined in TS GSM 12.08.
+
+ActivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeArg ::= SEQUENCE {
+ imsi [0] IMSI OPTIONAL,
+ traceReference [1] TraceReference,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+DeactivateTraceModeRes ::= SEQUENCE {
+ extensionContainer [0] ExtensionContainer OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000000..adc50bd436
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,91 @@
+MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ tracingBufferFull
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ ActivateTraceModeArg,
+ ActivateTraceModeRes,
+ DeactivateTraceModeArg,
+ DeactivateTraceModeRes
+FROM MAP-OM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}
+
+ ISDN-AddressString,
+ IMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+
+activateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ ActivateTraceModeArg
+ RESULT
+ ActivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ tracingBufferFull}
+ CODE local:50 }
+
+deactivateTraceMode OPERATION ::= { --Timer m
+ ARGUMENT
+ DeactivateTraceModeArg
+ RESULT
+ DeactivateTraceModeRes
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber}
+ CODE local:51 }
+
+sendIMSI OPERATION ::= { --Timer m
+ ARGUMENT
+ ISDN-AddressString
+ RESULT
+ IMSI
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:58 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Protocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Protocol.asn
new file mode 100644
index 0000000000..68dfb986c8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-Protocol.asn
@@ -0,0 +1,176 @@
+MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ updateLocation,
+ cancelLocation,
+ purgeMS,
+ sendIdentification,
+ updateGprsLocation,
+ prepareHandover,
+ sendEndSignal,
+ processAccessSignalling,
+ forwardAccessSignalling,
+ prepareSubsequentHandover,
+ sendAuthenticationInfo,
+ authenticationFailureReport,
+ checkIMEI,
+ insertSubscriberData,
+ deleteSubscriberData,
+ reset,
+ forwardCheckSS-Indication,
+ restoreData,
+ provideSubscriberInfo,
+ anyTimeInterrogation,
+ anyTimeSubscriptionInterrogation,
+ anyTimeModification,
+ sendRoutingInfoForGprs,
+ failureReport,
+ noteMsPresentForGprs,
+ noteMM-Event,
+ noteSubscriberDataModified
+
+
+FROM MAP-MobileServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MobileServiceOperations (5)
+ version9 (9)}
+
+ activateTraceMode,
+ deactivateTraceMode,
+ sendIMSI
+FROM MAP-OperationAndMaintenanceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
+ version9 (9)}
+
+ sendRoutingInfo,
+ provideRoamingNumber,
+ resumeCallHandling,
+ setReportingState,
+ statusReport,
+ remoteUserFree,
+ ist-Alert,
+ ist-Command
+FROM MAP-CallHandlingOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CallHandlingOperations (7)
+ version9 (9)}
+
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+FROM MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+ prepareGroupCall,
+ processGroupCallSignalling,
+ forwardGroupCallSignalling,
+ sendGroupCallEndSignal
+FROM MAP-Group-Call-Operations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Group-Call-Operations (22)
+ version9 (9)}
+
+ provideSubscriberLocation,
+ sendRoutingInfoForLCS,
+ subscriberLocationReport
+FROM MAP-LocationServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LocationServiceOperations (24)
+ version9 (9)}
+
+secureTransportClass1,
+secureTransportClass2,
+secureTransportClass3,
+secureTransportClass4
+
+FROM MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+;
+Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | purgeMS |
+sendIdentification | updateGprsLocation | prepareHandover | sendEndSignal |
+processAccessSignalling | forwardAccessSignalling | prepareSubsequentHandover |
+sendAuthenticationInfo | authenticationFailureReport | checkIMEI | insertSubscriberData |
+deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | provideSubscriberInfo |
+anyTimeInterrogation | anyTimeSubscriptionInterrogation | anyTimeModification |
+sendRoutingInfoForGprs | failureReport |noteMsPresentForGprs | noteMM-Event |
+noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | sendIMSI |
+sendRoutingInfo | provideRoamingNumber | resumeCallHandling | setReportingState | statusReport | remoteUserFree | ist-Alert |
+ist-Command | registerSS | eraseSS | activateSS | deactivateSS | interrogateSS |
+processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify |
+registerPassword | getPassword | ss-InvocationNotification | registerCC-Entry | eraseCC-Entry |
+sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus |
+alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall |
+processGroupCallSignalling | forwardGroupCallSignalling | sendGroupCallEndSignal |
+provideSubscriberLocation | sendRoutingInfoForLCS | subscriberLocationReport |
+secureTransportClass1 |secureTransportClass2 | secureTransportClass3 | secureTransportClass4}
+
+
+
+-- The following operation codes are reserved for operations
+-- existing in previous versions of the protocol
+
+-- Operation Name AC used Oper. Code
+--
+-- sendParameters map-ac infoRetrieval (14) version1 (1) local:9
+-- processUnstructuredSS-Data map-ac networkFunctionalSs (18) version1 (1) local:19
+-- performHandover map-ac handoverControl (11) version1 (1) local:28
+-- performSubsequentHandover map-ac handoverControl (11) version1 (1) local:30
+-- provideSIWFSNumber map-ac sIWFSAllocation (12) version3 (3) local:31
+-- siwfs-SignallingModify map-ac sIWFSAllocation (12) version3 (3) local:32
+-- noteInternalHandover map-ac handoverControl (11) version1 (1) local:35
+-- noteSubscriberPresent map-ac mwdMngt (24) version1 (1) local:48
+-- alertServiceCentreWithoutResult map-ac shortMsgAlert (23) version1 (1) local:49
+-- traceSubscriberActivity map-ac handoverControl (11) version1 (1) local:52
+-- beginSubscriberActivity map-ac networkFunctionalSs (18) version1 (1) local:54
+
+-- The following error codes are reserved for errors
+-- existing in previous versions of the protocol
+
+-- Error Name AC used Error Code
+--
+-- unknownBaseStation map-ac handoverControl (11) version1 (1) local:2
+-- invalidTargetBaseStation map-ac handoverControl (11) version1 (1) local:23
+-- noRadioResourceAvailable map-ac handoverControl (11) version1 (1) local:24
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000000..664baa1b41
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SM-DataTypes.asn
@@ -0,0 +1,217 @@
+MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res,
+ SM-DeliveryOutcome,
+ AlertReason,
+ Additional-Number
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ SignalInfo,
+ IMSI,
+ LMSI
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ AbsentSubscriberDiagnosticSM
+FROM MAP-ER-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+;
+
+
+RoutingInfoForSM-Arg ::= SEQUENCE {
+ msisdn [0] ISDN-AddressString,
+ sm-RP-PRI [1] BOOLEAN,
+ serviceCentreAddress [2] AddressString,
+ extensionContainer [6] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsSupportIndicator [7] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- receiving of two numbers from the HLR
+ sm-RP-MTI [8] SM-RP-MTI OPTIONAL,
+ sm-RP-SMEA [9] SM-RP-SMEA OPTIONAL }
+
+SM-RP-MTI ::= INTEGER (0..10)
+ -- 0 SMS Deliver
+ -- 1 SMS Status Report
+ -- other values are reserved for future use and shall be discarded if
+ -- received
+
+SM-RP-SMEA ::= OCTET STRING (SIZE (1..12))
+ -- this parameter contains an address field which is encoded
+ -- as defined in 3GPP TS 23.040. An address field contains 3 elements :
+ -- address-length
+ -- type-of-address
+ -- address-value
+
+RoutingInfoForSM-Res ::= SEQUENCE {
+ imsi IMSI,
+ locationInfoWithLMSI [0] LocationInfoWithLMSI,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...}
+
+LocationInfoWithLMSI ::= SEQUENCE {
+ networkNode-Number [1] ISDN-AddressString,
+ lmsi LMSI OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ gprsNodeIndicator [5] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the
+ -- Network Node Number
+ additional-Number [6] Additional-Number OPTIONAL
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ }
+
+Additional-Number ::= CHOICE {
+ msc-Number [0] ISDN-AddressString,
+ sgsn-Number [1] ISDN-AddressString}
+ -- additional-number can be either msc-number or sgsn-number
+ -- if received networkNode-number is msc-number then the
+ -- additional number is sgsn-number
+ -- if received networkNode-number is sgsn-number then the
+ -- additional number is msc-number
+
+MO-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ imsi IMSI OPTIONAL }
+
+MO-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Arg ::= SEQUENCE {
+ sm-RP-DA SM-RP-DA,
+ sm-RP-OA SM-RP-OA,
+ sm-RP-UI SignalInfo,
+ moreMessagesToSend NULL OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+MT-ForwardSM-Res ::= SEQUENCE {
+ sm-RP-UI SignalInfo OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+SM-RP-DA ::= CHOICE {
+ imsi [0] IMSI,
+ lmsi [1] LMSI,
+ serviceCentreAddressDA [4] AddressString,
+ noSM-RP-DA [5] NULL}
+
+SM-RP-OA ::= CHOICE {
+ msisdn [2] ISDN-AddressString,
+ serviceCentreAddressOA [4] AddressString,
+ noSM-RP-OA [5] NULL}
+
+ReportSM-DeliveryStatusArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ sm-DeliveryOutcome SM-DeliveryOutcome,
+ absentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM
+ OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ...,
+ gprsSupportIndicator [2] NULL OPTIONAL,
+ -- gprsSupportIndicator is set only if the SMS-GMSC supports
+ -- handling of two delivery outcomes
+ deliveryOutcomeIndicator [3] NULL OPTIONAL,
+ -- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome
+ -- is for GPRS
+ additionalSM-DeliveryOutcome [4] SM-DeliveryOutcome OPTIONAL,
+ -- If received, additionalSM-DeliveryOutcome is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent
+ additionalAbsentSubscriberDiagnosticSM [5] AbsentSubscriberDiagnosticSM OPTIONAL
+ -- If received additionalAbsentSubscriberDiagnosticSM is for GPRS
+ -- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM
+ -- shall be absent
+ }
+
+SM-DeliveryOutcome ::= ENUMERATED {
+ memoryCapacityExceeded (0),
+ absentSubscriber (1),
+ successfulTransfer (2)}
+
+ReportSM-DeliveryStatusRes ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertServiceCentreArg ::= SEQUENCE {
+ msisdn ISDN-AddressString,
+ serviceCentreAddress AddressString,
+ ...}
+
+InformServiceCentreArg ::= SEQUENCE {
+ storedMSISDN ISDN-AddressString OPTIONAL,
+ mw-Status MW-Status OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ... ,
+ absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
+ additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
+ -- additionalAbsentSubscriberDiagnosticSM may be present only if
+ -- absentSubscriberDiagnosticSM is present.
+ -- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and
+ -- absentSubscriberDiagnosticSM is for non-GPRS
+
+MW-Status ::= BIT STRING {
+ sc-AddressNotIncluded (0),
+ mnrf-Set (1),
+ mcef-Set (2) ,
+ mnrg-Set (3)} (SIZE (6..16))
+ -- exception handling:
+ -- bits 4 to 15 shall be ignored if received and not understood
+
+ReadyForSM-Arg ::= SEQUENCE {
+ imsi [0] IMSI,
+ alertReason AlertReason,
+ alertReasonIndicator NULL OPTIONAL,
+ -- alertReasonIndicator is set only when the alertReason
+ -- sent to HLR is for GPRS
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+ReadyForSM-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...}
+
+AlertReason ::= ENUMERATED {
+ ms-Present (0),
+ memoryAvailable (1)}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-Code.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-Code.asn
new file mode 100644
index 0000000000..d3f0957648
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-Code.asn
@@ -0,0 +1,183 @@
+MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+SS-Code ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- supplementary service, a group of supplementary services, or
+ -- all supplementary services. The services and abbreviations
+ -- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is
+ -- defined as follows:
+ --
+ -- bits 87654321: group (bits 8765), and specific service
+ -- (bits 4321)
+
+allSS SS-Code ::= '00000000'B
+ -- reserved for possible future use
+ -- all SS
+
+allLineIdentificationSS SS-Code ::= '00010000'B
+ -- reserved for possible future use
+ -- all line identification SS
+clip SS-Code ::= '00010001'B
+ -- calling line identification presentation
+clir SS-Code ::= '00010010'B
+ -- calling line identification restriction
+colp SS-Code ::= '00010011'B
+ -- connected line identification presentation
+colr SS-Code ::= '00010100'B
+ -- connected line identification restriction
+mci SS-Code ::= '00010101'B
+ -- reserved for possible future use
+ -- malicious call identification
+
+allNameIdentificationSS SS-Code ::= '00011000'B
+ -- all name identification SS
+cnap SS-Code ::= '00011001'B
+ -- calling name presentation
+
+ -- SS-Codes '00011010'B to '00011111'B are reserved for future
+ -- NameIdentification Supplementary Service use.
+
+allForwardingSS SS-Code ::= '00100000'B
+ -- all forwarding SS
+cfu SS-Code ::= '00100001'B
+ -- call forwarding unconditional
+allCondForwardingSS SS-Code ::= '00101000'B
+ -- all conditional forwarding SS
+cfb SS-Code ::= '00101001'B
+ -- call forwarding on mobile subscriber busy
+cfnry SS-Code ::= '00101010'B
+ -- call forwarding on no reply
+cfnrc SS-Code ::= '00101011'B
+ -- call forwarding on mobile subscriber not reachable
+cd SS-Code ::= '00100100'B
+ -- call deflection
+
+allCallOfferingSS SS-Code ::= '00110000'B
+ -- reserved for possible future use
+ -- all call offering SS includes also all forwarding SS
+ect SS-Code ::= '00110001'B
+ -- explicit call transfer
+mah SS-Code ::= '00110010'B
+ -- reserved for possible future use
+ -- mobile access hunting
+
+allCallCompletionSS SS-Code ::= '01000000'B
+ -- reserved for possible future use
+ -- all Call completion SS
+cw SS-Code ::= '01000001'B
+ -- call waiting
+hold SS-Code ::= '01000010'B
+ -- call hold
+ccbs-A SS-Code ::= '01000011'B
+ -- completion of call to busy subscribers, originating side
+ccbs-B SS-Code ::= '01000100'B
+ -- completion of call to busy subscribers, destination side
+ -- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData
+mc SS-Code ::= '01000101'B
+ -- multicall
+
+allMultiPartySS SS-Code ::= '01010000'B
+ -- reserved for possible future use
+ -- all multiparty SS
+multiPTY SS-Code ::= '01010001'B
+ -- multiparty
+
+allCommunityOfInterest-SS SS-Code ::= '01100000'B
+ -- reserved for possible future use
+ -- all community of interest SS
+cug SS-Code ::= '01100001'B
+ -- closed user group
+
+allChargingSS SS-Code ::= '01110000'B
+ -- reserved for possible future use
+ -- all charging SS
+aoci SS-Code ::= '01110001'B
+ -- advice of charge information
+aocc SS-Code ::= '01110010'B
+ -- advice of charge charging
+
+allAdditionalInfoTransferSS SS-Code ::= '10000000'B
+ -- reserved for possible future use
+ -- all additional information transfer SS
+uus1 SS-Code ::= '10000001'B
+ -- UUS1 user-to-user signalling
+uus2 SS-Code ::= '10000010'B
+ -- UUS2 user-to-user signalling
+uus3 SS-Code ::= '10000011'B
+ -- UUS3 user-to-user signalling
+
+allBarringSS SS-Code ::= '10010000'B
+ -- all barring SS
+barringOfOutgoingCalls SS-Code ::= '10010001'B
+ -- barring of outgoing calls
+baoc SS-Code ::= '10010010'B
+ -- barring of all outgoing calls
+boic SS-Code ::= '10010011'B
+ -- barring of outgoing international calls
+boicExHC SS-Code ::= '10010100'B
+ -- barring of outgoing international calls except those directed
+ -- to the home PLMN Country
+barringOfIncomingCalls SS-Code ::= '10011001'B
+ -- barring of incoming calls
+baic SS-Code ::= '10011010'B
+ -- barring of all incoming calls
+bicRoam SS-Code ::= '10011011'B
+ -- barring of incoming calls when roaming outside home PLMN
+ -- Country
+
+allPLMN-specificSS SS-Code ::= '11110000'B
+plmn-specificSS-1 SS-Code ::= '11110001'B
+plmn-specificSS-2 SS-Code ::= '11110010'B
+plmn-specificSS-3 SS-Code ::= '11110011'B
+plmn-specificSS-4 SS-Code ::= '11110100'B
+plmn-specificSS-5 SS-Code ::= '11110101'B
+plmn-specificSS-6 SS-Code ::= '11110110'B
+plmn-specificSS-7 SS-Code ::= '11110111'B
+plmn-specificSS-8 SS-Code ::= '11111000'B
+plmn-specificSS-9 SS-Code ::= '11111001'B
+plmn-specificSS-A SS-Code ::= '11111010'B
+plmn-specificSS-B SS-Code ::= '11111011'B
+plmn-specificSS-C SS-Code ::= '11111100'B
+plmn-specificSS-D SS-Code ::= '11111101'B
+plmn-specificSS-E SS-Code ::= '11111110'B
+plmn-specificSS-F SS-Code ::= '11111111'B
+
+allCallPrioritySS SS-Code ::= '10100000'B
+ -- reserved for possible future use
+ -- all call priority SS
+emlpp SS-Code ::= '10100001'B
+ -- enhanced Multilevel Precedence Pre-emption (EMLPP) service
+
+allLCSPrivacyException SS-Code ::= '10110000'B
+ -- all LCS Privacy Exception Classes
+universal SS-Code ::= '10110001'B
+ -- allow location by any LCS client
+callSessionRelated SS-Code ::= '10110010'B
+ -- allow location by any value added LCS client to which a call/session
+ -- is established from the target MS
+callSessionUnrelated SS-Code ::= '10110011'B
+ -- allow location by designated external value added LCS clients
+plmnoperator SS-Code ::= '10110100'B
+ -- allow location by designated PLMN operator LCS clients
+serviceType SS-Code ::= '10110101'B
+ -- allow location by LCS clients of a designated LCS service type
+
+allMOLR-SS SS-Code ::= '11000000'B
+ -- all Mobile Originating Location Request Classes
+basicSelfLocation SS-Code ::= '11000001'B
+ -- allow an MS to request its own location
+autonomousSelfLocation SS-Code ::= '11000010'B
+ -- allow an MS to perform self location without interaction
+ -- with the PLMN for a predetermined period of time
+transferToThirdParty SS-Code ::= '11000011'B
+ -- allow an MS to request transfer of its location to another LCS client
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000000..5cf9178353
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SS-DataTypes.asn
@@ -0,0 +1,337 @@
+MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+ RegisterSS-Arg,
+ SS-Info,
+ SS-Status,
+ SS-SubscriptionOption,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ USSD-DataCodingScheme,
+ USSD-String,
+ Password,
+ GuidanceInfo,
+ SS-List,
+ SS-InfoList,
+ OverrideCategory,
+ CliRestrictionOption,
+ NoReplyConditionTime,
+ ForwardingOptions,
+ maxNumOfSS,
+ SS-Data,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ CCBS-Feature,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ ISDN-SubaddressString,
+ FTN-AddressString,
+ IMSI,
+ BasicServiceCode,
+ AlertingPattern,
+ EMLPP-Priority,
+ MaxMC-Bearers,
+ MC-Bearers,
+ ExternalSignalInfo
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+RegisterSS-Arg ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ forwardedToNumber [4] AddressString OPTIONAL,
+ forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL,
+ noReplyConditionTime [5] NoReplyConditionTime OPTIONAL,
+ ...,
+ defaultPriority [7] EMLPP-Priority OPTIONAL,
+ nbrUser [8] MC-Bearers OPTIONAL,
+ longFTN-Supported [9] NULL OPTIONAL }
+
+NoReplyConditionTime ::= INTEGER (5..30)
+
+SS-Info ::= CHOICE {
+ forwardingInfo [0] ForwardingInfo,
+ callBarringInfo [1] CallBarringInfo,
+ ss-Data [3] SS-Data}
+
+ForwardingInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ forwardingFeatureList ForwardingFeatureList,
+ ...}
+
+ForwardingFeatureList ::=
+ SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ ForwardingFeature
+
+ForwardingFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ forwardedToNumber [5] ISDN-AddressString OPTIONAL,
+ forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL,
+ forwardingOptions [6] ForwardingOptions OPTIONAL,
+ noReplyConditionTime [7] NoReplyConditionTime OPTIONAL,
+ ...,
+ longForwardedToNumber [9] FTN-AddressString OPTIONAL }
+
+SS-Status ::= OCTET STRING (SIZE (1))
+
+ -- bits 8765: 0000 (unused)
+ -- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
+ -- representing supplementary service state information
+ -- as defined in TS 3GPP TS 23.011 [22]
+
+ -- bit 4: "Q bit"
+
+ -- bit 3: "P bit"
+
+ -- bit 2: "R bit"
+
+ -- bit 1: "A bit"
+
+ForwardingOptions ::= OCTET STRING (SIZE (1))
+
+ -- bit 8: notification to forwarding party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 7: redirecting presentation
+ -- 0 no presentation
+ -- 1 presentation
+
+ -- bit 6: notification to calling party
+ -- 0 no notification
+ -- 1 notification
+
+ -- bit 5: 0 (unused)
+
+ -- bits 43: forwarding reason
+ -- 00 ms not reachable
+ -- 01 ms busy
+ -- 10 no reply
+ -- 11 unconditional when used in a SRI Result,
+ -- or call deflection when used in a RCH Argument
+ -- bits 21: 00 (unused)
+
+CallBarringInfo ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ callBarringFeatureList CallBarringFeatureList,
+ ...}
+
+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ CallBarringFeature
+
+CallBarringFeature ::= SEQUENCE {
+ basicService BasicServiceCode OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ...}
+
+SS-Data ::= SEQUENCE {
+ ss-Code SS-Code OPTIONAL,
+ ss-Status [4] SS-Status OPTIONAL,
+ ss-SubscriptionOption SS-SubscriptionOption OPTIONAL,
+ basicServiceGroupList BasicServiceGroupList OPTIONAL,
+ ...,
+ defaultPriority EMLPP-Priority OPTIONAL,
+ nbrUser [5] MC-Bearers OPTIONAL
+ }
+
+SS-SubscriptionOption ::= CHOICE {
+ cliRestrictionOption [2] CliRestrictionOption,
+ overrideCategory [1] OverrideCategory}
+
+CliRestrictionOption ::= ENUMERATED {
+ permanent (0),
+ temporaryDefaultRestricted (1),
+ temporaryDefaultAllowed (2)}
+
+OverrideCategory ::= ENUMERATED {
+ overrideEnabled (0),
+ overrideDisabled (1)}
+
+SS-ForBS-Code ::= SEQUENCE {
+ ss-Code SS-Code,
+ basicService BasicServiceCode OPTIONAL,
+ ...,
+ longFTN-Supported [4] NULL OPTIONAL }
+
+GenericServiceInfo ::= SEQUENCE {
+ ss-Status SS-Status,
+ cliRestrictionOption CliRestrictionOption OPTIONAL,
+ ...,
+ maximumEntitledPriority [0] EMLPP-Priority OPTIONAL,
+ defaultPriority [1] EMLPP-Priority OPTIONAL,
+ ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL,
+ nbrSB [3] MaxMC-Bearers OPTIONAL,
+ nbrUser [4] MC-Bearers OPTIONAL,
+ nbrSN [5] MC-Bearers OPTIONAL }
+
+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF
+ CCBS-Feature
+
+maxNumOfCCBS-Requests INTEGER ::= 5
+
+CCBS-Feature ::= SEQUENCE {
+ ccbs-Index [0] CCBS-Index OPTIONAL,
+ b-subscriberNumber [1] ISDN-AddressString OPTIONAL,
+ b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL,
+ basicServiceGroup [3] BasicServiceCode OPTIONAL,
+ ...}
+
+CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests)
+
+InterrogateSS-Res ::= CHOICE {
+ ss-Status [0] SS-Status,
+ basicServiceGroupList [2] BasicServiceGroupList,
+ forwardingFeatureList [3] ForwardingFeatureList,
+ genericServiceInfo [4] GenericServiceInfo }
+
+USSD-Arg ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ... ,
+ alertingPattern AlertingPattern OPTIONAL,
+ msisdn [0] ISDN-AddressString OPTIONAL }
+
+USSD-Res ::= SEQUENCE {
+ ussd-DataCodingScheme USSD-DataCodingScheme,
+ ussd-String USSD-String,
+ ...}
+
+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))
+ -- The structure of the USSD-DataCodingScheme is defined by
+ -- the Cell Broadcast Data Coding Scheme as described in
+ -- TS 3GPP TS 23.038 [25]
+
+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))
+ -- The structure of the contents of the USSD-String is dependent
+ -- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].
+
+maxUSSD-StringLength INTEGER ::= 160
+
+Password ::= NumericString
+ (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))
+ (SIZE (4))
+
+GuidanceInfo ::= ENUMERATED {
+ enterPW (0),
+ enterNewPW (1),
+ enterNewPW-Again (2)}
+ -- How this information is really delivered to the subscriber
+ -- (display, announcement, ...) is not part of this
+ -- specification.
+
+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Code
+
+maxNumOfSS INTEGER ::= 30
+
+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
+ SS-Info
+
+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF
+ BasicServiceCode
+
+maxNumOfBasicServiceGroups INTEGER ::= 13
+
+SS-InvocationNotificationArg ::= SEQUENCE {
+ imsi [0] IMSI,
+ msisdn [1] ISDN-AddressString,
+ ss-Event [2] SS-Code,
+ -- The following SS-Code values are allowed :
+ -- ect SS-Code ::= '00110001'B
+ -- multiPTY SS-Code ::= '01010001'B
+ -- cd SS-Code ::= '00100100'B
+ -- ccbs SS-Code ::= '01000100'B
+ ss-EventSpecification [3] SS-EventSpecification OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ b-subscriberNumber [5] ISDN-AddressString OPTIONAL,
+ ccbs-RequestState [6] CCBS-RequestState OPTIONAL
+ }
+
+CCBS-RequestState ::= ENUMERATED {
+ request (0),
+ recall (1),
+ active (2),
+ completed (3),
+ suspended (4),
+ frozen (5),
+ deleted (6)
+ }
+
+SS-InvocationNotificationRes ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+ }
+
+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF
+ AddressString
+
+maxEventSpecification INTEGER ::= 2
+
+RegisterCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Data [1] CCBS-Data OPTIONAL,
+ ...}
+
+CCBS-Data ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature,
+ translatedB-Number [1] ISDN-AddressString,
+ serviceIndicator [2] ServiceIndicator OPTIONAL,
+ callInfo [3] ExternalSignalInfo,
+ networkSignalInfo [4] ExternalSignalInfo,
+ ...}
+
+ServiceIndicator ::= BIT STRING {
+ clir-invoked (0),
+ camel-invoked (1)} (SIZE(2..32))
+ -- exception handling:
+ -- bits 2 to 31 shall be ignored if received and not understood
+
+RegisterCC-EntryRes ::= SEQUENCE {
+ ccbs-Feature [0] CCBS-Feature OPTIONAL,
+ ...}
+
+EraseCC-EntryArg ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ccbs-Index [1] CCBS-Index OPTIONAL,
+ ...}
+
+EraseCC-EntryRes ::= SEQUENCE {
+ ss-Code [0] SS-Code,
+ ss-Status [1] SS-Status OPTIONAL,
+ ...}
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
new file mode 100644
index 0000000000..2eac16551d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ST-DataTypes.asn
@@ -0,0 +1,98 @@
+MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ SecureTransportArg,
+ SecureTransportRes,
+ SecurityHeader,
+ ProtectedPayload
+;
+
+IMPORTS
+ IMSI
+
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
+;
+
+SecureTransportArg ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
+ -- transported operation
+
+SecureTransportRes ::= SEQUENCE {
+ securityHeader SecurityHeader,
+ protectedPayload ProtectedPayload OPTIONAL
+ }
+ -- The protectedPayload carries the result of applying the security function
+ -- defined in 3GPP TS 33.200 to the encoding of the result of the securely
+ -- transported operation
+
+SecurityHeader ::= SEQUENCE {
+ securityParametersIndex SecurityParametersIndex,
+ originalComponentIdentifier OriginalComponentIdentifier,
+ initialisationVector InitialisationVector OPTIONAL,
+ ...}
+
+ProtectedPayload ::= OCTET STRING(SIZE(1.. 3438))
+ -- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
+ -- syntax value of the component parameter identified by the
+ -- originalComponentIdentifier.
+ -- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
+ -- the transfer syntax value of the component
+ -- parameter identified by the originalComponentIdentifier, followed by
+ -- the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the transfer syntax value of the component parameter.
+ -- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
+ -- payload carries the encrypted transfer syntax
+ -- value of the component parameter identified by the
+ -- originalComponentIdentifier, followed by the 32 bit integrity check value.
+ -- The integrity check value is the result of applying the hash algorithm
+ -- to the concatenation of the transfer syntax value of the SecurityHeader,
+ -- and the encrypted transfer syntax value of the component parameter.
+ -- See 33.200.
+ -- The length of the protectedPayload is adjusted according to the capabilities of
+ -- the lower protocol layers
+
+SecurityParametersIndex ::= OCTET STRING (SIZE(4))
+
+InitialisationVector ::= OCTET STRING (SIZE(14))
+ -- the internal structure is defined as follows:
+ -- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
+ -- and indicates the number of intervals of 100 milliseconds
+ -- elapsed since 1st January 2002, 0:00:00 UTC
+ -- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
+ -- within the PLMN. It is the entity's E.164 number without CC and
+ -- NDC. It is TBCD-coded, padded with zeros.
+ -- Octets 11 to 14: PROP. This 32 bit value is used to make the
+ -- InitialisationVector unique within the same TVP period.
+ -- The content is not standardized.
+
+
+OriginalComponentIdentifier ::= CHOICE {
+ operationCode [0] OperationCode,
+ errorCode [1] ErrorCode,
+ userInfo [2] NULL}
+
+OperationCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+ErrorCode ::= CHOICE {
+ localValue INTEGER,
+ globalValue OBJECT IDENTIFIER}
+
+END
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
new file mode 100644
index 0000000000..dfb830cddd
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SecureTransportOperations.asn
@@ -0,0 +1,78 @@
+MAP-SecureTransportOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SecureTransportOperations (26)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ secureTransportClass1,
+ secureTransportClass2,
+ secureTransportClass3,
+ secureTransportClass4
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ dataMissing,
+ secureTransportError,
+ unexpectedDataValue
+
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ SecureTransportArg,
+ SecureTransportRes
+
+FROM MAP-ST-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
+;
+
+secureTransportClass1 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:78 }
+
+secureTransportClass2 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ ERRORS {
+ secureTransportError |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:79 }
+
+secureTransportClass3 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ RESULT
+ SecureTransportRes
+ CODE local:80 }
+
+secureTransportClass4 OPERATION ::= { --Timer shall be the same as for the
+ --securely transported operation
+ ARGUMENT
+ SecureTransportArg
+ CODE local:81 }
+
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000000..0cca86ceac
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,155 @@
+-- asn1ct:compile("MAP-ShortMessageServiceOperations",[ber_bin, {outdir, "../compiled/umts_map"}]).
+
+MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ facilityNotSupported,
+ unknownSubscriber,
+ unidentifiedSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ teleserviceNotProvisioned,
+ callBarred,
+ subscriberBusyForMT-SMS,
+ sm-DeliveryFailure,
+ messageWaitingListFull,
+ absentSubscriberSM
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RoutingInfoForSM-Arg,
+ RoutingInfoForSM-Res,
+ MO-ForwardSM-Arg,
+ MO-ForwardSM-Res,
+ MT-ForwardSM-Arg,
+ MT-ForwardSM-Res,
+ ReportSM-DeliveryStatusArg,
+ ReportSM-DeliveryStatusRes,
+ AlertServiceCentreArg,
+ InformServiceCentreArg,
+ ReadyForSM-Arg,
+ ReadyForSM-Res
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}
+
+;
+
+sendRoutingInfoForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ RoutingInfoForSM-Arg
+ RESULT
+ RoutingInfoForSM-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber |
+ teleserviceNotProvisioned |
+ callBarred |
+ absentSubscriberSM}
+ CODE local:45 }
+
+mo-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MO-ForwardSM-Arg
+ RESULT
+ MO-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ unexpectedDataValue |
+ facilityNotSupported |
+ sm-DeliveryFailure}
+ CODE local:46 }
+
+mt-ForwardSM OPERATION ::= { --Timer ml
+ ARGUMENT
+ MT-ForwardSM-Arg
+ RESULT
+ MT-ForwardSM-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unidentifiedSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ subscriberBusyForMT-SMS |
+ sm-DeliveryFailure |
+ absentSubscriberSM}
+ CODE local:44 }
+
+reportSM-DeliveryStatus OPERATION ::= { --Timer s
+ ARGUMENT
+ ReportSM-DeliveryStatusArg
+ RESULT
+ ReportSM-DeliveryStatusRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber |
+ messageWaitingListFull}
+ CODE local:47 }
+
+alertServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ AlertServiceCentreArg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue}
+ CODE local:64 }
+
+informServiceCentre OPERATION ::= { --Timer s
+ ARGUMENT
+ InformServiceCentreArg
+ CODE local:63 }
+
+readyForSM OPERATION ::= { --Timer m
+ ARGUMENT
+ ReadyForSM-Arg
+ RESULT
+ ReadyForSM-Res
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ facilityNotSupported |
+ unknownSubscriber}
+ CODE local:66 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000000..7c89273c8b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,295 @@
+MAP-SupplementaryServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
+ version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+EXPORTS
+ registerSS,
+ eraseSS,
+ activateSS,
+ deactivateSS,
+ interrogateSS,
+ processUnstructuredSS-Request,
+ unstructuredSS-Request,
+ unstructuredSS-Notify,
+ registerPassword,
+ getPassword,
+ ss-InvocationNotification,
+ registerCC-Entry,
+ eraseCC-Entry
+;
+
+IMPORTS
+ OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+ systemFailure,
+ dataMissing,
+ unexpectedDataValue,
+ unknownSubscriber,
+ bearerServiceNotProvisioned,
+ teleserviceNotProvisioned,
+ callBarred,
+ illegalSS-Operation,
+ ss-ErrorStatus,
+ ss-NotAvailable,
+ ss-SubscriptionViolation,
+ ss-Incompatibility,
+ pw-RegistrationFailure,
+ negativePW-Check,
+ numberOfPW-AttemptsViolation,
+ unknownAlphabet,
+ ussd-Busy,
+ absentSubscriber,
+ illegalSubscriber,
+ illegalEquipment,
+ shortTermDenial,
+ longTermDenial,
+ facilityNotSupported
+FROM MAP-Errors {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Errors (10) version9 (9)}
+
+ RegisterSS-Arg,
+ SS-Info,
+ SS-ForBS-Code,
+ InterrogateSS-Res,
+ USSD-Arg,
+ USSD-Res,
+ Password,
+ GuidanceInfo,
+ SS-InvocationNotificationArg,
+ SS-InvocationNotificationRes,
+ RegisterCC-EntryArg,
+ RegisterCC-EntryRes,
+ EraseCC-EntryArg,
+ EraseCC-EntryRes
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}
+
+ SS-Code
+FROM MAP-SS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}
+;
+
+
+-- supplementary service handling operations
+
+registerSS OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterSS-Arg
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility}
+ CODE local:10 }
+
+eraseSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus
+ }
+ CODE local:11 }
+
+activateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ ss-Incompatibility |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:12 }
+
+deactivateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ SS-Info
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-SubscriptionViolation |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ CODE local:13 }
+
+interrogateSS OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-ForBS-Code
+ RESULT
+ InterrogateSS-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ bearerServiceNotProvisioned |
+ teleserviceNotProvisioned |
+ callBarred |
+ illegalSS-Operation |
+ ss-NotAvailable}
+ CODE local:14 }
+
+processUnstructuredSS-Request OPERATION ::= { --Timer 10 minutes
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ unknownAlphabet |
+ callBarred}
+ CODE local:59 }
+
+unstructuredSS-Request OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RESULT
+ USSD-Res
+ -- optional
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:60 }
+
+unstructuredSS-Notify OPERATION ::= { --Timer ml
+ ARGUMENT
+ USSD-Arg
+ RETURN RESULT TRUE
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ absentSubscriber |
+ illegalSubscriber |
+ illegalEquipment |
+ unknownAlphabet |
+ ussd-Busy}
+ CODE local:61 }
+
+registerPassword OPERATION ::= { --Timer ml
+ ARGUMENT
+ SS-Code
+ RESULT
+ Password
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ ss-SubscriptionViolation |
+ pw-RegistrationFailure |
+ negativePW-Check |
+ numberOfPW-AttemptsViolation}
+ LINKED {
+ getPassword}
+ CODE local:17 }
+
+getPassword OPERATION ::= { --Timer m
+ ARGUMENT
+ GuidanceInfo
+ RESULT
+ Password
+ CODE local:18 }
+
+ss-InvocationNotification OPERATION ::= { --Timer m
+ ARGUMENT
+ SS-InvocationNotificationArg
+ RESULT
+ SS-InvocationNotificationRes
+ -- optional
+ ERRORS {
+ dataMissing |
+ unexpectedDataValue |
+ unknownSubscriber}
+ CODE local:72 }
+
+registerCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ RegisterCC-EntryArg
+ RESULT
+ RegisterCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus |
+ ss-Incompatibility |
+ shortTermDenial |
+ longTermDenial |
+ facilityNotSupported}
+ CODE local:76 }
+
+eraseCC-Entry OPERATION ::= { --Timer m
+ ARGUMENT
+ EraseCC-EntryArg
+ RESULT
+ EraseCC-EntryRes
+ ERRORS {
+ systemFailure |
+ dataMissing |
+ unexpectedDataValue |
+ callBarred |
+ illegalSS-Operation |
+ ss-ErrorStatus}
+ CODE local:77 }
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-TS-Code.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-TS-Code.asn
new file mode 100644
index 0000000000..eface38b31
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MAP-TS-Code.asn
@@ -0,0 +1,87 @@
+MAP-TS-Code {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+TeleserviceCode ::= OCTET STRING (SIZE (1))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))
+ -- This type is used to represent the code identifying a single
+ -- teleservice, a group of teleservices, or all teleservices. The
+ -- services are defined in TS GSM 22.003 [4].
+ -- The internal structure is defined as follows:
+
+ -- OCTET 1:
+ -- bits 87654321: group (bits 8765) and specific service
+ -- (bits 4321)
+
+ -- OCTETS 2-5: reserved for future use. If received the
+ -- Ext-TeleserviceCode shall be
+ -- treated according to the exception handling defined for the
+ -- operation that uses this type.
+
+ -- Ext-TeleserviceCode includes all values defined for TeleserviceCode.
+
+allTeleservices TeleserviceCode ::= '00000000'B
+
+allSpeechTransmissionServices TeleserviceCode ::= '00010000'B
+telephony TeleserviceCode ::= '00010001'B
+emergencyCalls TeleserviceCode ::= '00010010'B
+
+allShortMessageServices TeleserviceCode ::= '00100000'B
+shortMessageMT-PP TeleserviceCode ::= '00100001'B
+shortMessageMO-PP TeleserviceCode ::= '00100010'B
+
+allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B
+facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B
+automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B
+facsimileGroup4 TeleserviceCode ::= '01100011'B
+
+-- The following non-hierarchical Compound Teleservice Groups
+-- are defined in TS 3GPP TS 22.030:
+allDataTeleservices TeleserviceCode ::= '01110000'B
+ -- covers Teleservice Groups 'allFacsimileTransmissionServices'
+ -- and 'allShortMessageServices'
+allTeleservices-ExeptSMS TeleserviceCode ::= '10000000'B
+ -- covers Teleservice Groups 'allSpeechTransmissionServices' and
+ -- 'allFacsimileTransmissionServices'
+--
+-- Compound Teleservice Group Codes are only used in call
+-- independent supplementary service operations, i.e. they
+-- are not used in InsertSubscriberData or in
+-- DeleteSubscriberData messages.
+
+allVoiceGroupCallServices TeleserviceCode ::= '10010000'B
+voiceGroupCall TeleserviceCode ::= '10010001'B
+voiceBroadcastCall TeleserviceCode ::= '10010010'B
+
+allPLMN-specificTS TeleserviceCode ::= '11010000'B
+plmn-specificTS-1 TeleserviceCode ::= '11010001'B
+plmn-specificTS-2 TeleserviceCode ::= '11010010'B
+plmn-specificTS-3 TeleserviceCode ::= '11010011'B
+plmn-specificTS-4 TeleserviceCode ::= '11010100'B
+plmn-specificTS-5 TeleserviceCode ::= '11010101'B
+plmn-specificTS-6 TeleserviceCode ::= '11010110'B
+plmn-specificTS-7 TeleserviceCode ::= '11010111'B
+plmn-specificTS-8 TeleserviceCode ::= '11011000'B
+plmn-specificTS-9 TeleserviceCode ::= '11011001'B
+plmn-specificTS-A TeleserviceCode ::= '11011010'B
+plmn-specificTS-B TeleserviceCode ::= '11011011'B
+plmn-specificTS-C TeleserviceCode ::= '11011100'B
+plmn-specificTS-D TeleserviceCode ::= '11011101'B
+plmn-specificTS-E TeleserviceCode ::= '11011110'B
+plmn-specificTS-F TeleserviceCode ::= '11011111'B
+
+END
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MobileDomainDefinitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
new file mode 100644
index 0000000000..30e7143882
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/MobileDomainDefinitions.asn
@@ -0,0 +1,38 @@
+MobileDomainDefinitions {itu-t (0) identified-organization (4) etsi (0)
+ mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+-- Mobile DomainId
+mobileDomainId OBJECT IDENTIFIER ::=
+ {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)}
+
+-- Mobile Subdomains
+gsm-NetworkId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Network (1)}
+
+gsm-AccessId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Access (2)}
+
+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Operation-Maintenance (3)}
+
+gsm-MessagingId OBJECT IDENTIFIER ::=
+ {mobileDomainId gsm-Messaging (4)}
+
+-- Common Component Ids for structuring Mobile Subdomains
+CommonComponentId ::= INTEGER (0..9)
+
+ac-Id CommonComponentId ::= 0
+
+as-Id CommonComponentId ::= 1
+
+ase-Id CommonComponentId ::= 2
+
+moduleId CommonComponentId ::= 3
+
+er-Id CommonComponentId ::= 4
+
+END -- MobileDomainDefinitions \ No newline at end of file
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..d4d2eecea1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,167 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..74be149bb0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,127 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)}
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..714b96b5c3
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,99 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TC-Notation-Extensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
new file mode 100644
index 0000000000..89bfd105ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TC-Notation-Extensions.asn
@@ -0,0 +1,87 @@
+-- Module TC-Notation-Extensions (Q.775:06/1997)
+
+TC-Notation-Extensions {itu-t recommendation q 775 modules(2)
+ notation-extension(4) version1(1)} DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ TCMessage{}
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+ Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}, combine{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ CONTRACT, OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ UniDialoguePDU, uniDialogue-as-id
+ FROM UnidialoguePDUs {itu-t recommendation q 773 modules(2)
+ unidialoguePDUs(3) version1(1)}
+ DialoguePDU, dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &dialogueMode DialogueMode,
+ &termination Termination OPTIONAL,
+ &componentGrouping BOOLEAN DEFAULT TRUE,
+ &dialogueAndComponentGrouping BOOLEAN DEFAULT TRUE,
+ &AdditionalASEs OBJECT IDENTIFIER OPTIONAL,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ DIALOGUE MODE &dialogueMode
+ [TERMINATION &termination]
+ [COMPONENT GROUPING ALLOWED &componentGrouping]
+ [DIALOGUE WITH COMPONENTS ALLOWED &dialogueAndComponentGrouping]
+ [ADDITIONAL ASES &AdditionalASEs]
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+DialogueMode ::= ENUMERATED {structured(1), unstructured(2)}
+
+Termination ::= ENUMERATED {basic(1), prearranged(2)}
+
+dialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ DialoguePDU
+ IDENTIFIED BY dialogue-as-id
+}
+
+uniDialogue-abstract-syntax ABSTRACT-SYNTAX ::= {
+ UniDialoguePDU
+ IDENTIFIED BY uniDialogue-as-id
+}
+
+TCSingleAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{AllOperations {package}}, {AllOperations {package}}}
+
+TCConsumerAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{ConsumerPerforms {package}}, {ConsumerPerforms {package}}}
+
+TCSupplierAS{OPERATION-PACKAGE:package} ::=
+ TCMessage{{SupplierPerforms {package}}, {SupplierPerforms {package}}}
+
+AllPackagesAS{APPLICATION-CONTEXT:ac} ::=
+ TCSingleAS
+ {combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&InitiatorSupplierOf},
+ {...}, --was illegaly empty, needs to be changed
+ { -- Information Object of class OPERATION-PACKAGE to be defined --}}}
+
+ConnectionAS{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Examples.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Examples.asn
new file mode 100644
index 0000000000..17667af920
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Examples.asn
@@ -0,0 +1,72 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Examples {itu-t recommendation q 775 modules(2) examples(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+provideRoutingInformation OPERATION ::= {
+ ARGUMENT RequestArgument
+ RESULT RoutingInformation
+ ERRORS
+ {invalidCalledNumber | subscriberNotReachable | calledBarred |
+ processingFailure}
+ LINKED {getCallingPartyAddress}
+}
+
+-- timer T-pi = 10 s
+getCallingPartyAddress OPERATION ::= {
+ RESULT CallingPartyAddress
+ ERRORS {callingPartyAddressNotAvailable | processingFailure}
+}
+
+-- timer T-gp = 5 s
+invalidCalledNumber ERROR ::= {CODE local:1
+}
+
+subscriberNotReachable ERROR ::= {CODE local:2
+}
+
+calledBarred ERROR ::= {CODE local:3
+}
+
+callingPartyAddressNotAvailable ERROR ::= {CODE local:4
+}
+
+processingFailure ERROR ::= {CODE local:5
+}
+
+-- data types
+RequestArgument ::= SEQUENCE {
+ calledNumber IsdnNumber,
+ basicService BasicServiceIndicator OPTIONAL
+}
+
+RoutingInformation ::= CHOICE {
+ reroutingNumber [0] IMPLICIT IsdnNumber,
+ forwardedToNumber [1] IMPLICIT IsdnNumber
+}
+
+BasicServiceIndicator ::= ENUMERATED {speech(0), unrestrictedDigital(1)}
+
+CallingPartyAddress ::= IsdnNumber
+
+IsdnNumber ::= SEQUENCE {
+ typeOfAddress TypeOfAddress,
+ digits TelephonyString
+}
+
+TypeOfAddress ::= ENUMERATED {national(0), international(1), private(2)}
+
+TelephonyString ::=
+ IA5String
+ (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" |
+ "#"))(SIZE (1..15))
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Tools.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Tools.asn
new file mode 100644
index 0000000000..09ea9d936f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAP-Tools.asn
@@ -0,0 +1,47 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Tools {itu-t recommendation q 775 modules(2) tools(1) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ cancel,
+ cancelFailed,
+ cancelled
+;
+
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+
+ TCInvokeIdSet
+ FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+ version3(3)}
+;
+
+cancel OPERATION ::= {
+ ARGUMENT present < TCInvokeIdSet
+ -- a TC-user may redefine this type to include
+ -- an empty result so that it becomes a Class 1 operation
+ ERRORS {cancelFailed}
+}
+
+-- timer = 15 s
+cancelFailed ERROR ::= {
+ PARAMETER
+ SET {problem [0] CancelProblem,
+ invokeId [1] present < TCInvokeIdSet}
+}
+
+CancelProblem ::= ENUMERATED {
+ unknownInvocation(0), tooLate(1), notCancellable(2)}
+
+-- a TC-user may redefine this type to include application-specific problems
+cancelled ERROR ::=
+ {}
+
+-- an error of this type should be included in the error list of cancellable operations
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAPMessages.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAPMessages.asn
new file mode 100644
index 0000000000..906cac23c8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/TCAPMessages.asn
@@ -0,0 +1,149 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module TCAPMessages (Q.773:06/1997)
+-- asn1ct:compile("TCAPMessages",[ber_bin]).
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+ ROS{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- Start - Added by Eranga
+ dialogue-as-id
+ FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+ version1(1)}
+ sendRoutingInfoForSM,
+ mo-ForwardSM,
+ mt-ForwardSM,
+ reportSM-DeliveryStatus,
+ alertServiceCentre,
+ informServiceCentre,
+ readyForSM
+ FROM MAP-ShortMessageServiceOperations {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+ version9 (9)}
+ gsm-MessagingId
+ FROM MobileDomainDefinitions {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ mobileDomainDefinitions (0) version1 (1)}
+ Supported-MAP-Operations
+ FROM MAP-Protocol {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- End - Added by Eranga
+;
+
+-- Start - Added by Eranga
+
+mapSpecificAS ABSTRACT-SYNTAX ::= {
+ MapSpecificPDUs
+ IDENTIFIED BY gsm-MessagingId
+}
+
+MapSpecificPDUs ::=
+ TCMessage{{MAPOperations-Invokable}, {MAPOperations-Returnable}}
+
+
+MAPOperations-Invokable OPERATION ::=
+ {sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM}
+MAPOperations-Returnable OPERATION ::=
+ {reportSM-DeliveryStatus | alertServiceCentre | informServiceCentre | readyForSM}
+
+-- End - Added by Eranga
+
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ unidirectional [APPLICATION 1] Unidirectional{{Invokable}, {Returnable}},
+ begin [APPLICATION 2] Begin{{Invokable}, {Returnable}},
+ end [APPLICATION 4] End{{Invokable}, {Returnable}},
+ continue [APPLICATION 5] Continue{{Invokable}, {Returnable}},
+ abort [APPLICATION 7] Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+ otid OrigTransactionID,
+ dtid DestTransactionID,
+ dialoguePortion DialoguePortion OPTIONAL,
+ components ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+ dtid DestTransactionID,
+ reason CHOICE {p-abortCause P-AbortCause,
+ u-abortCause DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8] OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9] OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10] INTEGER {
+ unrecognizedMessageType(0), unrecognizedTransactionID(1),
+ badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+ resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+ [APPLICATION 12]
+ SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+ basicROS ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+ returnResultNotLast
+ [7] returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+ present (-128..127)
+ })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/UnidialoguePDUs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/UnidialoguePDUs.asn
new file mode 100644
index 0000000000..4244cc8e65
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/tcapsystem/UnidialoguePDUs.asn
@@ -0,0 +1,26 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module UnidialoguePDUs (Q.773:06/1997)
+UnidialoguePDUs {itu-t recommendation q 773 modules(2) unidialoguePDUs(3)
+ version1(1)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS uniDialogue-as-id, UniDialoguePDU;
+
+-- Abstract syntax name for unstructured dialogue APDUs
+uniDialogue-as-id OBJECT IDENTIFIER ::=
+ {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)}
+
+UniDialoguePDU ::= CHOICE {unidialoguePDU AUDT-apdu
+}
+
+AUDT-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] OBJECT IDENTIFIER,
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+END -- UNIDialoguePDU
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/test_records.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/test_records.erl
new file mode 100644
index 0000000000..b2c9797fdc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/test_records.erl
@@ -0,0 +1,87 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(test_records).
+
+-export(['check_record_names_OTP-5812'/1]).
+
+%-include("test_server.hrl").
+%-include_lib("test_server/include/test_server.hrl").
+
+-define(line,put(test_server_loc,{?MODULE,?LINE}),).
+
+-include("NBAP-PDU-Discriptions.hrl").
+-include("NBAP-PDU-Contents.hrl").
+-include("NBAP-Containers.hrl").
+-include("NBAP-CommonDataTypes.hrl").
+-include("NBAP-IEs.hrl").
+
+
+
+
+'check_record_names_OTP-5812'(Msg) ->
+ io:format("Msg: ~n~p~n",[Msg]),
+ check_record_names(Msg).
+
+check_record_names({initiatingMessage,
+ #'InitiatingMessage'{procedureID = ProcedureID,
+ criticality = _Criticality,
+ messageDiscriminator = _MessageDisc,
+ transactionID = _TransactionID,
+ value = Value}}) ->
+
+ ?line ok = check_record_ProcedureID(ProcedureID),
+ ?line ok = check_record_Value(Value).
+
+check_record_ProcedureID(#'ProcedureID'{}) ->
+ ok;
+check_record_ProcedureID(_) -> false.
+
+check_record_Value(#'ResourceStatusIndication'{protocolIEs = ProtocolIEs}) ->
+ ?line ok = check_record_ProtocolIEs(ProtocolIEs);
+check_record_Value(_) -> false.
+
+check_record_ProtocolIEs([#'ProtocolIE-Field'{value =IndicationType}|_]) ->
+ ?line ok = check_record_NFResourceStatusInd(IndicationType);
+check_record_ProtocolIEs(_) -> false.
+
+check_record_NFResourceStatusInd({'no-Failure',#'No-Failure-ResourceStatusInd'{'local-Cell-InformationList'=[LCIPF]}}) ->
+ 'check_record_NFResourceStatusInd_ProtocolIE-Field'(LCIPF);
+check_record_NFResourceStatusInd(_) -> false.
+
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(#'ProtocolIE-Field'{value=LCI}) ->
+ ?line ok = check_record_LCInfoResourceStatusInd(LCI);
+'check_record_NFResourceStatusInd_ProtocolIE-Field'(_) -> false.
+
+check_record_LCInfoResourceStatusInd(#'Local-Cell-InformationItem-ResourceStatusInd'{commonChannelsCapacityConsumptionLaw=[CCCCL],dedicatedChannelsCapacityConsumptionLaw=[DCCCL],'iE-Extensions' = [LCIRE]}) ->
+ ?line ok = check_record_CCCCL(CCCCL),
+ ?line ok = check_record_DCCCL(DCCCL),
+ ?line ok = check_record_LCIRE(LCIRE).
+
+check_record_CCCCL(#'CommonChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_CCCCL(_) -> false.
+
+check_record_DCCCL(#'DedicatedChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+ ok;
+check_record_DCCCL(_) -> false.
+check_record_LCIRE(#'ProtocolExtensionField'{}) ->
+ ok;
+check_record_LCIRE(_) -> false.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl
new file mode 100644
index 0000000000..be7ceee7d1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl
@@ -0,0 +1,1443 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testobj).
+
+-include("RANAP.hrl").
+
+-compile(export_all).
+
+-define(ranap, 'RANAP').
+
+
+%% These are possible Reason-values for sccp_disconnect_req in RANPM
+%%
+%% 0,0,0,0,0,1,0,0, % Message-type
+%% 0,0,0,0,0,0,0,0, % Dest local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,0,1,
+%% 0,0,0,0,0,0,0,0, % Source local ref (dummy) - 3 octets
+%% 0,0,0,0,0,0,0,0,
+%% 0,0,0,0,0,0,1,0,
+
+run() ->
+ ok = run_com_id(),
+ ok = run_dir_tsf_2cn(),
+ ok = run_dir_tsf_2rnc(),
+ ok = run_init_ue(),
+ ok = run_iu_rel_cmd(),
+ ok = run_iu_rel_cmp(),
+ ok = run_rab_ass_rsp_delete(),
+ ok = run_rab_ass_rsp_setup(),
+ ok = run_rab_create(),
+ ok = run_rab_rel(),
+ ok = run_reset(),
+ ok = run_reset_res(),
+ ok = run_sm_cmd(),
+ ok = run_sm_cmp(),
+ ok = run_sm_rej().
+
+
+ranap_pdu_contents(Enc,Type) ->
+ {initiatingMessage, #'InitiatingMessage'{
+ procedureCode = Type,
+ criticality = ignore, %{'Criticality', ignore}, %XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_outcome(Enc,Type) ->
+ {outcome, #'Outcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_suc(Enc,Type) ->
+ {successfulOutcome, #'SuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+ranap_pdu_contents_unsuc(Enc,Type) ->
+ {unsuccessfulOutcome, #'UnsuccessfulOutcome'{
+ procedureCode = Type,
+ criticality = ignore,%XXX
+ value = Enc
+ }}.
+
+
+
+run_rab_rel() ->
+ RAS = rab_release_request(),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecRel}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecRel])
+ end,
+ case DecRel of
+ [[{_ProtIEField1,_Code1,_Crit1,DecRelList}]] ->
+ io:format("~w~n~n", [DecRelList])
+ end,
+ ok.
+
+run_rab_create() ->
+ RabID = [0,1,0,1,0,1,0,1],
+ Teid = [0,13,83,211],
+ SgsnIP = [0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0],
+ RAS = rab_create_request(RabID, Teid, SgsnIP),
+ io:format("~w~n~n", [RAS]),
+ RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
+ EncRanapRAS = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAS]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecSetOrMod}],_ASN1novalue} ->
+ io:format("~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{'ProtocolIE-FieldPair',_Code1,_Crit1,DecSetOrModFirst,_Crit2,DecSetOrModSecond}]] ->
+ io:format("~w~n~n", [DecSetOrModFirst]),
+ io:format("~w~n~n", [DecSetOrModSecond])
+ end,
+ ok.
+
+decode_initiating_ras(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentRequest',Val)
+ end.
+
+
+run_rab_ass_rsp_setup() ->
+ RAR = rab_assignment_response_setup(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField,52,_Crit,DecSetOrMod}], _ASN1novalue} ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrMod])
+ end,
+ case DecSetOrMod of
+ [[{_ProtIEField1,51,_Crit1,DecSetOrModFirst}]] ->
+ io:format("Setup or Modified: ~w~n~n", [DecSetOrModFirst])
+ end,
+ ok.
+
+run_rab_ass_rsp_delete() ->
+ RAR = rab_assignment_response_delete(),
+ io:format("~w~n~n", [RAR]),
+ RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
+ EncRanapRAR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapRAR]),
+ {ok,{outcome,
+ #'Outcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'RAB-AssignmentResponse',[{_ProtIEField2,43,_Crit2,DecRelsd}], _ASN1novalue} ->
+ io:format("Released: ~w~n~n", [DecRelsd])
+ end,
+ case DecRelsd of
+ [[{_ProtIEField3,_Code3,_Crit3,DecRelsdItem}]] ->
+ io:format("Released: ~w~n~n", [DecRelsdItem])
+ end,
+ ok.
+
+decode_initiating_rar(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 0 -> % RAB-Assignment
+ wrapper_decode(?ranap, 'RAB-AssignmentResponse',Val)
+ end.
+
+
+
+run_init_ue() ->
+ INI = initial_ue(),
+ io:format("~w~n~n", [INI]),
+ RanapINI = ranap_pdu_contents(INI, 19), % 19 = InitialUE-Message
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapINI),
+ EncRanapINI = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapINI]),
+
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapINI),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'InitialUE-Message',[{_ProtIEField,Code,_Crit,DecCN},
+ {_ProtIEField1,Code1,_Crit1,
+ {_LAI,LaiPlmnid,LaiLac,_ASN1novalue}},
+ {_ProtIEField2,Code2,_Crit2,DecRAC},
+ {_ProtIEField3,Code3,_Crit3,
+ {_SAI,SaiPlmnid,SaiLac,SaiSac,_ASN1novalue}},
+ {_ProtIEField4,Code4,_Crit4,DecNASPDU},
+ {_ProtIEField5,Code5,_Crit5,DecIUSCID},
+ {_ProtIEField6,Code6,_Crit6,
+ {_GRI,GlPlmnid,GlRNCID}}],_ASN1novalue} ->
+ io:format("CN Dom Ind: ~w~n", [DecCN]),
+ io:format("Code: ~w~n~n", [Code]),
+ io:format("LaiPlmnid: ~w~n", [LaiPlmnid]),
+ io:format("LaiLac: ~w~n", [LaiLac]),
+ io:format("Code: ~w~n~n", [Code1]),
+ io:format("RAC: ~w~n", [DecRAC]),
+ io:format("Code: ~w~n~n", [Code2]),
+ io:format("SaiPlmnid: ~w~n", [SaiPlmnid]),
+ io:format("SaiLac: ~w~n", [SaiLac]),
+ io:format("SaiSac: ~w~n", [SaiSac]),
+ io:format("Code: ~w~n~n", [Code3]),
+ io:format("NAS-PDU: ~w~n", [DecNASPDU]),
+ io:format("Code: ~w~n~n", [Code4]),
+ io:format("Iu Sign Con Id: ~w~n", [DecIUSCID]),
+ io:format("Code: ~w~n~n", [Code5]),
+ io:format("GlPlmnid: ~w~n", [GlPlmnid]),
+ io:format("GlRNCID: ~w~n", [GlRNCID]),
+ io:format("Code: ~w~n~n", [Code6])
+ end,
+ ok.
+
+% NasPdu = extract_ie({init_ue},'InitUE-MessageIEsNAS-PDU',ListsinLists),
+% io:format("Tebax~n~w~n~n", [NasPdu]),
+% ok.
+
+decode_initiating_ini(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 19 -> % InitialUE-Message
+ wrapper_decode(?ranap, 'InitialUE-Message',Val)
+ end.
+
+
+run_dir_tsf_2cn() ->
+ DIR = direct_transfer_cn(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecLAI},
+ {_ProtIEField3,_Code3,_Crit3,DecRAC}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("LAI: ~w~n~n", [DecLAI]),
+ io:format("RAC: ~w~n~n", [DecRAC])
+ end,
+ ok.
+
+run_dir_tsf_2rnc() ->
+ DIR = direct_transfer_rnc(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'DirectTransfer',
+ [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
+ {_ProtIEField2,_Code2,_Crit2,DecSAPI}],
+ _ASN1novalue} ->
+ io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
+ io:format("SAPI: m~w~n~n", [DecSAPI])
+ end,
+ ok.
+
+decode_initiating_dir(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 20 -> % DirectTransfer
+ wrapper_decode(?ranap, 'DirectTransfer',Val)
+ end.
+
+% List = tuple2list(Dec),
+% io:format("~w~n~n", [List]),
+% NasPdu = extract_ie({dir_trans},'DirTransIEs-NAS-PDU',List),
+% io:format("~w~n~n", [NasPdu]),
+% ok.
+
+
+run_iu_rel_cmd() ->
+ IUR = iu_release_command(),
+ io:format("~w~n~n", [IUR]),
+ RanapIUR = ranap_pdu_contents(IUR, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUR),
+ EncRanapIUR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUR),
+ io:format("General: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'Iu-ReleaseCommand',[{_ProtIEField,_Code,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause])
+ end.
+
+run_iu_rel_cmp() ->
+ IUP = iu_release_complete(),
+ io:format("~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents_suc(IUP, 1), % 1 = Iu-Release
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapIUP]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("~w~n~n", [DecGeneral]).
+
+% run_iu_rel_req() ->
+% IUP = iu_release_request(),
+% io:format("~w~n~n", [IUP]),
+% {ok, Tmp} = wrapper_encode(?ranap, 'Iu-ReleaseRequest', IUP),
+% EncIUP = lists:flatten(Tmp),
+% RanapIUP = ranap_pdu_contents(EncIUP, 1), % 1 = Iu-Release
+% {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+% EncRanapIUP = lists:flatten(Tmp2),
+% io:format("~w~n~n", [EncRanapIUP]),
+% case wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP) of
+% {ok,{initiatingMessage,
+% #'InitiatingMessage'{procedureCode=ProcedureCode,
+% criticality=Criticality,
+% value=Value}}} ->
+% DecGeneral = decode_initiating_iu(ProcedureCode,Criticality,Value)
+% end,
+% io:format("~w~n~n", [DecGeneral]).
+
+decode_initiating_iu(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 1 -> % Iu-Release
+ wrapper_decode(?ranap, 'Iu-ReleaseComplete',Val)
+ end.
+
+
+
+
+
+run_com_id() ->
+ COM = common_id(),
+ io:format("~w~n~n", [COM]),
+ RanapCOM = ranap_pdu_contents(COM, 15), % 15 = CommonID
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapCOM),
+ EncRanapCOM = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapCOM]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapCOM),
+ io:format("DecGeneral: ~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'CommonID',[{_ProtIEField,23,_Crit,DecCause}],_ASN1novalue} ->
+ io:format("Cause: ~w~n~n", [DecCause]);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+decode_common_id(ProcedureCode,Crit,Val) ->
+ case ProcedureCode of
+ 15 -> % Common ID
+ wrapper_decode(?ranap, 'CommonID',Val);
+ Error ->
+ io:format("Error: ~w~n~n", [Error])
+ end.
+
+
+
+
+run_sm_cmd() ->
+ DIR = security_mode_cmd(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeCommand',
+ [{_ProtIEField1,12,_Crit1,DecIPI},
+ {_ProtIEField2,11,_Crit2,DecEI},
+ {_ProtIEField3,75,_Crit3,DecKS}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPI]),
+ io:format("Encryption Information: ~w~n~n", [DecEI]),
+ io:format("Key Status: ~w~n~n", [DecKS])
+ end,
+ ok.
+
+run_sm_cmp() ->
+ DIR = security_mode_cmp(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_suc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+ case DecGeneral of
+ {'SecurityModeComplete',
+ [{_ProtIEField1,6,_Crit1,DecIPA},
+ {_ProtIEField2,5,_Crit2,DecEI}],
+ _ASN1novalue} ->
+ io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+ io:format("Encryption Information: ~w~n~n", [DecEI])
+ end,
+ ok.
+
+run_sm_rej() ->
+ DIR = security_mode_rej(),
+ io:format("~w~n~n", [DIR]),
+ RanapDIR = ranap_pdu_contents_unsuc(DIR, 6), % 6 = Sec Mode
+ io:format("~w~n~n", [RanapDIR]),
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
+ EncRanapDIR = lists:flatten(Tmp2),
+ io:format("~w~n~n", [EncRanapDIR]),
+ {ok,{unsuccessfulOutcome,
+ #'UnsuccessfulOutcome'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
+ io:format("~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'SecurityModeReject',
+% [{_ProtIEField1,6,_Crit1,Value1},
+% {_ProtIEField2,5,_Crit2,Value2}],
+% _ASN1novalue}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'IntegrityProtectionAlgorithm', Value1),
+% {ok,DecEI} = wrapper_decode(?ranap, 'EncryptionAlgorithm', Value2),
+% io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
+% io:format("Encryption Information: ~w~n~n", [DecEI])
+% end,
+ ok.
+
+decode_initiating_sm(ProcedureCode,Crit,Val) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeCommand',Val)
+ end.
+
+decode_suc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeComplete',Value)
+ end.
+
+decode_unsuc_sm(ProcedureCode,Criticality,Value) ->
+ io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+ case ProcedureCode of
+ 6 -> % Sec Mode
+ wrapper_decode(?ranap, 'SecurityModeReject',Value)
+ end.
+
+
+
+
+
+
+
+run_reset() ->
+ IUP = reset(),
+ io:format("Reset: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 9), % 9 = Reset
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset: ~w~n~n", [DecGeneral]),
+
+ IUP1 = reset_ack(),
+ io:format("Reset Ack:~w~n~n", [IUP1]),
+ RanapIUP1 = ranap_pdu_contents_suc(IUP1, 9), % 9 = Reset
+ {ok, Tmp21} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP1),
+ EncRanapIUP1 = lists:flatten(Tmp21),
+ io:format("Coded Reset Ack: ~w~n~n", [EncRanapIUP1]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP1),
+ io:format("Decoded Reset Ack: ~w~n~n", [DecGeneral1]).
+
+% decode_init_reset(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'Reset',Val)
+% end.
+
+% decode_init_reset_ack(ProcedureCode,Crit,Val) ->
+% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
+% case ProcedureCode of
+% 9 -> % reset
+% wrapper_decode(?ranap, 'ResetAcknowledge',Val)
+% end.
+
+
+
+
+
+
+
+
+
+run_reset_res() ->
+ IUP = reset_res([12,13,14,15,16,17,18,19,20]),
+ io:format("Reset Rsource: ~w~n~n", [IUP]),
+ RanapIUP = ranap_pdu_contents(IUP, 27), % 27 = Reset Res
+ {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
+ EncRanapIUP = lists:flatten(Tmp2),
+ io:format("Coded Reset Resource: ~w~n~n", [EncRanapIUP]),
+ {ok,{initiatingMessage,
+ #'InitiatingMessage'{procedureCode=ProcedureCode,
+ criticality=Criticality,
+ value=DecGeneral}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
+ io:format("Decoded Reset Resource: ~w~n~n", [DecGeneral]),
+% case DecGeneral of
+% {ok,{'ResetResource',
+% [{'ProtocolIE-Field',3,ignore,Value1},
+% {'ProtocolIE-Field',4,ignore,Value2},
+% {'ProtocolIE-Field',77,ignore,Value3},
+% {'ProtocolIE-Field',86,ignore,Value4}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value1]),
+% io:format("Value2: ~w~n~n", [Value2]),
+% io:format("Value3: ~w~n~n", [Value3]),
+% io:format("Value4: ~w~n~n", [Value4]),
+% {ok,DecIPA} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value1),
+% {ok,{_Radio,DecEI}} = wrapper_decode(?ranap, 'Cause', Value2),
+% {ok,DecRR} = wrapper_decode(?ranap, 'ResetResourceList', Value3),
+% DecRRI = case DecRR of
+% [[{'ProtocolIE-Field',78,ignore,Value5}]] ->
+% {ok,{_apa,DecRI,_asn1novalue}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value5),
+% DecRI
+% end,
+% {ok,{_Gl_id,PLMN_ID,RNC_ID}} = wrapper_decode(?ranap, 'GlobalRNC-ID', Value4),
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA]),
+% io:format("Cause: ~w~n~n", [DecEI]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI]),
+% io:format("GlobalRNC-ID: PLMN_ID: ~w, RNC_ID: ~w~n~n", [PLMN_ID,RNC_ID])
+% end,
+
+ RSA = reset_res_ack([12,13,14,15,16,17,18,19,20]),
+ io:format("~n~nReset Resource Ack:~w~n~n", [RSA]),
+ RanapRSA = ranap_pdu_contents_suc(RSA, 27), % 27 = Reset Res
+ {ok, Tmp12} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRSA),
+ EncRanapRSA = lists:flatten(Tmp12),
+ io:format("Coded Reset Resource Ack: ~w~n~n", [EncRanapRSA]),
+ {ok,{successfulOutcome,
+ #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
+ criticality=Criticality1,
+ value=DecGeneral1}}} =
+ wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRSA),
+ io:format("Decoded Reset Resource Ack: ~w~n~n", [DecGeneral1]).
+% case DecGeneral1 of
+% {ok,{'ResetResourceAcknowledge',
+% [{'ProtocolIE-Field',3,ignore,Value12},
+% {'ProtocolIE-Field',77,ignore,Value32}],
+% asn1_NOVALUE}} ->
+% io:format("Value1: ~w~n~n", [Value12]),
+% io:format("Value3: ~w~n~n", [Value32]),
+% {ok,DecIPA2} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value12),
+% {ok,DecRR2} = wrapper_decode(?ranap, 'ResetResourceList', Value32),
+% DecRRI2 = case DecRR2 of
+% [[{'ProtocolIE-Field',78,ignore,Value52}]] ->
+% {ok,{_apa2,DecRI2,_asn1novalue2}} =
+% wrapper_decode(?ranap, 'ResetResourceItem', Value52),
+% DecRI2
+% end,
+% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA2]),
+% io:format("ResetResourceList: ~w~n~n", [DecRR2]),
+% io:format(" ResetResourceItem: ~w~n~n", [DecRRI2])
+% end.
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Kod f�r att s�tta ihop RANAP-meddelanden
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+rab_release_request() ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs = rab_assign_request_release_ies()
+ }.
+
+rab_assign_request_release_ies() ->
+ [rab_assign_release_rab_release_list()].
+
+rab_assign_release_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 41, % 41 = id-RAB-ReleaseList
+ criticality = ignore,%XXX
+ value = rab_release_list()
+ }.
+
+rab_release_list() ->
+ [release_lists()].
+
+release_lists() ->
+ [rab_release_item_ies()].
+
+rab_release_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 40, % 40 = id-RAB-ReleaseItem
+ criticality = ignore,%XXX
+ value = rab_release_item()}.
+
+rab_release_item() ->
+ #'RAB-ReleaseItem'{'rAB-ID' = rab_id(),
+ cause = cause_nas()}.
+
+cause_nas() ->
+ {nAS, 'normal-release'}.
+
+
+
+
+
+
+rab_create_request(Rabid, Teid, SgsnIP) ->
+ #'RAB-AssignmentRequest'{
+ protocolIEs =
+ rab_assign_create_request_ies(Rabid, Teid, SgsnIP)
+ }.
+
+rab_assign_create_request_ies(Rabid, Teid, SgsnIP) ->
+ [rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP)].
+
+rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-Field'{
+ id = 54, %id-RAB-SetupOrModifyList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modify_list(Rabid, Teid, SgsnIP)
+ }.
+
+rab_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
+ [setup_or_modify_lists(Rabid, Teid, SgsnIP)].
+
+setup_or_modify_lists(Rabid, Teid, SgsnIP) ->
+ [rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP)].
+
+rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP) ->
+ #'ProtocolIE-FieldPair'{
+ id = 53,
+ firstCriticality = reject, %{'Criticality',reject},
+ firstValue = rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP),
+ secondCriticality = ignore, %{'Criticality', ignore}
+ secondValue = rab_setup_or_modify_item_second()
+ }.
+
+rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP) ->
+ #'RAB-SetupOrModifyItemFirst'{
+ 'rAB-ID' = Rabid, %ras_rab_id(Rabid),
+ 'rAB-Parameters' = rab_parameters(),
+ userPlaneInformation = user_plane_information(),
+ transportLayerAddress = SgsnIP,
+ iuTransportAssociation = ras_iu_transport_association(Teid)
+ }.
+
+ras_iu_transport_association(Teid) ->
+ {'gTP-TEI', Teid}.
+
+rab_id() ->
+ [0,1,0,1,0,1,0,1].
+
+rab_parameters() ->
+ #'RAB-Parameters'{
+ trafficClass = background,
+ 'rAB-AsymmetryIndicator' = 'symmetric-bidirectional',
+ maxBitrate = [200000],
+ deliveryOrder = 'delivery-order-not-requested',
+ 'maxSDU-Size' = 11,
+ 'sDU-Parameters' = sdu_parameters(),
+ trafficHandlingPriority = 14 %{'TrafficHandlingPriority', 14} %14=lowest
+ }.
+
+user_plane_information() ->
+ #'UserPlaneInformation'{
+ userPlaneMode = 'support-mode-for-predefined-SDU-sizes',
+ 'uP-ModeVersions' = 2#1010101010101010
+ }.
+
+transport_layer_address() ->
+ [1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1,1,1].
+% 1 2 3 4
+
+iu_transport_association() ->
+ {'gTP-TEI', [31,32,33,34]}.
+
+sdu_parameters() ->
+ [#'SDU-Parameters_SEQOF'{
+ 'sDU-ErrorRatio' = sdu_error_ratio(),
+ residualBitErrorRatio = residual_bit_error_ratio(),
+ deliveryOfErroneousSDU = no
+ }].
+
+sdu_error_ratio() ->
+ #'SDU-ErrorRatio'{
+ mantissa = 9,
+ exponent = 4
+ }.
+
+residual_bit_error_ratio() ->
+ #'ResidualBitErrorRatio'{
+ mantissa = 9,
+ exponent = 5
+ }.
+
+%allocationOrRetentionPriority() ->
+% #'AllocationOrRetentionPriority'{
+% priorityLevel = lowest,
+% 'pre-emptionCapability' = {'Pre-emptionCapability','can-trigger-pre-emption'},
+% 'pre-emptionVulnerability' = {'Pre-emptionVulnerability','not-vulnerable-to-pre-emption'},
+% queuingAllowed = {'QueuingAllowed','queueing-allowed'}
+% }.
+
+rab_setup_or_modify_item_second() -> % returns OpenType value
+ #'RAB-SetupOrModifyItemSecond'{
+ 'pDP-TypeInformation' = ['ipv4'],
+ dataVolumeReportingIndication = 'do-not-report',
+ 'dl-GTP-PDU-SequenceNumber' = 1,
+ 'ul-GTP-PDU-SequenceNumber' = 2,
+ 'dl-N-PDU-SequenceNumber' = 0,
+ 'ul-N-PDU-SequenceNumber' = 0
+ }.
+
+
+
+
+rab_assignment_response_setup() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_setup()
+ }.
+
+rab_assignement_response_ies_setup() ->
+ [rab_ass_rsp_setup_or_modified_list()].
+
+rab_ass_rsp_setup_or_modified_list() ->
+ #'ProtocolIE-Field'{
+ id = 52, % 52=RAB-AssignRABSetupOrModifiedList
+ criticality = ignore,%XXX
+ value = rab_setup_or_modified_list()
+ }.
+
+rab_setup_or_modified_list() ->
+ [rab_setup_or_modified_item_list()].
+
+rab_setup_or_modified_item_list() ->
+ [rab_setup_or_modified_item_ies()].
+
+rab_setup_or_modified_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 51, % 51 = RAB-SetupOrModifiedItemIEs
+ criticality = reject, %{'Criticality', reject},
+ value = rab_setup_or_modified_item()
+ }.
+
+rab_setup_or_modified_item() ->
+ #'RAB-SetupOrModifiedItem'{
+ 'rAB-ID' = rab_id(),
+ transportLayerAddress = transport_layer_address(),
+ iuTransportAssociation = iu_transport_association()
+ }.
+
+
+
+
+
+
+rab_assignment_response_delete() ->
+ #'RAB-AssignmentResponse'{
+ protocolIEs = rab_assignement_response_ies_delete()
+ }.
+
+rab_assignement_response_ies_delete() ->
+ [rab_ass_rsp_rab_release_list()].
+
+rab_ass_rsp_rab_release_list() ->
+ #'ProtocolIE-Field'{
+ id = 43, % 41 = RAB-AssignRABReleasedList
+ criticality = ignore,%XXX
+ value = rab_released_list()
+ }.
+
+rab_released_list() ->
+ [released_lists()].
+
+released_lists() ->
+ [rab_released_item_ies()]. % 'ReleasedLists'
+
+rab_released_item_ies() ->
+ #'ProtocolIE-Field'{
+ id = 42, % 42 = RAB-ReleaseItemIEs
+ criticality = ignore,%XXX
+ value = rab_released_item()
+ }.
+
+rab_released_item() ->
+ #'RAB-ReleasedItem'{
+ 'rAB-ID' = rab_id()
+ }.
+
+
+
+initial_ue() ->
+ #'InitialUE-Message'{
+ protocolIEs = initial_ue_ies()
+ }.
+
+initial_ue_ies() ->
+ [cn_domain_ind(),
+ init_lai(),
+ init_rac(),
+ init_sai(),
+ init_nas_pdu(),
+ init_iu_sign_con_id(),
+ init_global_rnc_id_initial_ue()].
+
+
+cn_domain_indicator() ->
+ {'CN-DomainIndicator', 'ps-domain'}.
+
+init_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+lai() ->
+ #'LAI'{'pLMN-ID' = [25,26,27],
+ lAC = [25,26]}.
+
+init_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+rac() ->
+ [25].
+
+init_sai() ->
+ #'ProtocolIE-Field'{
+ id = 58, % 58 = SAI
+ criticality = ignore,%XXX
+ value = sai()
+ }.
+
+sai() ->
+ #'SAI'{'pLMN-ID' = [28,29,30], %KOLLA!!!!
+ lAC = [30,31],
+ sAC = [32,33]}.
+
+init_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_ar()
+ }.
+
+pdu_ac()->
+ [16#08,
+ 16#03].
+
+pdu_ar() ->
+ [16#08, % Skip indicator | Protocol discriminator
+ 16#01, % Attach Request
+ 16#01,16#b7, % MsNetworkCapability
+ 16#21, % Cksn | AttachType
+ 16#55,16#06, % DrxParameter
+ 16#05,16#61,16#86,16#14,16#09,16#f7, % MsId
+ 16#21,16#63,16#54,16#ac,16#dc,16#d5, % OldRai
+ 16#0a,16#f0,16#f1,16#f2,16#f3,16#f4, % MsRaCap
+ 16#f5,16#f6,16#f7,16#f8,16#f9 % MsRaCap continues
+ %%16#19,16#ab,16#cd,16#ef, % P-TMSI signature
+ %%16#17,16#5b, % Requested READY timer
+ %%16#91 % TMSI status
+ ].
+
+pdu_pdp() ->
+ [2#01001010, % Transaction_id | Protocol_disc
+ 2#01000001, % Message_type
+ 2#00001001, % Nsapi
+ 1, % Llc_sapi (dummie_value)
+ 1,1,1,1, % QoS dummie_value=1 (19 octets)
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 7, % PDP_Address (Ltot=7),
+ 2#00000001, % ietf/etsi organisation
+ 2#00100001, % IPv4
+ 198, % IP address MSD
+ 124,
+ 56,
+ 124, % IP address LSD
+ 1, % APN optional (octet1=IEI)
+ 25, % APN total length
+ 4, % length lable1
+ 116,101,115,116, % lable1 = test
+ 4, % length lable2
+ 116,101,115,116, % lable2 = test
+ 4, % lenght lable3
+ 116,101,115,116, % lable3 = test
+ 4, % length lable3
+ 116,101,115,116, % lable4 = test
+ 4, % length label5
+ 103,112,114,115
+ ].
+
+pdu_auth_rsp() ->
+ [8,16#13,0,1,2,3,16#21,2,0,1].
+
+pdu_auth_fail() ->
+ [8,16#1C,1,16#22,2,0,1].
+
+init_iu_sign_con_id() ->
+ #'ProtocolIE-Field'{
+ id = 79, % 79 = id-IuSigConId
+ criticality = ignore,%XXX
+ value = iu_sign_con_id()
+ }.
+
+iu_sign_con_id() ->
+ 53245.
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,1]
+
+init_global_rnc_id_initial_ue() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+global_rnc_id() ->
+ #'GlobalRNC-ID'{'pLMN-ID' = [10,11,12], 'rNC-ID' = 2048}.
+
+direct_transfer_cn() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_cn_ies()
+ }.
+
+direct_transfer_cn_ies() ->
+ [dir_cn_nas_pdu(),
+ dir_lai(),
+ dir_rac()].
+
+dir_cn_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_fail()
+ }.
+
+dir_lai() ->
+ #'ProtocolIE-Field'{
+ id = 15, % 15 = id-LAI
+ criticality = ignore,%XXX
+ value = lai()
+ }.
+
+dir_rac() ->
+ #'ProtocolIE-Field'{
+ id = 55, % 55 = id-RAC
+ criticality = ignore,%XXX
+ value = rac()
+ }.
+
+
+
+
+
+
+direct_transfer_rnc() ->
+ #'DirectTransfer'{
+ protocolIEs = direct_transfer_rnc_ies()
+ }.
+
+direct_transfer_rnc_ies() ->
+ [dir_rnc_nas_pdu(),
+ dir_sapi()].
+
+dir_rnc_nas_pdu() ->
+ #'ProtocolIE-Field'{
+ id = 16, % 16 = id-NAS-PDU
+ criticality = ignore,%XXX
+ value = pdu_auth_rsp()
+ }.
+
+dir_sapi() ->
+ #'ProtocolIE-Field'{
+ id = 59, % 59 = id-SAPI
+ criticality = ignore,%XXX
+ value = sapi()
+ }.
+
+sapi() ->
+ 'normal-priority'.
+
+
+
+
+
+iu_release_command() ->
+ #'Iu-ReleaseCommand'{
+ protocolIEs = iu_rel_command_ies()
+ }.
+
+iu_rel_command_ies() ->
+ [iu_relcomcause_nas()].
+
+iu_relcomcause_nas() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause()
+ }.
+
+cause() ->
+ cause_nas().
+
+% cause() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'CauseNAS',
+% {'CauseNAS', 'normal-release'}),
+% Bytes.
+
+
+
+
+
+
+iu_release_complete() ->
+ #'Iu-ReleaseComplete'{
+ protocolIEs = iu_rel_comp_ies()
+ }.
+
+iu_rel_comp_ies() ->
+ [].
+% 'iu-RelCompRABDataVolumeReportList' = asn1_NOVALUE,
+% 'iu-RelCompRABReleasedListIuRelComp' = asn1_NOVALUE,
+% 'iu-RelCompCriticalityDiagnostics' = asn1_NOVALUE
+% }.
+
+
+
+
+
+
+
+
+common_id() ->
+ #'CommonID'{
+ protocolIEs = common_id_ies()
+ }.
+
+common_id_ies() ->
+ [common_id_imsi()].
+
+common_id_imsi() ->
+ #'ProtocolIE-Field'{
+ id = 23, % 23 = Perm. NAS ID (IMSI)
+ criticality = ignore, %ignore,%XXX %XXX
+ value = imsi()
+ }.
+
+imsi() ->
+ {iMSI, [1,2,3,4,5,6,7,8]}.
+
+
+
+
+
+
+
+
+
+
+security_mode_cmd() ->
+ #'SecurityModeCommand'{
+ protocolIEs = security_mode_cmd_ies()
+ }.
+
+security_mode_cmd_ies() ->
+ [security_mode_cmd_integ(),
+ security_mode_cmd_encr(),
+ security_mode_cmd_keystat()
+ ].
+
+security_mode_cmd_integ() ->
+ #'ProtocolIE-Field'{
+ id = 12, % 12 = Integ info
+ criticality = ignore,%{'Criticality', ignore},
+ value = integ_info()
+ }.
+
+integ_info() ->
+ #'IntegrityProtectionInformation'{
+ permittedAlgorithms = perm_integ_algs(),
+ key = key() }.
+
+perm_integ_algs() ->
+ [integ_prot_alg()].
+
+integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+key() ->
+ [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0].
+
+
+
+security_mode_cmd_encr() ->
+ #'ProtocolIE-Field'{
+ id = 11, % 11 = Encr info
+ criticality = ignore,%{'Criticality', ignore},
+ value = encr_info()
+ }.
+
+encr_info() ->
+ #'EncryptionInformation'{
+ permittedAlgorithms = perm_encr_algs(),
+ key = key() }.
+
+perm_encr_algs() ->
+ [encr_prot_alg()].
+
+encr_prot_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+security_mode_cmd_keystat() ->
+ #'ProtocolIE-Field'{
+ id = 75, % 75 = id-KeyStatus
+ criticality = ignore,%{'Criticality', ignore},
+ value = key_status()
+ }.
+
+key_status() ->
+ new.
+
+
+
+
+
+security_mode_cmp() ->
+ #'SecurityModeComplete'{
+ protocolIEs = security_mode_cmp_ies()
+ }.
+
+security_mode_cmp_ies() ->
+ [security_mode_cmp_ch_integ_prot_alg(),
+ security_mode_cmp_ch_encr_alg()
+ ].
+
+security_mode_cmp_ch_integ_prot_alg() ->
+ #'ProtocolIE-Field'{
+ id = 6, % 6 = Chosen Integ prot alg
+ criticality = ignore,%XXX
+ value = ch_integ_prot_alg()
+ }.
+
+ch_integ_prot_alg() ->
+ 'standard-UMTS-integrity-algorithm-UIA1'.
+
+
+security_mode_cmp_ch_encr_alg() ->
+ #'ProtocolIE-Field'{
+ id = 5, % 5 = Chosen Encr alg
+ criticality = ignore,%XXX
+ value = ch_encr_alg()
+ }.
+
+ch_encr_alg() ->
+ 'standard-UMTS-encryption-algorith-UEA1'.
+
+
+
+
+security_mode_rej() ->
+ #'SecurityModeReject'{
+ protocolIEs = security_mode_rej_ies()
+ }.
+
+security_mode_rej_ies() ->
+ [security_mode_rej_cause()].
+
+
+security_mode_rej_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = Id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio() % Se Reset
+ }.
+
+
+
+
+
+
+
+
+reset() ->
+ #'Reset'{
+ protocolIEs = reset_ies()
+ }.
+reset_ies() ->
+ {'Reset_protocolIEs', % this identifier is very unneccesary here
+ [reset_cause(),
+ cn_domain_ind(), % Se initial Ue
+ init_global_rnc_id() % ---- " ----
+ ]}.
+init_global_rnc_id() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_cause() ->
+ #'ProtocolIE-Field'{
+ id = 4, % 4 = id-Cause
+ criticality = ignore,%XXX
+ value = cause_radio()
+ }.
+%cause_open() ->
+% {ok,Bytes} =
+% wrapper_encode(?ranap,'Cause', cause_radio()),
+% Bytes.
+cause_radio() ->
+ {radioNetwork, 'release-due-to-utran-generated-reason'}.
+
+
+cn_domain_ind(IEs) when atom(IEs)->
+ setelement(1,cn_domain_ind(),IEs).
+
+cn_domain_ind() ->
+ #'ProtocolIE-Field'{
+ id = 3, % 3 = InitUE-MessageIEsCN-DomainIndicator
+ criticality = ignore,%XXX
+ value = cn_domain_indicator()
+ }.
+
+
+
+
+reset_ack() ->
+ #'ResetAcknowledge'{
+ protocolIEs = reset_ack_ies()
+ }.
+reset_ack_ies() ->
+ {'ResetAcknowledge_protocolIEs', % very unneccesary
+ [cn_domain_ind()]}. % Se initial Ue
+
+
+
+
+
+reset_res(IuSCId) ->
+ #'ResetResource'{
+ protocolIEs = reset_res_ies(IuSCId)
+ }.
+
+reset_res_ies(IuSCId) ->
+ {'ResetResource_protocolIEs', % very unneccesary
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_cause() % Se reset
+ ,reset_res_list(IuSCId)
+ ,init_global_rnc_id_reset_res() % ---- " ----
+ ]}.
+
+init_global_rnc_id_reset_res() ->
+ #'ProtocolIE-Field'{
+ id = 86, % 86 = id-GlobalRNC-ID
+ criticality = ignore,%XXX
+ value = global_rnc_id()
+ }.
+
+reset_res_list(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 77, % 77 = id-IuSigConIdList
+ criticality = ignore,%XXX
+ value = res_list(IuSCId)
+ }.
+
+res_list(IuSCId) ->
+ iu_Sig_Con_Id_list(IuSCId,[]).
+
+iu_Sig_Con_Id_list([],List) ->
+ List;
+
+iu_Sig_Con_Id_list([IuSCId|T],List) ->
+ Ie = [iu_Sig_Con_Id_ie(IuSCId)],
+ iu_Sig_Con_Id_list(T,[Ie|List]).
+
+iu_Sig_Con_Id_ie(IuSCId) ->
+ #'ProtocolIE-Field'{
+ id = 78, % 78 = id-IuSigConIdItem
+ criticality = ignore,%XXX
+ value = iu_Sig_Con_Id_item(IuSCId)}.
+
+iu_Sig_Con_Id_item(IuSCId) ->
+ #'ResetResourceItem'{
+ iuSigConId = IuSCId
+% 53432
+% [1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0,
+% 1,0,1,0,1,0,1,0]
+ }.
+
+
+reset_res_ack(IuSCId) ->
+ #'ResetResourceAcknowledge'{
+ protocolIEs = reset_res_ack_ies(IuSCId)
+ }.
+reset_res_ack_ies(IuSCId) ->
+ [
+ cn_domain_ind() % Se initial Ue
+ ,reset_res_list(IuSCId) % Se Reset Ressource
+ ].
+
+
+int2bin(Int) ->
+ EmptyList = [],
+ BitList_b1 = [Int band 2#1 | EmptyList],
+ BitList_b2 = [(Int bsr 1) band 2#1 | BitList_b1],
+ BitList_b3 = [(Int bsr 2) band 2#1 | BitList_b2],
+ BitList_b4 = [(Int bsr 3) band 2#1 | BitList_b3],
+ BitList_b5 = [(Int bsr 4) band 2#1 | BitList_b4],
+ BitList_b6 = [(Int bsr 5) band 2#1 | BitList_b5],
+ BitList_b7 = [(Int bsr 6) band 2#1 | BitList_b6],
+ BitList = [(Int bsr 7) band 2#1 | BitList_b7],
+ io:format("~n~w~n", [BitList]).
+
+
+%%%%%%%%%%%%%%%%% wrappers %%%%%%%%%%%%%%%%%%%%%%%%
+
+wrapper_encode(Module,Type,Value) ->
+ case asn1rt:encode(Module,Type,Value) of
+ {ok,X} when binary(X) ->
+ {ok, binary_to_list(X)};
+ {ok,X} ->
+ {ok, binary_to_list(list_to_binary(X))};
+ Error ->
+ Error
+ end.
+
+wrapper_decode(Module,Type,Bytes) ->
+ case Module:encoding_rule() of
+ ber ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ ber_bin_v2 when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin_v2 ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ per ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ uper_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes))
+ end.
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ACSE-1.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ACSE-1.asn
new file mode 100644
index 0000000000..3f1385323a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ACSE-1.asn
@@ -0,0 +1,253 @@
+-- Module ACSE-1 (X.237:04/1995)
+ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)}
+-- ACSE-1 refers to ACSE version 1
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ acse-as-id, ACSE-apdu, aCSE-id, Application-context-name, AP-title,
+ AE-qualifier, AE-title, AP-invocation-identifier, AE-invocation-identifier,
+ Mechanism-name, Authentication-value, ACSE-requirements, ObjectSet;
+
+IMPORTS
+ Name, RelativeDistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- The data types Name and RelativeDistinguishedName are imported from ISO/IEC 9594-2.
+-- object identifier assignments
+acse-as-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+
+-- may be used to reference the abstract syntax of the ACSE APDUs
+aCSE-id OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}
+
+-- may be used to identify the Association Control ASE.
+-- top level CHOICE
+ACSE-apdu ::= CHOICE {
+ aarq AARQ-apdu,
+ aare AARE-apdu,
+ rlrq RLRQ-apdu,
+ rlre RLRE-apdu,
+ abrt ABRT-apdu,
+ ...
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ called-AP-title [2] AP-title OPTIONAL,
+ called-AE-qualifier [3] AE-qualifier OPTIONAL,
+ called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL,
+ called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL,
+ calling-AP-title [6] AP-title OPTIONAL,
+ calling-AE-qualifier [7] AE-qualifier OPTIONAL,
+ calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL,
+ calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [13] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ protocol-version
+ [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+ application-context-name [1] Application-context-name,
+ result [2] Associate-result,
+ result-source-diagnostic [3] Associate-source-diagnostic,
+ responding-AP-title [4] AP-title OPTIONAL,
+ responding-AE-qualifier [5] AE-qualifier OPTIONAL,
+ responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL,
+ responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL,
+ -- The following field shall not be present if only the Kernel is used.
+ responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL,
+ -- The following field shall only be present if the Authentication functional unit is selected.
+ mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL,
+ -- This following field shall only be present if the Authentication functional unit is selected.
+ responding-authentication-value
+ [10] EXPLICIT Authentication-value OPTIONAL,
+ application-context-name-list
+ [11] IMPLICIT Application-context-name-list OPTIONAL,
+ -- The above field shall only be present if the Application Context Negotiation functional unit is selected
+ implementation-information
+ [29] IMPLICIT Implementation-data OPTIONAL,
+ ...,
+ ...,
+ user-information
+ [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-request-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ reason [0] IMPLICIT Release-response-reason OPTIONAL,
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ abort-source [0] IMPLICIT ABRT-source,
+ abort-diagnostic [1] IMPLICIT ABRT-diagnostic OPTIONAL,
+ -- This field shall not be present if only the Kernel is used.
+ ...,
+ ...,
+ user-information [30] IMPLICIT Association-information OPTIONAL
+}
+
+ABRT-diagnostic ::= ENUMERATED {
+ no-reason-given(1), protocol-error(2),
+ authentication-mechanism-name-not-recognized(3),
+ authentication-mechanism-name-required(4), authentication-failure(5),
+ authentication-required(6), ...
+ }
+
+ABRT-source ::= INTEGER {acse-service-user(0), acse-service-provider(1)
+}(0..1, ...)
+
+ACSE-requirements ::= BIT STRING {
+ authentication(0), application-context-negotiation(1)}
+
+Application-context-name-list ::= SEQUENCE OF Application-context-name
+
+Application-context-name ::= OBJECT IDENTIFIER
+
+-- Application-entity title productions follow (not in alphabetical order)
+AP-title ::= CHOICE {
+ ap-title-form1 AP-title-form1,
+ ap-title-form2 AP-title-form2,
+ ...
+}
+
+AE-qualifier ::= CHOICE {
+ ae-qualifier-form1 AE-qualifier-form1,
+ ae-qualifier-form2 AE-qualifier-form2,
+ ...
+}
+
+-- When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must
+-- have the same form to allow the construction of an AE-title as discussed in CCITT Rec. X.665 |
+-- ISO/IEC 9834-6.
+AP-title-form1 ::=
+ Name
+
+-- The value assigned to AP-title-form1 is The Directory Name of an application-process title.
+AE-qualifier-form1 ::=
+ RelativeDistinguishedName
+
+-- The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular
+-- application-entity of the application-process identified by AP-title-form1.
+AP-title-form2 ::= OBJECT IDENTIFIER
+
+AE-qualifier-form2 ::= INTEGER
+
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in CCITT Rec. X.650 | ISO 7498-3, an application-entity title is composed of an application-
+-- process title and an application-entity qualifier. The ACSE protocol provides for the transfer of an
+-- application-entity title value by the transfer of its component values. However, the following data type
+-- is provided for International Standards that reference a single syntactic structure for AE titles.
+AE-title-form1 ::=
+ Name
+
+-- For access to The Directory (ITU-T Rec. X.500-Series | ISO/IEC 9594), an AE title has AE-title-form1.
+-- This value can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an
+-- AARQ or AARE APDU. A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier-
+-- form1 may be found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-title-form2 ::= OBJECT IDENTIFIER
+
+-- A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be
+-- found in CCITT Rec. X.665 | ISO/IEC 9834-6.
+AE-invocation-identifier ::= INTEGER
+
+AP-invocation-identifier ::= INTEGER
+
+-- End of Application-entity title productions
+Associate-result ::= INTEGER {
+ accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)
+
+Associate-source-diagnostic ::= CHOICE {
+ acse-service-user
+ [1] INTEGER {null(0), no-reason-given(1),
+ application-context-name-not-supported(2),
+ calling-AP-title-not-recognized(3),
+ calling-AP-invocation-identifier-not-recognized(4),
+ calling-AE-qualifier-not-recognized(5),
+ calling-AE-invocation-identifier-not-recognized(6),
+ called-AP-title-not-recognized(7),
+ called-AP-invocation-identifier-not-recognized(8),
+ called-AE-qualifier-not-recognized(9),
+ called-AE-invocation-identifier-not-recognized(10),
+ authentication-mechanism-name-not-recognized(11),
+ authentication-mechanism-name-required(12),
+ authentication-failure(13), authentication-required(14)}
+ (0..14, ...),
+ acse-service-provider
+ [2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
+ (0..2, ...)
+}
+
+Association-information ::= SEQUENCE SIZE (1, ..., 0 | 2..MAX) OF EXTERNAL
+
+Authentication-value ::= CHOICE {
+ charstring [0] IMPLICIT GraphicString,
+ bitstring [1] IMPLICIT BIT STRING,
+ external [2] IMPLICIT EXTERNAL,
+ other
+ [3] IMPLICIT SEQUENCE {other-mechanism-name
+ MECHANISM-NAME.&id({ObjectSet}),
+ other-mechanism-value
+ MECHANISM-NAME.&Type
+ ({ObjectSet}{@.other-mechanism-name})}
+}
+
+-- The abstract syntax of (calling/responding) authentication-value is determined by the authentication
+-- mechanism used during association establishment. The authentication mechanism is either explicitly
+-- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism belonging to the class
+-- MECHANISM-NAME, or it is known implicitly by
+-- prior agreement between the communicating partners. If the "other" component is chosen, then
+-- the "mechanism-name" component must be present in accordance with
+-- ITU-T Rec. X.680 | ISO/IEC 8824. If the value "mechanism-name" occurs in the AARQ-apdu or the
+-- AARE-apdu, then that value must be the same as the value for "other-mechanism-name"
+Implementation-data ::= GraphicString
+
+Mechanism-name ::= OBJECT IDENTIFIER
+
+MECHANISM-NAME ::= TYPE-IDENTIFIER
+
+ObjectSet MECHANISM-NAME ::=
+ {...}
+
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}(0 | 1 | 30, ...)
+
+Release-response-reason ::= INTEGER {
+ normal(0), not-finished(1), user-defined(30)}(0 | 1 | 30, ...)
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/AuthenticationFramework.asn
new file mode 100644
index 0000000000..5cfa9062f0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/AuthenticationFramework.asn
@@ -0,0 +1,290 @@
+-- Module AuthenticationFramework (X.509:08/1997)
+
+AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
+ basicAccessControl, certificateExtensions
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
+ FROM InformationFramework informationFramework
+ ub-user-password
+ FROM UpperBounds upperBounds
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ UniqueIdentifier, octetStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
+ GeneralNames
+ FROM CertificateExtensions certificateExtensions;
+
+-- basic certificate definition
+Certificate ::=
+ SIGNED
+ {SEQUENCE {version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- if present, version must be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version must be v3 -- }}
+
+Version ::= INTEGER {v1(0), v2(1), v3(2)}
+
+CertificateSerialNumber ::= INTEGER
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm ALGORITHM.&id({SupportedAlgorithms}),
+ parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the parameters component of AlgorithmIdentifier.
+SupportedAlgorithms ALGORITHM ::=
+{...}
+
+Validity ::= SEQUENCE {notBefore Time,
+ notAfter Time
+}
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+Extensions ::= SEQUENCE OF Extension
+
+-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
+-- specification of those individual extensions shall include the rules for the significance of the order therein
+Extension ::= SEQUENCE {
+ extnId EXTENSION.&id({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
+-- for the extension object identified by extnId
+}
+
+ExtensionSet EXTENSION ::=
+ {...}
+
+EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &ExtnType
+}WITH SYNTAX {SYNTAX &ExtnType
+ IDENTIFIED BY &id
+}
+
+-- other certificate constructs
+Certificates ::= SEQUENCE {
+ userCertificate Certificate,
+ certificationPath ForwardCertificationPath OPTIONAL
+}
+
+ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
+
+CrossCertificates ::= SET OF Certificate
+
+CertificationPath ::= SEQUENCE {
+ userCertificate Certificate,
+ theCACertificates SEQUENCE OF CertificatePair OPTIONAL
+}
+
+CertificatePair ::= SEQUENCE {
+ issuedByThisCA [0] Certificate OPTIONAL,
+ issuedToThisCA [1] Certificate OPTIONAL
+ -- at least one of the pair shall be present
+}
+
+-- Certificate Revocation List (CRL)
+CertificateList ::=
+ SIGNED
+ {SEQUENCE {version Version OPTIONAL,
+ -- if present, version must be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates
+ SEQUENCE OF
+ SEQUENCE {userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL}}
+
+-- attribute certificate
+AttributeCertificationPath ::= SEQUENCE {
+ attributeCertificate AttributeCertificate,
+ acPath SEQUENCE OF ACPathData OPTIONAL
+}
+
+ACPathData ::= SEQUENCE {
+ certificate [0] Certificate OPTIONAL,
+ attributeCertificate [1] AttributeCertificate OPTIONAL
+}
+
+attributeCertificate ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCertificate
+ EQUALITY MATCHING RULE attributeCertificateMatch
+ ID id-at-attributeCertificate
+}
+
+AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
+
+AttributeCertificateInfo ::= SEQUENCE {
+ version Version DEFAULT v1,
+ subject
+ CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
+ subjectName [1] GeneralNames}, -- associated with a name
+ issuer GeneralNames, -- CA issuing the attribute certificate
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+}
+
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+}
+
+AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+}
+
+attributeCertificateMatch MATCHING-RULE ::= {
+ SYNTAX AttributeCertificateAssertion
+ ID id-mr-attributeCertificateMatch
+}
+
+AttributeCertificateAssertion ::= SEQUENCE {
+ subject
+ [0] CHOICE {baseCertificateID [0] IssuerSerial,
+ subjectName [1] Name} OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ attCertValidity [2] GeneralizedTime OPTIONAL,
+ attType [3] SET OF AttributeType OPTIONAL
+}
+
+-- At least one component of the sequence must be present
+-- attribute types
+userPassword ATTRIBUTE ::= {
+ WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
+ EQUALITY MATCHING RULE octetStringMatch
+ ID id-at-userPassword
+}
+
+userCertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-userCertificate
+}
+
+cACertificate ATTRIBUTE ::= {
+ WITH SYNTAX Certificate
+ EQUALITY MATCHING RULE certificateExactMatch
+ ID id-at-cAcertificate
+}
+
+crossCertificatePair ATTRIBUTE ::= {
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID id-at-crossCertificatePair
+}
+
+authorityRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-authorityRevocationList
+}
+
+certificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-certificateRevocationList
+}
+
+attributeCertificateRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ ID id-at-attributeCertificateRevocationList
+}
+
+-- information object classes
+ALGORITHM ::= TYPE-IDENTIFIER
+
+-- parameterized types
+HASH{ToBeHashed} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ hashValue
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of -- ToBeHashed})
+}
+
+ENCRYPTED-HASH{ToBeSigned} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying a hashing procedure to the DER-encoded octets
+ -- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
+
+ENCRYPTED{ToBeEnciphered} ::=
+ BIT STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure
+ -- to the BER-encoded octets of a value of --ToBeEnciphered})
+
+SIGNATURE{ToBeSigned} ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ encrypted ENCRYPTED-HASH{ToBeSigned}
+}
+
+SIGNED{ToBeSigned} ::= SEQUENCE {
+ toBeSigned ToBeSigned,
+ COMPONENTS OF SIGNATURE{ToBeSigned}
+}
+
+-- object identifier assignments
+id-at-userPassword OBJECT IDENTIFIER ::=
+ {id-at 35}
+
+id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+
+id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
+
+id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+
+id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+
+id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+
+id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+
+id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+
+id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/BasicAccessControl.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/BasicAccessControl.asn
new file mode 100644
index 0000000000..d8b2b687ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/BasicAccessControl.asn
@@ -0,0 +1,184 @@
+-- Module BasicAccessControl (X.501:08/1997)
+BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-aca, id-acScheme, informationFramework, upperBounds,
+ selectedAttributeTypes, directoryAbstractService
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion,
+ SubtreeSpecification, SupportedAttributes, MATCHING-RULE,
+ objectIdentifierMatch, Refinement
+ FROM InformationFramework informationFramework
+ Filter
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-tag
+ FROM UpperBounds upperBounds
+ NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- types
+ACIItem ::= SEQUENCE {
+ identificationTag DirectoryString{ub-tag},
+ precedence Precedence,
+ authenticationLevel AuthenticationLevel,
+ itemOrUserFirst
+ CHOICE {itemFirst
+ [0] SEQUENCE {protectedItems ProtectedItems,
+ itemPermissions SET OF ItemPermission},
+ userFirst
+ [1] SEQUENCE {userClasses UserClasses,
+ userPermissions SET OF UserPermission}}
+}
+
+Precedence ::= INTEGER(0..255)
+
+ProtectedItems ::= SEQUENCE {
+ entry [0] NULL OPTIONAL,
+ allUserAttributeTypes [1] NULL OPTIONAL,
+ attributeType
+ [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allAttributeValues
+ [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allUserAttributeTypesAndValues [4] NULL OPTIONAL,
+ attributeValue
+ [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL,
+ selfValue
+ [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL,
+ rangeOfValues [7] Filter OPTIONAL,
+ maxValueCount
+ [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL,
+ maxImmSub [9] INTEGER OPTIONAL,
+ restrictedBy
+ [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL,
+ contexts
+ [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL,
+ classes [12] Refinement OPTIONAL
+}
+
+MaxValueCount ::= SEQUENCE {type AttributeType,
+ maxCount INTEGER
+}
+
+RestrictedValue ::= SEQUENCE {type AttributeType,
+ valuesIn AttributeType
+}
+
+UserClasses ::= SEQUENCE {
+ allUsers [0] NULL OPTIONAL,
+ thisEntry [1] NULL OPTIONAL,
+ name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL,
+ -- dn component must be the name of an
+ -- entry of GroupOfUniqueNames
+ subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL
+}
+
+ItemPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ userClasses UserClasses,
+ grantsAndDenials GrantsAndDenials
+}
+
+UserPermission ::= SEQUENCE {
+ precedence Precedence OPTIONAL,
+ -- defaults to precedence in ACIItem
+ protectedItems ProtectedItems,
+ grantsAndDenials GrantsAndDenials
+}
+
+AuthenticationLevel ::= CHOICE {
+ basicLevels
+ SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)},
+ localQualifier INTEGER OPTIONAL,
+ signed BOOLEAN DEFAULT FALSE},
+ other EXTERNAL
+}
+
+GrantsAndDenials ::= BIT STRING {
+ -- permissions that may be used in conjunction
+ -- with any component of ProtectedItems
+ grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3),
+ grantRead(4), denyRead(5), grantRemove(6),
+ denyRemove(7),
+ -- permissions that may be used only in conjunction
+ -- with the entry component
+ grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11),
+ grantImport(12), denyImport(13), grantModify(14), denyModify(15),
+ grantRename(16), denyRename(17), grantReturnDN(18),
+ denyReturnDN(19),
+ -- permissions that may be used in conjunction
+ -- with any component, except entry, of ProtectedItems
+ grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23),
+ grantInvoke(24), denyInvoke(25)}
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type})
+}
+
+-- attributes
+accessControlScheme ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-aca-accessControlScheme
+}
+
+prescriptiveACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-prescriptiveACI
+}
+
+entryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-entryACI
+}
+
+subentryACI ATTRIBUTE ::= {
+ WITH SYNTAX ACIItem
+ EQUALITY MATCHING RULE directoryStringFirstComponentMatch
+ USAGE directoryOperation
+ ID id-aca-subentryACI
+}
+
+-- object identifier assignments
+-- attributes
+id-aca-accessControlScheme OBJECT IDENTIFIER ::=
+ {id-aca 1}
+
+id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4}
+
+id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5}
+
+id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6}
+
+-- access control schemes -
+basicAccessControlScheme OBJECT IDENTIFIER ::=
+ {id-acScheme 1}
+
+simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2}
+
+rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3}
+
+rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4}
+
+rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5}
+
+END -- BasicAccessControl
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/CertificateExtensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/CertificateExtensions.asn
new file mode 100644
index 0000000000..0daf2208e9
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/CertificateExtensions.asn
@@ -0,0 +1,498 @@
+-- Module CertificateExtensions (X.509:08/1997)
+
+CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ id-at, id-ce, id-mr, informationFramework, authenticationFramework,
+ selectedAttributeTypes, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE
+ FROM InformationFramework informationFramework
+ CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION,
+ Time
+ FROM AuthenticationFramework authenticationFramework
+ DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ ub-name
+ FROM UpperBounds upperBounds
+ ORAddress
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Unless explicitly noted otherwise, there is no significance to the ordering
+-- of components of a SEQUENCE OF construct in this Specification.
+-- Key and policy information extensions
+authorityKeyIdentifier EXTENSION ::= {
+ SYNTAX AuthorityKeyIdentifier
+ IDENTIFIED BY id-ce-authorityKeyIdentifier
+}
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ authorityCertIssuer PRESENT,
+ authorityCertSerialNumber PRESENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ authorityCertIssuer ABSENT,
+ authorityCertSerialNumber ABSENT
+ })
+
+KeyIdentifier ::= OCTET STRING
+
+subjectKeyIdentifier EXTENSION ::= {
+ SYNTAX SubjectKeyIdentifier
+ IDENTIFIED BY id-ce-subjectKeyIdentifier
+}
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+keyUsage EXTENSION ::= {SYNTAX KeyUsage
+ IDENTIFIED BY id-ce-keyUsage
+}
+
+KeyUsage ::= BIT STRING {
+ digitalSignature(0), nonRepudiation(1), keyEncipherment(2),
+ dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6),
+ encipherOnly(7), decipherOnly(8)}
+
+extKeyUsage EXTENSION ::= {
+ SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+ IDENTIFIED BY id-ce-extKeyUsage
+}
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+privateKeyUsagePeriod EXTENSION ::= {
+ SYNTAX PrivateKeyUsagePeriod
+ IDENTIFIED BY id-ce-privateKeyUsagePeriod
+}
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ notBefore PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ notAfter PRESENT
+ })
+
+certificatePolicies EXTENSION ::= {
+ SYNTAX CertificatePoliciesSyntax
+ IDENTIFIED BY id-ce-certificatePolicies
+}
+
+CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL
+}
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}),
+ qualifier
+ CERT-POLICY-QUALIFIER.&Qualifier
+ ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL
+}
+
+SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::=
+ {...}
+
+CERT-POLICY-QUALIFIER ::= CLASS {
+ &id OBJECT IDENTIFIER UNIQUE,
+ &Qualifier OPTIONAL
+}WITH SYNTAX {POLICY-QUALIFIER-ID &id
+ [QUALIFIER-TYPE &Qualifier]
+}
+
+policyMappings EXTENSION ::= {
+ SYNTAX PolicyMappingsSyntax
+ IDENTIFIED BY id-ce-policyMappings
+}
+
+PolicyMappingsSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF
+ SEQUENCE {issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId}
+
+supportedAlgorithms ATTRIBUTE ::= {
+ WITH SYNTAX SupportedAlgorithm
+ EQUALITY MATCHING RULE algorithmIdentifierMatch
+ ID id-at-supportedAlgorithms
+}
+
+SupportedAlgorithm ::= SEQUENCE {
+ algorithmIdentifier AlgorithmIdentifier,
+ intendedUsage [0] KeyUsage OPTIONAL,
+ intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL
+}
+
+-- Certificate subject and certificate issuer attributes extensions
+subjectAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-subjectAltName
+}
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] INSTANCE OF OTHER-NAME,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER
+}
+
+OTHER-NAME ::= TYPE-IDENTIFIER
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString{ub-name} OPTIONAL,
+ partyName [1] DirectoryString{ub-name}
+}
+
+issuerAltName EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-issuerAltName
+}
+
+subjectDirectoryAttributes EXTENSION ::= {
+ SYNTAX AttributesSyntax
+ IDENTIFIED BY id-ce-subjectDirectoryAttributes
+}
+
+AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- Certification path constraints extensions
+basicConstraints EXTENSION ::= {
+ SYNTAX BasicConstraintsSyntax
+ IDENTIFIED BY id-ce-basicConstraints
+}
+
+BasicConstraintsSyntax ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER(0..MAX) OPTIONAL
+}
+
+nameConstraints EXTENSION ::= {
+ SYNTAX NameConstraintsSyntax
+ IDENTIFIED BY id-ce-nameConstraint
+}
+
+NameConstraintsSyntax ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL,
+ requiredNameForms [2] NameForms OPTIONAL
+}
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+NameForms ::= SEQUENCE {
+ basicNameForms [0] BasicNameForms OPTIONAL,
+ otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL
+}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--}))
+
+BasicNameForms ::= BIT STRING {
+ rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4),
+ uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX))
+
+policyConstraints EXTENSION ::= {
+ SYNTAX PolicyConstraintsSyntax
+ IDENTIFIED BY id-ce-policyConstraints
+}
+
+PolicyConstraintsSyntax ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL
+}
+
+SkipCerts ::= INTEGER(0..MAX)
+
+CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId
+
+-- Basic CRL extensions
+cRLNumber EXTENSION ::= {
+ SYNTAX CRLNumber
+ IDENTIFIED BY id-ce-cRLNumber
+}
+
+CRLNumber ::= INTEGER(0..MAX)
+
+reasonCode EXTENSION ::= {
+ SYNTAX CRLReason
+ IDENTIFIED BY id-ce-reasonCode
+}
+
+CRLReason ::= ENUMERATED {
+ unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8)
+}
+
+instructionCode EXTENSION ::= {
+ SYNTAX HoldInstruction
+ IDENTIFIED BY id-ce-instructionCode
+}
+
+HoldInstruction ::= OBJECT IDENTIFIER
+
+invalidityDate EXTENSION ::= {
+ SYNTAX GeneralizedTime
+ IDENTIFIED BY id-ce-invalidityDate
+}
+
+-- CRL distribution points and delta-CRL extensions
+cRLDistributionPoints EXTENSION ::= {
+ SYNTAX CRLDistPointsSyntax
+ IDENTIFIED BY id-ce-cRLDistributionPoints
+}
+
+CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+}
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName
+}
+
+ReasonFlags ::= BIT STRING {
+ unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3),
+ superseded(4), cessationOfOperation(5), certificateHold(6)}
+
+issuingDistributionPoint EXTENSION ::= {
+ SYNTAX IssuingDistPointSyntax
+ IDENTIFIED BY id-ce-issuingDistributionPoint
+}
+
+IssuingDistPointSyntax ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE
+}
+
+certificateIssuer EXTENSION ::= {
+ SYNTAX GeneralNames
+ IDENTIFIED BY id-ce-certificateIssuer
+}
+
+deltaCRLIndicator EXTENSION ::= {
+ SYNTAX BaseCRLNumber
+ IDENTIFIED BY id-ce-deltaCRLIndicator
+}
+
+BaseCRLNumber ::= CRLNumber
+
+deltaRevocationList ATTRIBUTE ::= {
+ WITH SYNTAX CertificateList
+ EQUALITY MATCHING RULE certificateListExactMatch
+ ID id-at-deltaRevocationList
+}
+
+-- Matching rules
+certificateExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateExactAssertion
+ ID id-mr-certificateExactMatch
+}
+
+CertificateExactAssertion ::= SEQUENCE {
+ serialNumber CertificateSerialNumber,
+ issuer Name
+}
+
+certificateMatch MATCHING-RULE ::= {
+ SYNTAX CertificateAssertion
+ ID id-mr-certificateMatch
+}
+
+CertificateAssertion ::= SEQUENCE {
+ serialNumber [0] CertificateSerialNumber OPTIONAL,
+ issuer [1] Name OPTIONAL,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL,
+ authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL,
+ certificateValid [4] Time OPTIONAL,
+ privateKeyValid [5] GeneralizedTime OPTIONAL,
+ subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL,
+ keyUsage [7] KeyUsage OPTIONAL,
+ subjectAltName [8] AltNameType OPTIONAL,
+ policy [9] CertPolicySet OPTIONAL,
+ pathToName [10] Name OPTIONAL
+}
+
+AltNameType ::= CHOICE {
+ builtinNameForm
+ ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4),
+ ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7),
+ registeredId(8)},
+ otherNameForm OBJECT IDENTIFIER
+}
+
+certificatePairExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairExactAssertion
+ ID id-mr-certificatePairExactMatch
+}
+
+CertificatePairExactAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateExactAssertion OPTIONAL,
+ reverseAssertion [1] CertificateExactAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificatePairMatch MATCHING-RULE ::= {
+ SYNTAX CertificatePairAssertion
+ ID id-mr-certificatePairMatch
+}
+
+CertificatePairAssertion ::= SEQUENCE {
+ forwardAssertion [0] CertificateAssertion OPTIONAL,
+ reverseAssertion [1] CertificateAssertion OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ forwardAssertion PRESENT
+ } | WITH COMPONENTS {
+ ...,
+ reverseAssertion PRESENT
+ })
+
+certificateListExactMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListExactAssertion
+ ID id-mr-certificateListExactMatch
+}
+
+CertificateListExactAssertion ::= SEQUENCE {
+ issuer Name,
+ thisUpdate Time,
+ distributionPoint DistributionPointName OPTIONAL
+}
+
+certificateListMatch MATCHING-RULE ::= {
+ SYNTAX CertificateListAssertion
+ ID id-mr-certificateListMatch
+}
+
+CertificateListAssertion ::= SEQUENCE {
+ issuer Name OPTIONAL,
+ minCRLNumber [0] CRLNumber OPTIONAL,
+ maxCRLNumber [1] CRLNumber OPTIONAL,
+ reasonFlags ReasonFlags OPTIONAL,
+ dateAndTime Time OPTIONAL,
+ distributionPoint [2] DistributionPointName OPTIONAL
+}
+
+algorithmIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX AlgorithmIdentifier
+ ID id-mr-algorithmIdentifierMatch
+}
+
+-- Object identifier assignments
+id-at-supportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52}
+
+id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9}
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16}
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17}
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18}
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19}
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20}
+
+id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21}
+
+id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23}
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24}
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27}
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28}
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29}
+
+id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1}
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32}
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33}
+
+-- deprecated OBJECT IDENTIFIER ::= {id-ce 34}
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=
+ {id-ce 35}
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36}
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+
+id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+
+id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+
+id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+
+id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+
+id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+
+id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54}
+
+-- The following OBJECT IDENTIFIERS are not used by this Specification:
+-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7},
+-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13},
+-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30}
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Coding-Attributes.asn
new file mode 100644
index 0000000000..04060cf060
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Coding-Attributes.asn
@@ -0,0 +1,17 @@
+-- Module Character-Coding-Attributes (T.416:03/1993)
+
+Character-Coding-Attributes {2 8 1 6 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Character-Coding-Attributes;
+
+Character-Coding-Attributes ::= SET {
+}
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Presentation-Attributes.asn
new file mode 100644
index 0000000000..aed48ac26b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Presentation-Attributes.asn
@@ -0,0 +1,125 @@
+-- Module Character-Presentation-Attributes (T.416:03/1993)
+
+Character-Presentation-Attributes {2 8 1 6 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning;
+
+Character-Attributes ::= SET {
+ character-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ character-spacing [6] IMPLICIT INTEGER OPTIONAL,
+ line-spacing [7] IMPLICIT INTEGER OPTIONAL,
+ alignment [8] IMPLICIT Alignment OPTIONAL,
+ line-layout-table [9] IMPLICIT Layout-Table OPTIONAL,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition OPTIONAL,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator OPTIONAL,
+ character-fonts [12] IMPLICIT Character-Fonts OPTIONAL,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER OPTIONAL,
+ itemization [14] IMPLICIT Itemization OPTIONAL,
+ widow-size [15] IMPLICIT INTEGER OPTIONAL,
+ orphan-size [16] IMPLICIT INTEGER OPTIONAL,
+ graphic-character-sets [17] IMPLICIT OCTET STRING OPTIONAL,
+ indentation [19] IMPLICIT INTEGER OPTIONAL,
+ kerning-offset [20] IMPLICIT Kerning-Offset OPTIONAL,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing OPTIONAL,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning OPTIONAL,
+ first-line-offset [23] IMPLICIT INTEGER OPTIONAL,
+ code-extension-announcers [24] IMPLICIT OCTET STRING OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [1] IMPLICIT INTEGER
+}
+
+Alignment ::= INTEGER {
+ start-aligned(0), end-aligned(1), centred(2), justified(3)}
+
+Layout-Table ::= SET OF Tabulation-Stop
+
+Tabulation-Stop ::= SET {
+ tabulation-reference [0] IMPLICIT NumericString,
+ tabulation-position [1] IMPLICIT INTEGER,
+ alignment
+ [2] IMPLICIT INTEGER {start-aligned(0), end-aligned(1), centred(2),
+ aligned-around(3)},
+ alignment-character-string [3] IMPLICIT OCTET STRING OPTIONAL
+}
+
+-- string of graphic characters
+-- from the set of graphic elements
+-- specified by the presentation
+-- attributes "graphic character
+-- sets" and "graphic character
+-- subrepertoire"
+Graphic-Rendition ::= SET OF Graphic-Rendition-Aspect
+
+Character-Fonts ::= SET {
+ primary-font [0] IMPLICIT Font-Type OPTIONAL,
+ first-alternative-font [1] IMPLICIT Font-Type OPTIONAL,
+ second-alternative-font [2] IMPLICIT Font-Type OPTIONAL,
+ third-alternative-font [3] IMPLICIT Font-Type OPTIONAL,
+ fourth-alternative-font [4] IMPLICIT Font-Type OPTIONAL,
+ fifth-alternative-font [5] IMPLICIT Font-Type OPTIONAL,
+ sixth-alternative-font [6] IMPLICIT Font-Type OPTIONAL,
+ seventh-alternative-font [7] IMPLICIT Font-Type OPTIONAL,
+ eighth-alternative-font [8] IMPLICIT Font-Type OPTIONAL,
+ ninth-alternative-font [9] IMPLICIT Font-Type OPTIONAL
+}
+
+Font-Type ::= SET {
+ font-size [0] IMPLICIT INTEGER,
+ font-identifier [1] IMPLICIT INTEGER
+}
+
+Graphic-Rendition-Aspect ::= INTEGER {
+ cancel(0), increased-intensity(1), decreased-intensity(2), italicized(3),
+ underlined(4), slowly-blinking(5), rapidly-blinking(6), negative-image(7),
+ crossed-out(9), primary-font(10), first-alternative-font(11),
+ second-alternative-font(12), third-alternative-font(13),
+ fourth-alternative-font(14), fifth-alternative-font(15),
+ sixth-alternative-font(16), seventh-alternative-font(17),
+ eighth-alternative-font(18), ninth-alternative-font(19),
+ doubly-underlined(21), normal-intensity(22), not-italicized(23),
+ not-underlined(24), steady(25), variable-spacing(26), positive-image(27),
+ not-crossed-out(29), black-foreground(30), red-foreground(31),
+ green-foreground(32), yellow-foreground(33), blue-foreground(34),
+ magenta-foreground(35), cyan-foreground(36), white-foreground(37),
+ select-char-foreground-colour(38), black-background(40), red-background(41),
+ green-background(42), yellow-background(43), blue-background(44),
+ magenta-background(45), cyan-background(46), white-background(47),
+ select-char-background-colour(48), not-variable-spacing(50)}
+
+Formatting-Indicator ::= INTEGER {no(0), yes(1)}
+
+Itemization ::= SET {
+ identifier-alignment
+ [0] IMPLICIT INTEGER {no-itemization(0), start-aligned(1), end-aligned(2)},
+ identifier-start-offset [1] IMPLICIT INTEGER OPTIONAL,
+ identifier-end-offset [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Kerning-Offset ::= SET {
+ start-offset [0] IMPLICIT INTEGER,
+ end-offset [1] IMPLICIT INTEGER
+}
+
+Proportional-Line-Spacing ::= INTEGER {no(0), yes(1)}
+
+Pairwise-Kerning ::= INTEGER {no(0), yes(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Profile-Attributes.asn
new file mode 100644
index 0000000000..7ba5bf194a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Character-Profile-Attributes.asn
@@ -0,0 +1,54 @@
+-- Module Character-Profile-Attributes (T.416:03/1993)
+
+Character-Profile-Attributes {2 8 1 6 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Character-Presentation-Feature, Character-Coding-Attribute,
+ Character-Content-Defaults;
+
+IMPORTS
+ Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair,
+ Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator,
+ Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing,
+ Pairwise-Kerning
+ FROM Character-Presentation-Attributes;
+
+-- see 11.2
+Character-Presentation-Feature ::= CHOICE {
+ character-path [0] IMPLICIT One-Of-Four-Angles,
+ line-progression [1] IMPLICIT One-Of-Two-Angles,
+ character-orientation [2] IMPLICIT One-Of-Four-Angles,
+ initial-offset [3] IMPLICIT Measure-Pair,
+ character-spacing [6] IMPLICIT INTEGER,
+ line-spacing [7] IMPLICIT INTEGER,
+ alignment [8] IMPLICIT Alignment,
+ line-layout-table [9] IMPLICIT Layout-Table,
+ graphic-rendition [10] IMPLICIT Graphic-Rendition,
+ formatting-indicator [11] IMPLICIT Formatting-Indicator,
+ character-fonts [12] IMPLICIT Character-Fonts,
+ graphic-char-subrepertoire [13] IMPLICIT INTEGER,
+ itemization [14] IMPLICIT Itemization,
+ widow-size [15] IMPLICIT INTEGER,
+ orphan-size [16] IMPLICIT INTEGER,
+ graphic-character-sets [17] IMPLICIT OCTET STRING,
+ indentation [19] IMPLICIT INTEGER,
+ kerning-offset [20] IMPLICIT Kerning-Offset,
+ proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing,
+ pairwise-kerning [22] IMPLICIT Pairwise-Kerning,
+ first-line-offset [23] IMPLICIT INTEGER,
+ code-extension-announcers [24] IMPLICIT OCTET STRING
+}
+
+Character-Coding-Attribute ::= NULL
+
+-- no character coding attributes
+-- are defined in this part of
+-- ITU-T Rec. T.410-Series | ISO/IEC 8613
+Character-Content-Defaults ::=
+ Character-Attributes
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Colour-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Colour-Attributes.asn
new file mode 100644
index 0000000000..24c7fafc38
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Colour-Attributes.asn
@@ -0,0 +1,192 @@
+-- Module Colour-Attributes (T.415:03/1993)
+
+Colour-Attributes {2 8 1 5 14} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Colour-Expression, Colour-Table, Colour-Spaces-List, Colour-Characteristics;
+
+IMPORTS Character-Data
+ FROM Document-Profile-Descriptor; -- see 7.7
+
+Real-Or-Int ::= CHOICE {a REAL,
+ b INTEGER
+}
+
+Colour-Expression ::= SEQUENCE {
+ colour-access-mode [0] IMPLICIT INTEGER {direct(0), indexed(1)},
+ a
+ [1] CHOICE {direct-colour [0] IMPLICIT Direct-Colour,
+ indexed-colour [1] IMPLICIT Indexed-Colour}
+}
+
+Direct-Colour ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER OPTIONAL,
+ colour-specification [1] Colour-Specification OPTIONAL,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+}
+
+Colour-Specification ::= CHOICE {
+ cmyk-colour [0] IMPLICIT CMYK-Colour,
+ rgb-colour [1] IMPLICIT RGB-Colour,
+ cie-colour [2] IMPLICIT CIE-Colour
+}
+
+CMYK-Colour ::= SET {
+ c-value [0] Real-Or-Int,
+ m-value [1] Real-Or-Int,
+ y-value [2] Real-Or-Int,
+ k-value [3] Real-Or-Int OPTIONAL
+}
+
+RGB-Colour ::= SET {
+ r-value [0] Real-Or-Int,
+ g-value [1] Real-Or-Int,
+ b-value [2] Real-Or-Int
+}
+
+CIE-Colour ::= SET {
+ x-value [0] Real-Or-Int,
+ y-value [1] Real-Or-Int,
+ z-value [2] Real-Or-Int
+}
+
+Colour-Tolerance ::= CHOICE {
+ unspecified-tolerance [0] IMPLICIT NULL,
+ specified-tolerance [1] IMPLICIT Specified-Tolerance
+}
+
+Specified-Tolerance ::= SET {
+ tolerance-value [0] Real-Or-Int,
+ tolerance-space [1] IMPLICIT INTEGER {cieluv(3), cielab(4)}
+}
+
+Indexed-Colour ::= SET {index [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Table ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-table-entries
+ [1] IMPLICIT SET OF
+ SET {index [0] IMPLICIT INTEGER,
+ colour-coordinates [1] Colour-Specification,
+ colour-tolerance [2] Colour-Tolerance OPTIONAL
+ }
+}
+
+Colour-Characteristics ::= SET {
+ colour-spaces-present
+ [0] IMPLICIT SEQUENCE OF
+ SET {colour-space-type [0] IMPLICIT Colour-Space-Type,
+ colour-calibration-type
+ [1] IMPLICIT Colour-Space-Calibration-Type},
+ colour-modes-present [1] IMPLICIT Colour-Modes-Present,
+ minimum-colour-tolerance [2] Colour-Tolerance OPTIONAL,
+ maximum-colour-table-length [3] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of colour table entries"
+ maximum-rgb-lut-length [4] IMPLICIT INTEGER OPTIONAL,
+ -- "maximum number of look-up table entries"
+ maximum-cmy-k-grid-size [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Colour-Space-Type ::= INTEGER {rgb(0), cmyk(1), cmy(2), cieluv(3), cielab(4)}
+
+Colour-Space-Calibration-Type ::= INTEGER {
+ no-calibration(0), matrices(1), lookup-tables(2),
+ matrices-and-lookup-tables(3)}
+
+Colour-Modes-Present ::= INTEGER {direct(0), indexed(1), both(2)}
+
+Colour-Spaces-List ::= SET OF Colour-Space
+
+Colour-Space ::= SET {
+ colour-space-id [0] IMPLICIT INTEGER,
+ colour-space-type [1] IMPLICIT Colour-Space-Type,
+ colour-space-name [2] IMPLICIT Character-Data OPTIONAL,
+ colour-data-scaling [3] Colour-Data-Scaling OPTIONAL,
+ calibration-data [4] Calibration-Data OPTIONAL
+}
+
+Colour-Data-Scaling ::= SET {
+ first-component [0] IMPLICIT Scale-And-Offset,
+ second-component [1] IMPLICIT Scale-And-Offset,
+ third-component [2] IMPLICIT Scale-And-Offset,
+ fourth-component [3] IMPLICIT Scale-And-Offset OPTIONAL
+}
+
+Scale-And-Offset ::= SET {
+ colour-scale [0] Real-Or-Int,
+ colour-offset [1] Real-Or-Int
+}
+
+Calibration-Data ::= CHOICE {
+ rgb [0] IMPLICIT RGB-Calibration,
+ cmyk [1] IMPLICIT CMY-K-Calibration,
+ cmy [2] IMPLICIT CMY-K-Calibration,
+ cieluv [3] IMPLICIT CIE-Calibration,
+ cielab [4] IMPLICIT CIE-Calibration
+}
+
+CIE-Calibration ::= SET {reference-white [0] IMPLICIT CIE-Ref
+}
+
+RGB-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ matrix1 [1] IMPLICIT Three-by-Three-Matrix OPTIONAL,
+ lookup-table [3] IMPLICIT Colour-Lookup-Table OPTIONAL,
+ matrix2 [2] IMPLICIT Three-by-Three-Matrix OPTIONAL
+}
+
+Three-by-Three-Matrix ::= SEQUENCE {
+ row-1 Three-Nums,
+ row-2 Three-Nums,
+ row-3 Three-Nums
+}
+
+Three-Nums ::= SEQUENCE {
+ column-1 Real-Or-Int,
+ column-2 Real-Or-Int,
+ column-3 Real-Or-Int
+}
+
+Colour-Lookup-Table ::= SET {
+ number-of-entries [0] IMPLICIT INTEGER,
+ m [1] IMPLICIT INTEGER,
+ n [2] IMPLICIT INTEGER,
+ colour-table [3] IMPLICIT SET OF Colour-Table-Entry
+}
+
+Colour-Table-Entry ::= SET {
+ index [3] IMPLICIT INTEGER,
+ r [0] Real-Or-Int,
+ g [1] Real-Or-Int,
+ b [2] Real-Or-Int
+}
+
+CMY-K-Calibration ::= SET {
+ reference-white [0] IMPLICIT CIE-Ref,
+ comment [1] IMPLICIT Character-Data OPTIONAL,
+ cmyk-lut [2] IMPLICIT Grid-Specification
+}
+
+Grid-Specification ::=
+ SET OF
+ SET {grid-location [0] IMPLICIT CMYK-Colour,
+ grid-value [1] IMPLICIT Grid-Value}
+
+Grid-Value ::= SET {
+ x-value [0] IMPLICIT REAL,
+ y-value [1] IMPLICIT REAL,
+ z-value [2] IMPLICIT REAL
+}
+
+CIE-Ref ::= SET {
+ xn-value [0] Real-Or-Int,
+ yn-value [1] Real-Or-Int,
+ zn-value [2] Real-Or-Int
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DOR-definition.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DOR-definition.asn
new file mode 100644
index 0000000000..cd3330dc56
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DOR-definition.asn
@@ -0,0 +1,134 @@
+-- Module DOR-definition (ISO|IEC 10031-2:1991)
+DOR-definition {joint-iso-itu-t dor(4) reference-definition(0)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ AE-Identifier, Altered-value, DOR, dor-abstract-syntax, dor-syntax-asn1,
+ dorx, Extend-QoS, Local-reference, Locational-identifier, Produce-QoS,
+ QoS-level, Quality-of-Service, Requested-QoS-level,
+ Single-use-of-reference, Token;
+
+IMPORTS
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ PresentationAddress
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3};
+
+-- Defined Object Identifiers
+dorx OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t dor(11)}
+
+-- Object identifier for abstract syntax of DOR
+dor-abstract-syntax OBJECT IDENTIFIER ::=
+ {dorx reference-abstract-syntax(1)}
+
+-- Object identifier for abstract syntax of DOR with basic ASN.1 encodings in
+-- EXTERNAL
+dor-syntax-asn1 OBJECT IDENTIFIER ::=
+ {dorx reference-syntax(2) asn1(0)}
+
+-- Definition of DOR type
+DOR ::= SEQUENCE {
+ ae-identifier [0] AE-Identifier OPTIONAL,
+ -- mandatory in case of produce-operations and consume-operations
+ local-reference [1] Local-reference,
+ data-object-type OBJECT IDENTIFIER,
+ -- identifying the abstract syntax and the transfer syntax of the
+ -- referenced data value
+ quality-of-service [2] Quality-of-Service DEFAULT {},
+ token [3] Token OPTIONAL
+}
+
+AE-Identifier ::= SEQUENCE { -- at least one component shall be present
+ locational-identifier [0] Locational-identifier OPTIONAL,
+ direct-logical-identifier [1] DistinguishedName OPTIONAL,
+ indirect-logical-identifier [2] DistinguishedName OPTIONAL
+}
+
+Locational-identifier ::= SEQUENCE {
+ presentation-address [0] PresentationAddress,
+ ae-title [1] AE-title OPTIONAL,
+ -- as defined in ISO 8650:1988/Cor.1:1990
+ application-contexts SET OF OBJECT IDENTIFIER
+}
+
+Local-reference ::= SEQUENCE {
+ application [0] OCTET STRING OPTIONAL,
+ specific-reference [1] OCTET STRING
+}
+
+Quality-of-Service ::= SEQUENCE {
+ qoS-level [0] QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT GeneralizedTime,
+ -- specifying the produce time
+ level-3
+ [3] IMPLICIT SEQUENCE {produce-time GeneralizedTime,
+ fidelity-time GeneralizedTime}
+}
+
+Single-use-of-reference ::= BOOLEAN
+
+Token ::= CHOICE {
+ simpletoken OCTET STRING,
+ -- used to validate an access which use this DOR
+ externaltoken EXTERNAL -- for future proxy mechanism
+}
+
+-- Data types for produce-operations
+Produce-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level DEFAULT level-1:NULL,
+ usage-of-reference Single-use-of-reference DEFAULT TRUE
+}
+
+Requested-QoS-level ::= CHOICE {
+ level-1 [1] IMPLICIT NULL,
+ level-2 [2] IMPLICIT NULL,
+ level-3 [3] IMPLICIT GeneralizedTime
+ -- specifying the requested fidelity-time
+}
+
+-- Data types for extending a specific QoS
+Extend-QoS ::= SEQUENCE {
+ qoS-level [0] Requested-QoS-level OPTIONAL,
+ -- if omitted, no change required
+ usage-of-reference Single-use-of-reference OPTIONAL
+ -- if omitted, no change required
+}
+
+-- Data types for requesting / indicating value alteration in produce-operation
+-- or access-operation
+Altered-value ::= ENUMERATED {
+ value-not-altered(1), value-altered(2), undefined(3)}
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END -- of DOR-definition
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DSAOperationalAttributeTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DSAOperationalAttributeTypes.asn
new file mode 100644
index 0000000000..df5e8489ea
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DSAOperationalAttributeTypes.asn
@@ -0,0 +1,186 @@
+-- Module DSAOperationalAttributeTypes (X.501:08/1997)
+DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-doa, id-kmr, informationFramework, distributedOperations,
+ opBindingManagement, selectedAttributeTypes
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ATTRIBUTE, MATCHING-RULE, Name
+ FROM InformationFramework informationFramework
+ OperationalBindingID
+ FROM OperationalBindingManagement opBindingManagement
+ AccessPoint, MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ bitStringMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes;
+
+-- data types
+DSEType ::= BIT STRING {
+ root(0), -- root DSE
+ glue(1), -- represents knowledge of a name only
+ cp(2), -- context prefix
+ entry(3), -- object entry
+ alias(4), -- alias entry
+ subr(5), -- subordinate reference
+ nssr(6), -- non-specific subordinate reference
+ supr(7), -- superior reference
+ xr(8), -- cross reference
+ admPoint(9), -- administrative point
+ subentry(10), -- subentry
+ shadow(11), -- shadow copy
+ immSupr(13), -- immediate superior reference
+ rhob(14), -- rhob information
+ sa(15), -- subordinate reference to alias entry
+ dsSubentry(16), -- DSA Specific subentry
+ familyMember(17)} -- family member
+
+SupplierOrConsumer ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier or consumer
+ agreementID [4] OperationalBindingID
+}
+
+SupplierInformation ::= SET {
+ COMPONENTS OF SupplierOrConsumer, -- supplier
+ supplier-is-master [5] BOOLEAN DEFAULT TRUE,
+ non-supplying-master [6] AccessPoint OPTIONAL
+}
+
+ConsumerInformation ::= SupplierOrConsumer -- consumer
+
+SupplierAndConsumers ::= SET {
+ COMPONENTS OF AccessPoint, -- supplier
+ consumers [4] SET OF AccessPoint
+}
+
+-- attribute types
+dseType ATTRIBUTE ::= {
+ WITH SYNTAX DSEType
+ EQUALITY MATCHING RULE bitStringMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-dseType
+}
+
+myAccessPoint ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-myAccessPoint
+}
+
+superiorKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX AccessPoint
+ EQUALITY MATCHING RULE accessPointMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-superiorKnowledge
+}
+
+specificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-specificKnowledge
+}
+
+nonSpecificKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX MasterAndShadowAccessPoints
+ EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch
+ NO USER MODIFICATION TRUE
+ USAGE distributedOperation
+ ID id-doa-nonSpecificKnowledge
+}
+
+supplierKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX SupplierInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-supplierKnowledge
+}
+
+consumerKnowledge ATTRIBUTE ::= {
+ WITH SYNTAX ConsumerInformation
+ EQUALITY MATCHING RULE supplierOrConsumerInformationMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-consumerKnowledge
+}
+
+secondaryShadows ATTRIBUTE ::= {
+ WITH SYNTAX SupplierAndConsumers
+ EQUALITY MATCHING RULE supplierAndConsumersMatch
+ NO USER MODIFICATION TRUE
+ USAGE dSAOperation
+ ID id-doa-secondaryShadows
+}
+
+-- matching rules
+accessPointMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-accessPointMatch
+}
+
+masterAndShadowAccessPointsMatch MATCHING-RULE ::= {
+ SYNTAX SET OF Name
+ ID id-kmr-masterShadowMatch
+}
+
+supplierOrConsumerInformationMatch MATCHING-RULE ::= {
+ SYNTAX
+ SET {ae-title [0] Name,
+ agreement-identifier [2] INTEGER}
+ ID id-kmr-supplierConsumerMatch
+}
+
+supplierAndConsumersMatch MATCHING-RULE ::= {
+ SYNTAX Name
+ ID id-kmr-supplierConsumersMatch
+}
+
+-- object identifier assignments
+-- dsa operational attributes
+id-doa-dseType OBJECT IDENTIFIER ::=
+ {id-doa 0}
+
+id-doa-myAccessPoint OBJECT IDENTIFIER ::= {id-doa 1}
+
+id-doa-superiorKnowledge OBJECT IDENTIFIER ::= {id-doa 2}
+
+id-doa-specificKnowledge OBJECT IDENTIFIER ::= {id-doa 3}
+
+id-doa-nonSpecificKnowledge OBJECT IDENTIFIER ::= {id-doa 4}
+
+id-doa-supplierKnowledge OBJECT IDENTIFIER ::= {id-doa 5}
+
+id-doa-consumerKnowledge OBJECT IDENTIFIER ::= {id-doa 6}
+
+id-doa-secondaryShadows OBJECT IDENTIFIER ::= {id-doa 7}
+
+-- knowledge matching rules
+id-kmr-accessPointMatch OBJECT IDENTIFIER ::=
+ {id-kmr 0}
+
+id-kmr-masterShadowMatch OBJECT IDENTIFIER ::= {id-kmr 1}
+
+id-kmr-supplierConsumerMatch OBJECT IDENTIFIER ::= {id-kmr 2}
+
+id-kmr-supplierConsumersMatch OBJECT IDENTIFIER ::= {id-kmr 3}
+
+END -- DSAOperationalAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Default-Value-Lists.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Default-Value-Lists.asn
new file mode 100644
index 0000000000..ef1187ba8c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Default-Value-Lists.asn
@@ -0,0 +1,143 @@
+-- Module Default-Value-Lists (T.415:03/1993)
+
+Default-Value-Lists {2 8 1 5 11} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Default-Value-Lists-Logical, Default-Value-Lists-Layout;
+
+IMPORTS
+ Style-Identifier, Category-Name
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, One-Of-Four-Angles, Medium-Type, Dimension-Pair, Transparency,
+ Colour, Border, Content-Background-Colour, Content-Foreground-Colour,
+ Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes; -- see 7.14
+
+Default-Value-Lists-Layout ::= SET {
+ page-set-attributes [1] IMPLICIT Page-Set-Attributes OPTIONAL,
+ page-attributes [2] IMPLICIT Page-Attributes OPTIONAL,
+ frame-attributes [3] IMPLICIT Frame-Attributes OPTIONAL,
+ block-attributes [4] IMPLICIT Block-Attributes OPTIONAL
+}
+
+Default-Value-Lists-Logical ::= SET {
+ composite-logical-attributes
+ [5] IMPLICIT Composite-Logical-Attributes OPTIONAL,
+ basic-logical-attributes [6] IMPLICIT Basic-Logical-Attributes OPTIONAL
+}
+
+Page-Set-Attributes ::= SET {
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL
+}
+
+Page-Attributes ::= SET {
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ page-position page-position < Attribute OPTIONAL,
+ medium-type medium-type < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Frame-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ layout-path layout-path < Attribute OPTIONAL,
+ permitted-categories permitted-categories < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Block-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colou colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Composite-Logical-Attributes ::= SET {
+ protection protection < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Basic-Logical-Attributes ::= SET {
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ protection protection < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Attribute ::= CHOICE {
+ position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Dimension-Pair,
+ transparency [2] IMPLICIT Transparency,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes,
+ layout-path [4] IMPLICIT One-Of-Four-Angles,
+ page-position [5] IMPLICIT Measure-Pair,
+ medium-type [6] IMPLICIT Medium-Type,
+ permitted-categories [7] IMPLICIT SET OF Category-Name,
+ layout-stream-categories [19] IMPLICIT SET OF Category-Name,
+ layout-stream-sub-categories [20] IMPLICIT SET OF Category-Name,
+ protection [8] IMPLICIT Protection,
+ presentation-style [9] IMPLICIT Style-Identifier,
+ layout-style [10] IMPLICIT Style-Identifier,
+ colour [11] IMPLICIT Colour,
+ colour-of-layout-object [14] Colour-Expression,
+ object-colour-table [15] IMPLICIT Colour-Table,
+ content-background-colour [16] Content-Background-Colour,
+ content-foreground-colour [17] Content-Foreground-Colour,
+ content-colour-table [18] IMPLICIT Colour-Table,
+ border [12] IMPLICIT Border,
+ sealed [13] IMPLICIT Sealed
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAbstractService.asn
new file mode 100644
index 0000000000..5a5d310729
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAbstractService.asn
@@ -0,0 +1,710 @@
+-- Module DirectoryAbstractService (X.511:08/1997)
+DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations, authenticationFramework,
+ dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity,
+ id-at
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ AgreementID
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
+ DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes,
+ ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion,
+ OBJECT-CLASS, RelaxationPolicy
+ FROM InformationFramework informationFramework
+ OperationProgress, ReferenceType, Exclusions, AccessPoint,
+ ContinuationReference
+ FROM DistributedOperations distributedOperations
+ CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier,
+ AttributeCertificationPath
+ FROM AuthenticationFramework authenticationFramework
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list,
+ id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry,
+ id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned,
+ id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError,
+ id-errcode-referral, id-errcode-securityError, id-errcode-serviceError,
+ id-errcode-updateError
+ FROM DirectoryAccessProtocol dap
+ OPERATION, ERROR, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ --PROTECTED
+ -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) }
+ SPKM-REQ, SPKM-REP-TI, SPKM-ERROR
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+
+-- Common data types
+-- Parameterized type for representing optional signing
+OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
+
+FamilyGrouping ::= ENUMERATED {
+ entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
+
+CommonResults ::= SET {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
+
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE
+}
+
+ServiceControls ::= SET {
+ options [0] ServiceControlOptions DEFAULT {},
+ priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium,
+ timeLimit [2] INTEGER OPTIONAL,
+ sizeLimit [3] INTEGER OPTIONAL,
+ scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL,
+ attributeSizeLimit [5] INTEGER OPTIONAL,
+ manageDSAITPlaneRef
+ [6] SEQUENCE {dsaName Name,
+ agreementID AgreementID} OPTIONAL,
+ serviceType [7] OBJECT IDENTIFIER OPTIONAL,
+ userClass [8] INTEGER OPTIONAL
+}
+
+ServiceControlOptions ::= BIT STRING {
+ preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3),
+ dontDereferenceAliases(4), subentries(5), copyShallDo(6),
+ partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9),
+ noSubtypeSelection(10), countFamily(11)}
+
+EntryInformationSelection ::= SET {
+ attributes
+ CHOICE {allUserAttributes [0] NULL,
+ select [1] SET OF AttributeType
+ -- empty set implies no attributes are requested
+ } DEFAULT allUserAttributes:NULL,
+ infoTypes
+ [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)}
+ DEFAULT attributeTypesAndValues,
+ extraAttributes
+ CHOICE {allOperationalAttributes [3] NULL,
+ select [4] SET OF AttributeType} OPTIONAL,
+ contextSelection ContextSelection OPTIONAL,
+ returnContexts BOOLEAN DEFAULT FALSE,
+ familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly}
+}
+
+ContextSelection ::= CHOICE {
+ allContexts NULL,
+ selectedContexts SET OF TypeAndContextAssertion
+}
+
+TypeAndContextAssertion ::= SEQUENCE {
+ type AttributeType,
+ contextAssertions
+ CHOICE {preference SEQUENCE OF ContextAssertion,
+ all SET OF ContextAssertion}
+}
+
+FamilyReturn ::= SEQUENCE {
+ memberSelect
+ ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
+ compoundEntry(3)},
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
+}
+
+family-information ATTRIBUTE ::= {
+ WITH SYNTAX FamilyEntries
+ USAGE directoryOperation
+ ID id-at-family-information
+}
+
+FamilyEntries ::= SEQUENCE {
+ family-class OBJECT-CLASS.&id, -- structural object class value
+ familyEntries SEQUENCE OF FamilyEntry
+}
+
+FamilyEntry ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ information
+ SEQUENCE OF CHOICE {attributeType AttributeType,
+ attribute Attribute},
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
+}
+
+EntryInformation ::= SEQUENCE {
+ name Name,
+ fromEntry BOOLEAN DEFAULT TRUE,
+ information
+ SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
+ partialNameResolution
+ [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems --
+}
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ any
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ final
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
+ control Attribute -- Used to specify interpretation of following items
+ }},
+ greaterOrEqual [2] AttributeValueAssertion,
+ lessOrEqual [3] AttributeValueAssertion,
+ present [4] AttributeType,
+ approximateMatch [5] AttributeValueAssertion,
+ extensibleMatch [6] MatchingRuleAssertion,
+ contextPresent [7] AttributeTypeAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
+ type [2] AttributeType OPTIONAL,
+ matchValue
+ [3] MATCHING-RULE.&AssertionType
+ (CONSTRAINED BY {
+ -- matchValue must be a value of type specified by the &AssertionType field of
+ -- one of the MATCHING-RULE information objects identified by matchingRule -- }),
+ dnAttributes [4] BOOLEAN DEFAULT FALSE
+}
+
+PagedResultsRequest ::= CHOICE {
+ newRequest
+ SEQUENCE {pageSize INTEGER,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
+ reverse [1] BOOLEAN DEFAULT FALSE,
+ unmerged [2] BOOLEAN DEFAULT FALSE},
+ queryReference OCTET STRING
+}
+
+SortKey ::= SEQUENCE {
+ type AttributeType,
+ orderingRule MATCHING-RULE.&id OPTIONAL
+}
+
+SecurityParameters ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ name [1] DistinguishedName OPTIONAL,
+ time [2] Time OPTIONAL,
+ random [3] BIT STRING OPTIONAL,
+ target [4] ProtectionRequest OPTIONAL,
+ response [5] BIT STRING OPTIONAL,
+ operationCode [6] Code OPTIONAL,
+ attributeCertificationPath [7] AttributeCertificationPath OPTIONAL,
+ errorProtection [8] ErrorProtectionRequest OPTIONAL,
+ errorCode [9] Code OPTIONAL
+}
+
+ProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ErrorProtectionRequest ::= INTEGER {
+ none(0), signed(1), encrypted(2), signed-encrypted(3)}
+
+-- Bind and unbind operations
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+}
+
+DirectoryBindArgument ::= SET {
+ credentials [0] Credentials OPTIONAL,
+ versions [1] Versions DEFAULT {v1}
+}
+
+Credentials ::= CHOICE {
+ simple [0] SimpleCredentials,
+ strong [1] StrongCredentials,
+ externalProcedure [2] EXTERNAL,
+ spkm [3] SpkmCredentials
+}
+
+SimpleCredentials ::= SEQUENCE {
+ name [0] DistinguishedName,
+ validity
+ [1] SET {time1 [0] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ time2 [1] CHOICE {utc UTCTime,
+ gt GeneralizedTime} OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL},
+ password
+ [2] CHOICE {unprotected OCTET STRING,
+ protected SIGNATURE{OCTET STRING}} OPTIONAL
+}
+
+StrongCredentials ::= SET {
+ certification-path [0] CertificationPath OPTIONAL,
+ bind-token [1] Token,
+ name [2] DistinguishedName OPTIONAL,
+ attributeCertificationPath [3] AttributeCertificationPath OPTIONAL
+}
+
+SpkmCredentials ::= CHOICE {req [0] SPKM-REQ,
+ rep [1] SPKM-REP-TI
+}
+
+Token ::=
+ SIGNED
+ {SEQUENCE {algorithm [0] AlgorithmIdentifier,
+ name [1] DistinguishedName,
+ time [2] Time,
+ random [3] BIT STRING,
+ response [4] BIT STRING OPTIONAL,
+ bindIntAlgorithm
+ [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindIntKeyInfo [6] BindKeyInfo OPTIONAL,
+ bindConfAlgorithm
+ [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL,
+ bindConfKeyInfo [8] BindKeyInfo OPTIONAL}}
+
+Versions ::= BIT STRING {v1(0), v2(1)}
+
+DirectoryBindResult ::= DirectoryBindArgument
+
+directoryBindError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}}
+}
+
+BindKeyInfo ::= ENCRYPTED{BIT STRING}
+
+directoryUnbind OPERATION ::= emptyUnbind
+
+-- Operations, arguments, and results
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
+
+ReadArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ selection [1] EntryInformationSelection DEFAULT {},
+ modifyRightsRequest [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ReadResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {entry [0] EntryInformation,
+ modifyRights [1] ModifyRights OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+ModifyRights ::=
+ SET OF
+ SEQUENCE {item
+ CHOICE {entry [0] NULL,
+ attribute [1] AttributeType,
+ value [2] AttributeValueAssertion},
+ permission
+ [3] BIT STRING {add(0), remove(1), rename(2), move(3)}
+ }
+
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
+
+CompareArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ purported [1] AttributeValueAssertion,
+ COMPONENTS OF CommonArguments}}
+
+CompareResult ::=
+ OPTIONALLY-PROTECTED
+ {SET {name Name OPTIONAL,
+ matched [0] BOOLEAN,
+ fromEntry [1] BOOLEAN DEFAULT TRUE,
+ matchedSubtype [2] AttributeType OPTIONAL,
+ COMPONENTS OF CommonResults}}
+
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
+
+AbandonArgument ::=
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}}
+
+AbandonResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
+
+ListArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ pagedResults [1] PagedResultsRequest OPTIONAL,
+ listFamily [2] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonArguments}}
+
+ListResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {listInfo
+ SET {name Name OPTIONAL,
+ subordinates
+ [1] SET OF
+ SEQUENCE {rdn RelativeDistinguishedName,
+ aliasEntry [0] BOOLEAN DEFAULT FALSE,
+ fromEntry [1] BOOLEAN DEFAULT TRUE
+ },
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ COMPONENTS OF CommonResults},
+ uncorrelatedListInfo [0] SET OF ListResult}}
+
+PartialOutcomeQualifier ::= SET {
+ limitProblem [0] LimitProblem OPTIONAL,
+ unexplored
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
+ unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
+ unknownErrors
+ [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL,
+ queryReference [4] OCTET STRING OPTIONAL,
+ overspecFilter [5] Filter OPTIONAL,
+ notification
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
+ entryCount
+ CHOICE {bestEstimate [7] INTEGER,
+ lowEstimate [8] INTEGER} OPTIONAL
+}
+
+LimitProblem ::= INTEGER {
+ timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
+}
+
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
+
+SearchArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {baseObject [0] Name,
+ subset
+ [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)}
+ DEFAULT baseObject,
+ filter [2] Filter DEFAULT and:{},
+ searchAliases [3] BOOLEAN DEFAULT TRUE,
+ selection [4] EntryInformationSelection DEFAULT {},
+ pagedResults [5] PagedResultsRequest OPTIONAL,
+ matchedValuesOnly [6] BOOLEAN DEFAULT FALSE,
+ extendedFilter [7] Filter OPTIONAL,
+ checkOverspecified [8] BOOLEAN DEFAULT FALSE,
+ relaxation [9] RelaxationPolicy OPTIONAL,
+ extendedArea [10] INTEGER OPTIONAL,
+ hierarchySelections [11] HierarchySelections DEFAULT {self},
+ searchControlOptions
+ [12] SearchControlOptions DEFAULT {searchAliases},
+ COMPONENTS OF CommonArguments}}
+
+HierarchySelections ::= BIT STRING {
+ self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5),
+ siblings(6), siblingChildren(7), siblingSubtree(8), all(9)}
+
+SearchControlOptions ::= BIT STRING {
+ searchAliases(0), matchedValuesOnly(1), checkOverspecified(2),
+ performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6),
+ matchOnResidualName(7), entryCount(8), useSubset(9),
+ separateFamilyMembers(10), searchFamily(11)}
+
+SearchResult ::=
+ OPTIONALLY-PROTECTED
+ {CHOICE {searchInfo
+ SET {name Name OPTIONAL,
+ entries [0] SET OF EntryInformation,
+ partialOutcomeQualifier
+ [2] PartialOutcomeQualifier OPTIONAL,
+ altMatching [3] BOOLEAN DEFAULT FALSE,
+ COMPONENTS OF CommonResults},
+ uncorrelatedSearchInfo [0] SET OF SearchResult}}
+
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
+
+AddEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ entry [1] SET OF Attribute,
+ targetSystem [2] AccessPoint OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+AddEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
+
+RemoveEntryArgument ::=
+ OPTIONALLY-PROTECTED{SET {object [0] Name,
+ COMPONENTS OF CommonArguments}}
+
+RemoveEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}}
+}
+
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
+
+ModifyEntryArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ changes [1] SEQUENCE OF EntryModification,
+ selection [2] EntryInformationSelection OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyEntryResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+EntryModification ::= CHOICE {
+ addAttribute [0] Attribute,
+ removeAttribute [1] AttributeType,
+ addValues [2] Attribute,
+ removeValues [3] Attribute,
+ alterValues [4] AttributeTypeAndValue,
+ resetValue [5] AttributeType
+}
+
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
+
+ModifyDNArgument ::=
+ OPTIONALLY-PROTECTED
+ {SET {object [0] DistinguishedName,
+ newRDN [1] RelativeDistinguishedName,
+ deleteOldRDN [2] BOOLEAN DEFAULT FALSE,
+ newSuperior [3] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonArguments}}
+
+ModifyDNResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandoned
+}
+
+abandonFailed ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] AbandonProblem,
+ operation [1] InvokeId,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
+
+AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+
+attributeError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {object [0] Name,
+ problems
+ [1] SET OF
+ SEQUENCE {problem [0] AttributeProblem,
+ type [1] AttributeType,
+ value [2] AttributeValue OPTIONAL},
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
+AttributeProblem ::= INTEGER {
+ noSuchAttributeOrValue(1), invalidAttributeSyntax(2),
+ undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
+ attributeOrValueAlreadyExists(6), contextViolation(7)}
+
+nameError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] NameProblem,
+ matched [1] Name,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
+
+NameProblem ::= INTEGER {
+ noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
+ aliasDereferencingProblem(4), contextProblem(5)}
+
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {candidate [0] ContinuationReference,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
+securityError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] SecurityProblem,
+ spkmInfo [1] SPKM-ERROR,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
+SecurityProblem ::= INTEGER {
+ inappropriateAuthentication(1), invalidCredentials(2),
+ insufficientAccessRights(3), invalidSignature(4), protectionRequired(5),
+ noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
+}
+
+serviceError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] ServiceProblem,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
+ServiceProblem ::= INTEGER {
+ busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4),
+ unableToProceed(5), invalidReference(6), timeLimitExceeded(7),
+ administrativeLimitExceeded(8), loopDetected(9),
+ unavailableCriticalExtension(10), outOfScope(11), ditError(12),
+ invalidQueryReference(13), requestedServiceNotAvailable(14),
+ relaxationNotSupported(15), unavailableRelaxationLevel(16),
+ unsupportedMatchingUse(17), unmatchedKeyAttributes(18),
+ ambiguousKeyAttributes(19)}
+
+updateError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {problem [0] UpdateProblem,
+ attributeInfo
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {attributeType AttributeType,
+ attribute Attribute} OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
+UpdateProblem ::= INTEGER {
+ namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3),
+ notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6),
+ objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9),
+ hierarchyRuleViolation(10), familyRuleViolation(11)}
+
+id-at-family-information OBJECT IDENTIFIER ::= {id-at 64}
+
+END -- DirectoryAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAccessProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAccessProtocol.asn
new file mode 100644
index 0000000000..10d6979f6d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryAccessProtocol.asn
@@ -0,0 +1,162 @@
+-- Module DirectoryAccessProtocol (X.519 TC2:08/1997)
+
+DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryAccessAC, id-rosObject-dua, id-rosObject-directory,
+ id-rosObject-dapDSA, id-contract-dap, id-package-dapConnection,
+ id-package-read, id-package-search, id-package-modify,
+ id-as-directoryAccessAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- application contexts
+directoryAccessAC APPLICATION-CONTEXT ::= {
+ CONTRACT dapContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryAccessAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryAccessAC
+}
+
+-- ROS objects
+dua ROS-OBJECT-CLASS ::= {INITIATES {dapContract}
+ ID id-rosObject-dua
+}
+
+directory ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-directory
+}
+
+dap-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-dapDSA
+}
+
+-- contracts
+dapContract CONTRACT ::= {
+ CONNECTION dapConnectionPackage
+ INITIATOR CONSUMER OF {readPackage | searchPackage | modifyPackage}
+ ID id-contract-dap
+}
+
+-- connection package
+dapConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND directoryBind
+ UNBIND directoryUnbind
+ ID id-package-dapConnection
+}
+
+-- read package
+readPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {read | compare | abandon}
+ ID id-package-read
+}
+
+-- search package
+searchPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {list | search}
+ ID id-package-search
+}
+
+-- modify Package
+modifyPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {addEntry | removeEntry | modifyEntry | modifyDN}
+ ID id-package-modify
+}
+
+-- abstract syntaxes
+directoryAccessAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DAP-PDUs
+ IDENTIFIED BY id-as-directoryAccessAS
+}
+
+DAP-PDUs ::= CHOICE {
+ basicRos ROS{{DAP-InvokeIDSet}, {DAP-Invokable}, {DAP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DAP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DAP-Invokable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+DAP-Returnable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+-- remote operation codes
+id-opcode-read Code ::= local:1
+
+id-opcode-compare Code ::= local:2
+
+id-opcode-abandon Code ::= local:3
+
+id-opcode-list Code ::= local:4
+
+id-opcode-search Code ::= local:5
+
+id-opcode-addEntry Code ::= local:6
+
+id-opcode-removeEntry Code ::= local:7
+
+id-opcode-modifyEntry Code ::= local:8
+
+id-opcode-modifyDN Code ::= local:9
+
+-- remote error codes
+id-errcode-attributeError Code ::= local:1
+
+id-errcode-nameError Code ::= local:2
+
+id-errcode-serviceError Code ::= local:3
+
+id-errcode-referral Code ::= local:4
+
+id-errcode-abandoned Code ::= local:5
+
+id-errcode-securityError Code ::= local:6
+
+id-errcode-abandonFailed Code ::= local:7
+
+id-errcode-updateError Code ::= local:8
+
+-- remote error code for DSP
+id-errcode-dsaReferral Code ::= local:9
+
+END -- DirectoryAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryInformationShadowProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
new file mode 100644
index 0000000000..91c0a865f7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryInformationShadowProtocol.asn
@@ -0,0 +1,246 @@
+-- Module DirectoryInformationShadowProtocol (X.519 TC2:08/1997)
+
+DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1) disp(16) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData, association-by-RTSE, transfer-by-RTSE
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-shadowSupplierInitiatedAC, id-ac-shadowSupplierInitiatedAsynchronousAC,
+ id-ac-shadowConsumerInitiatedAC,
+ id-ac-shadowConsumerInitiatedAsynchronousAC,
+ id-ac-reliableShadowSupplierInitiatedAC,
+ id-ac-reliableShadowConsumerInitiatedAC,
+ id-rosObject-initiatingConsumerDSA, id-rosObject-respondingSupplierDSA,
+ id-rosObject-initiatingSupplierDSA, id-rosObject-respondingConsumerDSA,
+ id-contract-shadowConsumer, id-contract-shadowSupplier,
+ id-package-dispConnection, id-package-shadowConsumer,
+ id-package-shadowSupplier, id-as-directoryShadowAS,
+ id-as-directoryReliableShadowAS, id-as-reliableShadowBindingAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSAShadowBind, dSAShadowUnbind, requestShadowUpdate, updateShadow,
+ coordinateShadowUpdate
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- application contexts
+shadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAC
+}
+
+shadowSupplierInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAsynchronousAC
+}
+
+shadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAC
+}
+
+shadowConsumerInitiatedAsynchronousAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAsynchronousAC
+}
+
+reliableShadowSupplierInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowSupplierContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowSupplierInitiatedAC
+}
+
+reliableShadowConsumerInitiatedAC APPLICATION-CONTEXT ::= {
+ CONTRACT shadowConsumerContract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | reliableShadowBindingAbstractSyntax |
+ directoryReliableShadowAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-reliableShadowConsumerInitiatedAC
+}
+
+-- ROS objects
+initiating-consumer-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowConsumerContract}
+ ID id-rosObject-initiatingConsumerDSA
+}
+
+responding-supplier-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowConsumerContract}
+ ID id-rosObject-respondingSupplierDSA
+}
+
+initiating-supplier-dsa ROS-OBJECT-CLASS ::= {
+ INITIATES {shadowSupplierContract}
+ ID id-rosObject-initiatingSupplierDSA
+}
+
+responding-consumer-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {shadowSupplierContract}
+ ID id-rosObject-respondingConsumerDSA
+}
+
+-- contracts
+shadowConsumerContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ INITIATOR CONSUMER OF {shadowConsumerPackage}
+ ID id-contract-shadowConsumer
+}
+
+shadowSupplierContract CONTRACT ::= {
+ CONNECTION dispConnectionPackage
+ RESPONDER CONSUMER OF {shadowSupplierPackage}
+ ID id-contract-shadowSupplier
+}
+
+-- connection package
+dispConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAShadowBind
+ UNBIND dSAShadowUnbind
+ ID id-package-dispConnection
+}
+
+-- packages
+shadowConsumerPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {requestShadowUpdate}
+ SUPPLIER INVOKES {updateShadow}
+ ID id-package-shadowConsumer
+}
+
+shadowSupplierPackage OPERATION-PACKAGE ::= {
+ SUPPLIER INVOKES {coordinateShadowUpdate | updateShadow}
+ ID id-package-shadowSupplier
+}
+
+-- abstract syntaxes
+directoryShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DISP-PDUs
+ IDENTIFIED BY id-as-directoryShadowAS
+}
+
+directoryReliableShadowAbstractSyntax ABSTRACT-SYNTAX ::= {
+ Reliable-DISP-PDUs
+ IDENTIFIED BY id-as-directoryReliableShadowAS
+}
+
+reliableShadowBindingAbstractSyntax ABSTRACT-SYNTAX ::= {
+ ReliableShadowBinding-PDUs
+ IDENTIFIED BY id-as-reliableShadowBindingAS
+}
+
+DISP-PDUs ::= CHOICE {
+ basicROS ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}},
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+Reliable-DISP-PDUs ::=
+ ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}}
+
+ReliableShadowBinding-PDUs ::= CHOICE {
+ rTS [0] RTSE-apdus,
+ bind Bind{dSAShadowBind},
+ unbind Unbind{dSAShadowUnbind}
+}
+
+DISP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DISP-Invokable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+DISP-Returnable OPERATION ::=
+ {requestShadowUpdate | updateShadow | coordinateShadowUpdate}
+
+-- remote operation codes
+id-opcode-requestShadowUpdate Code ::= local:1
+
+id-opcode-updateShadow Code ::= local:2
+
+id-opcode-coordinateShadowUpdate Code ::= local:3
+
+-- remote error codes
+id-errcode-shadowError Code ::= local:1
+
+END -- DirectoryInformationShadowProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
new file mode 100644
index 0000000000..e3e1f95621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn
@@ -0,0 +1,117 @@
+-- Module DirectoryOperationalBindingManagementProtocol (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingManagementProtocol {joint-iso-itu-t ds(5)
+ module(1) dop(17) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ protocolObjectIdentifiers, directoryAbstractService, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ directoryBind, directoryUnbind
+ FROM DirectoryAbstractService directoryAbstractService
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directoryOperationalBindingManagementAC, id-rosObject-dopDSA,
+ id-contract-dop, id-package-dopConnection,
+ id-package-operationalBindingManagement,
+ id-as-directoryOperationalBindingManagementAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ establishOperationalBinding, modifyOperationalBinding,
+ terminateOperationalBinding, dSAOperationalBindingManagementBind,
+ dSAOperationalBindingManagementUnbind
+ FROM OperationalBindingManagement opBindingManagement;
+
+-- application contexts
+directoryOperationalBindingManagementAC APPLICATION-CONTEXT ::= {
+ CONTRACT dopContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax |
+ directoryOperationalBindingManagementAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryOperationalBindingManagementAC
+}
+
+-- ROS objects
+dop-dsa ROS-OBJECT-CLASS ::= {BOTH {dopContract}
+ ID id-rosObject-dopDSA
+}
+
+-- contracts
+dopContract CONTRACT ::= {
+ CONNECTION dopConnectionPackage
+ OPERATIONS OF {dopPackage}
+ ID id-contract-dop
+}
+
+-- connection package
+dopConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSAOperationalBindingManagementBind
+ UNBIND dSAOperationalBindingManagementUnbind
+ ID id-package-dopConnection
+}
+
+-- packages
+dopPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+ ID id-package-operationalBindingManagement
+}
+
+-- abstract syntaxes
+directoryOperationalBindingManagementAbstractSyntax ABSTRACT-SYNTAX ::=
+{DOP-PDUs
+ IDENTIFIED BY id-as-directoryOperationalBindingManagementAS
+}
+
+DOP-PDUs ::= CHOICE {
+ basicRos ROS{{DOP-InvokeIDSet}, {DOP-Invokable}, {DOP-Returnable}},
+ bind Bind{directoryBind},
+ unbind Unbind{directoryUnbind}
+}
+
+DOP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DOP-Invokable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+DOP-Returnable OPERATION ::=
+ {establishOperationalBinding | modifyOperationalBinding |
+ terminateOperationalBinding}
+
+-- remote operation codes
+id-op-establishOperationalBinding Code ::= local:100
+
+id-op-modifyOperationalBinding Code ::= local:102
+
+id-op-terminateOperationalBinding Code ::= local:101
+
+-- remote error codes
+id-err-operationalBindingError Code ::= local:100
+
+END -- DirectoryOperationalBindingManagementProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
new file mode 100644
index 0000000000..9df5d2783a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryOperationalBindingTypes.asn
@@ -0,0 +1,26 @@
+-- Module DirectoryOperationalBindingTypes (X.519 TC2:08/1997)
+
+DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-ob
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+id-op-binding-shadow OBJECT IDENTIFIER ::= {id-ob 1}
+
+id-op-binding-hierarchical OBJECT IDENTIFIER ::= {id-ob 2}
+
+id-op-binding-non-specific-hierarchical OBJECT IDENTIFIER ::= {id-ob 3}
+
+END -- DirectoryOperationalBindingTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryProtectionMappings.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryProtectionMappings.asn
new file mode 100644
index 0000000000..37c6cac261
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryProtectionMappings.asn
@@ -0,0 +1,70 @@
+-- Module DirectoryProtectionMappings (X.830:04/1995)
+
+DirectoryProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ dirProtectionMappings(4)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings generate bit-compatible encodings
+-- to the parameterized types in the Directory Authentication
+-- Framework
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, dirSignedTransformation,
+ dirSignatureTransformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **************************************
+-- Directory encrypted Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, encrypted}
+-- to replace the notation
+-- ENCRYPTED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: confidentiality
+encrypted PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+}
+
+-- ***********************************
+-- Directory signed Protection Mapping
+-- ***********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signed}
+-- to replace the notation
+-- SIGNED {BaseType}
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to
+-- generate an identical bit-encoding.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignedTransformation}
+}
+
+-- **************************************
+-- Directory signature Protection Mapping
+-- **************************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, signature}
+-- to provide a functionally-equivalent replacement of the notation
+-- SIGNATURE BaseType
+-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirSignatureTransformation}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryShadowAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryShadowAbstractService.asn
new file mode 100644
index 0000000000..acbb692b6f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectoryShadowAbstractService.asn
@@ -0,0 +1,324 @@
+-- Module DirectoryShadowAbstractService (X.525:08/1997)
+DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryShadowAbstractService(15) 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the directory service.
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, directoryOperationalBindingTypes,
+ informationFramework, disp, distributedOperations,
+ dsaOperationalAttributeTypes, enhancedSecurity, opBindingManagement
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, AttributeType, CONTEXT, DistinguishedName,
+ RelativeDistinguishedName, SubtreeSpecification
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ OPERATIONAL-BINDING, OperationalBindingID
+ FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3}
+ DSEType, SupplierAndConsumers
+ FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ dsaOperationalAttributeTypes(22) 3}
+ OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
+ 1}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ CommonResultsSeq, ContextSelection, directoryBind, directoryUnbind,
+ EntryModification, SecurityParameters
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3}
+ -- from ITU-T Rec. X.518 | ISO/IEC 9594-4
+ AccessPoint
+ FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
+ distributedOperations(3) 3}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-op-binding-shadow
+ FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
+ directoryOperationalBindingTypes(25) 3}
+ id-errcode-shadowError, id-opcode-coordinateShadowUpdate,
+ id-opcode-requestShadowUpdate, id-opcode-updateShadow,
+ reliableShadowSupplierInitiatedAC, reliableShadowConsumerInitiatedAC,
+ shadowConsumerInitiatedAC, shadowSupplierInitiatedAC
+ FROM DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1)
+ disp(16) 3}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ ERROR, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- bind and unbind operations
+dSAShadowBind OPERATION ::= directoryBind
+
+dSAShadowUnbind OPERATION ::= directoryUnbind
+
+-- shadow operational binding
+shadowOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT ShadowingAgreementInfo
+ APPLICATION CONTEXTS
+ {{shadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {shadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}} |
+ {reliableShadowSupplierInitiatedAC
+ APPLIES TO {All-operations-supplier-initiated}} |
+ {reliableShadowConsumerInitiatedAC
+ APPLIES TO {All-operations-consumer-initiated}}}
+ ASYMMETRIC ROLE-A
+ { -- shadow supplier roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- shadow consumer roleESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NULL
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER ModificationParameter
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-shadow
+}
+
+-- types
+ModificationParameter ::= SEQUENCE {
+ secondaryShadows SET OF SupplierAndConsumers
+}
+
+AgreementID ::= OperationalBindingID
+
+ShadowingAgreementInfo ::= SEQUENCE {
+ shadowSubject UnitOfReplication,
+ updateMode UpdateMode DEFAULT supplierInitiated:onChange:TRUE,
+ master AccessPoint OPTIONAL,
+ secondaryShadows [2] BOOLEAN DEFAULT FALSE
+}
+
+UnitOfReplication ::= SEQUENCE {
+ area AreaSpecification,
+ attributes AttributeSelection,
+ knowledge Knowledge OPTIONAL,
+ subordinates BOOLEAN DEFAULT FALSE,
+ contextSelection ContextSelection OPTIONAL,
+ supplyContexts
+ [0] CHOICE {allContexts NULL,
+ selectedContexts SET SIZE (1..MAX) OF CONTEXT.&id} OPTIONAL
+}
+
+AreaSpecification ::= SEQUENCE {
+ contextPrefix DistinguishedName,
+ replicationArea SubtreeSpecification
+}
+
+Knowledge ::= SEQUENCE {
+ knowledgeType ENUMERATED {master(0), shadow(1), both(2)},
+ extendedKnowledge BOOLEAN DEFAULT FALSE
+}
+
+AttributeSelection ::= SET OF ClassAttributeSelection
+
+ClassAttributeSelection ::= SEQUENCE {
+ class OBJECT IDENTIFIER OPTIONAL,
+ classAttributes ClassAttributes DEFAULT allAttributes:NULL
+}
+
+ClassAttributes ::= CHOICE {
+ allAttributes NULL,
+ include [0] AttributeTypes,
+ exclude [1] AttributeTypes
+}
+
+AttributeTypes ::= SET OF AttributeType
+
+UpdateMode ::= CHOICE {
+ supplierInitiated [0] SupplierUpdateMode,
+ consumerInitiated [1] ConsumerUpdateMode
+}
+
+SupplierUpdateMode ::= CHOICE {
+ onChange BOOLEAN,
+ scheduled SchedulingParameters
+}
+
+ConsumerUpdateMode ::= SchedulingParameters
+
+SchedulingParameters ::= SEQUENCE {
+ periodic PeriodicStrategy OPTIONAL, -- must be present if othertimes is set to FALSE
+ othertimes BOOLEAN DEFAULT FALSE
+}
+
+PeriodicStrategy ::= SEQUENCE {
+ beginTime Time OPTIONAL,
+ windowSize INTEGER,
+ updateInterval INTEGER
+}
+
+Time ::= GeneralizedTime
+
+-- as per 34.2 b) and c) of CCITT Rec. X.208 and ISO/IEC 8824
+-- shadow operations, arguments, and results
+All-operations-consumer-initiated OPERATION ::=
+ {requestShadowUpdate | updateShadow}
+
+All-operations-supplier-initiated OPERATION ::=
+ {coordinateShadowUpdate | updateShadow}
+
+coordinateShadowUpdate OPERATION ::= {
+ ARGUMENT CoordinateShadowUpdateArgument
+ RESULT CoordinateShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-coordinateShadowUpdate
+}
+
+CoordinateShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ updateStrategy
+ CHOICE {standard
+ ENUMERATED {noChanges(0), incremental(1),
+ total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+CoordinateShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {greementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+requestShadowUpdate OPERATION ::= {
+ ARGUMENT RequestShadowUpdateArgument
+ RESULT RequestShadowUpdateResult
+ ERRORS {shadowError}
+ CODE id-opcode-requestShadowUpdate
+}
+
+RequestShadowUpdateArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ requestedStrategy
+ CHOICE {standard ENUMERATED {incremental(1), total(2)},
+ other EXTERNAL},
+ securityParameters SecurityParameters OPTIONAL}}
+
+RequestShadowUpdateResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+updateShadow OPERATION ::= {
+ ARGUMENT UpdateShadowArgument
+ RESULT UpdateShadowResult
+ ERRORS {shadowError}
+ CODE id-opcode-updateShadow
+}
+
+UpdateShadowArgument ::=
+ OPTIONALLY-PROTECTED
+ {[0] SEQUENCE {agreementID AgreementID,
+ updateTime Time,
+ updateWindow UpdateWindow OPTIONAL,
+ updatedInfo RefreshInformation,
+ securityParameters SecurityParameters OPTIONAL}}
+
+UpdateShadowResult ::= CHOICE {
+ null NULL,
+ information
+ OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
+ lastUpdate Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+UpdateWindow ::= SEQUENCE {start Time,
+ stop Time
+}
+
+RefreshInformation ::= CHOICE {
+ noRefresh NULL,
+ total [0] TotalRefresh,
+ incremental [1] IncrementalRefresh,
+ otherStrategy EXTERNAL
+}
+
+TotalRefresh ::= SEQUENCE {
+ sDSE SDSEContent OPTIONAL,
+ subtree SET SIZE (1..MAX) OF Subtree OPTIONAL
+}
+
+SDSEContent ::= SEQUENCE {
+ sDSEType SDSEType,
+ subComplete [0] BOOLEAN DEFAULT FALSE,
+ attComplete [1] BOOLEAN OPTIONAL,
+ attributes SET OF Attribute,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SDSEType ::= DSEType
+
+Subtree ::= SEQUENCE {
+ rdn RelativeDistinguishedName,
+ COMPONENTS OF TotalRefresh
+}
+
+IncrementalRefresh ::= SEQUENCE OF IncrementalStepRefresh
+
+IncrementalStepRefresh ::= SEQUENCE {
+ sDSEChanges
+ CHOICE {add [0] SDSEContent,
+ remove NULL,
+ modify [1] ContentChange} OPTIONAL,
+ subordinateUpdates SEQUENCE SIZE (1..MAX) OF SubordinateChanges OPTIONAL
+}
+
+ContentChange ::= SEQUENCE {
+ rename
+ CHOICE {newRDN RelativeDistinguishedName,
+ newDN DistinguishedName} OPTIONAL,
+ attributeChanges
+ CHOICE {replace [0] SET SIZE (1..MAX) OF Attribute,
+ changes [1] SEQUENCE SIZE (1..MAX) OF EntryModification
+ } OPTIONAL,
+ sDSEType SDSEType,
+ subComplete [2] BOOLEAN DEFAULT FALSE,
+ attComplete [3] BOOLEAN OPTIONAL,
+ attValIncomplete SET OF AttributeType DEFAULT {}
+}
+
+SubordinateChanges ::= SEQUENCE {
+ subordinate RelativeDistinguishedName,
+ changes IncrementalStepRefresh
+}
+
+-- errors and parameters
+shadowError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {problem ShadowProblem,
+ lastUpdate Time OPTIONAL,
+ updateWindow UpdateWindow OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+ CODE id-errcode-shadowError
+}
+
+ShadowProblem ::= INTEGER {
+ invalidAgreementID(1), inactiveAgreement(2), invalidInformationReceived(3),
+ unsupportedStrategy(4), missedPrevious(5), fullUpdateRequired(6),
+ unwillingToPerform(7), unsuitableTiming(8), updateAlreadyReceived(9),
+ invalidSequencing(10), insufficientResources(11)}
+
+END -- DirectoryShadowAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectorySystemProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectorySystemProtocol.asn
new file mode 100644
index 0000000000..cace79d109
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DirectorySystemProtocol.asn
@@ -0,0 +1,118 @@
+-- Module DirectorySystemProtocol (X.519 TC2:08/1997)
+
+DirectorySystemProtocol {joint-iso-itu-t ds(5) module(1) dsp(12) 3} DEFINITIONS
+::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ distributedOperations, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE,
+ Code, OPERATION
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ ROS{}, Bind{}, Unbind{}, InvokeId
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ id-ac-directorySystemAC, id-rosObject-dspDSA, id-contract-dsp,
+ id-package-dspConnection, id-package-chainedRead, id-package-chainedSearch,
+ id-package-chainedModify, id-as-directorySystemAS
+ FROM ProtocolObjectIdentifiers protocolObjectIdentifiers
+ dSABind, dSAUnbind, chainedRead, chainedCompare, chainedAbandon, chainedList,
+ chainedSearch, chainedAddEntry, chainedRemoveEntry, chainedModifyEntry,
+ chainedModifyDN
+ FROM DistributedOperations distributedOperations;
+
+-- application contexts
+directorySystemAC APPLICATION-CONTEXT ::= {
+ CONTRACT dspContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directorySystemAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directorySystemAC
+}
+
+-- ROS objects
+dsp-dsa ROS-OBJECT-CLASS ::= {BOTH {dspContract}
+ ID id-rosObject-dspDSA
+}
+
+-- contracts
+dspContract CONTRACT ::= {
+ CONNECTION dspConnectionPackage
+ OPERATIONS OF
+ {chainedReadPackage | chainedSearchPackage | chainedModifyPackage}
+ ID id-contract-dsp
+}
+
+-- connection package
+dspConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND dSABind
+ UNBIND dSAUnbind
+ ID id-package-dspConnection
+}
+
+-- chained read package
+chainedReadPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedRead | chainedCompare | chainedAbandon}
+ ID id-package-chainedRead
+}
+
+-- chained search package
+chainedSearchPackage OPERATION-PACKAGE ::= {
+ OPERATIONS {chainedList | chainedSearch}
+ ID id-package-chainedSearch
+}
+
+-- chained modify package
+chainedModifyPackage OPERATION-PACKAGE ::= {
+ OPERATIONS
+ {chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+ ID id-package-chainedModify
+}
+
+-- abstract syntaxes
+directorySystemAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DSP-PDUs
+ IDENTIFIED BY id-as-directorySystemAS
+}
+
+DSP-PDUs ::= CHOICE {
+ basicRos ROS{{DSP-InvokeIDSet}, {DSP-Invokable}, {DSP-Returnable}},
+ bind Bind{dSABind},
+ unbind Unbind{dSAUnbind}
+}
+
+DSP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL)
+
+DSP-Invokable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+DSP-Returnable OPERATION ::=
+ {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch
+ | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry |
+ chainedModifyDN}
+
+END -- DirectorySystemProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DistributedOperations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DistributedOperations.asn
new file mode 100644
index 0000000000..72e791f10c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/DistributedOperations.asn
@@ -0,0 +1,181 @@
+-- Module DistributedOperations (X.518 TC2:08/1997)
+
+DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, directoryAbstractService, distributedOperations,
+ selectedAttributeTypes, basicAccessControl, dap, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ DistinguishedName, Name, RDNSequence, SearchRuleId, MRMapping
+ FROM InformationFramework informationFramework
+ PresentationAddress, ProtocolInformation, UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AuthenticationLevel
+ FROM BasicAccessControl basicAccessControl
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ directoryBind, directoryUnbind, read, compare, abandon, list, search,
+ addEntry, removeEntry, modifyEntry, modifyDN, referral, SecurityParameters,
+ CommonResults
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED{}
+ FROM EnhancedSecurity enhancedSecurity
+ id-errcode-dsaReferral
+ FROM DirectoryAccessProtocol dap;
+
+-- parameterized type for deriving chained operations
+chained{OPERATION:operation} OPERATION ::= {
+ ARGUMENT OPTIONALLY-PROTECTED
+ {SET {chainedArgument ChainingArguments,
+ argument [0] operation.&ArgumentType}}
+ RESULT OPTIONALLY-PROTECTED
+ {SET {chainedResult ChainingResults,
+ result [0] operation.&ResultType}}
+ ERRORS
+ {operation.&Errors EXCEPT referral | dsaReferral}
+ CODE operation.&operationCode
+}
+
+-- bind and unbind operations
+dSABind OPERATION ::= directoryBind
+
+dSAUnbind OPERATION ::= directoryUnbind
+
+-- chained operations
+chainedRead OPERATION ::= chained{read}
+
+chainedCompare OPERATION ::= chained{compare}
+
+chainedAbandon OPERATION ::= abandon
+
+chainedList OPERATION ::= chained{list}
+
+chainedSearch OPERATION ::= chained{search}
+
+chainedAddEntry OPERATION ::= chained{addEntry}
+
+chainedRemoveEntry OPERATION ::= chained{removeEntry}
+
+chainedModifyEntry OPERATION ::= chained{modifyEntry}
+
+chainedModifyDN OPERATION ::= chained{modifyDN}
+
+-- errors and parameters
+dsaReferral ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED
+ {SET {reference [0] ContinuationReference,
+ contextPrefix [1] DistinguishedName OPTIONAL,
+ COMPONENTS OF CommonResults}}
+ CODE id-errcode-dsaReferral
+}
+
+-- common arguments and results
+ChainingArguments ::= SET {
+ originator [0] DistinguishedName OPTIONAL,
+ targetObject [1] DistinguishedName OPTIONAL,
+ operationProgress
+ [2] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ traceInformation [3] TraceInformation,
+ aliasDereferenced [4] BOOLEAN DEFAULT FALSE,
+ aliasedRDNs [5] INTEGER OPTIONAL,
+ -- only present in 1988 systems
+ returnCrossRefs [6] BOOLEAN DEFAULT FALSE,
+ referenceType [7] ReferenceType DEFAULT superior,
+ info [8] DomainInfo OPTIONAL,
+ timeLimit [9] Time OPTIONAL,
+ securityParameters [10] SecurityParameters DEFAULT {},
+ entryOnly [11] BOOLEAN DEFAULT FALSE,
+ uniqueIdentifier [12] UniqueIdentifier OPTIONAL,
+ authenticationLevel [13] AuthenticationLevel OPTIONAL,
+ exclusions [14] Exclusions OPTIONAL,
+ excludeShadows [15] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [16] BOOLEAN DEFAULT FALSE,
+ operationIdentifier [17] INTEGER OPTIONAL,
+ searchRuleId [18] SearchRuleId OPTIONAL,
+ chainedRelaxation [19] MRMapping OPTIONAL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+ChainingResults ::= SET {
+ info [0] DomainInfo OPTIONAL,
+ crossReferences [1] SEQUENCE (SIZE (1..MAX)) OF CrossReference OPTIONAL,
+ securityParameters [2] SecurityParameters DEFAULT {},
+ alreadySearched [3] Exclusions OPTIONAL
+}
+
+CrossReference ::= SET {
+ contextPrefix [0] DistinguishedName,
+ accessPoint [1] AccessPointInformation,
+ chainingRequired [2] BOOLEAN DEFAULT FALSE
+}
+
+ReferenceType ::= ENUMERATED {
+ superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
+ supplier(5), master(6), immediateSuperior(7), self(8)}
+
+TraceInformation ::= SEQUENCE OF TraceItem
+
+TraceItem ::= SET {
+ dsa [0] Name,
+ targetObject [1] Name OPTIONAL,
+ operationProgress [2] OperationProgress
+}
+
+OperationProgress ::= SET {
+ nameResolutionPhase
+ [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)},
+ nextRDNToBeResolved [1] INTEGER OPTIONAL
+}
+
+DomainInfo ::= ABSTRACT-SYNTAX.&Type
+
+ContinuationReference ::= SET {
+ targetObject [0] Name,
+ aliasedRDNs [1] INTEGER OPTIONAL, -- only present in 1988 systems
+ operationProgress [2] OperationProgress,
+ rdnsResolved [3] INTEGER OPTIONAL,
+ referenceType [4] ReferenceType,
+ accessPoints [5] SET OF AccessPointInformation,
+ entryOnly [6] BOOLEAN DEFAULT FALSE,
+ exclusions [7] Exclusions OPTIONAL,
+ returnToDUA [8] BOOLEAN DEFAULT FALSE,
+ nameResolveOnMaster [9] BOOLEAN DEFAULT FALSE
+}
+
+AccessPoint ::= SET {
+ ae-title [0] Name,
+ address [1] PresentationAddress,
+ protocolInformation [2] SET OF ProtocolInformation OPTIONAL,
+ chainingRequired [3] BOOLEAN DEFAULT FALSE
+}
+
+AccessPointInformation ::= SET {
+ COMPONENTS OF MasterOrShadowAccessPoint,
+ additionalPoints [5] MasterAndShadowAccessPoints OPTIONAL
+}
+
+MasterOrShadowAccessPoint ::= SET {
+ COMPONENTS OF AccessPoint,
+ category [4] ENUMERATED {master(0), shadow(1)} DEFAULT master
+}
+
+MasterAndShadowAccessPoints ::= SET OF MasterOrShadowAccessPoint
+
+Exclusions ::= SET OF RDNSequence
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Document-Profile-Descriptor.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Document-Profile-Descriptor.asn
new file mode 100644
index 0000000000..d8c15b7afa
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Document-Profile-Descriptor.asn
@@ -0,0 +1,464 @@
+-- Module Document-Profile-Descriptor (T.415:03/1993)
+
+Document-Profile-Descriptor {2 8 1 5 6} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Document-Profile-Descriptor, Character-Data, Document-Reference,
+ Date-and-Time, Dates-and-Times, Personal-Name, Originators,
+ Other-User-Information, Local-File-References, Security-Information,
+ Document-Description,
+ External-References ,
+ Sealed-Doc-Bodyparts, ODA-Version;
+
+IMPORTS
+ Resource-Name, Object-or-Class-Identifier, Protected-Part-Identifier,
+ Style-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, Transparency, Colour, Dimension-Pair, One-Of-Four-Angles,
+ Border, Medium-Type, Comment-String, Content-Background-Colour,
+ Content-Foreground-Colour
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Content-Architecture-Class, Content-Type, Block-Alignment, Fill-Order
+ FROM Style-Descriptors -- see 7.11
+
+ Type-Of-Coding
+ FROM Text-Units -- see 7.13
+
+ Colour-Characteristics, Colour-Spaces-List, Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Content-Defaults, Character-Presentation-Feature,
+ Character-Coding-Attribute
+ FROM Character-Profile-Attributes {2 8 1 6 4
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Content-Defaults, Ra-Gr-Presentation-Feature,
+ Ra-Gr-Coding-Attribute
+ FROM Raster-Gr-Profile-Attributes {2 8 1 7 4
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Content-Defaults, Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute
+ FROM Geo-Gr-Profile-Attributes {2 8 1 8 4
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Font-Attribute-Set
+ FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2
+ } -- see ISO/IEC 9541-2
+ Document-Presentation-Time, Time-Scaling
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Document-Profile-Descriptor ::= SET {
+ generic-layout-structure [0] IMPLICIT NumericString OPTIONAL,
+ specific-layout-structure [1] IMPLICIT NumericString OPTIONAL,
+ generic-logical-structure [4] IMPLICIT NumericString OPTIONAL,
+ specific-logical-structure [5] IMPLICIT NumericString OPTIONAL,
+ presentation-styles [6] IMPLICIT NumericString OPTIONAL,
+ layout-styles [7] IMPLICIT NumericString OPTIONAL,
+ sealed-profiles [12] IMPLICIT NumericString OPTIONAL,
+ enciphered-profiles [13] IMPLICIT NumericString OPTIONAL,
+ preenciphered-bodyparts [14] IMPLICIT NumericString OPTIONAL,
+ postenciphered-bodyparts [15] IMPLICIT NumericString OPTIONAL,
+ -- for the generic structures,
+ -- 'partial-generator-set' is represented by "0", 'complete-generator-set'
+ -- is represented by "1", 'factor-set' is represented by "2";
+ -- for the other cases, the numeric string has the value 'present'
+ -- represented by "1"
+ external-document-class [9] Document-Reference OPTIONAL,
+ resource-document [10] Document-Reference OPTIONAL,
+ resources
+ [11] IMPLICIT SET OF
+ SET {resource-identifier Resource-Name,
+ object-class-identifier Object-or-Class-Identifier
+ } OPTIONAL,
+ document-characteristics [2] IMPLICIT Document-Characteristics,
+ document-management-attributes
+ [3] IMPLICIT Document-Management-Attributes OPTIONAL,
+ document-security-attributes
+ [16] IMPLICIT Document-Security-Attributes OPTIONAL,
+ links [17] IMPLICIT NumericString OPTIONAL,
+ link-classes [18] IMPLICIT NumericString OPTIONAL,
+ enciphered-links [19] IMPLICIT NumericString OPTIONAL,
+ temporal-relations [20] IMPLICIT NumericString OPTIONAL
+}
+
+Document-Characteristics ::= SET {
+ document-application-profile
+ CHOICE {a [0] IMPLICIT INTEGER {group-4-facsimile(2)},
+ b [4] IMPLICIT OBJECT IDENTIFIER} OPTIONAL,
+ doc-appl-profile-defaults
+ [10] IMPLICIT Doc-Appl-Profile-Defaults OPTIONAL,
+ document-architecture-class
+ [1] IMPLICIT INTEGER {formatted(0), processable(1),
+ formatted-processable(2)},
+ content-architecture-classes [5] IMPLICIT SET OF OBJECT IDENTIFIER,
+ interchange-format-class [6] IMPLICIT INTEGER {if-a(0), if-b(1)},
+ oda-version [8] IMPLICIT ODA-Version,
+ alternative-feature-sets
+ [11] IMPLICIT SET OF SET OF OBJECT IDENTIFIER OPTIONAL,
+ non-basic-doc-characteristics
+ [2] IMPLICIT Non-Basic-Doc-Characteristics OPTIONAL,
+ non-basic-struc-characteristics
+ [3] IMPLICIT Non-Basic-Struc-Characteristics OPTIONAL,
+ additional-doc-characteristics
+ [9] IMPLICIT Additional-Doc-Characteristics OPTIONAL
+}
+
+ODA-Version ::= SEQUENCE {
+ standard-or-recommendation Character-Data,
+ publication-date Date-and-Time
+}
+
+Doc-Appl-Profile-Defaults ::= SET {
+ document-architecture-defaults
+ [0] IMPLICIT Document-Architecture-Defaults OPTIONAL,
+ character-content-defaults
+ [1] IMPLICIT Character-Content-Defaults OPTIONAL,
+ raster-gr-content-defaults
+ [2] IMPLICIT Raster-Gr-Content-Defaults OPTIONAL,
+ geo-gr-content-defaults
+ [3] IMPLICIT Geo-Gr-Content-Defaults OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of content defaults:
+ -- [4] videotex, for use in conjunction with CCITT Recommendations
+ -- [5] audio
+ -- [6] dynamic-graphics
+ external-content-architecture-defaults
+ [7] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Document-Architecture-Defaults ::= SET {
+ content-architecture-class
+ CHOICE {a [0] IMPLICIT Content-Architecture-Class,
+ b [1] IMPLICIT Content-Type} OPTIONAL,
+ page-dimensions [2] IMPLICIT Measure-Pair OPTIONAL,
+ transparency [3] IMPLICIT Transparency OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [11] Colour-Expression OPTIONAL,
+ object-colour-table [12] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [13] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [14] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [15] IMPLICIT Colour-Table OPTIONAL,
+ layout-path [5] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ medium-type [6] IMPLICIT Medium-Type OPTIONAL,
+ block-alignment [7] IMPLICIT Block-Alignment OPTIONAL,
+ border [8] IMPLICIT Border OPTIONAL,
+ page-position [9] IMPLICIT Measure-Pair OPTIONAL,
+ type-of-coding [10] Type-Of-Coding OPTIONAL
+}
+
+Non-Basic-Doc-Characteristics ::= SET {
+ profile-character-sets [5] IMPLICIT OCTET STRING OPTIONAL,
+ comments-character-sets [1] IMPLICIT OCTET STRING OPTIONAL,
+ alternative-repr-char-sets [6] IMPLICIT OCTET STRING OPTIONAL,
+ -- each of these octet strings represents a string of escape sequences
+ page-dimensions [2] IMPLICIT SET OF Dimension-Pair OPTIONAL,
+ medium-types [8] IMPLICIT SET OF Medium-Type OPTIONAL,
+ layout-paths
+ [21] IMPLICIT SET OF One-Of-Four-Angles OPTIONAL,
+ transparencies [22] IMPLICIT SET OF Transparency OPTIONAL,
+ protections [23] IMPLICIT SET OF Protection OPTIONAL,
+ block-alignments
+ [24] IMPLICIT SET OF Block-Alignment OPTIONAL,
+ fill-orders [25] IMPLICIT SET OF Fill-Order OPTIONAL,
+ colours [26] IMPLICIT SET OF Colour OPTIONAL,
+ colours-of-layout-object
+ [30] IMPLICIT SET OF Colour-Expression OPTIONAL,
+ object-colour-tables [31] IMPLICIT SET OF Colour-Table OPTIONAL,
+ content-background-colours
+ [32] IMPLICIT SET OF Content-Background-Colour OPTIONAL,
+ content-foreground-colours
+ [33] IMPLICIT SET OF Content-Foreground-Colour OPTIONAL,
+ content-colour-tables [34] IMPLICIT SET OF Colour-Table OPTIONAL,
+ borders [27] IMPLICIT SET OF Border OPTIONAL,
+ page-positions [28] IMPLICIT SET OF Measure-Pair OPTIONAL,
+ types-of-coding [29] IMPLICIT SET OF Type-Of-Coding OPTIONAL,
+ character-presentation-features
+ [9] IMPLICIT SET OF Character-Presentation-Feature OPTIONAL,
+ ra-gr-presentation-features
+ [4] IMPLICIT SET OF Ra-Gr-Presentation-Feature OPTIONAL,
+ geo-gr-presentation-features
+ [12] IMPLICIT SET OF Geo-Gr-Presentation-Feature OPTIONAL,
+ character-coding-attributes
+ [16] IMPLICIT SET OF Character-Coding-Attribute OPTIONAL,
+ ra-gr-coding-attributes
+ [3] IMPLICIT SET OF Ra-Gr-Coding-Attribute OPTIONAL,
+ geo-gr-coding-attributes
+ [17] IMPLICIT SET OF Geo-Gr-Coding-Attribute OPTIONAL,
+ ext-non-basic-pres-features [10] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL,
+ ext-non-basic-coding-attributes [11] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Non-Basic-Struc-Characteristics ::= SET {
+ number-of-objects-per-page [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Additional-Doc-Characteristics ::= SET {
+ unit-scaling [3] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER} OPTIONAL,
+ fonts-list [2] IMPLICIT Fonts-List OPTIONAL,
+ colour-characteristics [0] IMPLICIT Colour-Characteristics OPTIONAL,
+ colour-spaces-list [1] IMPLICIT Colour-Spaces-List OPTIONAL,
+ assured-reproduction-areas [5] IMPLICIT Assured-Reproduction-Areas OPTIONAL,
+ time-scaling [6] IMPLICIT Time-Scaling OPTIONAL,
+ document-presentation-time [7] IMPLICIT Document-Presentation-Time OPTIONAL
+}
+
+Fonts-List ::=
+ SET OF SET {font-identifier INTEGER,
+ font-reference Font-Reference}
+
+Font-Reference ::= SET {
+ user-visible-name [0] IMPLICIT Comment-String OPTIONAL,
+ user-readable-comment [1] IMPLICIT Comment-String OPTIONAL,
+ reference-properties
+ [2] IMPLICIT SET OF
+ SET {precedence-number [0] IMPLICIT INTEGER OPTIONAL,
+ properties [1] IMPLICIT Font-Attribute-Set,
+ user-readable-comment
+ [2] IMPLICIT Comment-String OPTIONAL}
+}
+
+Assured-Reproduction-Areas ::=
+ SET OF
+ SET {nominal-page-size [0] IMPLICIT Measure-Pair,
+ assured-reproduction-area
+ [1] SET {position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Measure-Pair}}
+
+Document-Management-Attributes ::= SET {
+ document-description [7] IMPLICIT Document-Description OPTIONAL,
+ dates-and-times [0] IMPLICIT Dates-and-Times OPTIONAL,
+ originators [1] IMPLICIT Originators OPTIONAL,
+ other-user-information [2] IMPLICIT Other-User-Information OPTIONAL,
+ external-references [3] IMPLICIT External-References OPTIONAL,
+ local-file-references [4] IMPLICIT Local-File-References OPTIONAL,
+ content-attributes [5] IMPLICIT Content-Attributes OPTIONAL,
+ security-information [6] IMPLICIT Security-Information OPTIONAL
+}
+
+Document-Description ::= SET {
+ title [0] IMPLICIT Character-Data OPTIONAL,
+ subject [1] IMPLICIT Character-Data OPTIONAL,
+ document-type [2] IMPLICIT Character-Data OPTIONAL,
+ abstract [3] IMPLICIT Character-Data OPTIONAL,
+ keywords [4] IMPLICIT SET OF Character-Data OPTIONAL,
+ document-reference [5] Document-Reference OPTIONAL
+}
+
+Character-Data ::= [APPLICATION 3] IMPLICIT OCTET STRING
+
+-- string of characters from the sets designated by the attribute
+-- "profile character sets", plus space, carriage return and line feed
+Document-Reference ::= CHOICE {
+ unique-reference OBJECT IDENTIFIER,
+ descriptive-reference Character-Data
+}
+
+Dates-and-Times ::= SET {
+ document-date-and-time [0] IMPLICIT Date-and-Time OPTIONAL,
+ creation-date-and-time [1] IMPLICIT Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] IMPLICIT SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] IMPLICIT Date-and-Time OPTIONAL,
+ start-date-and-time [4] IMPLICIT Date-and-Time OPTIONAL,
+ purge-date-and-time [5] IMPLICIT Date-and-Time OPTIONAL,
+ release-date-and-time [6] IMPLICIT Date-and-Time OPTIONAL,
+ revision-history
+ [7] IMPLICIT SEQUENCE OF
+ SET {revision-date-and-time
+ [0] IMPLICIT Date-and-Time OPTIONAL,
+ version-identifier
+ [1] IMPLICIT Character-Data OPTIONAL,
+ revisers
+ [2] IMPLICIT SET OF
+ SET {names
+ [0] IMPLICIT SET OF
+ Personal-Name
+ OPTIONAL,
+ position
+ [1] IMPLICIT Character-Data
+ OPTIONAL,
+ organization
+ [2] IMPLICIT Character-Data
+ OPTIONAL} OPTIONAL,
+ version-reference
+ [3] Document-Reference OPTIONAL,
+ user-comments
+ [4] IMPLICIT Character-Data OPTIONAL} OPTIONAL
+}
+
+Date-and-Time ::= [APPLICATION 4] IMPLICIT PrintableString
+
+Originators ::= SET {
+ organizations [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ preparers
+ [1] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ owners
+ [2] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ authors
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL
+}
+
+Personal-Name ::= [APPLICATION 6] IMPLICIT SET {
+ surname [0] IMPLICIT Character-Data,
+ givenname [1] IMPLICIT Character-Data OPTIONAL,
+ initials [2] IMPLICIT Character-Data OPTIONAL,
+ generation-qualifier [3] IMPLICIT Character-Data OPTIONAL
+}
+
+Other-User-Information ::= SET {
+ copyright
+ [0] IMPLICIT SET OF
+ SET {copyright-information
+ [0] IMPLICIT SET OF Character-Data OPTIONAL,
+ copyright-dates
+ [1] IMPLICIT SET OF Date-and-Time OPTIONAL} OPTIONAL,
+ status [1] IMPLICIT Character-Data OPTIONAL,
+ user-specific-codes [2] IMPLICIT SET OF Character-Data OPTIONAL,
+ distribution-list
+ [3] IMPLICIT SEQUENCE OF
+ SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL,
+ organization [1] IMPLICIT Character-Data OPTIONAL
+ } OPTIONAL,
+ additional-information [5] TYPE-IDENTIFIER.&Type OPTIONAL
+}
+
+External-References ::=
+ SET {
+ references-to-other-documents
+ [0] IMPLICIT SET OF Document-Reference OPTIONAL,
+ superseded-documents
+ [1] IMPLICIT SET OF Document-Reference OPTIONAL
+}
+
+Local-File-References ::=
+ SET OF
+ SET {file-name [0] IMPLICIT Character-Data OPTIONAL,
+ location [1] IMPLICIT Character-Data OPTIONAL,
+ user-comments [2] IMPLICIT Character-Data OPTIONAL}
+
+Content-Attributes ::= SET {
+ document-size [1] IMPLICIT INTEGER OPTIONAL,
+ number-of-pages [2] IMPLICIT INTEGER OPTIONAL,
+ languages [4] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Security-Information ::= SET {
+ authorization
+ CHOICE {person [0] IMPLICIT Personal-Name,
+ organization [4] IMPLICIT Character-Data} OPTIONAL,
+ security-classification [1] IMPLICIT Character-Data OPTIONAL,
+ access-rights [2] IMPLICIT SET OF Character-Data OPTIONAL
+}
+
+Document-Security-Attributes ::= SET {
+ sealed-info-encoding [7] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ oda-security-label [0] IMPLICIT Oda-Security-Label OPTIONAL,
+ sealed-doc-profiles [1] IMPLICIT Sealed-Doc-Profiles OPTIONAL,
+ presealed-doc-bodyparts [2] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ postsealed-doc-bodyparts [3] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL,
+ enciphered-doc-profiles [4] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ preenciphered-doc-bodyparts [5] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ postenciphered-doc-bodyparts [6] IMPLICIT Protected-Doc-Parts OPTIONAL,
+ sealed-links [8] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL
+}
+
+Oda-Security-Label ::= SEQUENCE {
+ oda-label-text [0] IMPLICIT Character-Data OPTIONAL,
+ oda-label-data [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Seal-Data ::= SEQUENCE {
+ seal-method [0] IMPLICIT Seal-Method OPTIONAL,
+ sealed-information [1] IMPLICIT Sealed-Information OPTIONAL,
+ seal [2] IMPLICIT OCTET STRING
+}
+
+Seal-Method ::= SEQUENCE {
+ fingerprint-method [0] IMPLICIT Method-Information OPTIONAL,
+ fingerprint-key-information [1] IMPLICIT Key-Information OPTIONAL,
+ sealing-method [2] IMPLICIT Method-Information OPTIONAL,
+ sealing-key-information [3] IMPLICIT Key-Information OPTIONAL
+}
+
+Sealed-Information ::= SEQUENCE {
+ fingerprint [0] IMPLICIT OCTET STRING OPTIONAL,
+ time [1] IMPLICIT Date-and-Time OPTIONAL,
+ sealing-orig-id [2] IMPLICIT Personal-Name OPTIONAL,
+ location [3] IMPLICIT Location OPTIONAL
+}
+
+Method-Information ::= SEQUENCE {
+ unique-method-info [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-method-info [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Key-Information ::= SEQUENCE {
+ method-information [0] IMPLICIT Method-Information OPTIONAL,
+ additional-information [1] IMPLICIT Additional-Information OPTIONAL
+}
+
+Additional-Information ::= SEQUENCE {
+ descriptive-information [0] IMPLICIT Character-Data OPTIONAL,
+ octet-string [1] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Location ::= SEQUENCE {
+ unique-location [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ descriptive-location [1] IMPLICIT Character-Data OPTIONAL
+}
+
+Sealed-Doc-Profiles ::=
+ SET OF
+ SEQUENCE {sealed-doc-prof-descriptor-id
+ [0] IMPLICIT Protected-Part-Identifier,
+ privileged-recipients
+ [1] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-prof-seal [2] IMPLICIT Seal-Data}
+
+Sealed-Doc-Bodyparts ::=
+ SET OF
+ SEQUENCE {seal-id [0] IMPLICIT INTEGER,
+ sealed-constituents [1] IMPLICIT Sealed-Constituents,
+ privileged-recipients [2] IMPLICIT SET OF Personal-Name OPTIONAL,
+ doc-bodypart-seal [3] IMPLICIT Seal-Data}
+
+Sealed-Constituents ::= SEQUENCE {
+ object-class-identifiers
+ [0] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ presentation-style-identifiers
+ [1] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ layout-style-identifiers
+ [2] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL,
+ object-identifiers
+ [3] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL
+}
+
+Protected-Doc-Parts ::=
+ SET OF
+ SEQUENCE {protected-doc-part-id [0] IMPLICIT Protected-Part-Identifier,
+ priv-recipients-info [1] IMPLICIT SET OF Priv-Recipients-Info
+ }
+
+Priv-Recipients-Info ::= SEQUENCE {
+ privileged-recipients [0] IMPLICIT SET OF Personal-Name OPTIONAL,
+ encipherment-method-info [1] IMPLICIT Method-Information OPTIONAL,
+ encipherment-key-info [2] IMPLICIT Key-Information OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/EnhancedSecurity.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/EnhancedSecurity.asn
new file mode 100644
index 0000000000..9991a59454
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/EnhancedSecurity.asn
@@ -0,0 +1,363 @@
+-- Module EnhancedSecurity (X.501:08/1997)
+EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 1}
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ authenticationFramework, basicAccessControl, certificateExtensions,
+ id-at, id-avc, id-mr, informationFramework, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, AttributeType, Context, CONTEXT, MATCHING-RULE,
+ Name, objectIdentifierMatch, SupportedAttributes
+ FROM InformationFramework informationFramework
+ AttributeTypeAndValue
+ FROM BasicAccessControl basicAccessControl
+ -- from ITU-T Rec. X.509 | ISO/IEC 9594-8
+ AlgorithmIdentifier, CertificateSerialNumber, ENCRYPTED{}, HASH{},
+ SIGNED{}
+ FROM AuthenticationFramework authenticationFramework
+ GeneralName, KeyIdentifier
+ FROM CertificateExtensions certificateExtensions
+ ub-privacy-mark-length
+ FROM UpperBounds upperBounds;
+
+-- from GULS
+-- SECURITY-TRANSFORMATION, PROTECTION-MAPPING, PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+--dirSignedTransformation, KEY-INFORMATION
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- gulsSecurityTransformations (3) }
+-- signed
+-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1)
+-- dirProtectionMappings (4) };
+-- The "signed" Protection Mapping and associated "dirSignedTransformations" imported
+-- from the Generic Upper Layers Security specification (ITU-T Rec. X.830 | ISO/IEC 11586-1)
+-- results in identical encoding as the same data type used with the SIGNED as defined in
+-- ITU-T REC. X.509 | ISO/IEC 9594-8
+-- The three statements below are provided temporarily to allow signed operations to be supported as in edition 3.
+OPTIONALLY-PROTECTED{Type} ::= CHOICE {unsigned Type,
+ signed SIGNED{Type}
+}
+
+OPTIONALLY-PROTECTED-SEQ{Type} ::= CHOICE {
+ unsigned Type,
+ signed [0] SIGNED{Type}
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- genEncryptedTransform {KEY-INFORMATION: SupportedKIClasses } SECURITY-TRANSFORMATION ::=
+-- {
+-- IDENTIFIER { enhancedSecurity gen-encrypted(2) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1(1) ber(1) }
+-- This default for initial encoding rules may be overridden
+-- using a static protected parameter (initEncRules).
+-- XFORMED-DATA-TYPE SEQUENCE {
+-- initEncRules OBJECT IDENTIFIER DEFAULT { joint-iso-itu-t asn1(1) ber(1) },
+-- encAlgorithm AlgorithmIdentifier OPTIONAL, -- -- Identifies the encryption algorithm,
+-- keyInformation SEQUENCE {
+-- kiClass KEY-INFORMATION.&kiClass ({SupportedKIClasses}),
+-- keyInfo KEY-INFORMATION.&KiType ({SupportedKIClasses} {@kiClass})
+-- } OPTIONAL,
+-- Key information may assume various formats, governed by supported members
+-- of the KEY-INFORMATION information object class (defined in ITU-T
+-- Rec. X.830 | ISO/IEC 11586-1)
+-- encData BIT STRING ( CONSTRAINED BY {
+-- the encData value must be generated following
+-- the procedure specified in 17.3.1-- -- })
+-- }
+-- }
+-- encrypted PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { genEncryptedTransform } }
+-- signedAndEncrypt PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION { signedAndEncryptedTransform } }
+-- signedAndEncryptedTransform {KEY-INFORMATION: SupportedKIClasses}
+-- SECURITY-TRANSFORMATION ::= {
+-- IDENTIFIER { enhancedSecurity dir-encrypt-sign (1) }
+-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1 (1) ber-derived (2) distinguished-encoding (1) }
+-- XFORMED-DATA-TYPE
+-- PROTECTED
+-- {
+-- PROTECTED
+-- {
+-- ABSTRACT-SYNTAX.&Type,
+-- signed
+-- },
+-- encrypted
+-- }
+-- }
+-- OPTIONALLY-PROTECTED {ToBeProtected, PROTECTION-MAPPING:generalProtection} ::=
+-- CHOICE {
+-- toBeProtected ToBeProtected,
+--no DIRQOP specified for operation
+-- signed PROTECTED {ToBeProtected, signed},
+--DIRQOP is Signed
+-- protected [APPLICATION 0]
+-- PROTECTED { ToBeProtected, generalProtection } }
+--DIRQOP is other than Signed
+-- defaultDirQop ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- USAGE directoryOperation
+-- ID id-at-defaultDirQop }
+-- DIRQOP ::= CLASS
+-- This information object class is used to define the quality of protection
+-- required throughout directory operation.
+-- The Quality Of Protection can be signed, encrypted, signedAndEncrypt
+-- {
+-- &dirqop-Id OBJECT IDENTIFIER UNIQUE,
+-- &dirBindError-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dirErrors-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapReadRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapCompareRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapListRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapSearchRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAbandonRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapAddEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapRemoveEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyEntryRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dapModifyDNRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dspChainedOp-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispShadowAgreeInfo-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispCoorShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispUpdateShadowRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dispRequestShadowUpdateRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopEstablishOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopModifyOpBindRes-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindArg-QOP PROTECTION-MAPPING:protectionReqd,
+-- &dopTermOpBindRes-QOP PROTECTION-MAPPING:protectionReqd
+-- }
+-- WITH SYNTAX
+-- {
+-- DIRQOP-ID &dirqop-Id
+-- DIRECTORYBINDERROR-QOP &dirBindError-QOP
+-- DIRERRORS-QOP &dirErrors-QOP
+-- DAPREADARG-QOP &dapReadArg-QOP
+-- DAPREADRES-QOP &dapReadRes-QOP
+-- DAPCOMPAREARG-QOP &dapCompareArg-QOP
+-- DAPCOMPARERES-QOP &dapCompareRes-QOP
+-- DAPLISTARG-QOP &dapListArg-QOP
+-- DAPLISTRES-QOP &dapListRes-QOP
+-- DAPSEARCHARG-QOP &dapSearchArg-QOP
+-- DAPSEARCHRES-QOP &dapSearchRes-QOP
+-- DAPABANDONARG-QOP &dapAbandonArg-QOP
+-- DAPABANDONRES-QOP &dapAbandonRes-QOP
+-- DAPADDENTRYARG-QOP &dapAddEntryArg-QOP
+-- DAPADDENTRYRES-QOP &dapAddEntryRes-QOP
+-- DAPREMOVEENTRYARG-QOP &dapRemoveEntryArg-QOP
+-- DAPREMOVEENTRYRES-QOP &dapRemoveEntryRes-QOP
+-- DAPMODIFYENTRYARG-QOP &dapModifyEntryArg-QOP
+-- DAPMODIFYENTRYRES-QOP &dapModifyEntryRes-QOP
+-- DAPMODIFYDNARG-QOP &dapModifyDNArg-QOP
+-- DAPMODIFYDNRES-QOP &dapModifyDNRes-QOP
+-- DSPCHAINEDOP-QOP &dspChainedOp-QOP
+-- DISPSHADOWAGREEINFO-QOP &dispShadowAgreeInfo-QOP
+-- DISPCOORSHADOWARG-QOP &dispCoorShadowArg-QOP
+-- DISPCOORSHADOWRES-QOP &dispCoorShadowRes-QOP
+-- DISPUPDATESHADOWARG-QOP &dispUpdateShadowArg-QOP
+-- DISPUPDATESHADOWRES-QOP &dispUpdateShadowRes-QOP
+-- DISPREQUESTSHADOWUPDATEARG-QOP &dispRequestShadowUpdateArg-QOP
+-- DISPREQUESTSHADOWUPDATERES-QOP &dispRequestShadowUpdateRes-QOP
+-- DOPESTABLISHOPBINDARG-QOP &dopEstablishOpBindArg-QOP
+-- DOPESTABLISHOPBINDRES-QOP &dopEstablishOpBindRes-QOP
+-- DOPMODIFYOPBINDARG-QOP &dopModifyOpBindArg-QOP
+-- DOPMODIFYOPBINDRES-QOP &dopModifyOpBindRes-QOP
+-- DOPTERMINATEOPBINDARG-QOP &dopTermOpBindArg-QOP
+-- DOPTERMINATEOPBINDRES-QOP &dopTermOpBindRes-QOP
+-- }
+attributeValueSecurityLabelContext CONTEXT ::= {
+ WITH SYNTAX
+ SignedSecurityLabel -- At most one security label context can be assigned to an
+ -- attribute value
+ ID id-avc-attributeValueSecurityLabelContext
+}
+
+SignedSecurityLabel ::=
+ SIGNED
+ {SEQUENCE {attHash HASH{AttributeTypeAndValue},
+ issuer Name OPTIONAL, -- name of labelling authority
+ keyIdentifier KeyIdentifier OPTIONAL,
+ securityLabel SecurityLabel}}
+
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}(ALL EXCEPT ({ --none, at least one component shall be presen--}))
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..MAX) OF SecurityCategory
+
+clearance ATTRIBUTE ::= {WITH SYNTAX Clearance
+ ID id-at-clearance
+}
+
+Clearance ::= SEQUENCE {
+ policyId OBJECT IDENTIFIER,
+ classList ClassList DEFAULT {unclassified},
+ securityCategories SET SIZE (1..MAX) OF SecurityCategory OPTIONAL
+}
+
+ClassList ::= BIT STRING {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ topSecret(5)}
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] EXPLICIT SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+attributeIntegrityInfo ATTRIBUTE ::= {
+ WITH SYNTAX AttributeIntegrityInfo
+ ID id-at-attributeIntegrityInfo
+}
+
+AttributeIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {scope Scope, -- Identifies the attributes protected
+ signer Signer OPTIONAL, -- Authority or data originators name
+ attribsHash AttribsHash}} -- Hash value of protected attributes
+
+Signer ::= CHOICE {
+ thisEntry [0] EXPLICIT ThisEntry,
+ thirdParty [1] SpecificallyIdentified
+}
+
+ThisEntry ::= CHOICE {onlyOne NULL,
+ specific IssuerAndSerialNumber
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serial CertificateSerialNumber
+}
+
+SpecificallyIdentified ::= SEQUENCE {
+ name GeneralName,
+ issuer GeneralName OPTIONAL,
+ serial CertificateSerialNumber OPTIONAL
+}
+(WITH COMPONENTS {
+ ...,
+ issuer PRESENT,
+ serial PRESENT
+ } | (WITH COMPONENTS {
+ ...,
+ issuer ABSENT,
+ serial ABSENT
+ }))
+
+Scope ::= CHOICE {
+ wholeEntry [0] NULL, -- Signature protects all attribute values in this entry
+ selectedTypes [1] SelectedTypes
+ -- Signature protects all attribute values of the selected attribute types
+}
+
+SelectedTypes ::= SEQUENCE SIZE (1..MAX) OF AttributeType
+
+AttribsHash ::= HASH{SEQUENCE SIZE (1..MAX) OF Attribute}
+
+-- Attribute type and values with associated context values for the selected Scope
+attributeValueIntegrityInfoContext CONTEXT ::= {
+ WITH SYNTAX AttributeValueIntegrityInfo
+ ID id-avc-attributeValueIntegrityInfoContext
+}
+
+AttributeValueIntegrityInfo ::=
+ SIGNED
+ {SEQUENCE {signer Signer OPTIONAL, -- Authority or data originators name
+ aVIHash AVIHash}} -- Hash value of protected attribute
+
+AVIHash ::= HASH{AttributeTypeValueContexts}
+
+-- Attribute type and value with associated context values
+AttributeTypeValueContexts ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context OPTIONAL
+}
+
+-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated.
+-- EncryptedAttributeSyntax {AttributeSyntax} ::= SEQUENCE {
+-- keyInfo SEQUENCE OF KeyIdOrProtectedKey,
+-- encAlg AlgorithmIdentifier,
+-- encValue ENCRYPTED { AttributeSyntax } }
+-- KeyIdOrProtectedKey ::= SEQUENCE {
+-- keyIdentifier [0] KeyIdentifier OPTIONAL,
+-- protectedKeys [1] ProtectedKey OPTIONAL }
+-- At least one key identifier or protected key must be present
+-- ProtectedKey ::= SEQUENCE {
+-- authReaders AuthReaders,-- -- if absent, use attribute in authorized reader entry
+-- keyEncAlg AlgorithmIdentifier OPTIONAL, -- -- algorithm to encrypt encAttrKey
+-- encAttKey EncAttKey }
+-- confidentiality key protected with authorized user's
+-- protection mechanism
+-- AuthReaders ::= SEQUENCE OF Name
+-- EncAttKey ::= PROTECTED {SymmetricKey, keyProtection}
+-- SymmetricKey ::= BIT STRING
+-- keyProtection PROTECTION-MAPPING ::= {
+-- SECURITY-TRANSFORMATION {genEncryption} }
+-- confKeyInfo ATTRIBUTE ::= {
+-- WITH SYNTAX ConfKeyInfo
+-- EQUALITY MATCHING RULE readerAndKeyIDMatch
+-- ID id-at-confKeyInfo }
+-- ConfKeyInfo ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- protectedKey ProtectedKey }
+-- readerAndKeyIDMatch MATCHING-RULE ::= {
+-- SYNTAX ReaderAndKeyIDAssertion
+-- ID id-mr-readerAndKeyIDMatch }
+-- ReaderAndKeyIDAssertion ::= SEQUENCE {
+-- keyIdentifier KeyIdentifier,
+-- authReaders AuthReaders OPTIONAL }
+-- Object identifier assignments
+-- attributes
+id-at-clearance OBJECT IDENTIFIER ::=
+ {id-at 55}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+-- matching rules
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+-- contexts
+id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::=
+ {id-avc 3}
+
+id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+
+END -- EnhancedSecurity
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/External-References.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/External-References.asn
new file mode 100644
index 0000000000..9a7d4936a6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/External-References.asn
@@ -0,0 +1,49 @@
+-- Module External-References (T.422:08/1995)
+
+External-References {2 8 1 12 1} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS External-References-List, Reference-Name;
+
+IMPORTS
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see 7.4
+ DOR
+ FROM DOR-definition {2 4 0}
+ -- see ISO/IEC 10031-2
+ DistinguishedName
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3};
+
+-- see ITU-T Rec. X.501 � ISO/IEC 9594-2
+External-References-List ::=
+ SET OF
+ SET {reference-name [1] Reference-Name,
+ external-entity [2] External-Entity,
+ location-rule [3] Location-Expression OPTIONAL}
+
+Reference-Name ::= PrintableString
+
+External-Entity ::= CHOICE {
+ external-info [0] External-Information-Name,
+ object-id [1] OBJECT IDENTIFIER,
+ dor [2] DOR,
+ distinguished [3] DistinguishedName,
+ associated-info [4] Associated-Information-Name
+}
+
+External-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+Associated-Information-Name ::= SEQUENCE {
+ string [0] PrintableString,
+ object-id [1] OBJECT IDENTIFIER OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GULSProtectionMappings.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GULSProtectionMappings.asn
new file mode 100644
index 0000000000..9b6a426ca2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GULSProtectionMappings.asn
@@ -0,0 +1,71 @@
+-- Module GULSProtectionMappings (X.830:04/1995)
+
+GULSProtectionMappings {joint-iso-itu-t genericULS(20) modules(1)
+ gulsProtectionMappings(5)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- These protection mappings are more versatile that the
+-- preceding protection mappings which were specifically designed
+-- to generate identical bit-encodings as the Directory
+-- Authentication Framework parameterized types.
+-- EXPORTS All
+IMPORTS
+ notation, gulsSecurityTransformations
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ PROTECTION-MAPPING
+ FROM Notation notation
+ dirEncryptedTransformation, gulsSignedTransformation{},
+ gulsSignatureTransformation, symmetricKeyInformation,
+ asymmetricKeyInformation
+ FROM GulsSecurityTransformations gulsSecurityTransformations;
+
+-- **********************************
+-- confidentiality Protection Mapping
+-- **********************************
+-- This protection mapping enables the notation
+-- PROTECTED {BaseType, confidentiality}
+-- to map to either dirEncryptedTransformation or to no transformation
+-- at the choice of the encoding system, dependent upon local security
+-- policy and other local environment considerations.
+-- Security Service: confidentiality
+confidentiality PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION {dirEncryptedTransformation}
+ BYPASS-PERMITTED TRUE
+}
+
+-- ******************************
+-- GULS signed Protection Mapping
+-- ******************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signed}
+-- to map to the gulsSignedTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signed PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignedTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+-- *********************************
+-- GULS signature Protection Mapping
+-- *********************************
+-- This protection mapping causes the notation
+-- PROTECTED {BaseType, signature}
+-- to map to the gulsSignatureTransformation.
+-- Security Service: data origin authentication, data integrity and
+-- (in certain situations) non-repudiation.
+signature PROTECTION-MAPPING ::= {
+ SECURITY-TRANSFORMATION
+ {gulsSignatureTransformation
+ {{symmetricKeyInformation | asymmetricKeyInformation}}}
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GenericProtectingTransferSyntax.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GenericProtectingTransferSyntax.asn
new file mode 100644
index 0000000000..c59451dcdb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GenericProtectingTransferSyntax.asn
@@ -0,0 +1,66 @@
+-- Module GenericProtectingTransferSyntax (X.833:04/1995)
+
+GenericProtectingTransferSyntax {joint-iso-itu-t genericULS(20) modules(1)
+ genericProtectingTransferSyntax(7)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+EXPORTS SyntaxStructure{};
+
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, ExternalSAID
+ FROM Notation notation;
+
+SyntaxStructure{SECURITY-TRANSFORMATION:ValidSTs} ::= CHOICE {
+ firstPdvExplicit FirstPdvExplicit{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of a presentation-context-bound or
+ -- single-item-bound security association.
+ firstPdvExternal FirstPdvExternal{{ValidSTs}},
+ -- To be used on the first PDV of a protecting presentation
+ -- context, or a protected PDV sent outside a presentation
+ -- context, in the case of an externally established
+ -- security association.
+ subsequentPdv SubsequentPdv{{ValidSTs}}
+ -- To be used on a subsequent PDV in a protecting
+ -- presentation context.
+}
+
+FirstPdvExplicit{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ transformationId SECURITY-TRANSFORMATION.&sT-Identifier({ValidSTs}),
+ staticUnprotParm
+ SECURITY-TRANSFORMATION.&StaticUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm
+ ({ValidSTs}{@transformationId}) OPTIONAL,
+ xformedData
+ SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}{@transformationId})
+}
+
+FirstPdvExternal{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ externalSAID ExternalSAID,
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is as implied
+ -- by externalSAID
+}
+
+SubsequentPdv{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE {
+ dynamicUnprotParm
+ SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL,
+ xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs})
+ -- Actual member of ValidSTs is implied
+ -- by presentation context
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..60acbb3b5c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn
@@ -0,0 +1,16 @@
+-- Module Geo-Gr-Coding-Attributes (T.418:03/1993)
+
+Geo-Gr-Coding-Attributes {2 8 1 8 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Geo-Gr-Coding-Attributes;
+
+Geo-Gr-Coding-Attributes ::= SET {
+}
+
+-- no geometric graphics coding attributes are defined
+-- in this Specification
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..84c1ee9851
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn
@@ -0,0 +1,265 @@
+-- Module Geo-Gr-Presentation-Attributes (T.418:03/1993)
+
+Geo-Gr-Presentation-Attributes {2 8 1 8 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geometric-Graphics-Attributes, Line-Rendition, Marker-Rendition,
+ Text-Rendition, Filled-Area-Rendition, Edge-Rendition,
+ Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles;
+
+Geometric-Graphics-Attributes ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+ASF-Type ::= ENUMERATED {bundled(0), individual(1)}
+
+Colour ::= CHOICE {indexed [0] INTEGER,
+ direct [1] RGB
+}
+
+RGB ::= SEQUENCE {red REAL,
+ green REAL,
+ blue REAL
+}
+
+SpecificationMode ::= ENUMERATED {absolute(0), scaled(1)}
+
+Line-Rendition ::= SEQUENCE {
+ line-width-specification-mode [0] SpecificationMode OPTIONAL,
+ line-bundle-index [1] INTEGER OPTIONAL,
+ line-type [2] INTEGER OPTIONAL,
+ line-width [3] Scaled-or-Absolute OPTIONAL,
+ line-colour [4] Colour OPTIONAL,
+ line-aspect-source-flags
+ [5] SEQUENCE {line-type-asf ASF-Type,
+ line-width-asf ASF-Type,
+ line-colour-asf ASF-Type} OPTIONAL,
+ line-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {line-bundle-index INTEGER,
+ line-bundle-representation
+ SEQUENCE {line-type INTEGER,
+ line-width Scaled-or-Absolute,
+ line-colour Colour}} OPTIONAL
+}
+
+Scaled-or-Absolute ::= CHOICE {
+ absolute
+ [0] CHOICE { -- absolute--vdc-int [0] INTEGER, -- for VDC Type INTEGER--
+ vdc-real [1] REAL}, -- for VDC Type REAL
+ scaled [1] REAL
+} -- scaled
+
+Marker-Rendition ::= SEQUENCE {
+ marker-size-specification-mode [0] SpecificationMode OPTIONAL,
+ marker-bundle-index [1] INTEGER OPTIONAL,
+ marker-type [2] INTEGER OPTIONAL,
+ marker-size [3] Scaled-or-Absolute OPTIONAL,
+ marker-colour [4] Colour OPTIONAL,
+ marker-aspect-source-flags
+ [5] SEQUENCE {marker-type-asf ASF-Type,
+ marker-size-asf ASF-Type,
+ marker-colour-asf ASF-Type} OPTIONAL,
+ marker-bundle-specifications
+ [6] SEQUENCE OF
+ SEQUENCE {marker-bundle-index INTEGER,
+ marker-bundle-representation
+ SEQUENCE {marker-type INTEGER,
+ marker-size Scaled-or-Absolute,
+ marker-colour Colour}} OPTIONAL
+}
+
+Text-Rendition ::= SEQUENCE {
+ font-list [0] SEQUENCE OF GeneralString OPTIONAL,
+ character-set-list
+ [1] SEQUENCE {character-set-type
+ ENUMERATED {n94-char-sets(0), n96-char-sets(1),
+ n94-char-multibyte-sets(2),
+ n96-char-multibyte-sets(3), comp-code(4)},
+ designation-sequence-tail GeneralString} OPTIONAL,
+ character-coding-announcer
+ [2] ENUMERATED {basic-7-bit(0), basic-8-bit(1), extended-7-bit(2),
+ extended-8-bit(3)} OPTIONAL,
+ text-bundle-index [3] INTEGER OPTIONAL,
+ text-font-index [4] INTEGER OPTIONAL,
+ text-precision
+ [5] ENUMERATED {string(0), character(1), stroke(2)} OPTIONAL,
+ character-expansion-factor [6] REAL OPTIONAL,
+ character-spacing [7] REAL OPTIONAL,
+ text-colour [8] Colour OPTIONAL,
+ character-height [9] VDC-Value OPTIONAL,
+ character-orientation [10] SEQUENCE {a VDC-Pair,
+ b VDC-Pair} OPTIONAL,
+ text-path
+ [11] ENUMERATED {right(0), left(1), up(2), down(3)} OPTIONAL,
+ text-alignment
+ [12] SEQUENCE {horizontal-alignment
+ ENUMERATED {normal-horizontal(0), left(1), centre(2),
+ right(3), continuous-horizontal(4)},
+ vertical-alignment
+ ENUMERATED {normal-vertical(0), top(1), cap(2),
+ half(3), base(4), bottom(5),
+ continuous-vertical(6)},
+ continuous-horizontal-alignment [0] REAL OPTIONAL,
+ continuous-vertical-alignment [1] REAL OPTIONAL
+ } OPTIONAL,
+ character-set-index [13] INTEGER OPTIONAL,
+ alternate-character-set-index [14] INTEGER OPTIONAL,
+ text-aspect-source-flags
+ [15] SEQUENCE {text-font-asf ASF-Type,
+ text-precision-asf ASF-Type,
+ character-expansion-factor-asf ASF-Type,
+ character-spacing-asf ASF-Type,
+ text-colour-asf ASF-Type} OPTIONAL,
+ text-bundle-specifications
+ [16] SEQUENCE OF
+ SEQUENCE {text-bundle-index INTEGER,
+ text-bundle-representation
+ SEQUENCE {text-font-index INTEGER,
+ text-precision
+ ENUMERATED {string(0), character(1),
+ stroke(2)},
+ character-expansion-factor REAL,
+ character-spacing REAL,
+ text-colour Colour}
+ } OPTIONAL
+}
+
+VDC-Value ::= CHOICE {a INTEGER,
+ b REAL
+}
+
+VDC-Pair ::= SEQUENCE {x VDC-Value,
+ y VDC-Value
+}
+
+Filled-Area-Rendition ::= SEQUENCE {
+ fill-bundle-index [1] INTEGER OPTIONAL,
+ interior-style
+ [2] ENUMERATED {hollow(0), solid(1), pattern(2), hatch(3), empty(4)}
+ OPTIONAL,
+ fill-colour [3] Colour OPTIONAL,
+ hatch-index [4] INTEGER OPTIONAL,
+ pattern-index [5] INTEGER OPTIONAL,
+ fill-reference-point [6] VDC-Pair OPTIONAL,
+ pattern-size
+ [7] SEQUENCE {height-x-component VDC-Value,
+ height-y-component VDC-Value,
+ width-x-component VDC-Value,
+ width-y-component VDC-Value} OPTIONAL,
+ pattern-table-specifications [8] SEQUENCE OF PatternTableElement OPTIONAL,
+ fill-aspect-source-flags
+ [9] SEQUENCE {interior-style-asf ASF-Type,
+ fill-colour-asf ASF-Type,
+ hatch-index-asf ASF-Type,
+ pattern-index-asf ASF-Type} OPTIONAL,
+ fill-bundle-specifications
+ [10] SEQUENCE {fill-bundle-index INTEGER,
+ fill-bundle-representation
+ SEQUENCE {interior-style
+ ENUMERATED {hollow(0), solid(1), pattern(2),
+ hatch(3), empty(4)},
+ fill-colour Colour,
+ hatch-index INTEGER,
+ patttern-index INTEGER}} OPTIONAL
+}
+
+PatternTableElement ::= SEQUENCE {
+ pattern-table-index INTEGER,
+ nx INTEGER,
+ ny INTEGER,
+ local-colour-precision INTEGER,
+ colour SEQUENCE OF Colour
+}
+
+Edge-Rendition ::= SEQUENCE {
+ edge-width-spec-mode [0] SpecificationMode OPTIONAL,
+ edge-visibility [1] On-or-Off OPTIONAL,
+ edge-bundle-index [2] INTEGER OPTIONAL,
+ edge-type [3] INTEGER OPTIONAL,
+ edge-width [4] Scaled-or-Absolute OPTIONAL,
+ edge-colour [5] Colour OPTIONAL,
+ edge-aspect-source-flags
+ [6] SEQUENCE {edge-type-asf ASF-Type,
+ edge-width-asf ASF-Type,
+ edge-colour-asf ASF-Type} OPTIONAL,
+ edge-bundle-specifications
+ [7] SEQUENCE OF
+ SEQUENCE {edge-bundle-index INTEGER,
+ edge-bundle-representation
+ SEQUENCE {edge-type INTEGER,
+ edge-width Scaled-or-Absolute,
+ edge-colour Colour}} OPTIONAL
+}
+
+On-or-Off ::= ENUMERATED {off(0), on(1)}
+
+Colour-Representations ::= SEQUENCE {
+ background-colour [0] RGB OPTIONAL,
+ colour-table-specification
+ [1] SEQUENCE OF
+ SEQUENCE {starting-index INTEGER,
+ colour-list SEQUENCE OF RGB} OPTIONAL
+}
+
+Transparency-Specification ::= SEQUENCE {
+ transparency [0] On-or-Off OPTIONAL,
+ auxiliary-colour [1] Colour OPTIONAL
+}
+
+Transformation-Specification ::= SEQUENCE {
+ vdc-extent [0] Rectangle OPTIONAL,
+ clip-rectangle [1] Rectangle OPTIONAL,
+ clip-indicator [2] On-or-Off OPTIONAL
+}
+
+Rectangle ::= SEQUENCE {first-corner VDC-Pair,
+ second-corner VDC-Pair
+}
+
+Region-Of-Interest-Specification ::= CHOICE {
+ automatic [0] NULL,
+ rectangle [1] SEQUENCE {a VDC-Pair,
+ b VDC-Pair}
+}
+
+Picture-Orientation ::= One-Of-Four-Angles
+
+One-Of-Four-Angles ::= ENUMERATED {d0(0), d90(1), d180(2), d270(3)}
+
+Picture-Dimensions ::= CHOICE {
+ width-controlled
+ [0] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER},
+ height-controlled
+ [1] SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag ENUMERATED {fixed(0), variable(1)}
+ },
+ automatic [3] NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..28daa467e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn
@@ -0,0 +1,44 @@
+-- Module Geo-Gr-Profile-Attributes (T.418:03/1993)
+
+Geo-Gr-Profile-Attributes {2 8 1 8 4} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS
+ Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute, Geo-Gr-Content-Defaults;
+
+IMPORTS
+ Line-Rendition, Marker-Rendition, Text-Rendition, Filled-Area-Rendition,
+ Edge-Rendition, Colour-Representations, Transparency-Specification,
+ Transformation-Specification, Region-Of-Interest-Specification,
+ Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair,
+ One-Of-Four-Angles
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see 10.2
+
+Geo-Gr-Presentation-Feature ::= CHOICE {
+ null NULL,
+ text-rendition [3] Text-Rendition
+}
+
+Geo-Gr-Coding-Attribute ::= NULL
+
+-- no non-basic values are defined for the
+-- geometric graphics coding attributes in this Specification
+Geo-Gr-Content-Defaults ::= SET {
+ line-rendition [1] Line-Rendition OPTIONAL,
+ marker-rendition [2] Marker-Rendition OPTIONAL,
+ text-rendition [3] Text-Rendition OPTIONAL,
+ filled-area-rendition [4] Filled-Area-Rendition OPTIONAL,
+ edge-rendition [5] Edge-Rendition OPTIONAL,
+ colour-representations [6] Colour-Representations OPTIONAL,
+ transparency-specification [7] Transparency-Specification OPTIONAL,
+ transformation-specification [8] Transformation-Specification OPTIONAL,
+ region-of-interest-specification
+ [9] Region-Of-Interest-Specification OPTIONAL,
+ picture-orientation [10] Picture-Orientation OPTIONAL,
+ picture-dimensions [11] Picture-Dimensions OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityExchanges.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityExchanges.asn
new file mode 100644
index 0000000000..336b824174
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityExchanges.asn
@@ -0,0 +1,79 @@
+-- Module GulsSecurityExchanges (X.830:04/1995)
+
+GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityExchanges, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-EXCHANGE, SEC-EXCHG-ITEM, SE-ERROR
+ FROM Notation notation
+ Credentials, SecurityProblem
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 3};
+
+-- *******************************************
+-- Directory Authentication Exchange (One-way)
+-- *******************************************
+dirAuthenticationOneWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {credentials}
+ IDENTIFIER global:{securityExchanges dir-authent-one-way(1)}
+}
+
+credentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+}
+
+-- *******************************************
+-- Directory Authentication Exchange (Two-way)
+-- *******************************************
+dirAuthenticationTwoWay SECURITY-EXCHANGE ::= {
+ SE-ITEMS {initiatorCredentials | responderCredentials}
+ IDENTIFIER global:{securityExchanges dir-authent-two-way(2)}
+}
+
+initiatorCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 1
+ ERRORS {authenticationFailure}
+}
+
+responderCredentials SEC-EXCHG-ITEM ::= {
+ ITEM-TYPE DirectoryAbstractService.Credentials
+ ITEM-ID 2
+}
+
+authenticationFailure SE-ERROR ::= {
+ PARAMETER DirectoryAbstractService.SecurityProblem
+ ERROR-CODE local:1
+}
+
+-- ***************************
+-- Simple Negotiation Exchange
+-- ***************************
+simpleNegotiationSE SECURITY-EXCHANGE ::= {
+ SE-ITEMS {offeredIds | acceptedIds}
+ IDENTIFIER global:{securityExchanges simple-negotiation-se(3)}
+}
+
+offeredIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 1
+}
+
+acceptedIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI
+ ITEM-ID 2
+}
+
+Negotiation-SEI ::= SEQUENCE OF OBJECT IDENTIFIER
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityTransformations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityTransformations.asn
new file mode 100644
index 0000000000..db2725c37d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/GulsSecurityTransformations.asn
@@ -0,0 +1,212 @@
+-- Module GulsSecurityTransformations (X.830:04/1995)
+
+GulsSecurityTransformations {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityTransformations(3)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ securityTransformations, notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SECURITY-TRANSFORMATION, SecurityIdentity
+ FROM Notation notation
+ AlgorithmIdentifier
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- ***************************************
+-- Notation for specifying key information
+-- ***************************************
+KEY-INFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying key information relating to particular classes
+ -- of protection mechanisms (e.g. symmetric, asymmetric).
+ -- It may be useful in defining various security transformations.
+ {
+ &kiClass CHOICE {local INTEGER,
+ -- local objects can only be defined within this
+ -- ASN.1 module.
+ global OBJECT IDENTIFIER
+ -- global objects are defined elsewhere
+ } UNIQUE,
+ &KiType
+}WITH SYNTAX {KEY-INFO-CLASS &kiClass
+ KEY-INFO-TYPE &KiType
+}
+
+symmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:0
+ KEY-INFO-TYPE
+ SEQUENCE {entityId SecurityIdentity,
+ keyIdentifier INTEGER}
+}
+
+asymmetricKeyInformation KEY-INFORMATION ::= {
+ KEY-INFO-CLASS local:1
+ KEY-INFO-TYPE
+ SEQUENCE {issuerCAName SecurityIdentity OPTIONAL,
+ certSerialNumber INTEGER OPTIONAL,
+ signerName SecurityIdentity OPTIONAL,
+ keyIdentifier BIT STRING OPTIONAL}
+}
+
+-- *******************************************
+-- Directory ENCRYPTED Security Transformation
+-- *******************************************
+dirEncryptedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-encrypted(1)}
+ -- This transformation transforms a string of octets to a
+ -- new bit string using an encipherment process.
+ INITIAL-ENCODING-RULES {joint-iso-itu-t asn1(1) ber(1)}
+ XFORMED-DATA-TYPE BIT STRING
+}
+
+-- ****************************************
+-- Directory SIGNED Security Transformation
+-- ****************************************
+dirSignedTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signed(2)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {toBeSigned
+ ABSTRACT-SYNTAX.&Type
+ (CONSTRAINED BY {
+
+ -- this type is constrained to being the to-be-signed type -- }),
+ algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- *******************************************
+-- Directory SIGNATURE Security Transformation
+-- *******************************************
+dirSignatureTransformation SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations dir-signature(3)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}
+ XFORMED-DATA-TYPE
+ SEQUENCE {algorithmId AlgorithmIdentifier,
+ -- of the algorithms used to compute the signature
+ encipheredHash BIT STRING}
+}
+
+-- ***********************************
+-- GULS SIGNED Security Transformation
+-- ***********************************
+gulsSignedTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signed(4)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {intermediateValue
+ EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ -- The transfer syntax to be used is that
+ -- indicated by the initEncRules value within
+ -- the intermediate value -- })PRESENT
+ }),
+ data-value (CONTAINING IntermediateType{{SupportedKIClasses}})
+
+ -- The data value encoded is a value of type
+ -- IntermediateType
+ }),
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.4 of DIS 11586-1 -- })
+ }
+}
+
+IntermediateType{KEY-INFORMATION:SupportedKIClasses} ::= SEQUENCE {
+ unprotectedItem ABSTRACT-SYNTAX.&Type-- this type is constrained to being
+ -- the type of the unprotected item, or
+ -- BIT STRING if the unprotected item is
+ -- not derived from an ASN.1 abstract
+ -- syntax --,
+ initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm
+ -- parameters.
+ keyInformation
+ SEQUENCE {kiClass KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo KEY-INFORMATION.&KiType({SupportedKIClasses}{@.kiClass})
+ } OPTIONAL
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+}
+
+-- **************************************
+-- GULS SIGNATURE Security Transformation
+-- **************************************
+gulsSignatureTransformation{KEY-INFORMATION:SupportedKIClasses}
+ SECURITY-TRANSFORMATION ::= {
+ IDENTIFIER {securityTransformations guls-signature(5)}
+ INITIAL-ENCODING-RULES
+ {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}
+ -- This default for initial encoding rules may be overridden
+ -- using a static protected parameter (initEncRules).
+ XFORMED-DATA-TYPE
+ SEQUENCE {initEncRules
+ OBJECT IDENTIFIER
+ DEFAULT
+ {joint-iso-itu-t asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ signOrSealAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies the signing or
+ -- sealing algorithm, and can convey
+ -- algorithm parameters
+ hashAlgorithm AlgorithmIdentifier OPTIONAL,
+ -- Identifies a hash function,
+ -- for use if a hash function is required
+ -- and the signOrSealAlgorithm identifier
+ -- does not imply a particular hash
+ -- function. Can also convey algorithm parameters.
+ keyInformation
+ SEQUENCE {kiClass
+ KEY-INFORMATION.&kiClass({SupportedKIClasses}),
+ keyInfo
+ KEY-INFORMATION.&KiType
+ ({SupportedKIClasses}{@.kiClass})} OPTIONAL,
+ -- Key information may assume various
+ -- formats, governed by supported members
+ -- of the KEY-INFORMATION information
+ -- object class (defined at start of the
+ -- definitive ASN.1 module)
+ appendix
+ BIT STRING
+ (CONSTRAINED BY {
+ -- the appendix value must be generated following
+ -- the procedure specified in D.5 of DIS 11586-1 -- })
+ }
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/HierarchicalOperationalBindings.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/HierarchicalOperationalBindings.asn
new file mode 100644
index 0000000000..4e0084b079
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/HierarchicalOperationalBindings.asn
@@ -0,0 +1,123 @@
+-- Module HierarchicalOperationalBindings (X.518 TC2:08/1997)
+
+HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1)
+ hierarchicalOperationalBindings(20) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, distributedOperations,
+ directoryOperationalBindingTypes, opBindingManagement, dsp
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, RelativeDistinguishedName, DistinguishedName
+ FROM InformationFramework informationFramework
+ MasterAndShadowAccessPoints
+ FROM DistributedOperations distributedOperations
+ directorySystemAC
+ FROM DirectorySystemProtocol dsp
+ OPERATIONAL-BINDING
+ FROM OperationalBindingManagement opBindingManagement
+ id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical
+ FROM DirectoryOperationalBindingTypes directoryOperationalBindingTypes;
+
+-- types
+HierarchicalAgreement ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ immediateSuperior [1] DistinguishedName
+}
+
+NonSpecificHierarchicalAgreement ::= SEQUENCE {
+ immediateSuperior [1] DistinguishedName
+}
+
+SuperiorToSubordinate ::= SEQUENCE {
+ contextPrefixInfo [0] DITcontext,
+ entryInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ immediateSuperiorInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL
+}
+
+DITcontext ::= SEQUENCE OF Vertex
+
+Vertex ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ admPointInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [2] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL,
+ accessPoints [3] MasterAndShadowAccessPoints OPTIONAL
+}
+
+SubentryInfo ::= SEQUENCE {
+ rdn [0] RelativeDistinguishedName,
+ info [1] SET OF Attribute
+}
+
+SubordinateToSuperior ::= SEQUENCE {
+ accessPoints [0] MasterAndShadowAccessPoints OPTIONAL,
+ alias [1] BOOLEAN DEFAULT FALSE,
+ entryInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+SuperiorToSubordinateModification ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSuperiorToSubordinate ::=
+ SuperiorToSubordinate(WITH COMPONENTS {
+ ...,
+ entryInfo ABSENT
+ })
+
+NHOBSubordinateToSuperior ::= SEQUENCE {
+ accessPoint [0] MasterAndShadowAccessPoints OPTIONAL,
+ subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL
+}
+
+-- operational binding information objects
+hierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT HierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SuperiorToSubordinateModification
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER SubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER SubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-hierarchical
+}
+
+nonSpecificHierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
+ AGREEMENT NonSpecificHierarchicalAgreement
+ -- APPLICATION CONTEXTS {{directorySystemAC}}
+ APPLICATION CONTEXTS {directorySystemAC}
+ ASYMMETRIC ROLE-A
+ { -- superior DSAESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSuperiorToSubordinate
+ TERMINATION-INITIATOR TRUE}
+ ROLE-B
+ { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE
+ ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior
+ MODIFICATION-INITIATOR TRUE
+ MODIFICATION-PARAMETER NHOBSubordinateToSuperior
+ TERMINATION-INITIATOR TRUE}
+ ID id-op-binding-non-specific-hierarchical
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAbstractService.asn
new file mode 100644
index 0000000000..3fec8ae64a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAbstractService.asn
@@ -0,0 +1,148 @@
+-- Module IPMSAbstractService (X.420:06/1999)
+IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AutoForwardComment, Heading, InformationObject, IPM, NRN, ON, RN
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-pt-management, id-pt-origination, id-pt-reception
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, MessageDeliveryEnvelope,
+ MessageSubmissionEnvelope, MessageSubmissionIdentifier,
+ MessageSubmissionTime, ORName, PORT, ProbeSubmissionEnvelope,
+ ProbeSubmissionIdentifier, ProbeSubmissionTime,
+ recipient-improperly-specified, ReportDeliveryEnvelope,
+ SupplementaryInformation
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Ports
+origination PORT ::= {
+ CONSUMER INVOKES
+ {originate-probe | originate-ipm | originate-rn | originate-on}
+ ID id-pt-origination
+}
+
+reception PORT ::= {
+ SUPPLIER INVOKES
+ {receive-report | receive-ipm | receive-rn | receive-nrn | receive-on}
+ ID id-pt-reception
+}
+
+management PORT ::= {
+ CONSUMER INVOKES
+ {change-auto-discard | change-auto-acknowledgment | change-auto-forwarding}
+ ID id-pt-management
+}
+
+-- Origination abstract operations
+originate-probe ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] ProbeSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] ProbeSubmissionIdentifier,
+ submission-time [1] ProbeSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] IPM}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] RN}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+originate-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageSubmissionEnvelope,
+ content [1] ON}
+ RESULT
+ SET {submission-identifier [0] MessageSubmissionIdentifier,
+ submission-time [1] MessageSubmissionTime}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Reception abstract operations
+receive-report ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {envelope [0] ReportDeliveryEnvelope,
+ undelivered-object [1] InformationObject OPTIONAL}
+}
+
+receive-ipm ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] IPM}
+}
+
+receive-rn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] RN}
+}
+
+receive-nrn ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] NRN}
+}
+
+receive-on ABSTRACT-OPERATION ::= {
+ ARGUMENT SET {envelope [0] MessageDeliveryEnvelope,
+ content [1] ON}
+}
+
+-- Management abstract operations
+change-auto-discard ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-discard-expired-IPMs [0] BOOLEAN,
+ auto-discard-obsolete-IPMs [1] BOOLEAN}
+}
+
+change-auto-acknowledgment ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-acknowledge-IPMs [0] BOOLEAN,
+ auto-acknowledge-suppl-receipt-info
+ [1] SupplementaryInformation OPTIONAL}
+ ERRORS {subscription-error}
+}
+
+change-auto-forwarding ABSTRACT-OPERATION ::= {
+ ARGUMENT
+ SET {auto-forward-IPMs [0] BOOLEAN,
+ auto-forward-recipients [1] SEQUENCE OF ORName OPTIONAL,
+ auto-forward-heading [2] Heading OPTIONAL,
+ auto-forward-comment [3] AutoForwardComment OPTIONAL}
+ ERRORS {subscription-error | recipient-improperly-specified}
+}
+
+-- Abstract errors
+subscription-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] SubscriptionProblem}
+}
+
+SubscriptionProblem ::= ENUMERATED {
+ ipms-eos-not-subscribed(0), mts-eos-not-subscribed(1)}
+
+END -- of IPMSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAutoActionTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAutoActionTypes.asn
new file mode 100644
index 0000000000..8c0c8138e2
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSAutoActionTypes.asn
@@ -0,0 +1,234 @@
+-- Module IPMSAutoActionTypes (X.420:06/1999)
+IPMSAutoActionTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) auto-actions(13)
+ version-1999(1)} DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ AdviceNotifications, AutoForwardComment, BodyPart, Heading, IA5TextBodyPart,
+ IPMSExtension, SupplReceiptInfoField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Upper Bounds
+ ub-ipm-identifier-suffix
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-aa-ipm-auto-acknowledgement, id-aa-ipm-auto-advise,
+ id-aa-ipm-auto-correlate, id-aa-ipm-auto-discard,
+ id-aae-auto-discard-error, id-aae-auto-forwarding-loop,
+ id-aae-duplicate-ipn
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Auto-action information object class
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS Abstract Service data-types and abstract-errors
+ Filter, EntryInformationSelection, ms-extension-error, MSSubmissionOptions,
+ service-error
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS object identifier
+ id-act-ipm-auto-forward
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service data-types and abstract-errors
+ ContentIdentifier, DeferredDeliveryTime, element-of-service-not-subscribed,
+ ExplicitConversion, ExtensionField{}, inconsistent-request,
+ MessageSubmissionEnvelope, originator-invalid, OriginatorName,
+ OriginatorReportRequest, PerMessageIndicators,
+ PerMessageSubmissionExtensions, PerRecipientMessageSubmissionExtensions,
+ Priority, recipient-improperly-specified, RecipientName, remote-bind-error,
+ security-error, submission-control-violated, unsupported-critical-function
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS upper bounds
+ ub-recipients
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- IPM auto-actions information object set
+IPMAutoActions AUTO-ACTION ::=
+ {ipm-auto-forward, ... -- 1994 extension additions --,
+ ipm-auto-acknowledgement | ipm-auto-correlate | ipm-auto-discard |
+ ipm-auto-advise}
+
+-- Auto-actions
+ipm-auto-forward AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS
+ CHOICE {ipm-auto-forward-registration-parameter
+ IPMAutoForwardRegistrationParameter-- used in 1994 Application Contexts only -- ,
+ auto-forward-registration-parameter-88
+ AutoForwardRegistrationParameter88
+ } -- used in 1988 Application Contexts only
+ ERRORS
+ {auto-forwarding-loop | element-of-service-not-subscribed |
+ inconsistent-request | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated |
+ unsupported-critical-function, ...}
+ IDENTIFIED BY id-act-ipm-auto-forward
+}
+
+-- Auto-forward 1994
+IPMAutoForwardRegistrationParameter ::= SEQUENCE {
+ filter [0] Filter OPTIONAL,
+ forwarding-envelope [1] MessageSubmissionEnvelope,
+ forwarding-heading [2] Heading,
+ forwarding-cover-note [3] BodyPart OPTIONAL,
+ submission-options [4] MSSubmissionOptions OPTIONAL,
+ nrn-comment [5] AutoForwardComment OPTIONAL,
+ ipm-auto-forward-options [6] IPMAutoForwardOptions DEFAULT {}
+}
+
+IPMAutoForwardOptions ::= BIT STRING {
+ forward-all-object-types(0), -- forward-all-object-types 'one', forward IPMs only 'zero'
+ include-returned-content(1), -- include-returned-content 'one', exclude 'zero'
+ include-returned-ipm(2), -- include-returned-ipm 'one', exclude 'zero'
+ forwarded-content-prohibited(3), -- forwarded-content-prohibited 'one', allowed'zero'
+ preserve-retrieval-status(4), -- preserve-retrieval-status 'one', change 'zero'
+ delete-delivered-object(5)
+} -- delete-delivered-object 'one', no deletion 'zero'
+
+-- Auto-forward 1988
+AutoForwardRegistrationParameter88 ::= SET {
+ filter [0] Filter OPTIONAL,
+ auto-forward-arguments [1] AutoForwardArguments,
+ delete-after-auto-forwarding [2] BOOLEAN DEFAULT FALSE,
+ forwarding-information [3] EncodedForwardingInformation
+}
+
+AutoForwardArguments ::= SET {
+ COMPONENTS OF PerMessageAutoForwardFields,
+ per-recipient-fields
+ [1] IMPLICIT SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientAutoForwardFields
+}
+
+PerMessageAutoForwardFields ::= SET {
+ originator-name OriginatorName,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority OPTIONAL,
+ per-message-indicators PerMessageIndicators OPTIONAL,
+ deferred-delivery-time [0] IMPLICIT DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF ExtensionField{{PerMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientAutoForwardFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] IMPLICIT OriginatorReportRequest,
+ explicit-conversion [1] IMPLICIT ExplicitConversion OPTIONAL,
+ extensions
+ [2] IMPLICIT SET OF
+ ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+EncodedForwardingInformation ::=
+ OCTET STRING -- contains ForwardingInformation1988
+
+ForwardingInformation1988 ::= SET {
+ auto-forwarding-comment [0] IMPLICIT AutoForwardComment OPTIONAL,
+ ia5-cover-note [1] IMPLICIT IA5TextBodyPart OPTIONAL,
+ this-ipm-prefix
+ [2] IMPLICIT PrintableString(SIZE (1..ub-ipm-identifier-suffix)) OPTIONAL
+}
+
+--
+ipm-auto-acknowledgement AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAcknowledgementRegistrationParameter
+ ERRORS
+ {originator-invalid | submission-control-violated |
+ element-of-service-not-subscribed | recipient-improperly-specified |
+ remote-bind-error | inconsistent-request | security-error |
+ unsupported-critical-function | duplicate-ipn}
+ IDENTIFIED BY id-aa-ipm-auto-acknowledgement
+}
+
+IPMAutoAcknowledgementRegistrationParameter ::= SET {
+ auto-acknowledge-suppl-receipt-info [0] SupplReceiptInfoField OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL
+}
+
+--
+ipm-auto-correlate AUTO-ACTION ::= {IDENTIFIED BY id-aa-ipm-auto-correlate
+}
+
+--
+ipm-auto-discard AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoDiscardRegistrationParameter
+ ERRORS
+ {submission-control-violated | ipm-auto-discard-error | originator-invalid
+ | recipient-improperly-specified | inconsistent-request | security-error
+ | unsupported-critical-function | remote-bind-error |
+ element-of-service-not-subscribed}
+ IDENTIFIED BY id-aa-ipm-auto-discard
+}
+
+IPMAutoDiscardRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ submission-options [1] MSSubmissionOptions OPTIONAL,
+ auto-discard-expired-ipms [2] BOOLEAN,
+ auto-discard-obsoleted-ipms [3] BOOLEAN,
+ restrict-obsoleting-to-originator [4] BOOLEAN
+}
+
+--
+ipm-auto-advise AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS IPMAutoAdviseRegistrationParameter
+ ERRORS
+ {inconsistent-request | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified | remote-bind-error |
+ security-error | submission-control-violated |
+ unsupported-critical-function}
+ IDENTIFIED BY id-aa-ipm-auto-advise
+}
+
+IPMAutoAdviseRegistrationParameter ::= SET {
+ enabled [0] BOOLEAN DEFAULT TRUE,
+ filter [1] Filter OPTIONAL,
+ advice-notifications
+ [2] SET OF IPMSExtension{{AdviceNotifications}},
+ suppress-subsequent-notifications [3] BOOLEAN DEFAULT TRUE,
+ use-ipm-if-an-not-supported [4] BOOLEAN DEFAULT FALSE,
+ submission-options [5] MSSubmissionOptions OPTIONAL
+}
+
+-- IPM auto-action-error-table information object set
+IPMAutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {... -- 1994 extension additions --, auto-forwarding-loop | duplicate-ipn |
+ element-of-service-not-subscribed | inconsistent-request |
+ ipm-auto-discard-error | ms-extension-error | originator-invalid |
+ recipient-improperly-specified | remote-bind-error | security-error |
+ service-error | submission-control-violated | unsupported-critical-function}
+
+-- Auto-action-error-types
+auto-forwarding-loop AUTO-ACTION-ERROR ::= {
+ CODE global:id-aae-auto-forwarding-loop
+}
+
+duplicate-ipn AUTO-ACTION-ERROR ::= {CODE global:id-aae-duplicate-ipn
+}
+
+ipm-auto-discard-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SET {problem [0] AutoDiscardProblem}
+ CODE global:id-aae-auto-discard-error
+}
+
+AutoDiscardProblem ::= INTEGER {not-obsoleted-by-originator(0)}
+
+END -- of IPMSAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
new file mode 100644
index 0000000000..9805a6189d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn
@@ -0,0 +1,102 @@
+-- Module IPMSExtendedBodyPartTypes (X.420:06/1999)
+IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ BilaterallyDefinedBodyPart, EncryptedData, EncryptedParameters,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileData, G3FacsimileParameters,
+ G4Class1BodyPart, IA5TextData, IA5TextParameters, MessageData,
+ MessageParameters, MixedModeBodyPart, NationallyDefinedBodyPart,
+ TeletexData, TeletexParameters, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-encrypted, id-ep-g3-facsimile, id-ep-ia5-text, id-ep-message,
+ id-ep-teletex, id-ep-videotex, id-et-bilaterally-defined, id-et-encrypted,
+ id-et-g3-facsimile, id-et-g4-class1, id-et-ia5-text, id-et-message,
+ id-et-mixed-mode, id-et-nationally-defined, id-et-teletex, id-et-videotex
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended IA5 Text body part
+ia5-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {IA5TextParameters
+ IDENTIFIED BY id-ep-ia5-text},
+ DATA {IA5TextData
+ IDENTIFIED BY id-et-ia5-text}
+}
+
+-- Extended G3 Facsimile body part
+g3-facsimile-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {G3FacsimileParameters
+ IDENTIFIED BY id-ep-g3-facsimile},
+ DATA {G3FacsimileData
+ IDENTIFIED BY id-et-g3-facsimile}
+}
+
+-- Extended G4 Class 1 body part
+g4-class1-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {G4Class1BodyPart
+ IDENTIFIED BY id-et-g4-class1}
+}
+
+-- Extended Teletex body part
+teletex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {TeletexParameters
+ IDENTIFIED BY id-ep-teletex},
+ DATA {TeletexData
+ IDENTIFIED BY id-et-teletex}
+}
+
+-- Extended Videotex body part
+videotex-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VideotexParameters
+ IDENTIFIED BY id-ep-videotex},
+ DATA {VideotexData
+ IDENTIFIED BY id-et-videotex}
+}
+
+-- Extended Encrypted body part
+encrypted-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {EncryptedParameters
+ IDENTIFIED BY id-ep-encrypted},
+ DATA {EncryptedData
+ IDENTIFIED BY id-et-encrypted}
+}
+
+-- Extended Message body part
+message-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-message},
+ DATA {MessageData
+ IDENTIFIED BY id-et-message}
+}
+
+-- Extended Mixed-mode body part
+mixed-mode-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {MixedModeBodyPart
+ IDENTIFIED BY id-et-mixed-mode}
+}
+
+-- Extended Bilaterally Defined body part
+bilaterally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {BilaterallyDefinedBodyPart
+ IDENTIFIED BY id-et-bilaterally-defined}
+}
+
+-- Extended Nationally Defined body part
+nationally-defined-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {NationallyDefinedBodyPart
+ IDENTIFIED BY id-et-nationally-defined}
+}
+
+END -- of IPMSExtendedBodyPartTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
new file mode 100644
index 0000000000..b39e03c3b6
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn
@@ -0,0 +1,37 @@
+-- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999)
+IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0)
+ extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-general-text, id-et-general-text
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- General Text body part
+general-text-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {GeneralTextParameters
+ IDENTIFIED BY id-ep-general-text},
+ DATA {GeneralTextData
+ IDENTIFIED BY id-et-general-text}
+}
+
+GeneralTextParameters ::= SET OF CharacterSetRegistration
+
+GeneralTextData ::= GeneralString
+
+CharacterSetRegistration ::= INTEGER(1..32767)
+
+END -- of IPMSExtendedBodyPartTypes2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
new file mode 100644
index 0000000000..171f4b4223
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn
@@ -0,0 +1,39 @@
+-- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999)
+IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-voice, id-et-voice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Extended Voice body part
+voice-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {VoiceParameters
+ IDENTIFIED BY id-ep-voice},
+ DATA {VoiceData
+ IDENTIFIED BY id-et-voice}
+}
+
+VoiceParameters ::= SEQUENCE {
+ voice-message-duration [0] INTEGER OPTIONAL, -- In seconds
+ voice-encoding-type [1] OBJECT IDENTIFIER,
+ supplementary-information [2] IA5String OPTIONAL
+}
+
+VoiceData ::= OCTET STRING
+
+END -- of IPMSExtendedVoiceBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFileTransferBodyPartType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
new file mode 100644
index 0000000000..59de6d1b04
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFileTransferBodyPartType.asn
@@ -0,0 +1,253 @@
+-- Module IPMSFileTransferBodyPartType (X.420:06/1999)
+IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ file-transfer-body-part-type(9)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- FTAM Attribute Types
+ Attribute-Extensions, Concurrency-Access, Date-and-Time-Attribute,
+ Legal-Qualification-Attribute, Object-Availability-Attribute,
+ Object-Size-Attribute, Pathname, Permitted-Actions-Attribute,
+ Private-Use-Attribute
+ --==
+ FROM ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)}
+ -- ACSE definitions of AP-title and AE-qualifier
+ AE-qualifier, AP-title
+ --==
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, ExtensionsField
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-file-transfer, id-et-file-transfer
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ ORName
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- File Transfer body part
+file-transfer-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {FileTransferParameters
+ IDENTIFIED BY id-ep-file-transfer},
+ DATA {FileTransferData
+ IDENTIFIED BY id-et-file-transfer}
+}
+
+FileTransferParameters ::= SEQUENCE {
+ related-stored-file [0] RelatedStoredFile OPTIONAL,
+ contents-type
+ [1] ContentsTypeParameter
+ DEFAULT
+ document-type:
+ {document-type-name
+ {iso standard 8571 document-type(5) unstructured-binary(3)}},
+ environment [2] EnvironmentParameter OPTIONAL,
+ compression [3] CompressionParameter OPTIONAL,
+ file-attributes [4] FileAttributes OPTIONAL,
+ extensions [5] ExtensionsField OPTIONAL
+}
+
+FileTransferData ::= SEQUENCE OF EXTERNAL
+
+-- This conveys a sequence of data values representing file contents;
+-- The rules for generating this sequence are implied by the value of the contents-type parameter.
+RelatedStoredFile ::=
+ SET OF
+ SEQUENCE {file-identifier FileIdentifier,
+ relationship
+ Relationship DEFAULT explicit-relationship:unspecified
+ }
+
+FileIdentifier ::= CHOICE {
+ pathname-and-version [0] PathnameandVersion,
+ cross-reference [1] CrossReference
+}
+
+PathnameandVersion ::= SEQUENCE {
+ pathname [0] Pathname-Attribute,
+ file-version [1] GraphicString OPTIONAL
+}
+
+CrossReference ::= SEQUENCE {
+ application-cross-reference [0] OCTET STRING,
+ message-reference [1] MessageReference OPTIONAL,
+ body-part-reference [2] INTEGER OPTIONAL
+}
+
+MessageReference ::= SET {
+ user [0] ORName OPTIONAL,
+ -- Defined in 8.5.5 of ITU-T Rec. X.411 | ISO/IEC 10021-4
+ user-relative-identifier [1] PrintableString
+}
+
+Relationship ::= CHOICE {
+ explicit-relationship [0] ExplicitRelationship,
+ descriptive-relationship [1] GraphicString
+}
+
+ExplicitRelationship ::= INTEGER {
+ unspecified(0), new-file(1), replacement(2), extension(3)}
+
+ContentsTypeParameter ::= Contents-Type-Attribute
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] SEQUENCE {document-type-name Document-Type-Name,
+ parameter [0] DOCUMENT-PARAMETER.&Type OPTIONAL
+ },
+ -- The actual types to be used for values of the parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-syntax
+ [1] SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-syntax-name Abstract-Syntax-Name}
+}
+
+Document-Type-Name ::= OBJECT IDENTIFIER
+
+DOCUMENT-PARAMETER ::= CLASS {&Type
+}
+
+Constraint-Set-Name ::= OBJECT IDENTIFIER
+
+Abstract-Syntax-Name ::= OBJECT IDENTIFIER
+
+EnvironmentParameter ::= SEQUENCE {
+ application-reference [0] GeneralIdentifier OPTIONAL,
+ machine [1] GeneralIdentifier OPTIONAL,
+ operating-system [2] OBJECT IDENTIFIER OPTIONAL,
+ user-visible-string [3] SEQUENCE OF GraphicString OPTIONAL
+}
+
+GeneralIdentifier ::= CHOICE {
+ registered-identifier [0] OBJECT IDENTIFIER,
+ descriptive-identifier [1] SEQUENCE OF GraphicString
+}
+
+CompressionParameter ::= SEQUENCE {
+ compression-algorithm-id
+ [0] COMPRESSION-ALGORITHM.&id({CompressionAlgorithmTable}),
+ compression-algorithm-param
+ [1] COMPRESSION-ALGORITHM.&Type
+ ({CompressionAlgorithmTable}{@compression-algorithm-id})
+}
+
+COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER
+
+CompressionAlgorithmTable COMPRESSION-ALGORITHM ::=
+ {...}
+
+FileAttributes ::= SEQUENCE {
+ pathname Pathname-Attribute OPTIONAL,
+ permitted-actions
+ [1] Permitted-Actions-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-of-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ legal-qualifications
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ attribute-extensions
+ [22] Attribute-Extensions OPTIONAL
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] Pathname,
+ complete-pathname [23] Pathname
+}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute
+ actual-values Account
+}
+
+Account ::= GraphicString
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values User-Identity
+}
+
+User-Identity ::= GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] NULL,
+ -- Indicates partial support of this attribute.
+ actual-values [1] SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute are described in ISO 8571-2
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] Access-Request,
+ concurrency-access [1] Concurrency-Access OPTIONAL,
+ identity [2] User-Identity OPTIONAL,
+ passwords [3] Access-Passwords OPTIONAL,
+ location [4] Application-Entity-Title OPTIONAL
+}
+
+Access-Request ::= BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-object(7)}
+
+Access-Passwords ::= SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] Pass-Passwords,
+ link-password [9] Password
+}
+
+Password ::= CHOICE {
+ graphic-string GraphicString,
+ octet-string OCTET STRING
+}
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+Application-Entity-Title ::= SEQUENCE {
+ ap-title AP-title,
+ ae-qualifier AE-qualifier
+}
+
+END -- of IPMSFileTransferBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
new file mode 100644
index 0000000000..57faac6587
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn
@@ -0,0 +1,53 @@
+-- Module IPMSForwardedContentBodyPartType (X.420:06/1999)
+IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime,
+ MessageSubmissionEnvelope, OriginatingMTACertificate,
+ OtherMessageDeliveryFields, ProofOfSubmission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-content, id-et-content
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Forwarded Content body part
+content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::=
+ {
+ PARAMETERS
+ {ForwardedContentParameters
+ IDENTIFIED BY {id-ep-content content-type}},
+ DATA {Content
+ IDENTIFIED BY {id-et-content content-type}}
+}
+
+ForwardedContentParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL,
+ mts-identifier [2] MessageDeliveryIdentifier OPTIONAL,
+ submission-proof [3] SubmissionProof OPTIONAL
+}
+
+SubmissionProof ::= SET {
+ proof-of-submission [0] ProofOfSubmission,
+ originating-MTA-certificate [1] OriginatingMTACertificate,
+ message-submission-envelope MessageSubmissionEnvelope
+}
+
+END -- of IPMSForwardedContentBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
new file mode 100644
index 0000000000..4e46c7679b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn
@@ -0,0 +1,41 @@
+-- Module IPMSForwardedReportBodyPartType (X.420:06/1999)
+IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-report-body-part-type(12)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ ReportDeliveryArgument
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE, IPN, MessageParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-notification, id-et-report, id-et-notification
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Report body part
+report-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ReportDeliveryArgument
+ IDENTIFIED BY id-et-report}
+}
+
+-- Notification body part
+notification-body-part EXTENDED-BODY-PART-TYPE ::= {
+ PARAMETERS {MessageParameters
+ IDENTIFIED BY id-ep-notification},
+ DATA {IPN IDENTIFIED BY id-et-notification}
+}
+
+END -- of IPMSForwardedReportBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFunctionalObjects.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFunctionalObjects.asn
new file mode 100644
index 0000000000..09ef4de282
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSFunctionalObjects.asn
@@ -0,0 +1,47 @@
+-- Module IPMSFunctionalObjects (X.420:06/1999)
+IPMSFunctionalObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ functional-objects(1) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Abstract Service
+ management, origination, reception
+ --==
+ FROM IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ abstract-service(3) version-1994(0)}
+ -- IPMS Object Identifiers
+ id-ot-ipms, id-ot-ipms-user
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MTS Abstract Service
+ MHS-OBJECT
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+-- Primary object types
+ipms-user MHS-OBJECT ::= {
+ INITIATES {ipms-access-contract}
+ ID id-ot-ipms-user
+}
+
+ipms-access-contract CONTRACT ::= {
+ INITIATOR CONSUMER OF {origination | reception | management}
+}
+
+ipms MHS-OBJECT ::= {RESPONDS {ipms-access-contract}
+ ID id-ot-ipms
+}
+
+END -- of IPMSFunctionalObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSHeadingExtensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSHeadingExtensions.asn
new file mode 100644
index 0000000000..752e8d05e1
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSHeadingExtensions.asn
@@ -0,0 +1,246 @@
+-- Module IPMSHeadingExtensions (X.420:06/1999)
+IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Information Objects
+ IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- MTS Abstract Service
+ ExtendedCertificates, SecurityLabel, UniversalOrBMPString{}
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, SIGNATURE{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS upper bounds
+ ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes,
+ ub-extended-subject-length, ub-information-categories,
+ ub-information-category-length, ub-manual-handling-instruction-length,
+ ub-manual-handling-instructions, ub-originators-reference-length,
+ ub-precedence
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-hex-authorization-time, id-hex-auto-submitted,
+ id-hex-body-part-signatures, id-hex-circulation-list-recipients,
+ id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy,
+ id-hex-information-category, id-hex-ipm-security-label, id-hex-languages,
+ id-hex-manual-handling-instructions, id-hex-originators-reference,
+ id-hex-precedence-policy-id, id-rex-circulation-list-indicator,
+ id-rex-precedence
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Incomplete Copy
+incomplete-copy IPMS-EXTENSION ::= {
+ VALUE IncompleteCopy,
+ IDENTIFIED BY id-hex-incomplete-copy
+}
+
+IncompleteCopy ::= NULL
+
+-- Languages
+languages IPMS-EXTENSION ::= {
+ VALUE SET OF Language,
+ IDENTIFIED BY id-hex-languages
+}
+
+Language ::= PrintableString(SIZE (2 | 5))
+
+-- Auto-submitted
+auto-submitted IPMS-EXTENSION ::= {
+ VALUE AutoSubmitted,
+ IDENTIFIED BY id-hex-auto-submitted
+}
+
+AutoSubmitted ::= ENUMERATED {
+ not-auto-submitted(0), auto-generated(1), auto-replied(2)}
+
+body-part-signatures IPMS-EXTENSION ::= {
+ VALUE BodyPartSignatures,
+ IDENTIFIED BY id-hex-body-part-signatures
+}
+
+BodyPartSignatures ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-signature BodyPartSignature,
+ originator-certificate-selector [1] CertificateAssertion OPTIONAL,
+ originator-certificates [0] ExtendedCertificates OPTIONAL,
+ ...}
+
+BodyPartNumber ::= INTEGER(1..MAX)
+
+BodyPartSignature ::=
+ SIGNATURE
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ body-part BodyPart,
+ body-part-security-label SecurityLabel OPTIONAL
+ }}
+
+ipm-security-label IPMS-EXTENSION ::= {
+ VALUE IPMSecurityLabel,
+ IDENTIFIED BY id-hex-ipm-security-label
+}
+
+IPMSecurityLabel ::= SEQUENCE {
+ content-security-label [0] SecurityLabel,
+ heading-security-label [1] SecurityLabel OPTIONAL,
+ body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL
+}
+
+BodyPartSecurityLabel ::= CHOICE {
+ body-part-unlabelled [0] NULL,
+ body-part-security-label [1] SecurityLabel
+}
+
+-- Authorization Time
+authorization-time IPMS-EXTENSION ::= {
+ VALUE AuthorizationTime,
+ IDENTIFIED BY id-hex-authorization-time
+}
+
+AuthorizationTime ::= GeneralizedTime
+
+-- Circulation List
+circulation-list-recipients IPMS-EXTENSION ::= {
+ VALUE CirculationList,
+ IDENTIFIED BY id-hex-circulation-list-recipients
+}
+
+CirculationList ::=
+ SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember
+
+CirculationMember ::= SET {
+ circulation-recipient
+ RecipientSpecifier
+ (WITH COMPONENTS {
+ ...,
+ recipient (WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+ }),
+ checked Checkmark OPTIONAL
+}
+
+Checkmark ::= CHOICE {
+ simple NULL,
+ timestamped CirculationTime,
+ signed CirculationSignature
+}
+
+CirculationTime ::= GeneralizedTime
+
+CirculationSignature ::=
+ SIGNED
+ {SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier,
+ this-IPM ThisIPMField,
+ timestamp CirculationTime}}
+
+CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Circulation List Indicator
+circulation-list-indicator IPMS-EXTENSION ::= {
+ VALUE NULL,
+ IDENTIFIED BY id-rex-circulation-list-indicator
+}
+
+-- Distribution Codes
+distribution-codes IPMS-EXTENSION ::= {
+ VALUE DistributionCodes,
+ IDENTIFIED BY id-hex-distribution-codes
+}
+
+DistributionCodes ::=
+ SEQUENCE (SIZE (1..ub-distribution-codes)) OF DistributionCode
+
+DistributionCode ::= SEQUENCE {
+ oid-code OBJECT IDENTIFIER OPTIONAL,
+ alphanumeric-code AlphaCode OPTIONAL,
+ or-descriptor [0] ORDescriptor OPTIONAL
+}
+
+AlphaCode ::= UniversalOrBMPString{ub-alpha-code-length}
+
+-- Extended Subject
+extended-subject IPMS-EXTENSION ::= {
+ VALUE ExtendedSubject,
+ IDENTIFIED BY id-hex-extended-subject
+}
+
+ExtendedSubject ::= UniversalOrBMPString{ub-extended-subject-length}
+
+-- Information category
+information-category IPMS-EXTENSION ::= {
+ VALUE InformationCategories,
+ IDENTIFIED BY id-hex-information-category
+}
+
+InformationCategories ::=
+ SEQUENCE (SIZE (1..ub-information-categories)) OF InformationCategory
+
+InformationCategory ::= SEQUENCE {
+ reference [0] OBJECT IDENTIFIER OPTIONAL,
+ description [1] DescriptionString OPTIONAL
+}
+
+DescriptionString ::= UniversalOrBMPString{ub-information-category-length}
+
+-- Manual handling Instructions
+manual-handling-instructions IPMS-EXTENSION ::= {
+ VALUE ManualHandlingInstructions,
+ IDENTIFIED BY id-hex-manual-handling-instructions
+}
+
+ManualHandlingInstructions ::=
+ SEQUENCE (SIZE (1..ub-manual-handling-instructions)) OF
+ ManualHandlingInstruction
+
+ManualHandlingInstruction ::=
+ UniversalOrBMPString{ub-manual-handling-instruction-length}
+
+-- Originator's Reference
+originators-reference IPMS-EXTENSION ::= {
+ VALUE OriginatorsReference,
+ IDENTIFIED BY id-hex-originators-reference
+}
+
+OriginatorsReference ::= UniversalOrBMPString{ub-originators-reference-length}
+
+-- Precedence Policy Identifier
+precedence-policy-identifier IPMS-EXTENSION ::= {
+ VALUE PrecedencePolicyIdentifier,
+ IDENTIFIED BY id-hex-precedence-policy-id
+}
+
+PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER
+
+-- Precedence
+precedence IPMS-EXTENSION ::= {
+ VALUE Precedence,
+ IDENTIFIED BY id-rex-precedence
+}
+
+Precedence ::= INTEGER(0..ub-precedence)
+
+END -- of IPMSHeadingExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSInformationObjects.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSInformationObjects.asn
new file mode 100644
index 0000000000..3fb0463ee7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSInformationObjects.asn
@@ -0,0 +1,626 @@
+-- Module IPMSInformationObjects (X.420:06/1999)
+IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Extended Body Parts
+ bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
+ g4-class1-body-part, ia5-text-body-part, message-body-part,
+ mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
+ videotex-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ extended-body-part-types(7) version-1994(0)}
+ general-text-body-part
+ --==
+ FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7)
+ modules(0) extended-body-part-types-2(1)}
+ file-transfer-body-part
+ --==
+ FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) file-transfer-body-part-type(9)}
+ voice-body-part
+ --==
+ FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) extended-voice-body-part-type(11)}
+ notification-body-part, report-body-part
+ --==
+ FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-report-body-part-type(12)}
+ content-body-part{}
+ --==
+ FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
+ modules(0) forwarded-content-body-part-type(15)}
+ pkcs7-body-part
+ --==
+ FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)}
+ -- IPMS Heading Extensions
+ authorization-time, auto-submitted, body-part-signatures,
+ circulation-list-indicator, circulation-list-recipients,
+ distribution-codes, extended-subject, incomplete-copy,
+ information-category, ipm-security-label, languages,
+ manual-handling-instructions, originators-reference, precedence,
+ precedence-policy-identifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ body-part-encryption-token, BodyPartTokens, forwarded-content-token,
+ ForwardedContentToken, ipn-security-response, recipient-security-request
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Upper bounds
+ ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
+ ub-subject-field, ub-telephone-number
+ --==
+ FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ upper-bounds(10) version-1999(1)}
+ -- ODIF
+ Interchange-Data-Element
+ --==
+ FROM Interchange-Data-Elements {2 8 1 5 5}
+ -- MTS Abstract Service
+ EncodedInformationTypes, ExtendedCertificates, EXTENSION,
+ G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
+ OtherMessageDeliveryFields, SupplementaryInformation,
+ TeletexNonBasicParameters
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MS Abstract Service
+ MS-EXTENSION, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- IPMS Object Identifiers
+ id-mst-assembly-capability, id-mst-assembly-instructions,
+ id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
+ id-mst-originator-body-part-encryption-token,
+ id-mst-originator-forwarded-content-token,
+ id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
+ id-on-absence-advice, id-on-change-of-address-advice
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+Time ::= UTCTime
+
+-- Information object
+InformationObject ::= CHOICE {ipm [0] IPM,
+ ipn [1] IPN
+}
+
+-- IPM
+IPM ::= SEQUENCE {heading Heading,
+ body Body
+}
+
+-- MTS Extensions
+IPMPerRecipientEnvelopeExtensions EXTENSION ::=
+ {blind-copy-recipients | body-part-encryption-token |
+ forwarded-content-token, ...}
+
+-- IPMS Extensions
+IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type IPMS-EXTENSION.&id({ChosenFrom}),
+ value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Type DEFAULT NULL
+}WITH SYNTAX {[VALUE &Type,]
+ IDENTIFIED BY &id
+}
+
+PrivateIPMSExtensions IPMS-EXTENSION ::=
+ {...}
+
+-- Heading
+Heading ::= SET {
+ this-IPM ThisIPMField,
+ originator [0] OriginatorField OPTIONAL,
+ authorizing-users [1] AuthorizingUsersField OPTIONAL,
+ primary-recipients [2] PrimaryRecipientsField DEFAULT {},
+ copy-recipients [3] CopyRecipientsField DEFAULT {},
+ blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL,
+ replied-to-IPM [5] RepliedToIPMField OPTIONAL,
+ obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {},
+ related-IPMs [7] RelatedIPMsField DEFAULT {},
+ subject [8] EXPLICIT SubjectField OPTIONAL,
+ expiry-time [9] ExpiryTimeField OPTIONAL,
+ reply-time [10] ReplyTimeField OPTIONAL,
+ reply-recipients [11] ReplyRecipientsField OPTIONAL,
+ importance [12] ImportanceField DEFAULT normal,
+ sensitivity [13] SensitivityField OPTIONAL,
+ auto-forwarded [14] AutoForwardedField DEFAULT FALSE,
+ extensions [15] ExtensionsField DEFAULT {}
+}
+
+-- Heading component types
+IPMIdentifier ::= [APPLICATION 11] SET {
+ user ORName OPTIONAL,
+ user-relative-identifier LocalIPMIdentifier
+}
+
+LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
+
+RecipientSpecifier ::= SET {
+ recipient [0] ORDescriptor,
+ notification-requests [1] NotificationRequests DEFAULT {},
+ reply-requested [2] BOOLEAN DEFAULT FALSE,
+ recipient-extensions [3] RecipientExtensionsField OPTIONAL
+}
+
+ORDescriptor ::= SET {
+ formal-name ORName OPTIONAL,
+ free-form-name [0] FreeFormName OPTIONAL,
+ telephone-number [1] TelephoneNumber OPTIONAL
+}
+
+FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
+
+TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
+
+NotificationRequests ::= BIT STRING {
+ rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
+
+RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}}
+
+RecipientExtensions IPMS-EXTENSION ::=
+ {circulation-list-indicator | precedence | recipient-security-request |
+ PrivateIPMSExtensions, ...}
+
+-- This IPM heading field
+ThisIPMField ::= IPMIdentifier
+
+-- Originator heading field
+OriginatorField ::= ORDescriptor
+
+-- Authorizing Users heading field
+AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
+
+AuthorizingUsersSubfield ::= ORDescriptor
+
+-- Primary Recipients heading field
+PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
+
+PrimaryRecipientsSubfield ::= RecipientSpecifier
+
+-- Copy Recipients heading field
+CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
+
+CopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients heading field
+BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
+
+BlindCopyRecipientsSubfield ::= RecipientSpecifier
+
+-- Blind Copy Recipients envelope field
+blind-copy-recipients EXTENSION ::= {
+ BlindCopyRecipientsField,
+ IDENTIFIED BY standard-extension:41
+}
+
+-- Replied-to IPM heading field
+RepliedToIPMField ::= IPMIdentifier
+
+-- Obsoleted IPMs heading field
+ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
+
+ObsoletedIPMsSubfield ::= IPMIdentifier
+
+-- Related IPMs heading field
+RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
+
+RelatedIPMsSubfield ::= IPMIdentifier
+
+-- Subject heading field
+SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
+
+-- Expiry Time heading field
+ExpiryTimeField ::= Time
+
+-- Reply Time heading field
+ReplyTimeField ::= Time
+
+-- Reply Recipients heading field
+ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
+
+ReplyRecipientsSubfield ::=
+ ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ })
+
+-- Importance heading field
+ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
+
+-- Sensitivity heading field
+SensitivityField ::= ENUMERATED {
+ personal(1), private(2), company-confidential(3)}
+
+-- Auto-forwarded heading field
+AutoForwardedField ::= BOOLEAN
+
+-- Extensions heading field
+ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}}
+
+HeadingExtensions IPMS-EXTENSION ::=
+ {authorization-time | auto-submitted | body-part-signatures |
+ circulation-list-recipients | distribution-codes | extended-subject |
+ incomplete-copy | information-category | ipm-security-label | languages |
+ manual-handling-instructions | originators-reference |
+ precedence-policy-identifier | PrivateIPMSExtensions, ...}
+
+-- Body
+Body ::= SEQUENCE OF BodyPart
+
+BodyPart ::= CHOICE {
+ basic
+ CHOICE {ia5-text [0] IA5TextBodyPart,
+ g3-facsimile [3] G3FacsimileBodyPart,
+ g4-class1 [4] G4Class1BodyPart,
+ teletex [5] TeletexBodyPart,
+ videotex [6] VideotexBodyPart,
+ encrypted [8] EncryptedBodyPart,
+ message [9] MessageBodyPart,
+ mixed-mode [11] MixedModeBodyPart,
+ bilaterally-defined [14] BilaterallyDefinedBodyPart,
+ nationally-defined [7] NationallyDefinedBodyPart},
+ extended [15] ExtendedBodyPart{{IPMBodyPartTable}}
+}
+
+-- Extended body part
+ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE {
+ parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ data INSTANCE OF TYPE-IDENTIFIER
+}
+(CONSTRAINED BY { -- must correspond to the &parameters field and &data field of a member of --
+ IPMBodyPartTable})
+
+IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
+ {StandardBodyParts | ApplicationSpecificBodyParts}
+
+StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
+ teletex-body-part | videotex-body-part | encrypted-body-part |
+ message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
+ nationally-defined-body-part | general-text-body-part |
+ file-transfer-body-part | voice-body-part | report-body-part |
+ notification-body-part |
+ content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} |
+ pkcs7-body-part, ...}
+
+ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
+ {--any body part defined in other Specifications, or for proprietary or private use
+ ...}
+
+EXTENDED-BODY-PART-TYPE ::= CLASS {
+ &parameters TYPE-IDENTIFIER OPTIONAL,
+ &data TYPE-IDENTIFIER
+}WITH SYNTAX {[PARAMETERS &parameters,]
+ DATA &data
+}
+
+-- IA5 Text body part
+IA5TextBodyPart ::= SEQUENCE {
+ parameters IA5TextParameters,
+ data IA5TextData
+}
+
+IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5
+}
+
+IA5TextData ::= IA5String
+
+Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
+
+-- G3 Facsimile body part
+G3FacsimileBodyPart ::= SEQUENCE {
+ parameters G3FacsimileParameters,
+ data G3FacsimileData
+}
+
+G3FacsimileParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL
+}
+
+G3FacsimileData ::= SEQUENCE OF BIT STRING
+
+-- G4 Class 1 and Mixed-mode body parts
+G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
+
+-- Teletex body part
+TeletexBodyPart ::= SEQUENCE {
+ parameters TeletexParameters,
+ data TeletexData
+}
+
+TeletexParameters ::= SET {
+ number-of-pages [0] INTEGER OPTIONAL,
+ telex-compatible [1] BOOLEAN DEFAULT FALSE,
+ non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL
+}
+
+TeletexData ::= SEQUENCE OF TeletexString
+
+-- Videotex body part
+VideotexBodyPart ::= SEQUENCE {
+ parameters VideotexParameters,
+ data VideotexData
+}
+
+VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL
+}
+
+VideotexSyntax ::= INTEGER {
+ ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
+
+VideotexData ::= VideotexString
+
+-- Encrypted body part
+EncryptedBodyPart ::= SEQUENCE {
+ parameters EncryptedParameters,
+ data EncryptedData
+}
+
+EncryptedParameters ::= SET {
+ algorithm-identifier AlgorithmIdentifier,
+ originator-certificates ExtendedCertificates OPTIONAL,
+ ...
+}
+
+EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
+
+-- Message body part
+MessageBodyPart ::= SEQUENCE {
+ parameters MessageParameters,
+ data MessageData
+}
+
+MessageParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL
+}
+
+MessageData ::= IPM
+
+-- Bilaterally Defined body part
+BilaterallyDefinedBodyPart ::= OCTET STRING
+
+-- Nationally Defined body part
+NATIONAL-BODY-PARTS ::= CLASS {&Type
+}
+
+NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
+
+-- Provided for Historic reasons. Use is strongly deprecated.
+-- IPN
+IPN ::= SET {
+ -- common-fields --COMPONENTS OF CommonFields,
+ choice
+ [0] CHOICE {non-receipt-fields [0] NonReceiptFields,
+ receipt-fields [1] ReceiptFields,
+ other-notification-type-fields
+ [2] OtherNotificationTypeFields}
+}
+
+RN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ receipt-fields PRESENT
+ })
+ })
+
+NRN ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ non-receipt-fields PRESENT
+ })
+ })
+
+ON ::=
+ IPN
+ (WITH COMPONENTS {
+ ...,
+ choice (WITH COMPONENTS {
+ other-notification-type-fields PRESENT
+ })
+ })
+
+CommonFields ::= SET {
+ subject-ipm SubjectIPMField,
+ ipn-originator [1] IPNOriginatorField OPTIONAL,
+ ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL,
+ conversion-eits ConversionEITsField OPTIONAL,
+ notification-extensions [3] NotificationExtensionsField OPTIONAL
+}
+
+NonReceiptFields ::= SET {
+ non-receipt-reason [0] NonReceiptReasonField,
+ discard-reason [1] DiscardReasonField OPTIONAL,
+ auto-forward-comment [2] AutoForwardCommentField OPTIONAL,
+ returned-ipm [3] ReturnedIPMField OPTIONAL,
+ nrn-extensions [4] NRNExtensionsField OPTIONAL
+}
+
+ReceiptFields ::= SET {
+ receipt-time [0] ReceiptTimeField,
+ acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual,
+ suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL,
+ rn-extensions [3] RNExtensionsField OPTIONAL
+}
+
+-- Common fields
+SubjectIPMField ::= IPMIdentifier
+
+IPNOriginatorField ::= ORDescriptor
+
+IPMIntendedRecipientField ::= ORDescriptor
+
+ConversionEITsField ::= EncodedInformationTypes
+
+NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}}
+
+NotificationExtensions IPMS-EXTENSION ::=
+ {ipn-security-response | PrivateIPMSExtensions, ...}
+
+-- Non-receipt fields
+NonReceiptReasonField ::= ENUMERATED {
+ ipm-discarded(0), ipm-auto-forwarded(1), ...
+ }
+
+-- ITU-T version:
+DiscardReasonField ::= ENUMERATED {
+ ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
+ not-used(3)}
+
+-- ISO/IEC version:
+--DiscardReasonField ::= ENUMERATED {
+-- ipm-expired (0),
+-- ipm-obsoleted (1),
+-- user-subscription-terminated (2),
+-- The following value may not be supported by implementations of earlier versions of this Specification
+-- ipm-deleted (3),
+-- ... }
+AutoForwardCommentField ::=
+ AutoForwardComment
+
+AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
+
+ReturnedIPMField ::= IPM
+
+NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}}
+
+NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Receipt fields
+ReceiptTimeField ::= Time
+
+AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
+
+SupplReceiptInfoField ::= SupplementaryInformation
+
+RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}}
+
+RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
+
+-- Other Notification Type fields
+OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}}
+
+OtherNotifications IPMS-EXTENSION ::=
+ {AdviceNotifications | PrivateIPMSExtensions, ...}
+
+AdviceNotifications IPMS-EXTENSION ::=
+ {absence-advice | change-of-address-advice, ...}
+
+-- Advice Notification fields
+absence-advice IPMS-EXTENSION ::= {
+ VALUE AbsenceAdvice,
+ IDENTIFIED BY id-on-absence-advice
+}
+
+AbsenceAdvice ::= SEQUENCE {
+ advice BodyPart OPTIONAL,
+ next-available Time OPTIONAL
+}
+
+-- at least one component shall be present
+change-of-address-advice IPMS-EXTENSION ::= {
+ VALUE ChangeOfAddressAdvice,
+ IDENTIFIED BY id-on-change-of-address-advice
+}
+
+ChangeOfAddressAdvice ::= SEQUENCE {
+ new-address
+ [0] ORDescriptor(WITH COMPONENTS {
+ ...,
+ formal-name PRESENT
+ }),
+ effective-from [1] Time OPTIONAL
+}
+
+-- Message Store Realization
+prevent-nrn-generation MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-prevent-nrn-generation
+}
+
+suspend-auto-acknowledgement MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-suspend-auto-acknowledgement
+}
+
+assembly-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-mst-assembly-capability
+}
+
+IPMSubmissionOptions MS-EXTENSION ::=
+ {ipm-assembly-instructions | originator-body-part-encryption-token |
+ originator-forwarded-content-token, ...} -- For future extension additions
+
+ipm-assembly-instructions MS-EXTENSION ::= {
+ IPMAssemblyInstructions
+ IDENTIFIED BY id-mst-assembly-instructions
+}
+
+IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences
+}
+
+BodyPartReferences ::= SEQUENCE OF BodyPartReference
+
+BodyPartReference ::= CHOICE {
+ stored-entry [0] SequenceNumber,
+ stored-content [1] SequenceNumber,
+ submitted-body-part [2] INTEGER(1..MAX),
+ stored-body-part
+ [3] SEQUENCE {message-entry SequenceNumber,
+ body-part-number INTEGER(1..MAX)}
+}
+
+originator-body-part-encryption-token MS-EXTENSION ::= {
+ BodyPartTokens
+ IDENTIFIED BY id-mst-originator-body-part-encryption-token
+}
+
+originator-forwarded-content-token MS-EXTENSION ::= {
+ ForwardedContentToken
+ IDENTIFIED BY id-mst-originator-forwarded-content-token
+}
+
+IPMSubmissionErrors MS-EXTENSION ::=
+ {invalid-assembly-instructions | invalid-ipn, ...
+ } -- For future extension additions
+
+invalid-assembly-instructions MS-EXTENSION ::= {
+ BodyPartReferences
+ IDENTIFIED BY id-mst-invalid-assembly-instructions
+}
+
+invalid-ipn MS-EXTENSION ::= {NULL
+ IDENTIFIED BY id-mst-invalid-ipn
+}
+
+END -- of IPMSInformationObjects
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSMessageStoreAttributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSMessageStoreAttributes.asn
new file mode 100644
index 0000000000..719bca4987
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSMessageStoreAttributes.asn
@@ -0,0 +1,1120 @@
+-- Module IPMSMessageStoreAttributes (X.420:06/1999)
+IPMSMessageStoreAttributes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ message-store-attributes(8) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- IPMS Heading Extensions
+ AuthorizationTime, AutoSubmitted, BodyPartNumber, BodyPartSecurityLabel,
+ BodyPartSignatures, CirculationMember, DistributionCode, ExtendedSubject,
+ IncompleteCopy, InformationCategory, IPMSecurityLabel, Language,
+ ManualHandlingInstruction, OriginatorsReference, Precedence,
+ PrecedencePolicyIdentifier
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- IPMS Security Extensions
+ BodyPartTokens, ForwardedContentToken
+ --==
+ FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)}
+ -- IPMS Information Objects
+ AcknowledgmentModeField, AuthorizingUsersSubfield, AutoForwardCommentField,
+ AutoForwardedField, BilaterallyDefinedBodyPart,
+ BlindCopyRecipientsSubfield, Body, ConversionEITsField,
+ CopyRecipientsSubfield, DiscardReasonField, EncryptedBodyPart,
+ EncryptedData, EncryptedParameters, ExpiryTimeField,
+ EXTENDED-BODY-PART-TYPE, G3FacsimileBodyPart, G3FacsimileData,
+ G3FacsimileParameters, G4Class1BodyPart, Heading, IA5TextBodyPart,
+ IA5TextData, IA5TextParameters, ImportanceField, IPMIdentifier,
+ IPMIntendedRecipientField, IPMSExtension{}, IPNOriginatorField,
+ MessageBodyPart, MessageData, MessageParameters, MixedModeBodyPart,
+ NationallyDefinedBodyPart, NonReceiptReasonField, NotificationExtensions,
+ NRNExtensions, ObsoletedIPMsSubfield, ORDescriptor, OriginatorField,
+ OtherNotifications, PrimaryRecipientsSubfield, ReceiptTimeField,
+ RecipientSpecifier, RelatedIPMsSubfield, RepliedToIPMField,
+ ReplyRecipientsSubfield, ReplyTimeField, ReturnedIPMField, RNExtensions,
+ SensitivityField, SubjectField, SubjectIPMField, SupplReceiptInfoField,
+ TeletexBodyPart, TeletexData, TeletexParameters, ThisIPMField,
+ VideotexBodyPart, VideotexData, VideotexParameters
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-bat-bilaterally-defined-body-parts, id-bat-body,
+ id-bat-encrypted-body-parts, id-bat-encrypted-data,
+ id-bat-encrypted-parameters, id-bat-extended-body-part-types,
+ id-bat-g3-facsimile-body-parts, id-bat-g3-facsimile-data,
+ id-bat-g3-facsimile-parameters, id-bat-g4-class1-body-parts,
+ id-bat-ia5-text-body-parts, id-bat-ia5-text-data,
+ id-bat-ia5-text-parameters, id-bat-message-body-parts, id-bat-message-data,
+ id-bat-message-parameters, id-bat-mixed-mode-body-parts,
+ id-bat-nationally-defined-body-parts, id-bat-teletex-body-parts,
+ id-bat-teletex-data, id-bat-teletex-parameters, id-bat-videotex-body-parts,
+ id-bat-videotex-data, id-bat-videotex-parameters,
+ id-cat-correlated-delivered-ipns, id-cat-correlated-delivered-replies,
+ id-cat-delivered-ipn-summary, id-cat-delivered-replies-summary,
+ id-cat-forwarded-ipms, id-cat-forwarding-ipms, id-cat-ipm-recipients,
+ id-cat-obsoleted-ipms, id-cat-obsoleting-ipms, id-cat-related-ipms,
+ id-cat-relating-ipms, id-cat-replied-to-ipm, id-cat-recipient-category,
+ id-cat-replying-ipms, id-cat-revised-reply-time, id-cat-subject-ipm,
+ id-cat-submitted-ipn-status, id-cat-submitted-ipns,
+ id-cat-submitted-reply-status, id-hat-authorization-time,
+ id-hat-authorizing-users, id-hat-auto-forwarded, id-hat-auto-submitted,
+ id-hat-blind-copy-recipients, id-hat-body-part-encryption-token,
+ id-hat-body-part-security-label,
+ id-hat-body-part-signature-verification-status,
+ id-hat-body-part-signatures, id-hat-circulation-list-recipients,
+ id-hat-copy-recipients, id-hat-distribution-codes, id-hat-expiry-time,
+ id-hat-extended-subject, id-hat-forwarded-content-token,
+ id-hat-forwarding-token, id-hat-heading, id-hat-importance,
+ id-hat-incomplete-copy, id-hat-information-category,
+ id-hat-ipm-security-label, id-hat-languages,
+ id-hat-manual-handling-instructions, id-hat-nrn-requestors,
+ id-hat-obsoleted-IPMs, id-hat-originator, id-hat-originators-reference,
+ id-hat-precedence, id-hat-precedence-policy-id, id-hat-primary-recipients,
+ id-hat-related-IPMs, id-hat-replied-to-IPM, id-hat-reply-recipients,
+ id-hat-reply-requestors, id-hat-reply-time, id-hat-rn-requestors,
+ id-hat-sensitivity, id-hat-subject, id-hat-this-ipm, id-mr-ipm-identifier,
+ id-mr-ipm-location, id-mr-or-descriptor, id-mr-or-descriptor-elements,
+ id-mr-or-descriptor-single-element, id-mr-or-descriptor-substring-elements,
+ id-mr-circulation-member, id-mr-circulation-member-checkmark,
+ id-mr-circulation-member-elements, id-mr-circulation-member-single-element,
+ id-mr-circulation-member-substring-elements, id-mr-distribution-code,
+ id-mr-information-category, id-mr-recipient-specifier,
+ id-mr-recipient-specifier-elements,
+ id-mr-recipient-specifier-single-element,
+ id-mr-recipient-specifier-substring-elements, id-nat-acknowledgment-mode,
+ id-nat-auto-forward-comment, id-nat-conversion-eits, id-nat-discard-reason,
+ id-nat-ipm-intended-recipient, id-nat-ipn-originator,
+ id-nat-non-receipt-reason, id-nat-notification-extensions,
+ id-nat-nrn-extensions, id-nat-other-notification-type-fields,
+ id-nat-receipt-time, id-nat-returned-ipm, id-nat-rn-extensions,
+ id-nat-subject-ipm, id-nat-suppl-receipt-info, id-sat-body-parts-summary,
+ id-sat-ipm-auto-discarded, id-sat-ipm-entry-type, id-sat-ipm-synopsis
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Abstract Service
+ X413ATTRIBUTE, MS-EIT, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS General Attribute Types
+ SignatureStatus
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching-rules
+ MSString{}, mSStringMatch, mSSubstringsMatch
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MTS Abstract Service
+ EncodedInformationTypes, MessageToken
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Directory Information Framework
+ objectIdentifierMatch, MATCHING-RULE
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Abstract Service
+ booleanMatch, generalizedTimeMatch, generalizedTimeOrderingMatch,
+ integerMatch, integerOrderingMatch, uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3}
+ ub-msstring-match
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)};
+
+-- IPMS attribute table information object set
+IPMSAttributeTable X413ATTRIBUTE ::=
+ {acknowledgment-mode | authorizing-users | auto-forward-comment |
+ auto-forwarded | auto-submitted | bilaterally-defined-body-parts |
+ blind-copy-recipients | body | conversion-eits | copy-recipients |
+ discard-reason | encrypted-body-parts | encrypted-data |
+ encrypted-parameters | expiry-time | extended-body-part-types |
+ g3-facsimile-body-parts | g3-facsimile-data | g3-facsimile-parameters |
+ g4-class1-body-parts | heading | ia5-text-body-parts | ia5-text-data |
+ ia5-text-parameters | importance | incomplete-copy | ipm-entry-type |
+ ipm-intended-recipient | ipm-synopsis | ipn-originator | languages |
+ message-body-parts | message-data | message-parameters |
+ mixed-mode-body-parts | nationally-defined-body-parts | non-receipt-reason |
+ nrn-requestors | obsoleted-IPMs | originator | primary-recipients |
+ receipt-time | related-IPMs | replied-to-IPM | reply-recipients |
+ reply-requestors | reply-time | returned-ipm | rn-requestors | sensitivity |
+ subject | subject-ipm | suppl-receipt-info | teletex-body-parts |
+ teletex-data | teletex-parameters | this-ipm | videotex-body-parts |
+ videotex-data | videotex-parameters, ... -- 1994 extension additions --,
+ ac-correlated-delivered-ipns | ac-correlated-delivered-replies |
+ ac-delivered-ipn-summary | ac-delivered-replies-summary | ac-forwarded-ipms
+ | ac-forwarding-ipms | ac-ipm-recipients | ac-obsoleted-ipms |
+ ac-obsoleting-ipms | ac-related-ipms | ac-relating-ipms | ac-replied-to-ipm
+ | ac-replying-ipms | ac-subject-ipm | ac-submitted-ipn-status |
+ ac-submitted-ipns | ac-submitted-reply-status | authorization-time |
+ body-part-encryption-token | body-part-security-label |
+ body-part-signature-verification-status | body-part-signatures |
+ body-parts-summary | circulation-list-recipients | distribution-codes |
+ extended-subject | forwarded-content-token | forwarding-token |
+ information-category | ipm-auto-discarded | ipm-security-label |
+ manual-handling-instructions | notification-extensions | nrn-extensions |
+ originators-reference | other-notification-type-fields | precedence |
+ precedence-policy-identifier | recipient-category | revised-reply-time |
+ rn-extensions}
+
+-- SUMMARY ATTRIBUTES
+-- IPM entry type
+ipm-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMEntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-entry-type
+}
+
+IPMEntryType ::= ENUMERATED {ipm(0), rn(1), nrn(2), on(3)}
+
+-- IPM synopsis
+ipm-synopsis X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSynopsis,
+ NUMERATION single-valued,
+ ID id-sat-ipm-synopsis
+}
+
+IPMSynopsis ::= SEQUENCE OF BodyPartSynopsis
+
+BodyPartSynopsis ::= CHOICE {
+ message [0] MessageBodyPartSynopsis,
+ non-message [1] NonMessageBodyPartSynopsis
+}
+
+MessageBodyPartSynopsis ::= SEQUENCE {
+ number [0] SequenceNumber,
+ synopsis [1] IPMSynopsis
+}
+
+NonMessageBodyPartSynopsis ::= SEQUENCE {
+ type [0] OBJECT IDENTIFIER,
+ parameters [1] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
+ size [2] INTEGER,
+ processed [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Body part summary
+body-parts-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartDescriptor,
+ NUMERATION multi-valued,
+ ID id-sat-body-parts-summary
+}
+
+BodyPartDescriptor ::= SEQUENCE {
+ data [0] OBJECT IDENTIFIER,
+ parameters [1] OBJECT IDENTIFIER OPTIONAL,
+ this-child-entry [2] SequenceNumber OPTIONAL,
+ position [3] INTEGER,
+ size [4] INTEGER,
+ processed [5] BOOLEAN DEFAULT FALSE
+}
+
+-- IPM auto discarded
+ipm-auto-discarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-sat-ipm-auto-discarded
+}
+
+-- Body part signature verification status
+body-part-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatureVerification,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signature-verification-status
+}
+
+BodyPartSignatureVerification ::=
+ SET OF
+ SET {body-part-sequence-number [0] BodyPartNumber,
+ body-part-signature [1] SignatureStatus}
+
+-- HEADING ATTRIBUTES
+-- Heading
+heading X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Heading,
+ NUMERATION single-valued,
+ ID id-hat-heading
+}
+
+-- Heading analyses
+rn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-rn-requestors
+}
+
+nrn-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-nrn-requestors
+}
+
+reply-requestors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ NUMERATION multi-valued,
+ ID id-hat-reply-requestors
+}
+
+-- Heading fields
+this-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ThisIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-this-ipm
+}
+
+originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-hat-originator
+}
+
+replied-to-IPM X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RepliedToIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-replied-to-IPM
+}
+
+subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-subject
+}
+
+expiry-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExpiryTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-expiry-time
+}
+
+reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-reply-time
+}
+
+importance X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ImportanceField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-importance
+}
+
+sensitivity X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SensitivityField,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- not defined for 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-hat-sensitivity
+}
+
+auto-forwarded X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardedField,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-forwarded
+}
+
+-- Heading sub-fields
+authorizing-users X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizingUsersSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-authorizing-users
+}
+
+primary-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrimaryRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-primary-recipients
+}
+
+copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-copy-recipients
+}
+
+blind-copy-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BlindCopyRecipientsSubfield,
+ EQUALITY MATCHING-RULE recipientSpecifierMatch,
+ OTHER MATCHING-RULES
+ {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch
+ | recipientSpecifierSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-blind-copy-recipients
+}
+
+obsoleted-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ObsoletedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-obsoleted-IPMs
+}
+
+related-IPMs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RelatedIPMsSubfield,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-hat-related-IPMs
+}
+
+reply-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyRecipientsSubfield,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-hat-reply-recipients
+}
+
+-- Heading extensions
+incomplete-copy X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IncompleteCopy,
+ NUMERATION
+ single-valued, -- An equality match is specified for 1988
+
+
+ -- Application Contexts
+ ID id-hat-incomplete-copy
+}
+
+languages X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Language,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE
+ mSSubstringsMatch, -- Not defined for 1988 Application Contexts
+
+ NUMERATION multi-valued,
+ ID id-hat-languages
+}
+
+auto-submitted X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoSubmitted,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-auto-submitted
+}
+
+body-part-signatures X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSignatures,
+ NUMERATION single-valued,
+ ID id-hat-body-part-signatures
+}
+
+ipm-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSecurityLabel,
+ NUMERATION single-valued,
+ ID id-hat-ipm-security-label
+}
+
+body-part-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartSecurityLabel,
+ NUMERATION multi-valued,
+ ID id-hat-body-part-security-label
+}
+
+authorization-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AuthorizationTime,
+ EQUALITY MATCHING-RULE generalizedTimeMatch,
+ ORDERING MATCHING-RULE generalizedTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-hat-authorization-time
+}
+
+circulation-list-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CirculationMember,
+ EQUALITY MATCHING-RULE circulationMemberMatch,
+ OTHER MATCHING-RULES
+ {circulationMemberElementsMatch | circulationMemberSubstringElementsMatch |
+ circulationMemberSingleElementMatch | circulationMemberCheckmarkMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-hat-circulation-list-recipients
+}
+
+distribution-codes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DistributionCode,
+ EQUALITY MATCHING-RULE distributionCodeMatch,
+ NUMERATION multi-valued,
+ ID id-hat-distribution-codes
+}
+
+extended-subject X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedSubject,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-hat-extended-subject
+}
+
+information-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InformationCategory,
+ EQUALITY MATCHING-RULE informationCategoryMatch,
+ NUMERATION multi-valued,
+ ID id-hat-information-category
+}
+
+manual-handling-instructions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ManualHandlingInstruction,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION multi-valued,
+ ID id-hat-manual-handling-instructions
+}
+
+originators-reference X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorsReference,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ NUMERATION single-valued,
+ ID id-hat-originators-reference
+}
+
+precedence-policy-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PrecedencePolicyIdentifier,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence-policy-id
+}
+
+-- Recipient extensions
+precedence X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Precedence,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-hat-precedence
+}
+
+-- Envelope extensions
+body-part-encryption-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BodyPartTokens,
+ NUMERATION single-valued,
+ ID id-hat-body-part-encryption-token
+}
+
+forwarded-content-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ForwardedContentToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarded-content-token
+}
+
+forwarding-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-hat-forwarding-token
+}
+
+-- BODY ATTRIBUTES
+-- Body
+body X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Body,
+ NUMERATION single-valued,
+ ID id-bat-body
+}
+
+-- Extended body part types
+extended-body-part-types X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-bat-extended-body-part-types
+}
+
+-- Extended body parts
+-- (These attributes cannot be enumerated. See 19.6.3.3.)
+-- (They may be derived using the following parameterized object assignments:)
+extended-body-part-data-attribute{EXTENDED-BODY-PART-TYPE:ebpt} X413ATTRIBUTE
+ ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&data.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&data.&id
+}
+
+extended-body-part-parameters-attribute{EXTENDED-BODY-PART-TYPE:ebpt}
+ X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&parameters.&Type,
+ NUMERATION multi-valued,
+ ID ebpt.&parameters.&id
+}
+
+-- Basic body parts
+ia5-text-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-body-parts
+}
+
+g3-facsimile-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-body-parts
+}
+
+g4-class1-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G4Class1BodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-g4-class1-body-parts
+}
+
+teletex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-body-parts
+}
+
+videotex-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-body-parts
+}
+
+encrypted-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-body-parts
+}
+
+message-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-bat-message-body-parts
+}
+
+mixed-mode-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MixedModeBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-mixed-mode-body-parts
+}
+
+bilaterally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BilaterallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-bilaterally-defined-body-parts
+}
+
+nationally-defined-body-parts X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NationallyDefinedBodyPart,
+ NUMERATION multi-valued,
+ ID id-bat-nationally-defined-body-parts
+}
+
+-- Basic body part parameters components
+ia5-text-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextParameters,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-parameters
+}
+
+g3-facsimile-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileParameters,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-parameters
+}
+
+teletex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-parameters
+}
+
+videotex-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexParameters,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-parameters
+}
+
+encrypted-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedParameters,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-parameters
+}
+
+message-parameters X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageParameters,
+ NUMERATION multi-valued,
+ ID id-bat-message-parameters
+}
+
+-- Basic body part data components
+ia5-text-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IA5TextData,
+ NUMERATION multi-valued,
+ ID id-bat-ia5-text-data
+}
+
+g3-facsimile-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX G3FacsimileData,
+ NUMERATION multi-valued,
+ ID id-bat-g3-facsimile-data
+}
+
+teletex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TeletexData,
+ NUMERATION multi-valued,
+ ID id-bat-teletex-data
+}
+
+videotex-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX VideotexData,
+ NUMERATION multi-valued,
+ ID id-bat-videotex-data
+}
+
+encrypted-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EncryptedData,
+ NUMERATION multi-valued,
+ ID id-bat-encrypted-data
+}
+
+message-data X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageData,
+ NUMERATION multi-valued,
+ ID id-bat-message-data
+}
+
+-- NOTIFICATION ATTRIBUTES
+-- Common fields
+subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectIPMField,
+ EQUALITY MATCHING-RULE iPMIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-nat-subject-ipm
+}
+
+ipn-originator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPNOriginatorField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipn-originator
+}
+
+ipm-intended-recipient X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMIntendedRecipientField,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION single-valued,
+ ID id-nat-ipm-intended-recipient
+}
+
+conversion-eits X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-nat-conversion-eits
+}
+
+notification-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NotificationExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-notification-extensions
+}
+
+-- Non-receipt fields
+non-receipt-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NonReceiptReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-non-receipt-reason
+}
+
+discard-reason X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DiscardReasonField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-discard-reason
+}
+
+auto-forward-comment X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoForwardCommentField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-auto-forward-comment
+}
+
+returned-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReturnedIPMField,
+ NUMERATION single-valued,
+ ID id-nat-returned-ipm
+}
+
+nrn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{NRNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-nrn-extensions
+}
+
+-- Receipt fields
+receipt-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReceiptTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-nat-receipt-time
+}
+
+acknowledgment-mode X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AcknowledgmentModeField,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-nat-acknowledgment-mode
+}
+
+suppl-receipt-info X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SupplReceiptInfoField,
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION single-valued,
+ ID id-nat-suppl-receipt-info
+}
+
+rn-extensions X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{RNExtensions}},
+ NUMERATION multi-valued,
+ ID id-nat-rn-extensions
+}
+
+-- Other notification type fields
+other-notification-type-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMSExtension {{OtherNotifications}},
+ NUMERATION multi-valued,
+ ID id-nat-other-notification-type-fields
+}
+
+-- CORRELATION ATTRIBUTES
+-- Common attributes
+ac-forwarding-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarding-ipms
+}
+
+ac-forwarded-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-forwarded-ipms
+}
+
+ac-obsoleting-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-obsoleting-ipms
+}
+
+ac-obsoleted-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-obsoleted-ipms
+}
+
+IPMLocation ::= CHOICE {stored SET OF SequenceNumber,
+ absent NULL,
+ ...
+}
+
+ac-relating-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-relating-ipms
+}
+
+ac-related-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX IPMLocation,
+ OTHER MATCHING-RULES {iPMLocationMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-related-ipms
+}
+
+ac-replied-to-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replied-to-ipm
+}
+
+ac-replying-ipms X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-replying-ipms
+}
+
+ac-subject-ipm X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-subject-ipm
+}
+
+-- Submitted message correlation
+ac-ipm-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORDescriptor,
+ EQUALITY MATCHING-RULE oRDescriptorMatch,
+ OTHER MATCHING-RULES
+ {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch |
+ oRDescriptorSubstringElementsMatch, ...},
+ NUMERATION multi-valued,
+ ID id-cat-ipm-recipients
+}
+
+ac-delivered-replies-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-replies-summary
+}
+
+DeliveredReplyStatus ::= INTEGER {
+ no-reply-requested(0) -- reply not requested --,
+ reply-outstanding(1) -- reply requested --, reply-received(2)}
+
+ac-correlated-delivered-replies X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredReplies,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-replies
+}
+
+CorrelatedDeliveredReplies ::= CHOICE {
+ no-reply-received [0] NULL,
+ received-replies [1] SEQUENCE OF SequenceNumber
+}
+
+ac-delivered-ipn-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveredIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-delivered-ipn-summary
+}
+
+DeliveredIPNStatus ::= INTEGER {
+ no-ipn-requested(0), an-requested(3), nrn-requested(5), rn-requested(10),
+ an-received(13), ipm-auto-forwarded(15), ipm-discarded(20), rn-received(25)
+}
+
+ac-correlated-delivered-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredIPNs,
+ NUMERATION multi-valued,
+ ID id-cat-correlated-delivered-ipns
+}
+
+CorrelatedDeliveredIPNs ::= CHOICE {
+ no-ipn-received [0] NULL,
+ ipns-received [1] SEQUENCE OF SequenceNumber
+}
+
+-- Delivered message correlation
+ac-submitted-reply-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedReplyStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-reply-status
+}
+
+SubmittedReplyStatus ::= INTEGER {
+ no-reply-requested(0), no-reply-intended(1), reply-pending(2), reply-sent(3)
+}
+
+ac-submitted-ipn-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmittedIPNStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-submitted-ipn-status
+}
+
+SubmittedIPNStatus ::= INTEGER {
+ no-ipn-requested(0), nrn-requested(5), nrn-with-ipm-return-requested(10),
+ rn-requested(15), rn-with-ipm-return-requested(20), ipm-auto-forwarded(25),
+ ipm-discarded(30), rn-sent(35)}
+
+ac-submitted-ipns X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-cat-submitted-ipns
+}
+
+recipient-category X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientCategory,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-recipient-category
+}
+
+RecipientCategory ::= INTEGER {
+ primary-recipient(0), copy-recipient(1), blind-copy-recipient(2),
+ category-unknown(3), circulation-list(4)}
+
+revised-reply-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReplyTimeField,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-cat-revised-reply-time
+}
+
+-- MATCHING-RULES
+IPMMatchingRuleTable MATCHING-RULE ::=
+ {iPMIdentifierMatch | oRDescriptorMatch | recipientSpecifierMatch,
+ ... -- 1994 extension additions --, circulationMemberCheckmarkMatch |
+ circulationMemberElementsMatch | circulationMemberMatch |
+ circulationMemberSingleElementMatch |
+ circulationMemberSubstringElementsMatch | distributionCodeMatch |
+ informationCategoryMatch | iPMLocationMatch | oRDescriptorElementsMatch |
+ oRDescriptorSingleElementMatch | oRDescriptorSubstringElementsMatch |
+ recipientSpecifierElementsMatch | recipientSpecifierSingleElementMatch |
+ recipientSpecifierSubstringElementsMatch}
+
+iPMIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX IPMIdentifier
+ ID id-mr-ipm-identifier
+}
+
+iPMLocationMatch MATCHING-RULE ::= {
+ SYNTAX SequenceNumber
+ ID id-mr-ipm-location
+}
+
+oRDescriptorMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor
+}
+
+oRDescriptorElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-elements
+}
+
+oRDescriptorSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORDescriptor
+ ID id-mr-or-descriptor-substring-elements
+}
+
+oRDescriptorSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-or-descriptor-single-element
+}
+
+recipientSpecifierMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier
+}
+
+recipientSpecifierElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-elements
+}
+
+recipientSpecifierSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX RecipientSpecifier
+ ID id-mr-recipient-specifier-substring-elements
+}
+
+recipientSpecifierSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-recipient-specifier-single-element
+}
+
+circulationMemberMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member
+}
+
+circulationMemberElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-elements
+}
+
+circulationMemberSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-substring-elements
+}
+
+circulationMemberSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-circulation-member-single-element
+}
+
+circulationMemberCheckmarkMatch MATCHING-RULE ::= {
+ SYNTAX CirculationMember
+ ID id-mr-circulation-member-checkmark
+}
+
+distributionCodeMatch MATCHING-RULE ::= {
+ SYNTAX DistributionCode
+ ID id-mr-distribution-code
+}
+
+informationCategoryMatch MATCHING-RULE ::= {
+ SYNTAX InformationCategory
+ ID id-mr-information-category
+}
+
+END -- of IPMSMessageStoreAttributes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers.asn
new file mode 100644
index 0000000000..6e5c01ab40
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers.asn
@@ -0,0 +1,507 @@
+-- Module IPMSObjectIdentifiers (X.420:06/1999)
+IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (not definitive)
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)} -- not definitive
+
+-- Categories
+id-mod ID ::= {id-ipms 0} -- modules; not definitive
+
+id-ot ID ::= {id-ipms 1} -- object types
+
+id-pt ID ::= {id-ipms 2} -- port types
+
+id-et ID ::= {id-ipms 4} -- extended body part types
+
+id-hex ID ::= {id-ipms 5} -- heading extensions
+
+id-sat ID ::= {id-ipms 6} -- summary attributes
+
+id-hat ID ::= {id-ipms 7} -- heading attributes
+
+id-bat ID ::= {id-ipms 8} -- body attributes
+
+id-nat ID ::= {id-ipms 9} -- notification attributes
+
+id-mct ID ::= {id-ipms 10} -- message content types
+
+id-ep ID ::= {id-ipms 11} -- extended body part parameters
+
+id-eit ID ::= {id-ipms 12} -- encoded information types
+
+id-cat ID ::= {id-ipms 13} -- correlation attributes
+
+id-mr ID ::= {id-ipms 14} -- matching-rules
+
+id-aa ID ::= {id-ipms 15} -- auto-actions
+
+id-aae ID ::= {id-ipms 16} -- auto-action errors
+
+id-mst ID ::= {id-ipms 17} -- message store types
+
+id-sec ID ::= {id-ipms 18} -- ipm security extensions
+
+id-on ID ::= {id-ipms 19} -- other notification type extensions
+
+id-rex ID ::= {id-ipms 20} -- recipient extensions
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-functional-objects ID ::= {id-mod 1} -- not definitive
+
+id-mod-information-objects ID ::= {id-mod 2} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 3} -- not definitive
+
+id-mod-heading-extensions ID ::= {id-mod 6} -- not definitive
+
+id-mod-extended-body-part-types ID ::= {id-mod 7} -- not definitive
+
+id-mod-message-store-attributes ID ::= {id-mod 8} -- not definitive
+
+id-mod-file-transfer-body-part-type ID ::= {id-mod 9} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 10} -- not definitive
+
+id-mod-extended-voice-body-part-type ID ::= {id-mod 11} -- not definitive
+
+id-mod-forwarded-report-body-part-type ID ::= {id-mod 12} -- not definitive
+
+id-mod-auto-actions ID ::= {id-mod 13} -- not definitive
+
+id-mod-ipm-security-extensions ID ::= {id-mod 14} -- not definitive
+
+id-mod-forwarded-content-body-part-type ID ::= {id-mod 15} -- not definitive
+
+id-mod-pkcs7-body-part-type ID ::= {id-mod 16} -- not definitive
+
+-- Object types
+id-ot-ipms-user ID ::= {id-ot 1}
+
+id-ot-ipms ID ::= {id-ot 2}
+
+-- Port types
+id-pt-origination ID ::= {id-pt 0}
+
+id-pt-reception ID ::= {id-pt 1}
+
+id-pt-management ID ::= {id-pt 2}
+
+-- Extended body part types
+id-et-ia5-text ID ::= {id-et 0}
+
+id-et-g3-facsimile ID ::= {id-et 2}
+
+id-et-g4-class1 ID ::= {id-et 3}
+
+id-et-teletex ID ::= {id-et 4}
+
+id-et-videotex ID ::= {id-et 5}
+
+id-et-encrypted ID ::= {id-et 6}
+
+id-et-message ID ::= {id-et 7}
+
+id-et-mixed-mode ID ::= {id-et 8}
+
+id-et-bilaterally-defined ID ::= {id-et 9}
+
+id-et-nationally-defined ID ::= {id-et 10}
+
+id-et-general-text ID ::= {id-et 11}
+
+id-et-file-transfer ID ::= {id-et 12}
+
+-- Value {id-et 13} is no longer defined
+id-et-report ID ::= {id-et 14}
+
+id-et-notification ID ::= {id-et 15}
+
+id-et-voice ID ::= {id-et 16}
+
+id-et-content ID ::=
+ {id-et 17} -- This value is not used directly, only as a prefix
+
+id-et-pkcs7 ID ::= {id-et 18}
+
+-- Heading extensions
+id-hex-incomplete-copy ID ::= {id-hex 0}
+
+id-hex-languages ID ::= {id-hex 1}
+
+id-hex-auto-submitted ID ::= {id-hex 2}
+
+id-hex-body-part-signatures ID ::= {id-hex 3}
+
+id-hex-ipm-security-label ID ::= {id-hex 4}
+
+id-hex-authorization-time ID ::= {id-hex 5}
+
+id-hex-circulation-list-recipients ID ::= {id-hex 6}
+
+id-hex-distribution-codes ID ::= {id-hex 7}
+
+id-hex-extended-subject ID ::= {id-hex 8}
+
+id-hex-information-category ID ::= {id-hex 9}
+
+id-hex-manual-handling-instructions ID ::= {id-hex 10}
+
+id-hex-originators-reference ID ::= {id-hex 11}
+
+id-hex-precedence-policy-id ID ::= {id-hex 12}
+
+-- Summary attributes
+id-sat-ipm-entry-type ID ::= {id-sat 0}
+
+id-sat-ipm-synopsis ID ::= {id-sat 1}
+
+id-sat-body-parts-summary ID ::= {id-sat 2}
+
+id-sat-ipm-auto-discarded ID ::= {id-sat 3}
+
+-- Heading attributes
+id-hat-heading ID ::= {id-hat 0}
+
+id-hat-this-ipm ID ::= {id-hat 1}
+
+id-hat-originator ID ::= {id-hat 2}
+
+id-hat-replied-to-IPM ID ::= {id-hat 3}
+
+id-hat-subject ID ::= {id-hat 4}
+
+id-hat-expiry-time ID ::= {id-hat 5}
+
+id-hat-reply-time ID ::= {id-hat 6}
+
+id-hat-importance ID ::= {id-hat 7}
+
+id-hat-sensitivity ID ::= {id-hat 8}
+
+id-hat-auto-forwarded ID ::= {id-hat 9}
+
+id-hat-authorizing-users ID ::= {id-hat 10}
+
+id-hat-primary-recipients ID ::= {id-hat 11}
+
+id-hat-copy-recipients ID ::= {id-hat 12}
+
+id-hat-blind-copy-recipients ID ::= {id-hat 13}
+
+id-hat-obsoleted-IPMs ID ::= {id-hat 14}
+
+id-hat-related-IPMs ID ::= {id-hat 15}
+
+id-hat-reply-recipients ID ::= {id-hat 16}
+
+id-hat-incomplete-copy ID ::= {id-hat 17}
+
+id-hat-languages ID ::= {id-hat 18}
+
+id-hat-rn-requestors ID ::= {id-hat 19}
+
+id-hat-nrn-requestors ID ::= {id-hat 20}
+
+id-hat-reply-requestors ID ::= {id-hat 21}
+
+id-hat-auto-submitted ID ::= {id-hat 22}
+
+id-hat-body-part-signatures ID ::= {id-hat 23}
+
+id-hat-ipm-security-label ID ::= {id-hat 24}
+
+id-hat-body-part-security-label ID ::= {id-hat 25}
+
+id-hat-body-part-encryption-token ID ::= {id-hat 26}
+
+id-hat-authorization-time ID ::= {id-hat 27}
+
+id-hat-circulation-list-recipients ID ::= {id-hat 28}
+
+id-hat-distribution-codes ID ::= {id-hat 29}
+
+id-hat-extended-subject ID ::= {id-hat 30}
+
+id-hat-information-category ID ::= {id-hat 31}
+
+id-hat-manual-handling-instructions ID ::= {id-hat 32}
+
+id-hat-originators-reference ID ::= {id-hat 33}
+
+id-hat-precedence-policy-id ID ::= {id-hat 34}
+
+id-hat-forwarded-content-token ID ::= {id-hat 35}
+
+id-hat-forwarding-token ID ::= {id-hat 36}
+
+id-hat-precedence ID ::= {id-hat 37}
+
+id-hat-body-part-signature-verification-status ID ::= {id-hat 38}
+
+-- Body attributes
+id-bat-body ID ::= {id-bat 0}
+
+id-bat-ia5-text-body-parts ID ::= {id-bat 1}
+
+id-bat-g3-facsimile-body-parts ID ::= {id-bat 3}
+
+id-bat-g4-class1-body-parts ID ::= {id-bat 4}
+
+id-bat-teletex-body-parts ID ::= {id-bat 5}
+
+id-bat-videotex-body-parts ID ::= {id-bat 6}
+
+id-bat-encrypted-body-parts ID ::= {id-bat 7}
+
+id-bat-message-body-parts ID ::= {id-bat 8}
+
+id-bat-mixed-mode-body-parts ID ::= {id-bat 9}
+
+id-bat-bilaterally-defined-body-parts ID ::= {id-bat 10}
+
+id-bat-nationally-defined-body-parts ID ::= {id-bat 11}
+
+id-bat-extended-body-part-types ID ::= {id-bat 12}
+
+id-bat-ia5-text-parameters ID ::= {id-bat 13}
+
+id-bat-g3-facsimile-parameters ID ::= {id-bat 15}
+
+id-bat-teletex-parameters ID ::= {id-bat 16}
+
+id-bat-videotex-parameters ID ::= {id-bat 17}
+
+id-bat-encrypted-parameters ID ::= {id-bat 18}
+
+id-bat-message-parameters ID ::= {id-bat 19}
+
+id-bat-ia5-text-data ID ::= {id-bat 20}
+
+id-bat-g3-facsimile-data ID ::= {id-bat 22}
+
+id-bat-teletex-data ID ::= {id-bat 23}
+
+id-bat-videotex-data ID ::= {id-bat 24}
+
+id-bat-encrypted-data ID ::= {id-bat 25}
+
+id-bat-message-data ID ::= {id-bat 26}
+
+-- Notification attributes
+id-nat-subject-ipm ID ::= {id-nat 0}
+
+id-nat-ipn-originator ID ::= {id-nat 1}
+
+id-nat-ipm-intended-recipient ID ::= {id-nat 2}
+
+id-nat-conversion-eits ID ::= {id-nat 3}
+
+id-nat-non-receipt-reason ID ::= {id-nat 4}
+
+id-nat-discard-reason ID ::= {id-nat 5}
+
+id-nat-auto-forward-comment ID ::= {id-nat 6}
+
+id-nat-returned-ipm ID ::= {id-nat 7}
+
+id-nat-receipt-time ID ::= {id-nat 8}
+
+id-nat-acknowledgment-mode ID ::= {id-nat 9}
+
+id-nat-suppl-receipt-info ID ::= {id-nat 10}
+
+id-nat-notification-extensions ID ::= {id-nat 11}
+
+id-nat-nrn-extensions ID ::= {id-nat 12}
+
+id-nat-rn-extensions ID ::= {id-nat 13}
+
+id-nat-other-notification-type-fields ID ::= {id-nat 14}
+
+-- Correlation attributes
+id-cat-correlated-delivered-ipns ID ::= {id-cat 0}
+
+id-cat-correlated-delivered-replies ID ::= {id-cat 1}
+
+id-cat-delivered-ipn-summary ID ::= {id-cat 2}
+
+id-cat-delivered-replies-summary ID ::= {id-cat 3}
+
+id-cat-forwarded-ipms ID ::= {id-cat 4}
+
+id-cat-forwarding-ipms ID ::= {id-cat 5}
+
+id-cat-ipm-recipients ID ::= {id-cat 6}
+
+id-cat-obsoleted-ipms ID ::= {id-cat 7}
+
+id-cat-obsoleting-ipms ID ::= {id-cat 8}
+
+id-cat-related-ipms ID ::= {id-cat 9}
+
+id-cat-relating-ipms ID ::= {id-cat 10}
+
+id-cat-replied-to-ipm ID ::= {id-cat 11}
+
+id-cat-replying-ipms ID ::= {id-cat 12}
+
+id-cat-revised-reply-time ID ::= {id-cat 13}
+
+id-cat-submitted-ipn-status ID ::= {id-cat 14}
+
+id-cat-submitted-ipns ID ::= {id-cat 15}
+
+id-cat-submitted-reply-status ID ::= {id-cat 16}
+
+id-cat-subject-ipm ID ::= {id-cat 17}
+
+id-cat-recipient-category ID ::= {id-cat 18}
+
+-- Message content types (for use by MS and Directory)
+id-mct-p2-1984 ID ::=
+ {id-mct 0} -- P2 1984
+
+id-mct-p2-1988 ID ::= {id-mct 1} -- P2 1988
+
+-- Extended body part parameters
+id-ep-ia5-text ID ::= {id-ep 0}
+
+id-ep-g3-facsimile ID ::= {id-ep 2}
+
+id-ep-teletex ID ::= {id-ep 4}
+
+id-ep-videotex ID ::= {id-ep 5}
+
+id-ep-encrypted ID ::= {id-ep 6}
+
+id-ep-message ID ::= {id-ep 7}
+
+id-ep-general-text ID ::= {id-ep 11}
+
+id-ep-file-transfer ID ::= {id-ep 12}
+
+-- Value {id-ep 13} is no longer defined
+id-ep-notification ID ::= {id-ep 15}
+
+id-ep-voice ID ::= {id-ep 16}
+
+id-ep-content ID ::=
+ {id-ep 17} -- This value is not used directly, only as a prefix
+
+-- Encoded Information Types
+id-eit-file-transfer ID ::= {id-eit 0}
+
+id-eit-voice ID ::= {id-eit 1}
+
+-- Voice Encoded Information Types
+id-voice-11khz-sample ID ::=
+ {id-eit-voice 0}
+
+id-voice-22khz-sample ID ::= {id-eit-voice 1}
+
+id-voice-cd-quality ID ::= {id-eit-voice 2}
+
+id-voice-g711-mu-law ID ::= {id-eit-voice 3}
+
+id-voice-g726-32k-adpcm ID ::= {id-eit-voice 4}
+
+id-voice-g728-16k-ld-celp ID ::= {id-eit-voice 5}
+
+-- Matching-rules
+id-mr-ipm-identifier ID ::= {id-mr 0}
+
+id-mr-or-descriptor ID ::= {id-mr 1}
+
+id-mr-or-descriptor-elements ID ::= {id-mr 2}
+
+id-mr-or-descriptor-substring-elements ID ::= {id-mr 3}
+
+id-mr-recipient-specifier ID ::= {id-mr 4}
+
+id-mr-recipient-specifier-elements ID ::= {id-mr 5}
+
+id-mr-recipient-specifier-substring-elements ID ::= {id-mr 6}
+
+id-mr-ipm-location ID ::= {id-mr 7}
+
+id-mr-or-descriptor-single-element ID ::= {id-mr 8}
+
+id-mr-recipient-specifier-single-element ID ::= {id-mr 9}
+
+id-mr-circulation-member ID ::= {id-mr 10}
+
+id-mr-circulation-member-elements ID ::= {id-mr 11}
+
+id-mr-circulation-member-substring-elements ID ::= {id-mr 12}
+
+id-mr-circulation-member-single-element ID ::= {id-mr 13}
+
+id-mr-circulation-member-checkmark ID ::= {id-mr 14}
+
+id-mr-distribution-code ID ::= {id-mr 15}
+
+id-mr-information-category ID ::= {id-mr 16}
+
+-- Auto-actions
+id-aa-ipm-auto-acknowledgement ID ::= {id-aa 0}
+
+id-aa-ipm-auto-correlate ID ::= {id-aa 1}
+
+id-aa-ipm-auto-discard ID ::= {id-aa 2}
+
+id-aa-ipm-auto-advise ID ::= {id-aa 3}
+
+-- Auto-action-errors
+id-aae-auto-discard-error ID ::= {id-aae 0}
+
+id-aae-auto-forwarding-loop ID ::= {id-aae 1}
+
+id-aae-duplicate-ipn ID ::= {id-aae 2}
+
+-- Message Store types
+id-mst-invalid-assembly-instructions ID ::= {id-mst 0}
+
+id-mst-invalid-ipn ID ::= {id-mst 1}
+
+id-mst-assembly-instructions ID ::= {id-mst 2}
+
+id-mst-suspend-auto-acknowledgement ID ::= {id-mst 3}
+
+id-mst-prevent-nrn-generation ID ::= {id-mst 4}
+
+id-mst-originator-body-part-encryption-token ID ::= {id-mst 5}
+
+id-mst-originator-forwarded-content-token ID ::= {id-mst 6}
+
+id-mst-assembly-capability ID ::= {id-mst 7}
+
+-- Security extensions
+id-sec-ipm-security-request ID ::= {id-sec 0}
+
+id-sec-security-common-fields ID ::= {id-sec 1}
+
+-- Other notification types
+id-on-absence-advice ID ::= {id-on 0}
+
+id-on-change-of-address-advice ID ::= {id-on 1}
+
+-- Recipient extensions
+id-rex-circulation-list-indicator ID ::= {id-rex 0}
+
+id-rex-precedence ID ::= {id-rex 1}
+
+END -- of IPMSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers2.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers2.asn
new file mode 100644
index 0000000000..2b46b27b3e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSObjectIdentifiers2.asn
@@ -0,0 +1,33 @@
+-- Module IPMSObjectIdentifiers2 (X.420:06/1999)
+IPMSObjectIdentifiers2 {iso standard mhs(10021) ipms(7) modules(0)
+ object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Interpersonal Messaging (ISO/IEC extensions)
+id-iso-ipms ID ::=
+ {iso standard mhs(10021) ipms(7)}
+
+-- Categories
+id-iso-mod ID ::= {id-iso-ipms 0} -- modules; not definitive
+
+id-iso-cs ID ::= {id-iso-ipms 1} -- character sets
+
+-- Modules
+id-mod-object-identifiers-2 ID ::= {id-iso-mod 0} -- not definitive
+
+id-mod-extended-body-part-types-2 ID ::= {id-iso-mod 1} -- not definitive
+
+-- Registration Authority for General Text Character Set EITs
+id-cs-eit-authority ID ::=
+ {id-iso-cs 0}
+
+END -- of IPMSObjectIdentifiers2
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSSecurityExtensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSSecurityExtensions.asn
new file mode 100644
index 0000000000..8c692ccb31
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSSecurityExtensions.asn
@@ -0,0 +1,143 @@
+-- Module IPMSSecurityExtensions (X.420:06/1999)
+IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ ipm-security-extensions(14) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS Abstract Service
+ Certificates, Content, ContentIntegrityCheck, ExtendedCertificates,
+ EXTENSION, MessageOriginAuthenticationCheck, MessageToken, EncryptionKey
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ IPMS-EXTENSION
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Heading Extensions
+ BodyPartNumber
+ --==
+ FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ heading-extensions(6) version-1999(1)}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, ENCRYPTED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3}
+ -- Directory Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
+ certificateExtensions(26) 0}
+ -- IPMS Object Identifiers
+ id-sec-ipm-security-request, id-sec-security-common-fields
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Recipient Security Request
+recipient-security-request IPMS-EXTENSION ::= {
+ VALUE RecipientSecurityRequest,
+ IDENTIFIED BY id-sec-ipm-security-request
+}
+
+RecipientSecurityRequest ::= BIT STRING {
+ content-non-repudiation(0), content-proof(1), ipn-non-repudiation(2),
+ ipn-proof(3)}
+
+-- IPN Security Response
+ipn-security-response IPMS-EXTENSION ::= {
+ VALUE IpnSecurityResponse,
+ IDENTIFIED BY id-sec-security-common-fields
+}
+
+IpnSecurityResponse ::= SET {
+ content-or-arguments
+ CHOICE {original-content OriginalContent,
+ original-security-arguments
+ SET {original-content-integrity-check
+ [0] OriginalContentIntegrityCheck OPTIONAL,
+ original-message-origin-authentication-check
+ [1] OriginalMessageOriginAuthenticationCheck OPTIONAL,
+ original-message-token
+ [2] OriginalMessageToken OPTIONAL}},
+ security-diagnostic-code SecurityDiagnosticCode OPTIONAL
+}
+
+-- MTS security fields
+OriginalContent ::= Content
+
+OriginalContentIntegrityCheck ::= ContentIntegrityCheck
+
+OriginalMessageOriginAuthenticationCheck ::= MessageOriginAuthenticationCheck
+
+OriginalMessageToken ::= MessageToken
+
+-- Security Diagnostic Codes
+SecurityDiagnosticCode ::= INTEGER {
+ integrity-failure-on-subject-message(0),
+ integrity-failure-on-forwarded-message(1),
+ moac-failure-on-subject-message(2), unsupported-security-policy(3),
+ unsupported-algorithm-identifier(4), decryption-failed(5), token-error(6),
+ unable-to-sign-notification(7), unable-to-sign-message-receipt(8),
+ authentication-failure-on-subject-message(9),
+ security-context-failure-message(10), message-sequence-failure(11),
+ message-security-labelling-failure(12), repudiation-failure-of-message(13),
+ failure-of-proof-of-message(14), signature-key-unobtainable(15),
+ decryption-key-unobtainable(16), key-failure(17),
+ unsupported-request-for-security-service(18),
+ inconsistent-request-for-security-service(19),
+ ipn-non-repudiation-provided-instead-of-content-proof(20),
+ token-decryption-failed(21), double-enveloping-message-restoring-failure(22),
+ unauthorised-dl-member(23), reception-security-failure(24),
+ unsuitable-alternate-recipient(25), security-services-refusal(26),
+ unauthorised-recipient(27), unknown-certification-authority-name(28),
+ unknown-dl-name(29), unknown-originator-name(30), unknown-recipient-name(31),
+ security-policy-violation(32)}
+
+-- Security Envelope Extensions
+body-part-encryption-token EXTENSION ::= {
+ BodyPartTokens,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:43
+}
+
+BodyPartTokens ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {encryption-token EncryptionToken,
+ message-or-content-body-part [0] BodyPartTokens}
+ }
+
+EncryptionToken ::= SET {
+ encryption-algorithm-identifier AlgorithmIdentifier,
+ encrypted-key ENCRYPTED{EncryptionKey},
+ recipient-certificate-selector [0] CertificateAssertion OPTIONAL,
+ recipient-certificate [1] Certificates OPTIONAL,
+ originator-certificate-selector [2] CertificateAssertion OPTIONAL,
+ originator-certificates [3] ExtendedCertificates OPTIONAL,
+ ...
+}
+
+forwarded-content-token EXTENSION ::= {
+ ForwardedContentToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:44
+}
+
+ForwardedContentToken ::=
+ SET OF
+ SET {body-part-number BodyPartNumber,
+ body-part-choice
+ CHOICE {forwarding-token MessageToken,
+ message-or-content-body-part ForwardedContentToken
+ }}
+
+END -- of IPMSSecurityExtensions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSUpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSUpperBounds.asn
new file mode 100644
index 0000000000..27324f614f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/IPMSUpperBounds.asn
@@ -0,0 +1,46 @@
+-- Module IPMSUpperBounds (X.420:06/1999)
+IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) upper-bounds(10)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+-- Upper bounds
+ub-alpha-code-length INTEGER ::= 16
+
+ub-auto-forward-comment INTEGER ::= 256
+
+ub-circulation-list-members INTEGER ::= 256
+
+ub-distribution-codes INTEGER ::= 16
+
+ub-extended-subject-length INTEGER ::= 256
+
+ub-free-form-name INTEGER ::= 64
+
+ub-information-categories INTEGER ::= 16
+
+ub-information-category-length INTEGER ::= 64
+
+ub-ipm-identifier-suffix INTEGER ::= 2
+
+ub-local-ipm-identifier INTEGER ::= 64
+
+ub-manual-handling-instruction-length INTEGER ::= 128
+
+ub-manual-handling-instructions INTEGER ::= 16
+
+ub-originators-reference-length INTEGER ::= 64
+
+ub-precedence INTEGER ::= 127
+
+ub-subject-field INTEGER ::= 128
+
+ub-telephone-number INTEGER ::= 32
+
+END -- of IPMSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
new file mode 100644
index 0000000000..b7efd7417e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn
@@ -0,0 +1,459 @@
+-- Module ISO-STANDARD-9541-FONT-ATTRIBUTE-SET (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Font-Attribute-Set;
+
+IMPORTS Structured-Name
+ FROM ISO9541-SN {1 0 9541 2 3};
+
+Font-Attribute-Set ::= SEQUENCE {
+ name-prefixes [0] IMPLICIT SET OF Name-Prefix OPTIONAL,
+ iso-standard-9541-fontname [1] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-fontdescription [2] IMPLICIT Font-Description OPTIONAL,
+ iso-standard-9541-wrmodes [3] IMPLICIT Writing-Modes OPTIONAL,
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Font-Description ::= SET {
+ iso-standard-9541-dataversion [0] IMPLICIT Data-Version OPTIONAL,
+ iso-standard-9541-Standardversion [1] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-datasource [2] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-datacopyright [3] Message OPTIONAL,
+ iso-standard-9541-dsnsource [4] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsncopyright [5] Message OPTIONAL,
+ iso-standard-9541-relunits [6] IMPLICIT Cardinal DEFAULT 1,
+ iso-standard-9541-typeface [7] Message OPTIONAL,
+ iso-standard-9541-fontfamily [8] Match-String OPTIONAL,
+ iso-standard-9541-posture [9] IMPLICIT Posture-Code OPTIONAL,
+ iso-standard-9541-postureangle [10] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-weight [11] IMPLICIT Weight-Code OPTIONAL,
+ iso-standard-9541-propwidth [12] IMPLICIT Width-Code OPTIONAL,
+ iso-standard-9541-glyphcomp [13] IMPLICIT Glyph-Complement OPTIONAL,
+ iso-standard-9541-nomwrmode [14] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-dsnsize [15] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minsize [16] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxsize [17] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-capheight [18] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-lcheight [19] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsngroup [20] IMPLICIT Design-Group OPTIONAL,
+ iso-standard-9541-structure [21] IMPLICIT Structure-Code OPTIONAL,
+ iso-standard-9541-minfeatsz [22] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomcapstemwidth [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-nomlcstemwidth [24] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [25] IMPLICIT Property-List OPTIONAL
+}
+
+Name-Prefix ::= SEQUENCE {
+ --see NOTE 3 at the end of 6.1
+ index [0] IMPLICIT Code,
+ prefix [1] IMPLICIT Structured-Name
+}
+
+Data-Version ::= SEQUENCE {
+ major [0] IMPLICIT Cardinal OPTIONAL,
+ minor [1] IMPLICIT Cardinal OPTIONAL,
+ timestamp [2] IMPLICIT UTCTime OPTIONAL
+}
+
+Posture-Code ::= INTEGER {
+ not-applicable(0), upright(1), oblique-forward(2), oblique-backward(3),
+ italic-forward(4), italic-backward(5), other(6)}
+
+Weight-Code ::= INTEGER {
+ not-applicable(0), ultra-light(1), extra-light(2), light(3), semi-light(4),
+ medium(5), semi-bold(6), bold(7), extra-bold(8), ultra-bold(9)}
+
+Width-Code ::= INTEGER {
+ not-applicable(0), ultra-condensed(1), extra-condensed(2), condensed(3),
+ semi-condensed(4), medium(5), semi-expanded(6), expanded(7),
+ extra-expanded(8), ultra-expanded(9)}
+
+Glyph-Complement ::= SEQUENCE {
+ -- at least one included glyph list or at least one
+ -- included glyph collection list is mandatory
+ iso-standard-9541-numglyphs [0] IMPLICIT Cardinal OPTIONAL,
+ iso-standard-9541-incglyphcols [1] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphcols [2] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-incglyphs [3] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ iso-standard-9541-excglyphs [4] IMPLICIT SET OF Global-Name OPTIONAL,
+ -- at least one is required
+ non-iso-properties [5] IMPLICIT Property-List OPTIONAL
+}
+
+Design-Group ::= SEQUENCE {
+ -- see 9541-1 Annex-A for code values
+ group-code [0] IMPLICIT Code,
+ subgroup-code [1] IMPLICIT Code,
+ specific-group-code [2] IMPLICIT Code
+}
+
+Structure-Code ::= INTEGER {not-applicable(0), solid(1), outline(2)}
+
+Writing-Modes ::= SET {
+ iso-standard-9541-wrmode [0] IMPLICIT SET OF Writing-Mode OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Writing-Mode ::= SEQUENCE {
+ iso-standard-9541-wrmodename [0] IMPLICIT Global-Name,
+ wrmode-properties [1] IMPLICIT Modal-Properties
+}
+
+Modal-Properties ::= SET {
+ iso-standard-9541-nomescdir [0] IMPLICIT Angle OPTIONAL,
+ iso-standard-9541-escclass [1] IMPLICIT Esc-Class-Code OPTIONAL,
+ iso-standard-9541-avgescx [2] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgescy [3] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescx [4] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avglcescy [5] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescx [6] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-avgcapescy [7] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescx [8] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-tabescy [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxfontext [10] IMPLICIT Max-Extents OPTIONAL,
+ iso-standard-9541-sectors [11] IMPLICIT Sectors OPTIONAL,
+ iso-standard-9541-escadjs [12] IMPLICIT SET OF Adjusts OPTIONAL,
+ iso-standard-9541-minescadjsze [13] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxescadjsze [14] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-scores [15] IMPLICIT Scores OPTIONAL,
+ iso-standard-9541-vscripts [16] IMPLICIT Variant-Scripts OPTIONAL,
+ iso-standard-9541-minlinesp [17] IMPLICIT Alignment-Spacing OPTIONAL,
+ iso-standard-9541-minanascale [18] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxanascale [19] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-nomalign [20] IMPLICIT Global-Name OPTIONAL,
+ iso-standard-9541-alignmodes [21] IMPLICIT Alignment-Modes OPTIONAL,
+ iso-standard-9541-copyfits [22] IMPLICIT Copyfits OPTIONAL,
+ iso-standard-9541-dsnwordadd [23] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnwordampl [24] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minwordadd [25] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minwordampl [26] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxwordadd [27] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxwordampl [28] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-dsnletteradd [29] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-dsnletterampl [30] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-minletteradd [31] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-minletterampl [32] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-maxletteradd [33] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxletterampl [34] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-glyphmetrics [35] IMPLICIT Glyph-Metrics OPTIONAL,
+ non-iso-properties [36] IMPLICIT Property-List OPTIONAL
+}
+
+Esc-Class-Code ::= INTEGER {not-applicable(0), monospace(1), proportional(2)}
+
+Max-Extents ::= SEQUENCE {
+ max-minx [0] IMPLICIT Rel-Rational,
+ max-miny [1] IMPLICIT Rel-Rational,
+ max-maxx [2] IMPLICIT Rel-Rational,
+ max-maxy [3] IMPLICIT Rel-Rational
+}
+
+Sectors ::= SET {
+ iso-standard-9541-sector [0] IMPLICIT SEQUENCE OF Sector OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Sector ::= SEQUENCE {
+ sector-left [0] IMPLICIT Rel-Rational,
+ sector-right [1] IMPLICIT Rel-Rational
+}
+
+Adjusts ::= SET {
+ iso-standard-9541-adjust [0] IMPLICIT SET OF Adjust,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Adjust ::= SET {
+ iso-standard-9541-escadjname [0] IMPLICIT Global-Name,
+ adjust-properties [1] IMPLICIT Adjust-Properties
+}
+
+Adjust-Properties ::= SET {
+ iso-standard-9541-cpea [0] IMPLICIT CPEA-Properties OPTIONAL,
+ iso-standard-9541-sec [1] IMPLICIT SEC-Properties OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+CPEA-Properties ::= SET {
+ iso-standard-9541-ncpeaforwd [0] IMPLICIT Cardinal,
+ iso-standard-9541-ncpeabackwd [1] IMPLICIT Cardinal,
+ iso-standard-9541-cpeax [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ -- at least one required
+ iso-standard-9541-cpeay [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+SEC-Properties ::= SET {
+ iso-standard-9541-secx
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-secy
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ rational [0] IMPLICIT Rational,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ non-iso-properties [2] IMPLICIT Property-List OPTIONAL
+}
+
+Scores ::= SET {
+ iso-standard-9541-Score [0] IMPLICIT SET OF Score OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Score ::= SEQUENCE {
+ iso-standard-9541-scorename [0] IMPLICIT Global-Name,
+ score-property-list [1] IMPLICIT Score-Properties
+}
+
+Score-Properties ::= SET {
+ iso-standard-9541-scoreoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scoreoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-scorethick [2] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [3] IMPLICIT Property-List OPTIONAL
+}
+
+Variant-Scripts ::= SET {
+ iso-standard-9541-vscript [0] IMPLICIT SET OF Vscript OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Vscript ::= SEQUENCE {
+ iso-standard-9541-vsname [0] IMPLICIT Global-Name,
+ vscript-property-list [1] IMPLICIT Vscript-Properties
+}
+
+Vscript-Properties ::= SET {
+ iso-standard-9541-vsoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-vsscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-vsscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment-Spacing ::= SEQUENCE {
+ minlinesp-left [0] IMPLICIT Rel-Rational,
+ minlinesp-right [1] IMPLICIT Rel-Rational
+}
+
+Alignment-Modes ::= SET {
+ iso-standard-9541-align [0] IMPLICIT SET OF Alignment OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Alignment ::= SEQUENCE {
+ iso-standard-9541-alignname [0] IMPLICIT Global-Name,
+ alignment-property-list [1] IMPLICIT Align-Properties
+}
+
+Align-Properties ::= SET {
+ iso-standard-9541-alignoffsetx [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignoffsety [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-alignscalex [2] IMPLICIT Rational OPTIONAL,
+ iso-standard-9541-alignscaley [3] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [4] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfits ::= SET {
+ iso-standard-9541-copyfit [0] IMPLICIT SET OF Copyfit OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Copyfit ::= SEQUENCE {
+ iso-standard-9541-copyfitname [0] IMPLICIT Global-Name,
+ copyfit-properties [1] IMPLICIT Copyfit-Properties
+}
+
+Copyfit-Properties ::= SET {
+ iso-standard-9541-copyfitmeasure [0] IMPLICIT Rational OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Metrics ::= SET {
+ iso-standard-9541-gmetric [0] IMPLICIT SET OF Glyph-Property-List,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Glyph-Property-List ::= SEQUENCE {
+ iso-standard-9541-gname [0] IMPLICIT Global-Name,
+ glyph-properties [1] IMPLICIT Glyph-Properties
+}
+
+Glyph-Properties ::= SET {
+ iso-standard-9541-px [0] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-py [1] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-ex [2] IMPLICIT Rel-Rational,
+ iso-standard-9541-ey [3] IMPLICIT Rel-Rational,
+ iso-standard-9541-ext [4] IMPLICIT Extents,
+ iso-standard-9541-lgs [5] IMPLICIT Ligatures OPTIONAL,
+ iso-standard-9541-peas [6] IMPLICIT P-Adjusts OPTIONAL,
+ iso-standard-9541-cpeai [7] IMPLICIT C-Indicator OPTIONAL,
+ iso-standard-9541-eai [8] IMPLICIT E-Code OPTIONAL,
+ iso-standard-9541-minex [9] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-miney [10] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxex [11] IMPLICIT Rel-Rational OPTIONAL,
+ iso-standard-9541-maxey [12] IMPLICIT Rel-Rational OPTIONAL,
+ non-iso-properties [13] IMPLICIT Property-List OPTIONAL
+}
+
+Extents ::= SET {
+ minx [0] IMPLICIT Rel-Rational OPTIONAL,
+ miny [1] IMPLICIT Rel-Rational OPTIONAL,
+ maxx [2] IMPLICIT Rel-Rational OPTIONAL,
+ maxy [3] IMPLICIT Rel-Rational OPTIONAL
+}
+
+Ligatures ::= SET {
+ iso-standard-9541-lg [0] IMPLICIT SET OF Ligature OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+Ligature ::= SET {
+ iso-standard-9541-lgn [0] IMPLICIT Global-Name,
+ iso-standard-9541-lgsn [1] SEQUENCE OF Global-Name
+}
+
+P-Adjusts ::= SET {
+ iso-standard-9541-pea [0] IMPLICIT SET OF P-Adjust OPTIONAL,
+ non-iso-properties [1] IMPLICIT Property-List OPTIONAL
+}
+
+P-Adjust ::= SEQUENCE {
+ iso-standard-9541-pean [0] IMPLICIT Global-Name,
+ p-adjust-property-list [1] IMPLICIT P-Adjust-Properties
+}
+
+P-Adjust-Properties ::= SET {
+ iso-standard-9541-peax
+ [0] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-peay
+ [1] SEQUENCE OF
+ SEQUENCE {-- at least one required
+ global-name [0] IMPLICIT Global-Name,
+ rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL,
+ iso-standard-9541-speaforwdx [2] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speaforwdy [3] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdx [4] SEQUENCE OF Rel-Rational OPTIONAL,
+ iso-standard-9541-speabackwdy [5] SEQUENCE OF Rel-Rational OPTIONAL,
+ non-iso-properties [6] IMPLICIT Property-List OPTIONAL
+}
+
+C-Indicator ::= SEQUENCE {
+ c-forward [0] IMPLICIT Cardinal,
+ c-backward [1] IMPLICIT Cardinal
+}
+
+E-Code ::= INTEGER {
+ not-applicable(0), letter-space(1), word-space(2), no-adjust(3)}
+
+-- The following Data Types are used in the above structures
+-- The following Data Types are used in the above structures
+Property ::= SEQUENCE {
+ property-name [0] Global-Name,
+ property-value [1] Property-Value
+}
+
+Property-Value ::= CHOICE {
+ value [0] Value,
+ value-list [1] Value-List,
+ ordered-value-list [2] Ordered-Value-List,
+ property-list [3] Property-List,
+ ordered-property-list [4] Ordered-Property-List
+}
+
+Value-List ::= SET OF Value
+
+Ordered-Value-List ::= SEQUENCE OF Value
+
+Property-List ::= SET OF Property
+
+Ordered-Property-List ::= SEQUENCE OF Property
+
+Value ::= CHOICE {
+ global-Name [0] Global-Name,
+ match-String [1] Match-String,
+ message [2] Message,
+ octetString [3] OCTET STRING,
+ boolean [4] BOOLEAN,
+ integer [5] Integer,
+ cardinal [6] Cardinal,
+ code [7] Code,
+ rational [8] Rational,
+ rel-Rational [9] Rel-Rational,
+ angle [10] Angle,
+ proprietary-Data [11] Proprietary-Data
+}
+
+Global-Name ::= SEQUENCE {
+ -- see global name note at the end of clause 6.1
+ prefix-index [0] IMPLICIT Code OPTIONAL,
+ name-value [1] IMPLICIT Structured-Name
+}
+
+Match-String ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+Integer ::= INTEGER {first(-2147483648), last(2147483647)}
+
+Cardinal ::= INTEGER {first(0), last(4294967295)}
+
+Code ::= INTEGER {first(0), last(255)}
+
+Rational ::= SEQUENCE {
+ numerator [0] IMPLICIT INTEGER,
+ denominator [1] IMPLICIT INTEGER {first(1), last(2147483647)} OPTIONAL
+}
+
+-- denominator defaults to 1
+Rel-Rational ::= Rational
+
+-- expresses glyph coordinate units
+-- denominator defaults to relunits
+Angle ::=
+ Rational
+
+-- expresses units of degrees, with a
+-- value range of -360 to +360
+-- denominator defaults to 1
+Proprietary-Data ::= SEQUENCE {
+ prop-data-message [0] Message OPTIONAL,
+ prop-data-key [1] IMPLICIT OCTET STRING OPTIONAL,
+ prop-data [2] IMPLICIT OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO8571-FTAM.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO8571-FTAM.asn
new file mode 100644
index 0000000000..a57a276704
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO8571-FTAM.asn
@@ -0,0 +1,1453 @@
+-- Module ISO8571-FTAM (ISO 8571-4:1988)
+-- See also the README file
+-- See also the index of all ASN.1 assignments needed in this Recommendation
+
+--
+-- Copyright ? ISO/IEC 1988. This version of
+-- this ASN.1 module is part of ISO/IEC 8571-4:1988;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} DEFINITIONS
+::=
+BEGIN
+
+PDU ::= CHOICE {
+ fTAM-Regime-PDU FTAM-Regime-PDU,
+ file-PDU File-PDU,
+ bulk-Data-PDU Bulk-Data-PDU,
+ fSM-PDU FSM-PDU
+}
+
+FTAM-Regime-PDU ::= CHOICE {
+ f-initialize-request [0] IMPLICIT F-INITIALIZE-request,
+ f-initialize-response [1] IMPLICIT F-INITIALIZE-response,
+ f-terminate-request [2] IMPLICIT F-TERMINATE-request,
+ f-terminate-response [3] IMPLICIT F-TERMINATE-response,
+ f-u-abort-request [4] IMPLICIT F-U-ABORT-request,
+ f-p-abort-request [5] IMPLICIT F-P-ABORT-request
+}
+
+F-INITIALIZE-request ::= SEQUENCE {
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ initiator-identity User-Identity OPTIONAL,
+ account Account OPTIONAL,
+ filestore-password Password OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- lf the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+F-INITIALIZE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ protocol-Version Protocol-Version DEFAULT {version-1},
+ implementation-information Implementation-Information OPTIONAL,
+ presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ service-class Service-Class DEFAULT {transfer-class},
+ -- Only the valid combinations as specified in ISO 8571-3 are allowed.
+ functional-units Functional-Units,
+ attribute-groups Attribute-Groups DEFAULT {},
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ ftam-quality-of-Service FTAM-Quality-of-Service,
+ contents-type-list Contents-Type-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1
+}
+
+-- If the recovery or restart data transfer functional units are
+-- not available, the Checkpoint-window Parameter shall not be sent.
+Protocol-Version ::= [0] IMPLICIT BIT STRING {version-1(0), version-2(1)
+}
+
+Implementation-Information ::= [1] IMPLICIT GraphicString
+
+-- This Parameter is provided solely for the convenience of implementors
+-- needing to distinguish between implernentations of a specific version number
+-- of different equipment, it shall not be the subject of conformance test.
+Service-Class ::= [3] IMPLICIT BIT STRING {
+ unconstrained-class(0), management-class(1), transfer-class(2),
+ transfer-and-management-class(3), access-class(4)}
+
+Functional-Units ::= [4] IMPLICIT BIT STRING {
+ read(2), write(3), file-access(4), limited-file-management(5),
+ enhanced-file-management(6), grouping(7), fadu-locking(8), recovery(9),
+ restart-data-transfer(10), limited-filestore-management(11),
+ enhanced-filestore-management(12), object-manipulation(13),
+ group-manipulation(14), consecutive-access(15), concurrent-access(16)
+}
+
+-- Values 2 to 14 are Chosen to align with numbering scheme used in ISO 8571-3.
+Attribute-Groups ::= [5] IMPLICIT BIT STRING {
+ storage(0), security(1), private(2), extension(3)}
+
+-- The extension bit is defined if and only if the limited-filestore-management
+-- or the group-manipulation functional units are available.
+FTAM-Quality-of-Service ::= [6] IMPLICIT INTEGER {
+ no-recovery(0), class-1-recovery(1), class-2-recovery(2), class-3-recovery(3)
+}
+
+Contents-Type-List ::=
+ [7] IMPLICIT
+ SEQUENCE OF
+ CHOICE {document-type-name Document-Type-Name,
+ abstract-Syntax-name Abstract-Syntax-Name}
+
+F-TERMINATE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-TERMINATE-response ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL
+}
+
+F-U-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-P-ABORT-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+File-PDU ::= CHOICE {
+ f-select-request [6] IMPLICIT F-SELECT-request,
+ f-select-response [7] IMPLICIT F-SELECT-response,
+ f-deselect-request [8] IMPLICIT F-DESELECT-request,
+ f-deselect-response [9] IMPLICIT F-DESELECT-response,
+ f-create-request [10] IMPLICIT F-CREATE-request,
+ f-create-response [11] IMPLICIT F-CREATE-response,
+ f-delete-request [12] IMPLICIT F-DELETE-request,
+ f-delete-response [13] IMPLICIT F-DELETE-response,
+ f-read-attrib-request [14] IMPLICIT F-READ-ATTRIB-request,
+ f-read-attrib-response [15] IMPLICIT F-READ-ATTRIB-response,
+ f-Change-attrib-reques [16] IMPLICIT F-CHANGE-ATTRIB-request,
+ f-Change-attrib-respon [17] IMPLICIT F-CHANGE-ATTRIB-response,
+ f-open-request [18] IMPLICIT F-OPEN-request,
+ f-open-response [19] IMPLICIT F-OPEN-response,
+ f-close-request [20] IMPLICIT F-CLOSE-request,
+ f-close-response [21] IMPLICIT F-CLOSE-response,
+ f-begin-group-request [22] IMPLICIT F-BEGIN-GROUP-request,
+ f-begin-group-response [23] IMPLICIT F-BEGIN-GROUP-response,
+ f-end-group-request [24] IMPLICIT F-END-GROUP-request,
+ f-end-group-response [25] IMPLICIT F-END-GROUP-response,
+ f-recover-request [26] IMPLICIT F-RECOVER-request,
+ f-recover-response [27] IMPLICIT F-RECOVER-response,
+ f-locate-request [28] IMPLICIT F-LOCATE-request,
+ f-locate-response [29] IMPLICIT F-LOCATE-response,
+ f-erase-request [30] IMPLICIT F-ERASE-request,
+ f-erase-response [31] IMPLICIT F-ERASE-response
+}
+
+F-SELECT-request ::= SEQUENCE {
+ attributes Select-Attributes,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-SELECT-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ attributes Select-Attributes,
+ referent-indicator Referent-Indicator OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management functional unit is available.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DESELECT-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DESELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ -- Present if and only if the account field was present on
+ -- the PDU which established the selection regime.
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-request ::= SEQUENCE {
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- limited-filestore-management or the Object-manipulation or
+ -- the group-manipulation functional units are available.
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-DELETE-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+F-READ-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ -- Password values within the access control tan not be read by means
+ -- of the read attribute action. Whether other Parts of the access
+ -- control Object attribute tan be read by means of the read
+ -- attribute action is decided locally by the responding entity, and
+ -- it shall not be the subject of conformance test.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ -- Password values within access control attribute are never returned.
+ -- Other attributes are retumed as an implementation choice.
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-OPEN-request ::= SEQUENCE {
+ processing-mode
+ [0] IMPLICIT BIT STRING {f-read(0), f-insert(1), f-replace(2), f-extend(3),
+ f-erase(4)} DEFAULT {f-read},
+ contents-type
+ [1] CHOICE {unknown [0] IMPLICIT NULL,
+ proposed [1] Contents-Type-Attribute},
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ enable-fadu-locking [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ activity-identifier Activity-Identifier OPTIONAL,
+ -- Only used in the recovery functional unit.
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ remove-contexts [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts [5] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of the consecutive overlap or
+ -- concurrent overlap functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-OPEN-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ recovery-mode
+ [3] IMPLICIT INTEGER {none(0), at-start-of-file(1),
+ at-any-active-Checkpoint(2)} DEFAULT none,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ --The following are conditional on the negotiation of the concecutive access
+ -- or concurent access functional units.
+ degree-of-overlap Degree-Of-Overlap OPTIONAL,
+ transfer-window [7] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CLOSE-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CLOSE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-BEGIN-GROUP-request ::= SEQUENCE {threshold [0] IMPLICIT INTEGER
+}
+
+F-BEGIN-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-request ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-END-GROUP-response ::= SEQUENCE {
+}
+
+-- No elements defined, shall be empty.
+F-RECOVER-request ::= SEQUENCE {
+ activity-identifier Activity-Identifier,
+ bulk-transfer-number [0] IMPLICIT INTEGER,
+ -- If concurrent access was in use then this parameter indicates the read bulk
+ -- transfer.
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ recovefy-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file
+ -- Point after last Checkpoint indicates end of file
+ remove-contexts
+ [3] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ define-contexts
+ [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL,
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-bulk-transfer-number [7] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file
+ -- point after last checkpoint indicates end of file
+ last-transfer-end-read-response [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RECOVER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ contents-type [1] Contents-Type-Attribute,
+ recovety-Point [2] IMPLICIT INTEGER DEFAULT 0,
+ -- Zero indicates beginning of file.
+ -- Point after last Checkpoint indicates end of file.
+ diagnostic Diagnostic OPTIONAL,
+ presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE,
+ -- This flag is set if the responder is going to follow this response
+ -- by a P-ALTER-CONTEXT exchange.
+ -- The following are conditional on the negotiation of overlapped access.
+ concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL,
+ -- conditional on use of concurrent access. Zero indicates beginning of file; point after
+ -- last checkpoint indicates end of file
+ last-transfer-end-read-request [9] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [10] IMPLICIT INTEGER OPTIONAL
+}
+
+F-LOCATE-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL
+}
+
+F-LOCATE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ file-access-data-unit-identity FADU-Identity OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-ERASE-request ::= SEQUENCE {file-access-data-unit-identity FADU-Identity
+}
+
+F-ERASE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Bulk-Data-PDU ::= CHOICE {
+ f-read-request [32] IMPLICIT F-READ-request,
+ f-write-request [33] IMPLICIT F-WRITE-request,
+ -- There is no F-DATA FPDU, the contents of a file
+ -- are transferred in a different presentation context
+ -- and there is therefore no need to define the types
+ -- of file contents in the FTAM PCI abstract Syntax.
+ -- File contents data are carried in values of the
+ -- data type Data-Element as defined in ISO 8571-2.
+ f-data-end-request [34] IMPLICIT F-DATA-END-request,
+ f-transfer-end-request [35] IMPLICIT F-TRANSFER-END-request,
+ f-transfer-end-response [36] IMPLICIT F-TRANSFER-END-response,
+ f-cancel-request [37] IMPLICIT F-CANCEL-request,
+ f-cancel-response [38] IMPLICIT F-CANCEL-response,
+ -- There is no F-CHECK PDU.
+ f-restart-request [39] IMPLICIT F-RESTART-request,
+ f-restart-response [40] IMPLICIT F-RESTART-response
+}
+
+F-READ-request ::= SEQUENCE {
+ file-access-data-unit-identity FADU-Identity,
+ access-context Access-Context,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive of concurrent access.
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-WRITE-request ::= SEQUENCE {
+ file-access-data-unit-Operation
+ [0] IMPLICIT INTEGER {insert(0), replace(1), extend(2)},
+ file-access-data-unit-identity FADU-Identity,
+ fadu-lock FADU-Lock OPTIONAL,
+ -- The following is conditional on the negotiation of consecutive or concurrent access.
+ transfer-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+F-DATA-END-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-TRANSFER-END-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [2] IMPLICIT INTEGER OPTIONAL
+}
+
+F-TRANSFER-END-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-request ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CANCEL-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [0] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL
+}
+
+F-CHECK-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-CHECK-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ transfer-number [1] IMPLICIT INTEGER
+}
+
+F-RESTART-request ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+F-RESTART-response ::= SEQUENCE {
+ checkpoint-identifier [0] IMPLICIT INTEGER,
+ -- The following are conditional on the negotiation of consecutive or concurrent access.
+ request-type Request-Type OPTIONAL,
+ transfer-number [1] IMPLICIT INTEGER,
+ last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL,
+ last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL
+}
+
+Degree-Of-Overlap ::= [APPLICATION 30] IMPLICIT INTEGER {
+ normal(0), consecutive(1), concurrent(2)}
+
+Request-Type ::= [APPLICATION 31] IMPLICIT INTEGER {read(0), write(1)}
+
+Abstract-Syntax-Name ::= [APPLICATION 0] IMPLICIT OBJECT IDENTIFIER
+
+Access-Context ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ access-context
+ [0] IMPLICIT INTEGER {hierarchical-all-data-units(0),--HA--
+ hierarchical-no-data-units(1),--HN--
+ flat-all-data-units(2),--FA--
+ flat-one-level-data-unit(3),--FL--
+ flat-Single-data-unit(4),--FS--
+ unstructured-all-data-units(5),--UA--
+ unstructured-Single-data-unit(6)}, --US
+ level-number [1] IMPLICIT INTEGER OPTIONAL
+}
+
+-- Present if and only if flat-one-level-data-units
+-- (access context FL) is selected.
+-- As defined in ISO 8571-2.
+Access-Passwords ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords OPTIONAL,
+ link-password [9] Password OPTIONAL
+}
+
+-- The pass-passwords and the link-password must be included in the
+-- access-passwords if and only if the limited-filestore-management
+-- or the Object-manipulation or the group-manipulation functional
+-- units are available.
+Access-Request ::= [APPLICATION 3] IMPLICIT BIT STRING {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7)}
+
+Account ::= [APPLICATION 4] IMPLICIT GraphicString
+
+Action-Result ::= [APPLICATION 5] IMPLICIT INTEGER {
+ success(0), transient-error(1), permanent-error(2)}
+
+Activity-Identifier ::= [APPLICATION 6] IMPLICIT INTEGER
+
+Application-Entity-Title ::= [APPLICATION 7] AE-title
+
+-- As defined in ISO 8650.
+Change-Attributes ::= [APPLICATION 8] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Change-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Change-Attribute OPTIONAL,
+ -- This Parameter tan only be sent when the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- enhanced-filestore-management functional unit is available.
+-- Atleast one attribute shall be present in the Change-Attributes
+-- Parameter on the request PDU.
+Charging ::=
+ [APPLICATION 9] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {resource-identifier [0] IMPLICIT GraphicString,
+ charging-unit [1] IMPLICIT GraphicString,
+ charging-value [2] IMPLICIT INTEGER}
+
+Concurrency-Control ::= [APPLICATION 10] IMPLICIT SEQUENCE {
+ read [0] IMPLICIT Lock,
+ insert [1] IMPLICIT Lock,
+ replace [2] IMPLICIT Lock,
+ extend [3] IMPLICIT Lock,
+ erase [4] IMPLICIT Lock,
+ read-attribute [5] IMPLICIT Lock,
+ change-attribute [6] IMPLICIT Lock,
+ delete-Object [7] IMPLICIT Lock
+}
+
+Lock ::= INTEGER {not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Constraint-Set-Name ::= [APPLICATION 11] IMPLICIT OBJECT IDENTIFIER
+
+Create-Attributes ::= [APPLICATION 12] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute,
+ object-type [18] IMPLICIT Object-Type-Attribute DEFAULT file,
+ -- This Parameter tan be sent if and only if the
+ -- limited-filestore-management functional unit is available.
+ permitted-actions [1] IMPLICIT Permitted-Actions-Attribute,
+ contents-type [2] Contents-Type-Attribute,
+ -- Storage group
+ storage-account [3] Account-Attribute OPTIONAL,
+ object-availability [12] Object-Availability-Attribute OPTIONAL,
+ future-Object-size [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control [15] Access-Control-Attribute OPTIONAL,
+ path-access-control [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if the
+ -- enhanced-filestore-management functional unit is available.
+ legal-qualification [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan only be sent when the
+-- limited-filestore-management functional unit is available.
+Diagnostic ::=
+ [APPLICATION 13] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {diagnostic-type
+ [0] IMPLICIT INTEGER {informative(0), transient(1),
+ permanent(2)},
+ error-identifier [1] IMPLICIT INTEGER,
+ -- As defined in ISO 8571-3.
+ error-observer [2] IMPLICIT Entity-Reference,
+ error-Source [3] IMPLICIT Entity-Reference,
+ suggested-delay [4] IMPLICIT INTEGER OPTIONAL,
+ further-details [5] IMPLICIT GraphicString OPTIONAL
+ }
+
+Entity-Reference ::= INTEGER {
+ no-categorization-possible(0), initiating-file-service-user(1),
+ initiating-file-protocol-machine(2),
+ service-supporting-the-file-protocol-machine(3),
+ responding-file-protocol-machine(4), responding-file-service-user(5)
+}
+
+--NOTE
+-- 1. The values 0 and 3 are only valid as values in error-source.
+-- 2. The value 5 corresponds to the virtual filestore.
+Document-Type-Name ::= [APPLICATION 14] IMPLICIT OBJECT IDENTIFIER
+
+FADU-Identity ::= [APPLICATION 15] CHOICE {
+ first-last [0] IMPLICIT INTEGER {first(0), last(1)},
+ relative [1] IMPLICIT INTEGER {previous(0), current(1), next(2)},
+ begin-end [2] IMPLICIT INTEGER {begin(0), end(1)},
+ single-name [3] IMPLICIT Node-Name,
+ name-list [4] IMPLICIT SEQUENCE OF Node-Name,
+ fadu-number [5] IMPLICIT INTEGER
+}
+
+-- As defined in ISO 8571-2.
+Node-Name ::= EXTERNAL
+
+-- The type to be used for Node-Name is defined in IS08571-FADU.
+FADU-Lock ::= [APPLICATION 16] IMPLICIT INTEGER {off(0), on(1)}
+
+Password ::= [APPLICATION 17] CHOICE {
+ graphicString GraphicString,
+ octetString OCTET STRING
+}
+
+Read-Attributes ::= [APPLICATION 18] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute OPTIONAL,
+ object-type
+ [18] IMPLICIT Object-Type-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ permitted-actions
+ [1] IMPLICIT Permitted-Actions-Attribute OPTIONAL,
+ contents-type
+ [2] Contents-Type-Attribute OPTIONAL,
+ linked-Object
+ [19] Pathname-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ child-objects
+ [23] Child-Objects-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ -- Storage group
+ primaty-pathname
+ [20] Pathname-Attribute OPTIONAL,
+ storage-account [3] Account-Attribute OPTIONAL,
+ date-and-time-of-creation
+ [4] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-modification
+ [5] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-read-access
+ [6] Date-and-Time-Attribute OPTIONAL,
+ date-and-time-of-last-attribute-modification
+ [7] Date-and-Time-Attribute OPTIONAL,
+ identity-of-creator
+ [8] User-Identity-Attribute OPTIONAL,
+ identity-of-last-modifier
+ [9] User-Identity-Attribute OPTIONAL,
+ identity-of-last-reader
+ [10] User-Identity-Attribute OPTIONAL,
+ identity-last-attribute-modifier
+ [11] User-Identity-Attribute OPTIONAL,
+ object-availability
+ [12] Object-Availability-Attribute OPTIONAL,
+ object-size
+ [13] Object-Size-Attribute OPTIONAL,
+ future-Object-size
+ [14] Object-Size-Attribute OPTIONAL,
+ -- Security group
+ access-control
+ [15] Access-Control-Attribute OPTIONAL,
+ path-access-control
+ [21] Access-Control-Attribute OPTIONAL,
+ -- This Parameter tan be sent if and only if
+ -- the limited-filestore-management functional unit is available.
+ legal-qualification
+ [16] Legal-Qualification-Attribute OPTIONAL,
+ -- Private group
+ private-use
+ [17] Private-Use-Attribute OPTIONAL,
+ -- Attribute Extensions group
+ attribute-extensions
+ [22] IMPLICIT Attribute-Extensions OPTIONAL
+}
+
+-- This Parameter tan be sent if and only if
+-- the limited-filestore-management functional unit is available.
+Select-Attributes ::= [APPLICATION 19] IMPLICIT SEQUENCE {
+ -- Kerne1 Group
+ pathname Pathname-Attribute
+}
+
+Shared-ASE-Information ::= [APPLICATION 20] IMPLICIT EXTERNAL
+
+-- This field may be used to convey commitment control as described
+-- in ISO 8571-3.
+State-Result ::= [APPLICATION 21] IMPLICIT INTEGER {success(0), failure(1)
+}
+
+User-Identity ::= [APPLICATION 22] IMPLICIT GraphicString
+
+Access-Control-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT SET OF Access-Control-Element
+}
+
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Change-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT SEQUENCE {insert-values
+ [0] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL,
+ -- This field is used by the Change attribute actions to indicate
+ -- new values to be inserted in the access control Object attribute.
+ delete-values
+ [1] IMPLICIT SET OF Access-Control-Element
+ OPTIONAL}
+}
+
+-- This field is used by the Change attribute action to indicate
+-- old values to be removed from the access control Object
+-- attribute.
+-- The semantics of this attribute is described in ISO 8571-2.
+Access-Control-Element ::= SEQUENCE {
+ action-list [0] IMPLICIT Access-Request,
+ concurrency-access [1] IMPLICIT Concurrency-Access OPTIONAL,
+ identity [2] IMPLICIT User-Identity OPTIONAL,
+ passwords [3] IMPLICIT Access-Passwords OPTIONAL,
+ location [4] IMPLICIT Application-Entity-Title OPTIONAL
+}
+
+Concurrency-Access ::= SEQUENCE {
+ read [0] IMPLICIT Concurrency-Key,
+ insert [1] IMPLICIT Concurrency-Key,
+ replace [2] IMPLICIT Concurrency-Key,
+ extend [3] IMPLICIT Concurrency-Key,
+ erase [4] IMPLICIT Concurrency-Key,
+ read-attribute [5] IMPLICIT Concurrency-Key,
+ change-attribute [6] IMPLICIT Concurrency-Key,
+ delete-Object [7] IMPLICIT Concurrency-Key
+}
+
+Concurrency-Key ::= BIT STRING {
+ not-required(0), shared(1), exclusive(2), no-access(3)}
+
+Account-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values Account
+}
+
+Contents-Type-Attribute ::= CHOICE {
+ document-type
+ [0] IMPLICIT SEQUENCE {document-type-name Document-Type-Name,
+ parameter
+ [0] TYPE-IDENTIFIER.&Type OPTIONAL},
+ -- The actual types to be used for values of the Parameter field
+ -- are defined in the named document type.
+ constraint-set-and-abstract-Syntax
+ [1] IMPLICIT SEQUENCE {constraint-set-name Constraint-Set-Name,
+ abstract-Syntax-name Abstract-Syntax-Name
+ }
+}
+
+Date-and-Time-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GeneralizedTime
+}
+
+Object-Availability-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values
+ [1] IMPLICIT INTEGER {immediate-availability(0), deferred-availability(1)}
+}
+
+Pathname-Attribute ::= CHOICE {
+ incomplete-pathname [0] IMPLICIT Pathname,
+ complete-pathname [APPLICATION 23] IMPLICIT Pathname
+}
+
+Object-Size-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT INTEGER
+}
+
+Legal-Qualification-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values [1] IMPLICIT GraphicString
+}
+
+Permitted-Actions-Attribute ::= BIT STRING -- Actions available
+ {
+ read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5),
+ change-attribute(6), delete-Object(7), pass(11),
+ link(12),
+ -- FADU-Identity groups available
+ traversal(8), reverse-traversal(9), random-Order(10)}
+
+Private-Use-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ abstract-Syntax-not-supported [1] IMPLICIT NULL,
+ -- Indicates that abstract Syntax is not available.
+ actual-values [2] IMPLICIT EXTERNAL
+}
+
+Object-Type-Attribute ::= INTEGER {file(0), file-directory(1), reference(2)}
+
+User-Identity-Attribute ::= CHOICE {
+ no-value-available [0] IMPLICIT NULL,
+ -- Indicates partial support of this attribute.
+ -- This value shall only appear in response PDUs.
+ actual-values User-Identity
+}
+
+Child-Objects-Attribute ::= SET OF GraphicString
+
+FSM-PDU ::= CHOICE {
+ f-Change-prefix-request [41] IMPLICIT F-CHANGE-PREFIX-request,
+ f-Change-prefix-response [42] IMPLICIT F-CHANGE-PREFIX-response,
+ f-list-request [43] IMPLICIT F-LIST-request,
+ f-list-response [44] IMPLICIT F-LIST-response,
+ f-group-select-request [45] IMPLICIT F-GROUP-SELECT-request,
+ f-group-select-response [46] IMPLICIT F-GROUP-SELECT-response,
+ f-group-delete-request [47] IMPLICIT F-GROUP-DELETE-request,
+ f-group-delete-response [48] IMPLICIT F-GROUP-DELETE-response,
+ f-group-move-request [49] IMPLICIT F-GROUP-MOVE-request,
+ f-group-move-response [50] IMPLICIT F-GROUP-MOVE-response,
+ f-group-copy-request [51] IMPLICIT F-GROUP-COPY-request,
+ f-group-copy-response [52] IMPLICIT F-GROUP-COPY-response,
+ f-group-list-request [53] IMPLICIT F-GROUP-LIST-request,
+ f-group-list-response [54] IMPLICIT F-GROUP-LIST-response,
+ f-group-Change-attrib-request [55] IMPLICIT F-GROUP-CHANGE-ATTRIB-request,
+ f-group-Change-attrib-response [56] IMPLICIT F-GROUP-CHANGE-ATTRIB-response,
+ f-select-another-request [57] IMPLICIT F-SELECT-ANOTHER-request,
+ f-select-another-response [58] IMPLICIT F-SELECT-ANOTHER-response,
+ f-create-directory-request [59] IMPLICIT F-CREATE-DIRECTORY-request,
+ f-create-directory-response [60] IMPLICIT F-CREATE-DIRECTORY-response,
+ f-link-request [61] IMPLICIT F-LINK-request,
+ f-link-response [62] IMPLICIT F-LINK-response,
+ f-unlink-request [63] IMPLICIT F-UNLINK-request,
+ f-unlink-response [64] IMPLICIT F-UNLINK-response,
+ f-read-link-attrib-request [65] IMPLICIT F-READ-LINK-ATTRIB-request,
+ f-read-link-attrib-response [66] IMPLICIT F-READ-LINK-ATTRIB-response,
+ f-Change-link-attrib-request [67] IMPLICIT F-CHANGE-LINK-ATTRIB-request,
+ f-Change-Iink-attrib-response [68] IMPLICIT F-CHANGE-LINK-ATTRIB-response,
+ f-move-request [69] IMPLICIT F-MOVE-request,
+ f-move-response [70] IMPLICIT F-MOVE-response,
+ f-copy-request [71] IMPLICIT F-COPY-request,
+ f-copy-response [72] IMPLICIT F-COPY-response
+}
+
+F-CHANGE-PREFIX-request ::= SEQUENCE {
+ reset [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ destination-file-directory Destination-File-Directory,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL
+}
+
+F-CHANGE-PREFIX-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LIST-request ::= SEQUENCE {
+ attribute-value-asset-tions Attribute-Value-Assertions,
+ scope Scope,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-SELECT-request ::= SEQUENCE {
+ attribute-value-assertions Attribute-Value-Assertions,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ maximum-set-size [0] IMPLICIT INTEGER DEFAULT 0,
+ -- 0 implies no limit.
+ scope Scope,
+ account Account OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-SELECT-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-DELETE-request ::= SEQUENCE {
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-DELETE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ charging Charging OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0}
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [11] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ error-action [1] IMPLICIT Error-Action,
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-GROUP-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ operation-result Operation-Result OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-LIST-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [2] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-GROUP-LIST-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ objects-attributes-list Objects-Attributes-List OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-request ::= SEQUENCE {
+ attributes Change-Attributes,
+ error-action [1] IMPLICIT Error-Action,
+ request-Operation-result Request-Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-GROUP-CHANGE-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ operation-result Operation-Result OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-SELECT-ANOTHER-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-SELECT-ANOTHER-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ last-member-indicator [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ referent-indicator Referent-Indicator OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CREATE-DIRECTORY-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ shared-ASE-infonnation Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-CREATE-DIRECTORY-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-LINK-request ::= SEQUENCE {
+ initial-attributes Create-Attributes,
+ target-object Pathname-Attribute,
+ create-password Password OPTIONAL,
+ requested-access Access-Request,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ concurrency-control Concurrency-Control OPTIONAL,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ account Account OPTIONAL
+}
+
+F-LINK-response ::= SEQUENCE {
+ state-result State-Result DEFAULT success,
+ action-result Action-Result DEFAULT success,
+ initial-attributes Create-Attributes,
+ target-Object Pathname-Attribute,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-UNLINK-request ::= SEQUENCE {
+ shared-ASE-information Shared-ASE-Information OPTIONAL
+}
+
+F-UNLINK-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ shared-ASE-information Shared-ASE-Information OPTIONAL,
+ charging Charging OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-request ::= SEQUENCE {
+ attribute-names [0] IMPLICIT Attribute-Names,
+ attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL
+}
+
+F-READ-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Read-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-CHANGE-LINK-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes
+}
+
+F-CHANGE-LINK-ATTRIB-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-MOVE-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are ailowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-MOVE-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+F-COPY-request ::= SEQUENCE {
+ destination-file-directory Destination-File-Directory,
+ override [0] IMPLICIT Override DEFAULT create-failure,
+ -- Only the values create-failure (0)
+ -- and delete-and-create-with-new-attributes (3) are allowed.
+ create-password Password OPTIONAL,
+ access-passwords Access-Passwords OPTIONAL,
+ path-access-passwords Path-Access-Passwords OPTIONAL,
+ attributes Change-Attributes OPTIONAL
+}
+
+F-COPY-response ::= SEQUENCE {
+ action-result Action-Result DEFAULT success,
+ destination-file-directory Destination-File-Directory OPTIONAL,
+ attributes Change-Attributes OPTIONAL,
+ diagnostic Diagnostic OPTIONAL
+}
+
+Attribute-Extension-Names ::= SEQUENCE OF Attribute-Extension-Set-Name
+
+Attribute-Extension-Set-Name ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-attribute-names [1] SEQUENCE OF Extension-Attribute-identifier
+}
+
+Attribute-Extensions ::= SEQUENCE OF Attribute-Extension-Set
+
+Attribute-Extension-Set ::= SEQUENCE {
+ extension-set-identifier [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attributes [1] SEQUENCE OF Extension-Attribute
+}
+
+Extension-Attribute ::= SEQUENCE {
+ extension-attribute-identifier
+ TYPE-IDENTIFIER.&id({Extension-Attributes}),
+ extension-attribute
+ TYPE-IDENTIFIER.&Type
+ ({Extension-Attributes}{@extension-attribute-identifier})
+}
+
+Extension-Attributes TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible
+
+Extension-Set-Identifier ::= OBJECT IDENTIFIER
+
+Extension-Attribute-identifier ::= OBJECT IDENTIFIER
+
+Attribute-Value-Assertions ::= [APPLICATION 26] IMPLICIT OR-Set
+
+Scope ::=
+ [APPLICATION 28] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {root-directory [0] Pathname-Attribute OPTIONAL,
+ retrieval-scope [1] IMPLICIT INTEGER {child(0), all(1)}
+ }
+
+OR-Set ::= SEQUENCE OF AND-Set
+
+AND-Set ::=
+ SEQUENCE OF
+ CHOICE {-- Kernel group
+ pathname-Pattern
+ [0] IMPLICIT Pathname-Pattern,
+ object-type-Pattern
+ [18] IMPLICIT Integer-Pattern,
+ permitted-actions-Pattern
+ [1] IMPLICIT Bitstring-Pattern,
+ contents-type-Pattern
+ [2] Contents-Type-Pattern,
+ linked-Object-Pattern
+ [19] IMPLICIT Pathname-Pattern,
+ child-objects-Pattern
+ [23] IMPLICIT Pathname-Pattern,
+ -- Storage group
+ primaty-pathname-Pattern
+ [20] IMPLICIT Pathname-Pattern,
+ storage-account-Pattern
+ [3] IMPLICIT String-Pattern,
+ date-and-time-of-creation-Pattern
+ [4] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-modification-Pattern
+ [5] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-read-access-Pattern
+ [6] IMPLICIT Date-and-Time-Pattern,
+ date-and-time-of-last-attribute-modification-Pattern
+ [7] IMPLICIT Date-and-Time-Pattern,
+ identity-of-creator-Pattern
+ [8] IMPLICIT User-Identity-Pattern,
+ identity-of-last-modifier-Pattern
+ [9] IMPLICIT User-Identity-Pattern,
+ identity-of-last-reader-Pattern
+ [10] IMPLICIT User-Identity-Pattern,
+ identity-of-last-attribute-modifier-Pattern
+ [11] IMPLICIT User-Identity-Pattern,
+ object-availabiiity-Pattern
+ [12] IMPLICIT Boolean-Pattern,
+ object-size-Pattern
+ [13] IMPLICIT Integer-Pattern,
+ future-object-size-Pattern
+ [14] IMPLICIT Integer-Pattern,
+ -- Security group
+ -- Access control searches are disallowed.
+ legal-quailfication-Pattern
+ [16] IMPLICIT String-Pattern,
+ -- Private group
+ -- Private use searches are disallowed.
+ -- Attribute Extensions group
+ attribute-extensions-pattern
+ [22] IMPLICIT Attribute-Extensions-Pattern}
+
+User-Identity-Pattern ::= String-Pattern
+
+Equality-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Availabie? fails the test.
+ equals-matches(1)
+
+-- Set implies equal items match the test.
+-- Clear implies equal items fail the test.
+}
+
+Relational-Comparision ::= BIT STRING {
+ no-value-available-matches(0),
+ -- Set impies ?No Value Available? matches the test.
+ -- Clear implies ?No Value Available? fails the test.
+ equals-matches(1),
+ -- Set implies equal items match the test.?
+ -- Clear implies equal items fail the test.
+ less-than-matches(2),
+ -- Set implies a value less than the test cke matches.
+ -- Clear implies a value less than the test case fails.
+ greater-than-matches(3)
+
+-- Set implies a value greater than the test case matches.
+-- Clear implies a value greater than the test case fails.
+}
+
+-- Bits 1 through 3 shall not all have the Same value.
+Pathname-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ pathname-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {string-match [2] IMPLICIT String-Pattern,
+ any-match [3] IMPLICIT NULL}
+}
+
+String-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ string-value
+ [1] IMPLICIT SEQUENCE OF
+ CHOICE {substring-match
+ [2] IMPLICIT GraphicString,
+ any-match [3] IMPLICIT NULL,
+ number-of-characters-match [4] IMPLICIT INTEGER
+ }
+}
+
+Bitstring-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ match-bitstring [1] IMPLICIT BIT STRING,
+ significance-bitstring [2] IMPLICIT BIT STRING
+}
+
+Date-and-Time-Pattern ::= SEQUENCE {
+ relational-camparision [0] IMPLICIT Equality-Comparision,
+ time-and-date-value [1] IMPLICIT GeneralizedTime
+}
+
+Integer-Pattern ::= SEQUENCE {
+ relational-comparision [0] IMPLICIT Relational-Comparision,
+ integer-value [1] IMPLICIT INTEGER
+}
+
+Object-Identifier-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ object-identifier-value [1] IMPLICIT OBJECT IDENTIFIER
+}
+
+Boolean-Pattern ::= SEQUENCE {
+ equality-comparision [0] IMPLICIT Equality-Comparision,
+ boolean-value [1] IMPLICIT BOOLEAN
+}
+
+Other-Pattern ::= Equality-Comparision
+
+-- Matches against ?No Value Available?.
+Contents-Type-Pattern ::= CHOICE {
+ document-type-Pattern
+ [0] IMPLICIT Object-Identifier-Pattern,
+ constraint-set-abstract-Syntax-Pattern
+ [1] IMPLICIT SEQUENCE {constraint-Set-Pattern
+ [2] IMPLICIT Object-Identifier-Pattern OPTIONAL,
+ -- Absent implies any Object Identifier is equal.
+ abstract-Syntax-Pattern
+ [3] IMPLICIT Object-Identifier-Pattern OPTIONAL
+ -- Absent implies any Object identifier is equal.
+ }
+}
+
+Attribute-Extensions-Pattern ::=
+ SEQUENCE OF
+ SEQUENCE {extension-set-identifier
+ [0] IMPLICIT Extension-Set-Identifier,
+ extension-set-attribute-Patterns
+ [1] IMPLICIT SEQUENCE OF
+ SEQUENCE {extension-attribute-identifier
+ TYPE-IDENTIFIER.&id
+ ({Extension-attribute-Patterns}),
+ extension-attribute-Pattern
+ TYPE-IDENTIFIER.&Type
+ ({Extension-attribute-Patterns}
+ {@.extension-attribute-identifier})
+ }}
+
+-- conjunction with the extention attribute in Order to
+-- perform Pattern matthing operations on it. it may be
+-- defined in terms of other Patterns within this
+-- Standard.
+Extension-attribute-Patterns TYPE-IDENTIFIER ::=
+ {...} -- dynamically extensible information object set
+
+Destination-File-Directory ::= [APPLICATION 24] Pathname-Attribute
+
+Objects-Attributes-List ::=
+ [APPLICATION 25] IMPLICIT SEQUENCE OF Read-Attributes
+
+Override ::= INTEGER {
+ create-failure(0), select-old-Object(1),
+ delete-and-create-with-old-attributes(2),
+ delete-and-create-with-new-attributes(3)}
+
+Error-Action ::= INTEGER {terminate(0), continue(1)}
+
+Operation-Result ::= [APPLICATION 30] CHOICE {
+ success-Object-count [0] IMPLICIT INTEGER,
+ success-Object-names [1] IMPLICIT SEQUENCE OF Pathname
+}
+
+Pathname ::= SEQUENCE OF GraphicString
+
+Pass-Passwords ::= SEQUENCE OF Password
+
+-- There is a one-to-one correspondence between the elements of
+-- Pass-Passwords and the non-terminal elements of the specified
+-- Pathname.
+Path-Access-Passwords ::=
+ [APPLICATION 27] IMPLICIT
+ SEQUENCE OF
+ SEQUENCE {read-password [0] Password,
+ insert-password [1] Password,
+ replace-password [2] Password,
+ extend-password [3] Password,
+ erase-password [4] Password,
+ read-attribute-password [5] Password,
+ change-attribute-password [6] Password,
+ delete-password [7] Password,
+ pass-passwords [8] IMPLICIT Pass-Passwords,
+ link-password [9] Password}
+
+-- There is a one-to-one correspondence between the elements of
+-- Path-Access-Passwords and the non-terminal elements sf the
+-- specified Pathname.
+Request-Operation-Result ::= [APPLICATION 31] IMPLICIT INTEGER {
+ summary(0), fiii-list(1)}
+
+Attribute-Names ::= BIT STRING -- Kernel group
+ {
+ read-pathname(0), read-Object-type(18), read-permitted-actions(1),
+ read-contents-type(2), read-linked-Object(19),
+ read-Child-objects(23),
+ -- Storage group
+ read-primary-pathname(20), read-storage-account(3),
+ read-date-and-time-of-creation(4),
+ read-date-and-time-of-last-modification(5),
+ read-date-and-time-of-last-read-access(6),
+ read-date-and-time-of-last-attribute-modification(7),
+ read-identity-of-creator(8), read-identity-of-last-modifier(9),
+ read-identity-of-last-reader(10),
+ read-identity-of-last-attribute-modifier(11), read-Object-availability(12),
+ read-Object-size(13),
+ read-future-Object-size(14),
+ -- Security group
+ read-access-control(15), read-path-access-control(21),
+ read-l8gal-qualifiCatiOnS(16),
+ -- Private group
+ read-private-use(17)}
+
+-- Bits 19 through 23 arc defined if and only if the limited-fil8Store-manag8m8nt
+-- or group-manipulation functionat units are available.
+Referent-Indicator ::= [APPLICATION 29] IMPLICIT BOOLEAN
+
+-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990
+-- dw: defined in-line here so we don't need to import it, original comments
+-- dw: are as they appear in the 8650:1988 Annex E
+AP-title ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AP-title
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-qualifier ::= TYPE-IDENTIFIER.&Type
+
+-- The exact definition and values used for AE-qualifier
+-- should be chosen taking into account the ongoing
+-- work in areas of naming, the Directory, and the
+-- Registration Authority procedures for AE titles,
+-- AE titles, and AE qualifiers
+AE-title ::= SEQUENCE {ap AP-title,
+ ae AE-qualifier
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO9541-SN.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO9541-SN.asn
new file mode 100644
index 0000000000..0149602040
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ISO9541-SN.asn
@@ -0,0 +1,51 @@
+-- Module ISO9541-SN (ISO:1991)
+--
+-- Copyright � ISO/IEC 1991. This version of
+-- this ASN.1 module is part of ISO|IEC 9541-2:1991;
+-- see the ISO|IEC text itself for full legal notices.
+--
+ISO9541-SN {1 0 9541 2 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Structured-Name, Owner-Name, Object-Name-Component;
+
+Structured-Name ::= SEQUENCE {
+ owner-name [0] IMPLICIT Owner-Name OPTIONAL,
+ -- length restricted to 120 characters
+ owner-description [1] Message OPTIONAL,
+ object-name [2] SEQUENCE OF Object-Name-Component OPTIONAL,
+ -- length restricted to 100 characters
+ object-description [3] Message OPTIONAL
+}
+
+Owner-Name ::= SEQUENCE {
+ objectIdentifier [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
+ ownerNameComponent [1] SEQUENCE OF Owner-Name-Component OPTIONAL
+}
+
+Owner-Name-Component ::= [0] VisibleString
+
+-- except for "//" and "::"
+Object-Name-Component ::= [0] VisibleString
+
+-- only characters from the following
+-- repertoire: "A-Z", "a-z", "0-9",
+-- Hyphen, and Period. If the name
+-- component is a numeric value,
+-- the first digit is in the range
+-- of 1 to 9
+Message ::= CHOICE {
+ numeric [0] NumericString,
+ printable [1] PrintableString,
+ teletex [2] TeletexString,
+ videotex [3] VideotexString,
+ visible [4] VisibleString,
+ ia5 [5] IA5String,
+ graphic [6] GraphicString,
+ general [7] GeneralString
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Identifiers-and-Expressions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Identifiers-and-Expressions.asn
new file mode 100644
index 0000000000..bd1d8d3c48
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Identifiers-and-Expressions.asn
@@ -0,0 +1,126 @@
+-- Module Identifiers-and-Expressions (T.415:03/1993)
+
+Identifiers-and-Expressions {2 8 1 5 7} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Content-Portion-Identifier, Object-or-Class-Identifier, Style-Identifier,
+ Protected-Part-Identifier, Category-Name, Resource-Name, Binding-Name,
+ Construction-Expression, Object-Id-Expression, Numeric-Expression,
+ String-Expression;
+
+IMPORTS
+ Layout-Object-Type
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Object-Type
+ FROM Logical-Descriptors; -- see 7.10
+
+Content-Portion-Identifier ::= [APPLICATION 0] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions
+Object-or-Class-Identifier ::= [APPLICATION 1] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Style-Identifier ::= [APPLICATION 5] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Protected-Part-Identifier ::= [APPLICATION 7] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version
+-- of this Specification; other characters are reserved for extensions;
+-- a 'null' value is represented by an empty string
+Category-Name ::= PrintableString
+
+-- a 'null' value is represented by an empty string
+Resource-Name ::= PrintableString
+
+Binding-Name ::= PrintableString
+
+Construction-Expression ::= CHOICE {
+ construction-type Construction-Type,
+ single-term-construction [3] Construction-Term
+}
+
+Construction-Type ::= CHOICE {
+ sequence-construction [0] IMPLICIT Term-Sequence,
+ aggregate-construction [1] IMPLICIT Term-Sequence,
+ choice-construction [2] IMPLICIT Term-Sequence
+}
+
+Term-Sequence ::= SEQUENCE OF Construction-Term
+
+Construction-Term ::= CHOICE {
+ required-construction-factor [0] Construction-Factor,
+ optional-construction-factor [1] Construction-Factor,
+ repetitive-construction-factor [2] Construction-Factor,
+ optional-repetitive-factor [3] Construction-Factor
+}
+
+Construction-Factor ::= CHOICE {
+ object-class-identifier Object-or-Class-Identifier,
+ construction-type Construction-Type
+}
+
+Object-Id-Expression ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-object-function [1] Object-Id-Expression,
+ superior-object-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Numeric-Expression ::= CHOICE {
+ numeric-literal [0] IMPLICIT INTEGER,
+ increment-application [1] Numeric-Expression,
+ decrement-application [2] Numeric-Expression,
+ ordinal-application
+ [3] CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression},
+ binding-reference [4] IMPLICIT Binding-Reference
+}
+
+Binding-Reference ::= SET {
+ object-reference
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Binding-Selection-Function},
+ binding-identifier Binding-Name
+}
+
+Binding-Selection-Function ::= CHOICE {
+ current-object-function [0] IMPLICIT NULL,
+ preceding-function [1] Object-Id-Expression,
+ superior-function [3] Object-Id-Expression,
+ current-instance-function [4] Current-Instance-Function
+}
+
+Current-Instance-Function ::= SEQUENCE {
+ first-parameter
+ CHOICE {identifier [0] IMPLICIT Object-or-Class-Identifier,
+ layout-object-type [1] IMPLICIT Layout-Object-Type,
+ logical-object-type [2] IMPLICIT Logical-Object-Type},
+ second-parameter
+ CHOICE {identifier Object-or-Class-Identifier,
+ expression Object-Id-Expression}
+}
+
+String-Expression ::= SEQUENCE OF Atomic-String-Expression
+
+Atomic-String-Expression ::= CHOICE {
+ string-literal [0] IMPLICIT OCTET STRING,
+ binding-reference [2] IMPLICIT Binding-Reference,
+ make-string-application [3] Numeric-Expression,
+ upper-alpha-application [4] Numeric-Expression,
+ lower-alpha-application [5] Numeric-Expression,
+ upper-roman-application [6] Numeric-Expression,
+ lower-roman-application [7] Numeric-Expression
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/InformationFramework.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/InformationFramework.asn
new file mode 100644
index 0000000000..813ac9c6a0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/InformationFramework.asn
@@ -0,0 +1,868 @@
+-- Module InformationFramework (X.501:08/1997)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
+ directoryAbstractService, upperBounds
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
+ integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
+ integerFirstComponentMatch, DirectoryString{}
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
+ HierarchySelections, FamilyGrouping, FamilyReturn
+ FROM DirectoryAbstractService directoryAbstractService
+ ub-search
+ FROM UpperBounds upperBounds;
+
+-- attribute data types
+Attribute ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
+
+Context ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
+ } OPTIONAL
+}
+
+ContextAssertion ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
+}
+
+AttributeTypeAssertion ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the values component of Attribute, the value component
+-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the context specifications
+SupportedContexts CONTEXT ::=
+ {...}
+
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
+}
+
+-- subtree data types
+SubtreeSpecification ::= SEQUENCE {
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
+}
+
+-- empty sequence specifies whole administrative area
+LocalName ::= RDNSequence
+
+ChopSpecification ::= SEQUENCE {
+ specificExclusions
+ [1] SET SIZE (1..MAX) OF
+ CHOICE {chopBefore [0] LocalName,
+ chopAfter [1] LocalName} OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
+ maximum [3] BaseDistance OPTIONAL
+}
+
+BaseDistance ::= INTEGER(0..MAX)
+
+Refinement ::= CHOICE {
+ item [0] OBJECT-CLASS.&id,
+ and [1] SET OF Refinement,
+ or [2] SET OF Refinement,
+ not [3] Refinement
+}
+
+-- OBJECT-CLASS information object class specification
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
+
+ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
+
+-- object classes
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
+-- ATTRIBUTE information object class specification
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
+
+AttributeUsage ::= ENUMERATED {
+ userApplications(0), directoryOperation(1), distributedOperation(2),
+ dSAOperation(3)}
+
+-- attributes
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
+-- MATCHING-RULE information object class specification
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
+-- matching rules
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
+-- NAME-FORM information object class specification
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
+-- STRUCTURE-RULE class and DIT structure rule data types
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
+
+DITStructureRule ::= SEQUENCE {
+ ruleIdentifier RuleIdentifier,
+ -- must be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
+}
+
+RuleIdentifier ::= INTEGER
+
+-- CONTENT-RULE class and DIT content rule data types
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
+
+DITContentRule ::= SEQUENCE {
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &Assertion OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {WITH SYNTAX &Type
+ [ASSERTED AS &Assertion]
+ ID &id
+}
+
+DITContextUse ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+-- system schema information objects
+-- object classes
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
+-- attributes
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
+
+SearchRuleDescription ::= SEQUENCE {
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL,
+ obsolete [30] BOOLEAN DEFAULT FALSE
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX INTEGER
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id,
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE SIZE (1..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+OutputValues ::= CHOICE {
+ selectedValues
+ SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}),
+ matchedValuesOnly NULL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues OutputValues OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+-- object identifier assignments
+-- object classes
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
+-- attributes
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
+-- matching rules
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
+-- operational attributes
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+-- subentry classes
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
+-- administrative roles
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+
+END -- InformationFramework
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Interchange-Data-Elements.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Interchange-Data-Elements.asn
new file mode 100644
index 0000000000..2c78360b7b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Interchange-Data-Elements.asn
@@ -0,0 +1,57 @@
+-- Module Interchange-Data-Elements (T.415:03/1993)
+
+Interchange-Data-Elements {2 8 1 5 5} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Interchange-Data-Element;
+
+IMPORTS
+ Document-Profile-Descriptor
+ FROM Document-Profile-Descriptor -- see 7.7
+
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors -- see 7.9
+
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors -- see 7.11
+
+ Text-Unit
+ FROM Text-Units -- see 7.13
+
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor
+ FROM Protected-Part-Descriptors -- see 7.15
+
+ Link-Class-Descriptor, Link-Descriptor, Enciphered-Link-Descriptor
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Interchange-Data-Element ::= CHOICE {
+ document-profile [0] IMPLICIT Document-Profile-Descriptor,
+ layout-object-class [1] IMPLICIT Layout-Class-Descriptor,
+ layout-object [2] IMPLICIT Layout-Object-Descriptor,
+ content-portion [3] IMPLICIT Text-Unit,
+ logical-object-class [5] IMPLICIT Logical-Class-Descriptor,
+ logical-object [6] IMPLICIT Logical-Object-Descriptor,
+ presentation-style
+ [7] IMPLICIT Presentation-Style-Descriptor,
+ layout-style [8] IMPLICIT Layout-Style-Descriptor,
+ sealed-doc-prof-descriptor [9] IMPLICIT Sealed-Doc-Prof-Descriptor,
+ enciphered-doc-prof-descriptor
+ [10] IMPLICIT Enciphered-Doc-Prof-Descriptor,
+ preenciphered-bodypart-descriptor
+ [11] IMPLICIT Preenciphered-Bodypart-Descriptor,
+ postenciphered-bodypart-descriptor
+ [12] IMPLICIT Postenciphered-Bodypart-Descriptor,
+ link-class [13] IMPLICIT Link-Class-Descriptor,
+ link [14] IMPLICIT Link-Descriptor,
+ enciphered-link-descriptor [15] IMPLICIT Enciphered-Link-Descriptor
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Layout-Descriptors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Layout-Descriptors.asn
new file mode 100644
index 0000000000..92c887bb06
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Layout-Descriptors.asn
@@ -0,0 +1,268 @@
+-- Module Layout-Descriptors (T.415:03/1993)
+
+Layout-Descriptors {2 8 1 5 8} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Layout-Object-Descriptor, Layout-Class-Descriptor, Layout-Object-Type,
+ Transparency, Comment-String, Binding-Pair, One-Of-Four-Angles,
+ Measure-Pair, Dimension-Pair, Medium-Type, Colour, Border,
+ Content-Background-Colour, Content-Foreground-Colour, Enciphered,
+ Sealed;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Protected-Part-Identifier,
+ Category-Name, Resource-Name, Binding-Name, Construction-Expression,
+ Object-Id-Expression, Numeric-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Layout
+ FROM Default-Value-Lists -- see 7.12
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Presentation-Time
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Position-Spec ::= SET {
+ offset
+ [0] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ left-hand [2] IMPLICIT INTEGER OPTIONAL,
+ right-hand [3] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ separation
+ [1] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL} OPTIONAL,
+ alignment
+ [2] IMPLICIT INTEGER {right-hand(0), centred(1), left-hand(2)} OPTIONAL,
+ fill-order [3] IMPLICIT INTEGER {normal(0), reverse(1)} OPTIONAL
+}
+
+Dimension-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ variable [1] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Dimension-Spec ::= SEQUENCE {horizontal Dimension,
+ vertical Dimension
+}
+
+Dimension ::= CHOICE {
+ fixed [0] IMPLICIT INTEGER,
+ rule-a
+ [1] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ rule-b
+ [2] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL,
+ maximum [1] IMPLICIT INTEGER OPTIONAL},
+ maximum-size [3] IMPLICIT NULL,
+ not-present [4] IMPLICIT NULL
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Transparency ::= INTEGER {transparent(0), opaque(1)}
+
+Comment-String ::= OCTET STRING
+
+-- string of characters from the sets designated by
+-- the document profile attribute "comments character sets",
+-- plus code extension control functions,
+-- space, carriage return and line feed
+Binding-Pair ::= SET {
+ binding-identifier [0] IMPLICIT Binding-Name,
+ binding-value
+ CHOICE {a [1] Object-Id-Expression,
+ b [2] Numeric-Expression,
+ c [3] String-Expression,
+ d [4] IMPLICIT Object-or-Class-Identifier,
+ e [5] IMPLICIT INTEGER,
+ f [6] IMPLICIT OCTET STRING}
+}
+
+One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)}
+
+Measure-Pair ::= SEQUENCE {
+ horizontal
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL},
+ vertical
+ CHOICE {fixed [0] IMPLICIT INTEGER,
+ not-present [4] IMPLICIT NULL}
+}
+
+-- the choice 'not-present' indicates that the parameter is not present
+Medium-Type ::= SEQUENCE {
+ nominal-page-size Measure-Pair OPTIONAL,
+ side-of-sheet INTEGER {unspecified(0), recto(1), verso(2)} OPTIONAL,
+ colour-of-medium [3] Colour-Of-Medium OPTIONAL
+}
+
+Colour ::= INTEGER {colour-of-media(0), coloured(1)}
+
+Border ::= SET {
+ left-hand-edge [0] IMPLICIT Border-Edge OPTIONAL,
+ right-hand-edge [1] IMPLICIT Border-Edge OPTIONAL,
+ trailing-edge [2] IMPLICIT Border-Edge OPTIONAL,
+ leading-edge [3] IMPLICIT Border-Edge OPTIONAL
+}
+
+Border-Edge ::= SET {
+ line-width [0] IMPLICIT INTEGER OPTIONAL,
+ line-type
+ [1] IMPLICIT INTEGER {invisible(0), solid(1), dashed(2), dot(3),
+ dash-dot(4), dash-dot-dot(5)} OPTIONAL,
+ freespace-width [2] IMPLICIT INTEGER OPTIONAL,
+ border-line-colour [3] Border-Line-Colour OPTIONAL
+}
+
+-- a 'null' border edge is represented by an empty set
+Colour-Of-Medium ::= CHOICE {
+ unspecified-colour [3] IMPLICIT NULL,
+ specified-colour Colour-Expression
+}
+
+Border-Line-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Background-Colour ::= CHOICE {
+ content-background-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Content-Foreground-Colour ::= CHOICE {
+ implementation-defined [3] IMPLICIT NULL,
+ content-foreground-transparency [2] IMPLICIT NULL,
+ colour-expression Colour-Expression
+}
+
+Enciphered ::= SEQUENCE {
+ enciphered-subordinates
+ CHOICE {none-all [0] IMPLICIT INTEGER {none(0), all(1)},
+ partial [1] IMPLICIT SEQUENCE OF NumericString},
+ protected-part-id [2] IMPLICIT Protected-Part-Identifier OPTIONAL
+}
+
+Sealed ::= SEQUENCE {
+ sealed-status [0] IMPLICIT INTEGER {no(0), yes(1)},
+ seal-ids [1] IMPLICIT SET OF INTEGER OPTIONAL
+}
+
+Layout-Object-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type OPTIONAL,
+ descriptor-body Layout-Object-Descriptor-Body OPTIONAL
+}
+
+Layout-Object-Type ::= INTEGER {
+ document-layout-root(0), page-set(1), page(2), frame(3), block(4)}
+
+Layout-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class
+ [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ position [3] IMPLICIT Measure-Pair OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Pair OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ imaging-order
+ [12] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary
+ [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative
+ [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Layout-Class-Descriptor ::= SEQUENCE {
+ object-type Layout-Object-Type,
+ descriptor-body Layout-Class-Descriptor-Body
+}
+
+Layout-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ position
+ CHOICE {fixed-position [3] IMPLICIT Measure-Pair,
+ variable-position [26] IMPLICIT Position-Spec} OPTIONAL,
+ dimensions [4] IMPLICIT Dimension-Spec OPTIONAL,
+ transparency [5] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ default-value-lists
+ [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL,
+ layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL,
+ permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL,
+ -- a 'null' value is represented by an empty set
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ page-position [15] IMPLICIT Measure-Pair OPTIONAL,
+ medium-type [16] IMPLICIT Medium-Type OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ logical-source
+ [18] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ balance
+ [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL,
+ -- a 'null' value is represented by an empty sequence
+ colour [22] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [23] IMPLICIT Border OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ presentation-time [52] IMPLICIT Presentation-Time OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Link-Descriptors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Link-Descriptors.asn
new file mode 100644
index 0000000000..64fc4436e4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Link-Descriptors.asn
@@ -0,0 +1,80 @@
+-- Module Link-Descriptors (T.424:07/1996)
+
+Link-Descriptors {2 8 1 14 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier,
+ Enciphered-Link-Descriptor;
+
+IMPORTS
+ Reference-Name
+ FROM External-References {2 8 1 12 1}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0}
+ -- see ITU-T Rec. T.422 | ISO/IEC 8613-12
+ Style-Identifier, Protected-Part-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Comment-String, Sealed
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Temporal-Relations, Presentation-Time
+ FROM Temporal-Relationships;
+
+-- see 7.5
+Link-or-Link-Class-Identifier ::= [APPLICATION 9] IMPLICIT PrintableString
+
+-- only digits and space are used in the present version of this Recommendation | International Standard;
+-- other characters are reserved for extensions
+Link-Class-Descriptor ::= SET {
+ link-class-identifier Link-or-Link-Class-Identifier,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Descriptor ::= SET {
+ link-identifier Link-or-Link-Class-Identifier,
+ link-class [0] IMPLICIT Link-or-Link-Class-Identifier OPTIONAL,
+ link-roles [1] SEQUENCE OF Link-Role OPTIONAL,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL,
+ presentation-time [39] IMPLICIT Presentation-Time OPTIONAL
+}
+
+Link-Role ::= SET {
+ link-ends SET OF Link-End,
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Link-End ::= SET {
+ reference
+ SET {reference-name [0] Reference-Name OPTIONAL,
+ reference-qualifier [1] Location-Expression OPTIONAL},
+ user-readable-comments [2] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [3] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL
+}
+
+Enciphered-Link-Descriptor ::= SEQUENCE {
+ protected-part-identifier Protected-Part-Identifier,
+ enciphered-information OCTET STRING
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Location-Expressions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Location-Expressions.asn
new file mode 100644
index 0000000000..5de6491621
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Location-Expressions.asn
@@ -0,0 +1,338 @@
+-- Module Location-Expressions (T.422:08/1995)
+
+Location-Expressions {2 8 1 12 0} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Location-Expression, Basic-Location-Expression, Constituent-Locator;
+
+IMPORTS
+ Object-or-Class-Identifier, Content-Portion-Identifier, Style-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Layout-Class-Descriptor, Layout-Object-Descriptor
+ FROM Layout-Descriptors {2 8 1 5 8}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Logical-Class-Descriptor, Logical-Object-Descriptor
+ FROM Logical-Descriptors {2 8 1 5 9}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Presentation-Style-Descriptor, Layout-Style-Descriptor
+ FROM Style-Descriptors {2 8 1 5 10}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Text-Unit
+ FROM Text-Units {2 8 1 5 12}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Subprofile-Descriptor, Subprofile-Identifier
+ FROM Subprofiles {2 8 1 12 2}
+ -- see 9.3
+ Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier
+ FROM Link-Descriptors {2 8 1 14 3};
+
+-- see ITU-T Rec. T.424 | ISO/IEC 8613-14
+-- Location expression
+Location-Expression ::= CHOICE {
+ basic [0] Basic-Location-Expression,
+ composite [1] Composite-Location-Expression
+}
+
+Composite-Location-Expression ::= CHOICE {
+ complement [0] Location-Expression,
+ intersection [1] SEQUENCE OF Location-Expression,
+ union [2] SEQUENCE OF Location-Expression
+}
+
+Basic-Location-Expression ::= CHOICE {
+ region [0] Region-Locator,
+ subtree [1] Subtree-Locator,
+ constituent [2] Constituent-Locator
+}
+
+Region-Locator ::= SEQUENCE {
+ start [0] Start-End-Object-Locator,
+ end [1] Start-End-Object-Locator
+}
+
+Start-End-Object-Locator ::= SEQUENCE {
+ object [0] Object-Locator,
+ not-included [1] BOOLEAN DEFAULT TRUE
+}
+
+Subtree-Locator ::= Object-Locator
+
+Constituent-Locator ::= CHOICE {
+ documentProfile [0] NULL,
+ subprofile [1] Subprofile-Locator,
+ component [2] Component-Locator,
+ contentPortion [3] Content-Portion-Locator,
+ style [4] Style-Locator,
+ link-or-link-class [5] Link-or-Link-Class-Locator,
+ constituent-of-type [6] Constituent-Type
+}
+
+Constituent-Type ::= ENUMERATED {
+ layout-object-class(1), layout-object(2), content-portion(3),
+ logical-object-class(5), logical-object(6), presentation-style(7),
+ layout-style(8), sealed-doc-prof-descriptor(9),
+ enciphered-doc-prof-descriptor(10), preenciphered-bodypart-descriptor(11),
+ postenciphered-bodypart-descriptor(12), link-class(13), link(14),
+ enciphered-link-descriptor(15), subprofile(16)}
+
+-- Subprofile
+Subprofile-Locator ::= CHOICE {
+ subprofile [0] Subprofile-Identifier,
+ subprofile-of [1] Subprofile-of-argument,
+ subprofile-with [2] Subprofile-with-argument
+}
+
+Subprofile-of-argument ::= Constituent-Locator
+
+Subprofile-with-argument ::=
+ AttributeValue-Subprofile-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+-- Component locator
+Component-Locator ::= CHOICE {
+ objectClass [0] Object-Class-Locator,
+ object [1] Object-Locator
+}
+
+Object-Class-Locator ::= CHOICE {
+ objectClass [0] Object-or-Class-Identifier,
+ object-class-of [1] Object-Class-of-argument,
+ object-class-with [2] Object-Class-with-argument
+}
+
+Object-Class-of-argument ::= Object-Locator
+
+Object-Class-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Class-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Object locator
+Object-Locator ::= CHOICE {
+ object [0] Object-or-Class-Identifier,
+ subord [1] Subord-argument,
+ object-with [2] Object-with-argument
+}
+
+Subord-argument ::= SEQUENCE {
+ object [0] Object-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Object-with-argument ::= SEQUENCE {
+ attributeValueObject [0] AttributeValue-Object-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ object [1] Object-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Links
+Link-or-Link-Class-Locator ::= CHOICE {
+ linkClass [0] Link-Class-Locator,
+ link [1] Link-Locator
+}
+
+Link-Class-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-class-of [1] Link-Class-of-argument,
+ link-class-with [2] Link-Class-with-arguments
+}
+
+Link-Class-of-argument ::= Link-Locator
+
+Link-Class-with-arguments ::=
+ AttributeValue-Link-Class-Specification -- The "attribute" and "value"
+
+-- arguments are grouped together
+Link-Locator ::= CHOICE {
+ link [0] Link-or-Link-Class-Identifier,
+ link-with [1] Link-with-arguments
+}
+
+Link-with-arguments ::= SEQUENCE {
+ attributeValueLink [0] AttributeValue-Link-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Content portion locator
+Content-Portion-Locator ::= CHOICE {
+ contentPortion [0] Content-Portion-Identifier,
+ assoc [1] Assoc-argument,
+ content-with [2] Content-with-argument
+}
+
+Assoc-argument ::= SEQUENCE {
+ component [0] Component-Locator,
+ counters [1] CountersType OPTIONAL
+}
+
+Content-with-argument ::= SEQUENCE {
+ attributeValueContent [0] AttributeValue-Content-Specification, -- The "attribute" and "value"
+
+ -- arguments are grouped together
+ component [1] Component-Locator OPTIONAL,
+ counters [2] CountersType OPTIONAL,
+ not-defaulting [3] BOOLEAN DEFAULT FALSE
+}
+
+-- Styles
+Style-Locator ::= CHOICE {
+ style [0] Style-Identifier,
+ layout-style-of [1] Layout-Style-of-argument,
+ presentation-style-of [2] Presentation-Style-of-argument,
+ layout-style-with [3] Layout-Style-with-argument,
+ presentation-style-with [4] Presentation-Style-with-argument
+}
+
+Layout-Style-of-argument ::= Component-Locator
+
+Presentation-Style-of-argument ::= Component-Locator
+
+Layout-Style-with-argument ::= SEQUENCE {
+ attributeValueLayoutStyle [0] AttributeValue-LayoutStyle-Specification, -- The "attribute" and
+
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+Presentation-Style-with-argument ::= SEQUENCE {
+ attributeValuePresentationStyle
+ [0] AttributeValue-PresentationStyle-Specification,
+ -- The "attribute" and
+ -- "value" arguments are grouped together
+ not-defaulting [1] BOOLEAN DEFAULT FALSE
+}
+
+-- Counters
+CountersType ::= SEQUENCE {
+ start [0] INTEGER OPTIONAL,
+ end [1] INTEGER OPTIONAL
+}
+
+-- Attribute-Value specifications
+-- Classes
+AttributeValue-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Class-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Class-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Class-Specification ::= CHOICE {
+ layout [0] Layout-Class-Descriptor,
+ logical [1] Logical-Class-Descriptor
+}
+
+-- Objects
+AttributeValue-Object-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Object-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Object-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Object-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Object-Specification ::= CHOICE {
+ layout [0] Layout-Object-Descriptor,
+ logical [1] Logical-Object-Descriptor
+}
+
+-- Link classes
+AttributeValue-Link-Class-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Class-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Class-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Link-Class-Specification ::= Link-Class-Descriptor
+
+-- Links
+AttributeValue-Link-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Link-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Link-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Link-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Link-Specification ::= Link-Descriptor
+
+-- Contents
+AttributeValue-Content-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Content-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Content-Specification OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Content-Specification OPTIONAL
+ }
+}
+
+Simple-AttributeValue-Content-Specification ::= Text-Unit
+
+-- Layout Styles
+AttributeValue-LayoutStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-LayoutStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-LayoutStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-LayoutStyle-Specification ::= Layout-Style-Descriptor
+
+-- Presentation Styles
+AttributeValue-PresentationStyle-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-PresentationStyle-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-PresentationStyle-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-PresentationStyle-Specification ::=
+ Presentation-Style-Descriptor
+
+-- Subprofiles
+AttributeValue-Subprofile-Specification ::= CHOICE {
+ value [0] Simple-AttributeValue-Subprofile-Specification,
+ range
+ [1] SEQUENCE {start
+ [0] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL,
+ end
+ [1] Simple-AttributeValue-Subprofile-Specification
+ OPTIONAL}
+}
+
+Simple-AttributeValue-Subprofile-Specification ::= Subprofile-Descriptor
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Logical-Descriptors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Logical-Descriptors.asn
new file mode 100644
index 0000000000..fab36bf12a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Logical-Descriptors.asn
@@ -0,0 +1,95 @@
+-- Module Logical-Descriptors (T.415:03/1993)
+
+Logical-Descriptors {2 8 1 5 9} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Logical-Object-Descriptor, Logical-Class-Descriptor, Logical-Object-Type,
+ Protection;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Resource-Name,
+ Construction-Expression, String-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Binding-Pair, Enciphered, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Default-Value-Lists-Logical
+ FROM Default-Value-Lists -- see 7.12
+
+ Temporal-Relations
+ FROM Temporal-Relationships {2 8 1 14 0};
+
+-- See ITU-T Rec. T.424 | ISO/IEC 8613-14
+Logical-Object-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type OPTIONAL,
+ descriptor-body Logical-Object-Descriptor-Body OPTIONAL
+}
+
+Logical-Object-Type ::= INTEGER {
+ document-logical-root(0), composite-logical-object(1),
+ basic-logical-object(2)}
+
+Logical-Object-Descriptor-Body ::= SET {
+ object-identifier Object-or-Class-Identifier OPTIONAL,
+ subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ object-class [2] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ primary [27] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ alternative [28] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Logical-Class-Descriptor ::= SEQUENCE {
+ object-type Logical-Object-Type,
+ descriptor-body Logical-Class-Descriptor-Body
+}
+
+Logical-Class-Descriptor-Body ::= SET {
+ object-class-identifier Object-or-Class-Identifier,
+ generator-for-subordinates [0] Construction-Expression OPTIONAL,
+ content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL,
+ presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL,
+ user-readable-comments [8] IMPLICIT Comment-String OPTIONAL,
+ bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL,
+ content-generator [10] IMPLICIT String-Expression OPTIONAL,
+ user-visible-name [14] IMPLICIT Comment-String OPTIONAL,
+ presentation-style [17] IMPLICIT Style-Identifier OPTIONAL,
+ layout-style [19] IMPLICIT Style-Identifier OPTIONAL,
+ protection [20] IMPLICIT Protection OPTIONAL,
+ resource [24] IMPLICIT Resource-Name OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ enciphered [34] IMPLICIT Enciphered OPTIONAL,
+ sealed [35] IMPLICIT Sealed OPTIONAL,
+ temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL
+}
+
+Protection ::= INTEGER {unprotected(0), protected(1)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSObjectIdentifiers.asn
new file mode 100644
index 0000000000..187c3c8ad4
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSObjectIdentifiers.asn
@@ -0,0 +1,187 @@
+-- Module MHSObjectIdentifiers (X.402:06/1999)
+MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Aspects
+id-mhs-protocols ID ::= {joint-iso-itu-t mhs(6) protocols(0)}
+
+-- MHS Application Contexts and Protocols
+-- See ITU-T Rec. X.419 | ISO/IEC 10021-6.
+id-ipms ID ::=
+ {joint-iso-itu-t mhs(6) ipms(1)}
+
+-- Interpersonal Messaging
+-- See ITU-T Rec. X.420 | ISO/IEC 10021-7.
+-- Value {joint-iso-itu-t mhs(6) 2} is no longer defined
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)}
+
+-- Message Transfer System
+-- See ITU-T Rec. X.411 | ISO/IEC 10021-4.
+id-ms ID ::=
+ {joint-iso-itu-t mhs(6) ms(4)}
+
+-- Message Store
+-- See ITU-T Rec. X.413 | ISO/IEC 10021-5.
+id-arch ID ::=
+ {joint-iso-itu-t mhs(6) arch(5)}
+
+-- Overall Architecture
+-- See this Specification.
+id-group ID ::=
+ {joint-iso-itu-t mhs(6) group(6)}
+
+-- Reserved.
+id-edims ID ::= {joint-iso-itu-t mhs(6) edims(7)}
+
+-- EDI Messaging
+-- See ITU-T Rec. X.435 | ISO/IEC 10021-9.
+id-management ID ::=
+ {joint-iso-itu-t mhs(6) management(9)}
+
+-- MHS Management
+-- See ITU-T Recs. X.460 - X.467 | ISO/IEC 11588.
+id-routing ID ::=
+ {joint-iso-itu-t mhs(6) routing(10)}
+
+-- MHS Routing
+-- See ITU-T Rec. X.412 | ISO/IEC 10021-10.
+-- Categories
+id-mod ID ::=
+ {id-arch 0} -- modules; not definitive
+
+id-oc ID ::= {id-arch 1} -- object classes
+
+id-at ID ::= {id-arch 2} -- attribute types
+
+-- Value {id-arch 3} is no longer defined
+id-mr ID ::=
+ {id-arch 4} -- matching rules
+
+id-con ID ::= {id-arch 5} -- contexts
+
+id-san ID ::= {id-arch 6} -- certificate subject alternative names
+
+-- Modules
+id-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-directory-objects-and-attributes ID ::= {id-mod 1} -- not definitive
+
+-- Object classes
+id-oc-mhs-distribution-list ID ::= {id-oc 0}
+
+id-oc-mhs-message-store ID ::= {id-oc 1}
+
+id-oc-mhs-message-transfer-agent ID ::= {id-oc 2}
+
+id-oc-mhs-user ID ::= {id-oc 3}
+
+id-oc-mhs-user-agent ID ::= {id-oc 4}
+
+-- Attributes
+id-at-mhs-maximum-content-length ID ::= {id-at 0}
+
+id-at-mhs-deliverable-content-types ID ::= {id-at 1}
+
+id-at-mhs-exclusively-acceptable-eits ID ::= {id-at 2}
+
+id-at-mhs-dl-members ID ::= {id-at 3}
+
+id-at-mhs-dl-submit-permissions ID ::= {id-at 4}
+
+id-at-mhs-message-store-dn ID ::= {id-at 5}
+
+id-at-mhs-or-addresses ID ::= {id-at 6}
+
+-- Value {id-at 7} is no longer defined
+id-at-mhs-supported-automatic-actions ID ::=
+ {id-at 8}
+
+id-at-mhs-supported-content-types ID ::= {id-at 9}
+
+id-at-mhs-supported-attributes ID ::= {id-at 10}
+
+id-at-mhs-supported-matching-rules ID ::= {id-at 11}
+
+id-at-mhs-dl-archive-service ID ::= {id-at 12}
+
+id-at-mhs-dl-policy ID ::= {id-at 13}
+
+id-at-mhs-dl-related-lists ID ::= {id-at 14}
+
+id-at-mhs-dl-subscription-service ID ::= {id-at 15}
+
+id-at-mhs-or-addresses-with-capabilities ID ::= {id-at 16}
+
+id-at-mhs-acceptable-eits ID ::= {id-at 17}
+
+id-at-mhs-unacceptable-eits ID ::= {id-at 18}
+
+id-at-mhs-deliverable-classes ID ::= {id-at 19}
+
+id-at-encrypted-mhs-maximum-content-length ID ::= {id-at 0 2}
+
+id-at-encrypted-mhs-deliverable-content-types ID ::= {id-at 1 2}
+
+id-at-encrypted-mhs-exclusively-acceptable-eits ID ::= {id-at 2 2}
+
+id-at-encrypted-mhs-dl-members ID ::= {id-at 3 2}
+
+id-at-encrypted-mhs-dl-submit-permissions ID ::= {id-at 4 2}
+
+id-at-encrypted-mhs-message-store-dn ID ::= {id-at 5 2}
+
+id-at-encrypted-mhs-or-addresses ID ::= {id-at 6 2}
+
+id-at-encrypted-mhs-supported-automatic-actions ID ::= {id-at 8 2}
+
+id-at-encrypted-mhs-supported-content-types ID ::= {id-at 9 2}
+
+id-at-encrypted-mhs-supported-attributes ID ::= {id-at 10 2}
+
+id-at-encrypted-mhs-supported-matching-rules ID ::= {id-at 11 2}
+
+id-at-encrypted-mhs-dl-archive-service ID ::= {id-at 12 2}
+
+id-at-encrypted-mhs-dl-policy ID ::= {id-at 13 2}
+
+id-at-encrypted-mhs-dl-related-lists ID ::= {id-at 14 2}
+
+id-at-encrypted-mhs-dl-subscription-service ID ::= {id-at 15 2}
+
+id-at-encrypted-mhs-or-addresses-with-capabilities ID ::= {id-at 16 2}
+
+id-at-encrypted-mhs-acceptable-eits ID ::= {id-at 17 2}
+
+id-at-encrypted-mhs-unacceptable-eits ID ::= {id-at 18 2}
+
+id-at-encrypted-mhs-deliverable-classes ID ::= {id-at 19 2}
+
+-- Matching Rules
+id-mr-orname-exact-match ID ::= {id-mr 0}
+
+id-mr-address-capabilities-match ID ::= {id-mr 1}
+
+id-mr-capability-match ID ::= {id-mr 2}
+
+-- Contexts
+id-con-dl-administrator-annotation ID ::= {id-con 0}
+
+id-con-dl-nested-dl ID ::= {id-con 1}
+
+id-con-dl-reset-originator ID ::= {id-con 2}
+
+-- Certificate subject alternative names
+id-san-mta-name ID ::= {id-san 0}
+
+END -- of MHSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..40f53b9458
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn
@@ -0,0 +1,112 @@
+-- Module MHSProtocolObjectIdentifiers (X.419:06/1999)
+
+MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ object-identifiers(0) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- MHS Protocols
+id-mhs-protocols ID ::=
+ {joint-iso-itu-t mhs(6) protocols(0)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::=
+ {id-mhs-protocols 0} -- modules
+
+id-ac ID ::= {id-mhs-protocols 1} -- application contexts
+
+id-as ID ::= {id-mhs-protocols 2} -- abstract syntaxes
+
+id-ase ID ::= {id-mhs-protocols 3} -- application service elements (obsolete)
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-access-protocol ID ::= {id-mod 1} -- not definitive
+
+id-mod-ms-access-protocol ID ::= {id-mod 2} -- not definitive
+
+id-mod-mts-transfer-protocol ID ::= {id-mod 3} -- not definitive
+
+-- Application Contexts
+-- MTS Access Protocol
+id-ac-mts-access-88 ID ::=
+ {id-ac 0}
+
+id-ac-mts-forced-access-88 ID ::= {id-ac 1}
+
+id-ac-mts-reliable-access-88 ID ::= {id-ac 2}
+
+id-ac-mts-forced-reliable-access-88 ID ::= {id-ac 3}
+
+id-ac-mts-access-94 ID ::= {id-ac 7}
+
+id-ac-mts-forced-access-94 ID ::= {id-ac 8}
+
+id-ac-mts-reliable-access-94 ID ::= {id-ac 9}
+
+id-ac-mts-forced-reliable-access-94 ID ::= {id-ac 10}
+
+-- MS Access Protocol
+id-ac-ms-access-88 ID ::= {id-ac 4}
+
+id-ac-ms-reliable-access-88 ID ::= {id-ac 5}
+
+id-ac-ms-access-94 ID ::= {id-ac 11}
+
+id-ac-ms-reliable-access-94 ID ::= {id-ac 12}
+
+-- MTS Transfer Protocol
+id-ac-mts-transfer ID ::= {id-ac 6}
+
+-- Abstract Syntaxes
+id-as-msse ID ::= {id-as 1}
+
+id-as-mdse-88 ID ::= {id-as 2}
+
+id-as-mrse-88 ID ::= {id-as 5}
+
+id-as-mase-88 ID ::= {id-as 6}
+
+id-as-mtse ID ::= {id-as 7}
+
+id-as-mts-rtse ID ::= {id-as 8}
+
+id-as-ms-88 ID ::= {id-as 9}
+
+id-as-ms-rtse ID ::= {id-as 10}
+
+id-as-mts ID ::= {id-as 11}
+
+id-as-mta-rtse ID ::= {id-as 12}
+
+id-as-ms-msse ID ::= {id-as 13}
+
+id-as-mdse-94 ID ::= {id-as 14}
+
+id-as-mrse-94 ID ::= {id-as 15}
+
+id-as-mase-94 ID ::= {id-as 16}
+
+id-as-ms-94 ID ::= {id-as 17}
+
+-- Application Service Elements
+id-ase-msse ID ::= {id-ase 0}
+
+id-ase-mdse ID ::= {id-ase 1}
+
+id-ase-mrse ID ::= {id-ase 2}
+
+id-ase-mase ID ::= {id-ase 3}
+
+id-ase-mtse ID ::= {id-ase 4}
+
+END --of MHSProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAbstractService.asn
new file mode 100644
index 0000000000..052b3b2041
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAbstractService.asn
@@ -0,0 +1,1085 @@
+-- Module MSAbstractService (X.413:06/1999)
+MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) abstract-service(1)
+ version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- MTS information object classes
+ operationObject1, ABSTRACT-ERROR, ABSTRACT-OPERATION, EXTENSION, MHS-OBJECT,
+ PORT,
+ -- MTS objects and ports
+ administration, delivery, mts-user,
+ submission,
+ -- MTS abstract-operations and abstract-errors
+ cancel-deferred-delivery, element-of-service-not-subscribed,
+ inconsistent-request, new-credentials-unacceptable,
+ old-credentials-incorrectly-specified, originator-invalid,
+ recipient-improperly-specified, remote-bind-error, security-error,
+ submission-control, submission-control-violated,
+ unsupported-critical-function,
+ -- MTS abstract-service data-types
+ CertificateSelectors, Credentials, InitiatorCredentials,
+ MessageSubmissionArgument, MessageSubmissionResult, MessageToken,
+ ORAddressAndOrDirectoryName, ProbeSubmissionArgument,
+ ProbeSubmissionResult, ResponderCredentials, SecurityContext, SecurityLabel
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service 1988 ports
+ administration-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- MTS abstract-service upper bounds
+ ub-content-types, ub-encoded-information-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MS X413ATTRIBUTE table
+ AttributeTable
+ --==
+ FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)}
+ -- MS matching rule table
+ MatchingRuleTable
+ --==
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS auto-action-table and auto-action-error table
+ AutoActionTable, AutoActionErrorTable
+ --==
+ FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)}
+ -- MS object-identifiers
+ id-cp-ms-connection, id-crt-ms-access-88, id-crt-ms-access-94,
+ id-ext-modify-capability, id-ext-modify-retrieval-status-capability,
+ id-ext-originator-token, id-ext-originator-certificate-selectors-override,
+ id-ext-protected-change-credentials,
+ id-ext-protected-change-credentials-capability, id-ot-ms, id-ot-ms-user,
+ id-pt-retrieval-88, id-pt-retrieval-94, id-pt-ms-submission
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS Access abstract-operation and error codes
+ err-attribute-error, err-auto-action-request-error, err-ms-extension-error,
+ err-delete-error, err-entry-class-error, err-fetch-restriction-error,
+ err-invalid-parameters-error, err-message-group-error, err-modify-error,
+ err-range-error, err-security-error, err-sequence-number-error,
+ err-service-error, err-register-ms-error, op-alert, op-delete, op-fetch,
+ op-list, op-modify, op-ms-message-submission, op-ms-probe-submission,
+ op-register-ms, op-summarize
+ --==
+ FROM MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-attributes-supported, ub-attribute-values, ub-auto-action-errors,
+ ub-auto-actions, ub-auto-registrations, ub-default-registrations,
+ ub-entry-classes, ub-error-reasons, ub-extensions, ub-group-depth,
+ ub-group-descriptor-length, ub-group-part-length, ub-matching-rules,
+ ub-message-groups, ub-messages, ub-modifications, ub-per-entry,
+ ub-per-auto-action, ub-service-information-length, ub-summaries,
+ ub-supplementary-info-length, ub-ua-registration-identifier-length,
+ ub-ua-registrations, ub-restrictions
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MATCHING-RULE information object class
+ MATCHING-RULE
+ --==
+ FROM InformationFramework
+
+ -- Remote Operations
+ CONTRACT, CONNECTION-PACKAGE
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+-- MS Abstract Objects
+ms MHS-OBJECT ::= {
+ IS {mts-user}
+ RESPONDS {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms
+}
+
+ms-user MHS-OBJECT ::= {
+ INITIATES {ms-access-contract-88 | ms-access-contract-94}
+ ID id-ot-ms-user
+}
+
+-- Contracts
+ms-access-contract-94 CONTRACT ::= {
+ CONNECTION ms-connect
+ INITIATOR CONSUMER OF {retrieval | ms-submission | administration}
+ ID id-crt-ms-access-94
+}
+
+ms-access-contract-88 CONTRACT ::= {
+ CONNECTION ms-connect -- with all 1994 extensions omitted
+ INITIATOR CONSUMER OF {retrieval-88 | submission | administration-88}
+ ID id-crt-ms-access-88
+}
+
+-- Connection-package
+ms-connect CONNECTION-PACKAGE ::= {
+ BIND ms-bind
+ UNBIND ms-unbind
+ ID id-cp-ms-connection
+}
+
+-- MS Ports
+retrieval PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {summarize | list | fetch | delete | register-MS,
+ ... -- 1994 extension addition --, modify}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-94
+}
+
+retrieval-88 PORT ::= {
+ -- With all 1994 extensions to the abstract-operations absent
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {summarize | list | fetch | delete | register-MS}
+ SUPPLIER INVOKES {alert}
+ ID id-pt-retrieval-88
+}
+
+ms-submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {ms-message-submission | ms-probe-submission | ms-cancel-deferred-delivery}
+ SUPPLIER INVOKES {ms-submission-control}
+ ID id-pt-ms-submission
+}
+
+-- X413ATTRIBUTE information object class
+X413ATTRIBUTE ::= CLASS {
+ &id AttributeType UNIQUE,
+ &Type ,
+ &equalityMatch MATCHING-RULE OPTIONAL,
+ &substringsMatch MATCHING-RULE OPTIONAL,
+ &orderingMatch MATCHING-RULE OPTIONAL,
+ &numeration ENUMERATED {single-valued(0), multi-valued(1)},
+ -- 1994 extension
+ &OtherMatches MATCHING-RULE OPTIONAL
+}
+WITH SYNTAX {
+ WITH ATTRIBUTE-SYNTAX &Type,
+ [EQUALITY MATCHING-RULE &equalityMatch,]
+ [SUBSTRINGS MATCHING-RULE &substringsMatch,]
+ [ORDERING MATCHING-RULE &orderingMatch,]
+ [OTHER MATCHING-RULES &OtherMatches,]
+ NUMERATION &numeration,
+ ID &id
+}
+
+Attribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+AttributeType ::= OBJECT IDENTIFIER
+
+-- AUTO-ACTION information object class
+AUTO-ACTION ::= CLASS {
+ &id AutoActionType UNIQUE,
+ &RegistrationParameter OPTIONAL,
+ &Errors AUTO-ACTION-ERROR OPTIONAL
+}
+WITH SYNTAX {
+ [REGISTRATION PARAMETER IS &RegistrationParameter]
+ [ERRORS &Errors]
+ IDENTIFIED BY &id
+}
+
+AutoActionType ::= OBJECT IDENTIFIER
+
+AutoActionRegistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1,
+ registration-parameter
+ [1] AUTO-ACTION.&RegistrationParameter
+ ({AutoActionTable}{@auto-action-type}) OPTIONAL
+}
+
+-- AUTO-ACTION-ERROR information object class
+AUTO-ACTION-ERROR ::=
+ ABSTRACT-ERROR
+
+AutoActionError ::= SET {
+ error-code [0] AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable}),
+ error-parameter
+ [1] AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code})
+ OPTIONAL
+}
+
+-- MS-EXTENSION information object class
+MS-EXTENSION ::= TYPE-IDENTIFIER
+
+MSExtensionItem ::= INSTANCE OF MS-EXTENSION
+
+MSExtensions ::= SEQUENCE SIZE (1..ub-extensions) OF MSExtensionItem
+
+-- Common data-types related to the information model
+EntryClass ::= INTEGER {
+ delivery(0),
+ -- 1994 extensions
+ submission(1), draft(2), stored-message(3), delivery-log(4),
+ submission-log(5), message-log(6), auto-action-log(7)}(0..ub-entry-classes)
+
+EntryType ::= INTEGER {
+ delivered-message(0), delivered-report(1),
+ returned-content(2),
+ -- 1994 extensions
+ submitted-message(3), submitted-probe(4), draft-message(5),
+ auto-action-event(6)}
+
+SequenceNumber ::= INTEGER(0..ub-messages)
+
+RetrievalStatus ::= INTEGER {new(0), listed(1), processed(2)}
+
+MessageGroupName ::= SEQUENCE SIZE (1..ub-group-depth) OF GroupNamePart
+
+GroupNamePart ::= GeneralString(SIZE (1..ub-group-part-length))
+
+-- MS-bind abstract-operation
+ms-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MSBindArgument
+ RESULT MSBindResult
+ ERRORS {ms-bind-error}
+}
+
+MSBindArgument ::= SET {
+ initiator-name ORAddressAndOrDirectoryName,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] IMPLICIT SecurityContext OPTIONAL,
+ fetch-restrictions [4] Restrictions OPTIONAL -- default is none--,
+ ms-configuration-request [5] BOOLEAN DEFAULT FALSE,
+ -- 1994 extensions
+ ua-registration-identifier [6] RegistrationIdentifier OPTIONAL,
+ bind-extensions [7] MSExtensions OPTIONAL
+}
+
+Restrictions ::= SET {
+ allowed-content-types
+ [0] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL--default is no restriction--,
+ allowed-EITs [1] MS-EITs OPTIONAL --default is no restriction--,
+ maximum-attribute-length [2] INTEGER OPTIONAL --default is no restriction--
+}
+
+MS-EITs ::= SET SIZE (1..ub-encoded-information-types) OF MS-EIT
+
+MS-EIT ::= OBJECT IDENTIFIER
+
+RegistrationIdentifier ::=
+ PrintableString(SIZE (1..ub-ua-registration-identifier-length))
+
+MSBindResult ::= SET {
+ responder-credentials [2] ResponderCredentials,
+ available-auto-actions
+ [3] SET SIZE (1..ub-auto-actions) OF AUTO-ACTION.&id({AutoActionTable})
+ OPTIONAL,
+ available-attribute-types
+ [4] SET SIZE (1..ub-attributes-supported) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ alert-indication [5] BOOLEAN DEFAULT FALSE,
+ content-types-supported
+ [6] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL,
+ -- 1994 extensions
+ entry-classes-supported
+ [7] SET SIZE (1..ub-entry-classes) OF EntryClass OPTIONAL,
+ matching-rules-supported
+ [8] SET SIZE (1..ub-matching-rules) OF OBJECT IDENTIFIER OPTIONAL,
+ bind-result-extensions [9] MSExtensions OPTIONAL,
+ message-group-depth [10] INTEGER(1..ub-group-depth) OPTIONAL,
+ auto-action-error-indication [11] AutoActionErrorIndication OPTIONAL,
+ unsupported-extensions
+ [12] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER OPTIONAL,
+ ua-registration-id-unknown [13] BOOLEAN DEFAULT FALSE,
+ service-information
+ [14] GeneralString(SIZE (1..ub-service-information-length)) OPTIONAL
+}
+
+modify-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-capability
+}
+
+modify-retrieval-status-capability MS-EXTENSION ::= {
+ NULL
+ IDENTIFIED BY id-ext-modify-retrieval-status-capability
+}
+
+protected-change-credentials-capability MS-EXTENSION ::= {
+ ChangeCredentialsAlgorithms
+ IDENTIFIED BY id-ext-protected-change-credentials-capability
+}
+
+ChangeCredentialsAlgorithms ::= SET OF OBJECT IDENTIFIER
+
+AutoActionErrorIndication ::= CHOICE {
+ indication-only [0] NULL,
+ auto-action-log-entry [1] SequenceNumber
+}
+
+ms-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ CHOICE {unqualified-error BindProblem,
+ -- 1994 extension
+ qualified-error
+ SET {bind-problem [0] BindProblem,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length))
+ OPTIONAL,
+ bind-extension-errors
+ [2] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER
+ OPTIONAL}}
+}
+
+BindProblem ::= ENUMERATED {
+ authentication-error(0), unacceptable-security-context(1),
+ unable-to-establish-association(2), ... -- 1994 extension addition --,
+ bind-extension-problem(3), inadequate-association-confidentiality(4)
+}
+
+-- MS Unbind abstract-operation
+ms-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Common data-types
+Range ::= CHOICE {
+ sequence-number-range [0] NumberRange,
+ creation-time-range [1] TimeRange
+}
+
+NumberRange ::= SEQUENCE {
+ from [0] SequenceNumber OPTIONAL -- omitted means no lower bound--,
+ to [1] SequenceNumber OPTIONAL -- omitted means no upper bound--
+}
+
+TimeRange ::= SEQUENCE {
+ from [0] CreationTime OPTIONAL -- omitted means no lower bound--,
+ to [1] CreationTime OPTIONAL -- omitted means no upper bound--
+}
+
+CreationTime ::= UTCTime
+
+Filter ::= CHOICE {
+ item [0] FilterItem,
+ and [1] SET OF Filter,
+ or [2] SET OF Filter,
+ not [3] Filter
+}
+
+FilterItem ::= CHOICE {
+ equality [0] AttributeValueAssertion,
+ substrings
+ [1] SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ strings
+ SEQUENCE OF
+ CHOICE {initial
+ [0] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ any
+ [1] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type}),
+ final
+ [2] X413ATTRIBUTE.&Type
+ ({AttributeTable}{@substrings.type})
+ }},
+ greater-or-equal [2] AttributeValueAssertion,
+ less-or-equal [3] AttributeValueAssertion,
+ present [4] X413ATTRIBUTE.&id({AttributeTable}),
+ approximate-match [5] AttributeValueAssertion,
+ -- 1994 extension
+ other-match [6] MatchingRuleAssertion
+}
+
+MatchingRuleAssertion ::= SEQUENCE {
+ matching-rule [0] MATCHING-RULE.&id({MatchingRuleTable}),
+ attribute-type [1] X413ATTRIBUTE.&id,
+ match-value
+ [2] MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule})
+}
+
+AttributeValueAssertion ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-value X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+}
+
+Selector ::= SET {
+ child-entries [0] BOOLEAN DEFAULT FALSE,
+ range [1] Range OPTIONAL -- default is unbounded --,
+ filter
+ [2] Filter
+ OPTIONAL -- default is all entries within the specified range --,
+ limit [3] INTEGER(1..ub-messages) OPTIONAL,
+ override [4] OverrideRestrictions OPTIONAL -- by default, --
+ -- any fetch-restrictions in force apply
+}
+
+OverrideRestrictions ::= BIT STRING {
+ override-content-types-restriction(0), override-EITs-restriction(1),
+ override-attribute-length-restriction(2)}(SIZE (1..ub-restrictions))
+
+EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection
+
+AttributeSelection ::= SET {
+ type X413ATTRIBUTE.&id({AttributeTable}),
+ from
+ [0] INTEGER(1..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--,
+ count
+ [1] INTEGER(0..ub-attribute-values)
+ OPTIONAL --used if type is multi valued--
+}
+
+EntryInformation ::= SEQUENCE {
+ sequence-number SequenceNumber,
+ attributes SET SIZE (1..ub-per-entry) OF Attribute OPTIONAL,
+ -- 1994 extension
+ value-count-exceeded
+ [0] SET SIZE (1..ub-per-entry) OF AttributeValueCount OPTIONAL
+}
+
+AttributeValueCount ::= SEQUENCE {
+ type [0] X413ATTRIBUTE.&id({AttributeTable}),
+ total [1] INTEGER
+}
+
+MSSubmissionOptions ::= SET {
+ object-entry-class
+ [0] EntryClass(submission | submission-log | draft) OPTIONAL,
+ disable-auto-modify [1] BOOLEAN DEFAULT FALSE,
+ add-message-group-names
+ [2] SET SIZE (1..ub-message-groups) OF MessageGroupName OPTIONAL,
+ ms-submission-extensions [3] MSExtensions OPTIONAL
+}
+
+originator-token MS-EXTENSION ::= {
+ OriginatorToken
+ IDENTIFIED BY id-ext-originator-token
+}
+
+OriginatorToken ::=
+ MessageToken
+ (CONSTRAINED BY {
+
+ -- Must contain an asymmetric-token with an encrypted-data component --})
+
+originator-certificate-selectors-override MS-EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ })
+ IDENTIFIED BY id-ext-originator-certificate-selectors-override
+}
+
+CommonSubmissionResults ::= SET {
+ created-entry [0] SequenceNumber OPTIONAL,
+ auto-action-error-indication [1] AutoActionErrorIndication OPTIONAL,
+ ms-submission-result-extensions [2] MSExtensions OPTIONAL
+}
+
+-- Retrieval Port abstract-operations
+summarize ABSTRACT-OPERATION ::= {
+ ARGUMENT SummarizeArgument
+ RESULT SummarizeResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-summarize
+}
+
+SummarizeArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ summary-requests
+ [2] SEQUENCE SIZE (1..ub-summaries) OF X413ATTRIBUTE.&id({AttributeTable})
+ OPTIONAL -- absent if no summaries are requested--,
+ -- 1994 extension
+ summarize-extensions [3] MSExtensions OPTIONAL
+}
+
+SummarizeResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ count
+ [1] INTEGER(0..ub-messages)-- of the entries selected-- ,
+ span [2] Span OPTIONAL -- of the entries selected,---- omitted if count is zero --,
+ summaries
+ [3] SEQUENCE SIZE (1..ub-summaries) OF Summary OPTIONAL,
+ -- 1994 extension
+ summarize-result-extensions [4] MSExtensions OPTIONAL
+}
+
+Span ::= SEQUENCE {lowest [0] SequenceNumber,
+ highest [1] SequenceNumber
+}
+
+Summary ::= SET {
+ absent
+ [0] INTEGER(1..ub-messages)
+ OPTIONAL --count of entries where X413ATTRIBUTE is absent--,
+ present
+ [1] SET SIZE (1..ub-attribute-values)
+ OF--one for each X413ATTRIBUTE value present--
+ SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}),
+ value X413ATTRIBUTE.&Type({AttributeTable}{@.type}),
+ count INTEGER(1..ub-messages)} OPTIONAL
+}
+
+--
+list ABSTRACT-OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | range-error | security-error
+ | service-error, ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-list
+}
+
+ListArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ selector [1] Selector,
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ list-extensions [4] MSExtensions OPTIONAL
+}
+
+ListResult ::= SET {
+ next [0] SequenceNumber OPTIONAL,
+ requested
+ [1] SEQUENCE SIZE (1..ub-messages) OF EntryInformation OPTIONAL--omitted if none found--,
+ -- 1994 extension
+ list-result-extensions [2] MSExtensions OPTIONAL
+}
+
+--
+fetch ABSTRACT-OPERATION ::= {
+ ARGUMENT FetchArgument
+ RESULT FetchResult
+ ERRORS
+ {attribute-error | fetch-restriction-error | invalid-parameters-error |
+ range-error | security-error | sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-fetch
+}
+
+FetchArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ item
+ CHOICE {search [1] Selector,
+ precise [2] SequenceNumber},
+ requested-attributes [3] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ fetch-extensions [4] MSExtensions OPTIONAL
+}
+
+FetchResult ::= SET {
+ entry-information
+ [0] EntryInformation OPTIONAL --if an entry was selected--,
+ list
+ [1] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ next [2] SequenceNumber OPTIONAL,
+ -- 1994 extension
+ fetch-result-extensions [3] MSExtensions OPTIONAL
+}
+
+--
+delete ABSTRACT-OPERATION ::= {
+ ARGUMENT DeleteArgument
+ RESULT DeleteResult
+ ERRORS
+ {delete-error | invalid-parameters-error | range-error | security-error |
+ sequence-number-error | service-error,
+ ... -- 1994 extension additions --, entry-class-error |
+ ms-extension-error}
+ LINKED {operationObject1, ...}
+ CODE op-delete
+}
+
+DeleteArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ items
+ CHOICE {selector [1] Selector,
+ sequence-numbers [2] SET SIZE (1..ub-messages) OF SequenceNumber
+ },
+ -- 1994 extension
+ delete-extensions [3] MSExtensions OPTIONAL
+}
+
+DeleteResult ::= CHOICE {
+ delete-result-88 NULL,
+ -- 1994 extension
+ delete-result-94
+ SET {entries-deleted
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ delete-result-extensions [1] MSExtensions OPTIONAL}
+}
+
+--
+register-MS ABSTRACT-OPERATION ::= {
+ ARGUMENT Register-MSArgument
+ RESULT Register-MSResult
+ ERRORS
+ {attribute-error | auto-action-request-error | invalid-parameters-error |
+ security-error | service-error | old-credentials-incorrectly-specified |
+ new-credentials-unacceptable, ... -- 1994 extension additions --,
+ message-group-error | ms-extension-error | register-ms-error}
+ LINKED {operationObject1, ...}
+ CODE op-register-ms
+}
+
+Register-MSArgument ::= SET {
+ auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration OPTIONAL,
+ auto-action-deregistrations
+ [1] SET SIZE (1..ub-auto-registrations) OF AutoActionDeregistration
+ OPTIONAL,
+ list-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [3] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ change-credentials
+ [4] SEQUENCE {old-credentials
+ [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials
+ [1] Credentials(WITH COMPONENTS {
+ simple
+ })} OPTIONAL,
+ user-security-labels
+ [5] SET SIZE (1..ub-labels-and-redirections) OF SecurityLabel OPTIONAL,
+ -- 1994 extensions
+ ua-registrations
+ [6] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [7] MSSubmissionOptions OPTIONAL,
+ message-group-registrations [8] MessageGroupRegistrations OPTIONAL,
+ registration-status-request [9] RegistrationTypes OPTIONAL,
+ register-ms-extensions [10] MSExtensions OPTIONAL
+}
+
+AutoActionDeregistration ::= SEQUENCE {
+ auto-action-type AUTO-ACTION.&id({AutoActionTable}),
+ registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1
+}
+
+UARegistration ::= SET {
+ ua-registration-identifier [0] RegistrationIdentifier,
+ ua-list-attribute-defaults
+ [1] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-fetch-attribute-defaults
+ [2] SET SIZE (0..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-submission-defaults [3] MSSubmissionOptions OPTIONAL,
+ content-specific-defaults [4] MSExtensions OPTIONAL
+}
+
+MessageGroupRegistrations ::=
+ SEQUENCE SIZE (1..ub-default-registrations) OF
+ CHOICE {register-group [0] MessageGroupNameAndDescriptor,
+ deregister-group [1] MessageGroupName,
+ change-descriptors [2] MessageGroupNameAndDescriptor}
+
+MessageGroupNameAndDescriptor ::= SET {
+ message-group-name [0] MessageGroupName,
+ message-group-descriptor
+ [1] GeneralString(SIZE (1..ub-group-descriptor-length)) OPTIONAL
+}
+
+RegistrationTypes ::= SET {
+ registrations
+ [0] BIT STRING {auto-action-registrations(0), list-attribute-defaults(1),
+ fetch-attribute-defaults(2), ua-registrations(3),
+ submission-defaults(4), message-group-registrations(5)}
+ OPTIONAL,
+ extended-registrations [1] SET OF MS-EXTENSION.&id OPTIONAL,
+ restrict-message-groups [2] MessageGroupsRestriction OPTIONAL
+}
+
+MessageGroupsRestriction ::= SET {
+ parent-group [0] MessageGroupName OPTIONAL,
+ immediate-descendants-only [1] BOOLEAN DEFAULT TRUE,
+ omit-descriptors [2] BOOLEAN DEFAULT TRUE
+}
+
+protected-change-credentials MS-EXTENSION ::= {
+ ProtectedChangeCredentials
+ IDENTIFIED BY id-ext-protected-change-credentials
+}
+
+ProtectedChangeCredentials ::= SEQUENCE {
+ algorithm-identifier [0] IMPLICIT OBJECT IDENTIFIER,
+ old-credentials
+ InitiatorCredentials(WITH COMPONENTS {
+ protected PRESENT
+ }),
+ password-delta [2] IMPLICIT BIT STRING
+}
+
+Register-MSResult ::= CHOICE {
+ no-status-information NULL,
+ -- 1994 extension
+ registered-information
+ SET {auto-action-registrations
+ [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration
+ OPTIONAL,
+ list-attribute-defaults
+ [1] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ fetch-attribute-defaults
+ [2] SET SIZE (1..ub-default-registrations) OF
+ X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL,
+ ua-registrations
+ [3] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL,
+ submission-defaults [4] MSSubmissionOptions OPTIONAL,
+ message-group-registrations
+ [5] SET SIZE (1..ub-message-groups) OF
+ MessageGroupNameAndDescriptor OPTIONAL,
+ register-ms-result-extensions [6] MSExtensions OPTIONAL}
+}
+
+--
+alert ABSTRACT-OPERATION ::= {
+ ARGUMENT AlertArgument
+ RESULT AlertResult
+ ERRORS {security-error}
+ LINKED {operationObject1, ...}
+ CODE op-alert
+}
+
+AlertArgument ::= SET {
+ alert-registration-identifier [0] INTEGER(1..ub-auto-actions),
+ new-entry [2] EntryInformation OPTIONAL
+}
+
+AlertResult ::= NULL
+
+--
+modify ABSTRACT-OPERATION ::= {
+ ARGUMENT ModifyArgument
+ RESULT ModifyResult
+ ERRORS
+ {attribute-error | invalid-parameters-error | security-error |
+ sequence-number-error | service-error | modify-error |
+ message-group-error | entry-class-error | ms-extension-error,
+ ... -- For future extension additions --}
+ LINKED {operationObject1, ...}
+ CODE op-modify
+}
+
+ModifyArgument ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ entries
+ CHOICE {selector [1] Selector,
+ specific-entries
+ [2] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber},
+ modifications
+ [3] SEQUENCE SIZE (1..ub-modifications) OF EntryModification,
+ modify-extensions [4] MSExtensions OPTIONAL
+}
+
+EntryModification ::= SET {
+ strict [0] BOOLEAN DEFAULT FALSE,
+ modification
+ CHOICE {add-attribute [1] Attribute,
+ remove-attribute [2] X413ATTRIBUTE.&id({AttributeTable}),
+ add-values [3] OrderedAttribute,
+ remove-values [4] OrderedAttribute}
+}
+
+OrderedAttribute ::= SEQUENCE {
+ attribute-type X413ATTRIBUTE.&id({AttributeTable}),
+ attribute-values
+ SEQUENCE SIZE (1..ub-attribute-values) OF
+ SEQUENCE {-- at least one must be specified
+ value
+ [0] X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type})
+ OPTIONAL,
+ position [1] INTEGER(1..ub-attribute-values) OPTIONAL
+ }
+}
+
+ModifyResult ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ modify-result-extensions [1] MSExtensions OPTIONAL
+}
+
+-- MS-submission Port abstract-operations
+ms-message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSMessageSubmissionArgument
+ RESULT MSMessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-message-submission
+}
+
+MSMessageSubmissionArgument ::= SEQUENCE {
+ COMPONENTS OF
+ MessageSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+forwarding-request EXTENSION ::= {
+ SequenceNumber,
+ IDENTIFIED BY standard-extension:36
+}
+
+MSMessageSubmissionResult ::= CHOICE {
+ mts-result
+ SET {COMPONENTS OF
+ MessageSubmissionResult-- This imported type has IMPLICIT tags -- ,
+ -- 1994 extension
+ ms-message-result [4] CommonSubmissionResults OPTIONAL},
+ -- 1994 extension
+ store-draft-result [4] CommonSubmissionResults
+}
+
+--
+ms-probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MSProbeSubmissionArgument
+ RESULT MSProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error, ... -- 1994 extension additions --, ms-extension-error
+ | message-group-error | entry-class-error | service-error}
+ LINKED {operationObject1, ...}
+ CODE op-ms-probe-submission
+}
+
+MSProbeSubmissionArgument ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionArgument -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ submission-options [4] MSSubmissionOptions OPTIONAL
+}
+
+MSProbeSubmissionResult ::= SET {
+ COMPONENTS OF
+ ProbeSubmissionResult -- This imported type has IMPLICIT tags --,
+ -- 1994 extension
+ ms-probe-result [4] CommonSubmissionResults OPTIONAL
+}
+
+ms-cancel-deferred-delivery ABSTRACT-OPERATION ::= cancel-deferred-delivery
+
+ms-submission-control ABSTRACT-OPERATION ::= submission-control
+
+-- Abstract-errors
+attribute-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-per-entry) OF
+ SET {problem [0] AttributeProblem,
+ type [1] X413ATTRIBUTE.&id({AttributeTable}),
+ value
+ [2] X413ATTRIBUTE.&Type({AttributeTable}{@.type})
+ OPTIONAL}}
+ CODE err-attribute-error
+}
+
+AttributeProblem ::= INTEGER {
+ invalid-attribute-value(0), unavailable-attribute-type(1),
+ inappropriate-matching(2), attribute-type-not-subscribed(3),
+ inappropriate-for-operation(4),
+ -- 1994 extensions
+ inappropriate-modification(5), single-valued-attribute(6)
+}(0..ub-error-reasons)
+
+--
+auto-action-request-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-auto-registrations) OF
+ SET {problem [0] AutoActionRequestProblem,
+ type [1] AUTO-ACTION.&id({AutoActionTable})
+ }}
+ CODE err-auto-action-request-error
+}
+
+AutoActionRequestProblem ::= INTEGER {
+ unavailable-auto-action-type(0),
+ auto-action-type-not-subscribed(1),
+ -- 1994 extension
+ not-willing-to-perform(2)}(0..ub-error-reasons)
+
+--
+delete-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-messages) OF
+ SET {problem [0] DeleteProblem,
+ sequence-number [1] SequenceNumber},
+ -- 1994 extension
+ entries-deleted
+ [1] SET SIZE (1..ub-messages) OF SequenceNumber OPTIONAL}
+ CODE err-delete-error
+}
+
+DeleteProblem ::= INTEGER {
+ child-entry-specified(0),
+ delete-restriction-problem(1),
+ -- 1994 extensions
+ new-entry-specified(2), entry-class-restriction(3), stored-message-exists(4)
+}(0..ub-error-reasons)
+
+--
+fetch-restriction-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [0] SET SIZE (1..ub-default-registrations) OF
+ SET {problem [3] FetchRestrictionProblem,
+ restriction
+ CHOICE {content-type [0] OBJECT IDENTIFIER,
+ eit [1] MS-EITs,
+ attribute-length [2] INTEGER}}}
+ CODE err-fetch-restriction-error
+}
+
+FetchRestrictionProblem ::= INTEGER {
+ content-type-problem(1), eit-problem(2), maximum-length-problem(3)
+}(0..ub-error-reasons)
+
+--
+invalid-parameters-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-invalid-parameters-error
+}
+
+--
+range-error ABSTRACT-ERROR ::= {
+ PARAMETER SET {problem [0] RangeProblem}
+ CODE err-range-error
+}
+
+RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons)
+
+--
+sequence-number-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problems
+ [1] SET SIZE (1..ub-messages) OF
+ SET {problem [0] SequenceNumberProblem,
+ sequence-number [1] SequenceNumber}}
+ CODE err-sequence-number-error
+}
+
+SequenceNumberProblem ::= INTEGER {no-such-entry(0)}(0..ub-error-reasons)
+
+--
+service-error ABSTRACT-ERROR ::= {
+ PARAMETER ServiceErrorParameter
+ CODE err-service-error
+}
+
+ServiceErrorParameter ::= SET {
+ problem [0] ServiceProblem,
+ -- 1994 extension
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+ServiceProblem ::= INTEGER {busy(0), unavailable(1), unwilling-to-perform(2)
+}(0..ub-error-reasons)
+
+--
+message-group-error ABSTRACT-ERROR ::= {
+ PARAMETER MessageGroupErrorParameter
+ CODE err-message-group-error
+}
+
+MessageGroupErrorParameter ::= SET {
+ problem [0] MessageGroupProblem,
+ name [1] MessageGroupName
+}
+
+MessageGroupProblem ::= INTEGER {
+ name-not-registered(0), name-already-registered(1), parent-not-registered(2),
+ group-not-empty(3), name-in-use(4), child-group-registered(5),
+ group-depth-exceeded(6)}(0..ub-error-reasons)
+
+--
+ms-extension-error ABSTRACT-ERROR ::= {
+ PARAMETER MSExtensionErrorParameter
+ CODE err-ms-extension-error
+}
+
+MSExtensionErrorParameter ::= CHOICE {
+ ms-extension-problem [0] MSExtensionItem,
+ unknown-ms-extension [1] OBJECT IDENTIFIER
+}
+
+--
+register-ms-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ SET {problem [0] RegistrationProblem,
+ registration-type [1] RegistrationTypes}
+ CODE err-register-ms-error
+}
+
+RegistrationProblem ::= ENUMERATED {
+ registration-not-supported(0), registration-improperly-specified(1),
+ registration-limit-exceeded(2), ... -- For future extension additions --
+ }
+
+--
+modify-error ABSTRACT-ERROR ::= {
+ PARAMETER ModifyErrorParameter
+ CODE err-modify-error
+}
+
+ModifyErrorParameter ::= SET {
+ entries-modified
+ [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL,
+ failing-entry [1] SequenceNumber,
+ modification-number [2] INTEGER,
+ problem [3] ModifyProblem
+}
+
+ModifyProblem ::= INTEGER {
+ attribute-not-present(0), value-not-present(1),
+ attribute-or-value-already-exists(2), invalid-position(3),
+ modify-restriction-problem(4)}(0..ub-error-reasons)
+
+--
+entry-class-error ABSTRACT-ERROR ::= {
+ PARAMETER EntryClassErrorParameter
+ CODE err-entry-class-error
+}
+
+EntryClassErrorParameter ::= SET {
+ entry-class [0] EntryClass,
+ problem
+ [1] BIT STRING {unsupported-entry-class(0), entry-class-not-subscribed(1),
+ inappropriate-entry-class(2)}
+}
+
+END -- of MS Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAccessProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAccessProtocol.asn
new file mode 100644
index 0000000000..b69d72b3ed
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSAccessProtocol.asn
@@ -0,0 +1,259 @@
+-- Module MSAccessProtocol (X.419:06/1999)
+
+MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ ms-access-protocol(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MS Abstract Service
+ ms-access-contract-88, ms-access-contract-94, ms-submission, retrieval,
+ retrieval-88
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- MTS Access Protocol
+ message-administration-abstract-syntax-88,
+ message-administration-abstract-syntax-94,
+ message-submission-abstract-syntax
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Object Identifiers
+ id-ac-ms-access-88, id-ac-ms-access-94, id-ac-ms-reliable-access-88,
+ id-ac-ms-reliable-access-94, id-as-ms-msse, id-as-mase-88, id-as-mase-94,
+ id-as-mdse-88, id-as-mdse-94, id-as-mrse-88, id-as-mrse-94, id-as-ms-88,
+ id-as-ms-94, id-as-ms-rtse, id-as-msse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+-- Definitions from X.228(11/1988) --
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+-- end of definitions from X.228 (11/1988) --
+
+-- APPLICATION-CONTEXTS
+-- 1994 Application Context omitting RTSE
+ms-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-abstract-syntax-94}
+ APPLICATION CONTEXT NAME id-ac-ms-access-94
+}
+
+-- 1994 Application Context including RTSE
+ms-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-94
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | ms-message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-94 |
+ message-administration-abstract-syntax-94 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-94
+}
+
+-- 1988 Application Context omitting RTSE
+ms-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-abstract-syntax-88}
+ APPLICATION CONTEXT NAME id-ac-ms-access-88
+}
+
+-- 1988 Application Context including RTSE
+ms-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT ms-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-retrieval-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ ms-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-ms-reliable-access-88
+}
+
+-- ABSTRACT SYNTAXES
+-- Abstract-syntax for 1994 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs94
+ IDENTIFIED BY id-as-ms-94
+}
+
+MSBindUnbindPDUs94 ::= CHOICE {
+ bind Bind{ms-access-contract-94.&connection.&bind},
+ unbind Unbind{ms-access-contract-94.&connection.&unbind}
+}
+
+-- Abstract-syntax for 1988 MS-bind and MS-unbind
+ms-bind-unbind-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MSBindUnbindPDUs88
+ IDENTIFIED BY id-as-ms-88
+}
+
+MSBindUnbindPDUs88 ::= CHOICE {
+ bind Bind{ms-access-contract-88.&connection.&bind},
+ unbind Unbind{ms-access-contract-88.&connection.&unbind}
+}
+
+-- Abstract-syntax for MS-bind and MS-unbind with RTSE
+ms-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MS-bind and MS-unbind --
+ IDENTIFIED BY id-as-ms-rtse
+}
+
+-- Abstract Syntax for MS Message Submission Service Element
+ms-message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MSMessageSubmissionPDUs
+ IDENTIFIED BY id-as-ms-msse
+}
+
+MSMessageSubmissionPDUs ::= ROS-SingleAS{{MSInvokeIds}, ms-submission}
+
+MSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Abstract Syntax for Message Retrieval Service Element 1994
+message-retrieval-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs
+ IDENTIFIED BY id-as-mrse-94
+}
+
+-- Abstract Syntax for Message Retrieval Service Element 1988
+MessageRetrievalPDUs ::=
+ ROS-SingleAS{{MSInvokeIds}, retrieval}
+
+message-retrieval-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageRetrievalPDUs88
+ IDENTIFIED BY id-as-mrse-88
+}
+
+MessageRetrievalPDUs88 ::= ROS-SingleAS{{MSInvokeIds}, retrieval-88}
+
+-- Remote Operations
+op-ms-submission-control Code ::= local:2
+
+op-ms-message-submission Code ::= local:3
+
+op-ms-probe-submission Code ::= local:4
+
+op-ms-cancel-deferred-delivery Code ::= local:7
+
+op-summarize Code ::= local:20
+
+op-list Code ::= local:21
+
+op-fetch Code ::= local:22
+
+op-delete Code ::= local:23
+
+op-register-ms Code ::= local:24
+
+op-alert Code ::= local:25
+
+op-modify Code ::= local:26
+
+-- Remote Errors
+err-attribute-error Code ::= local:21
+
+err-auto-action-request-error Code ::= local:22
+
+err-delete-error Code ::= local:23
+
+err-fetch-restriction-error Code ::= local:24
+
+err-range-error Code ::= local:25 -- 1988 Application Contexts only
+
+err-security-error Code ::= local:26
+
+err-service-error Code ::= local:27
+
+err-sequence-number-error Code ::= local:28
+
+err-invalid-parameters-error Code ::= local:29
+
+err-message-group-error Code ::= local:30
+
+err-ms-extension-error Code ::= local:31
+
+err-register-ms-error Code ::= local:32
+
+err-modify-error Code ::= local:33
+
+err-entry-class-error Code ::= local:34
+
+END -- of MSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAttributeTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAttributeTypes.asn
new file mode 100644
index 0000000000..99d34b2883
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAttributeTypes.asn
@@ -0,0 +1,830 @@
+-- Module MSGeneralAttributeTypes (X.413:06/1999)
+MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-attribute-types(2) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- X413ATTRIBUTE information object class
+ X413ATTRIBUTE,
+ -- MS abstract-service data-types
+ AutoActionError, AutoActionType, CreationTime, EntryClassErrorParameter,
+ EntryType, MessageGroupName, MessageGroupErrorParameter, MS-EIT,
+ MSExtensionErrorParameter, RetrievalStatus, SequenceNumber,
+ ServiceErrorParameter
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- General-attribute-type Object Identifiers
+ id-att-ac-correlated-report-list, id-att-ac-report-subject-entry,
+ id-att-ac-report-summary, id-att-ac-uncorrelated-report-list,
+ id-att-auto-action-error, id-att-auto-action-registration-identifier,
+ id-att-auto-action-subject-entry, id-att-auto-action-type,
+ id-att-certificate-selectors, id-att-child-sequence-numbers,
+ id-att-content, id-att-content-confidentiality-algorithm-identifier,
+ id-att-content-correlator, id-att-content-identifier,
+ id-att-content-integrity-check, id-att-content-length,
+ id-att-content-returned, id-att-content-type,
+ id-att-conversion-with-loss-prohibited, id-att-converted-EITs,
+ id-att-creation-time, id-att-deferred-delivery-cancellation-time,
+ id-att-deferred-delivery-time, id-att-deletion-time, id-att-delivered-EITs,
+ id-att-delivery-flags, id-att-dl-exempted-recipients,
+ id-att-dl-expansion-history, id-att-dl-expansion-prohibited,
+ id-att-entry-type, id-att-internal-trace-information,
+ id-att-latest-delivery-time, id-att-locally-originated,
+ id-att-marked-for-deletion, id-att-message-delivery-envelope,
+ id-att-message-delivery-time, id-att-message-group-name,
+ id-att-message-identifier, id-att-message-notes,
+ id-att-message-origin-authentication-check, id-att-message-security-label,
+ id-att-message-submission-envelope, id-att-message-submission-time,
+ id-att-message-token, id-att-ms-originated, id-att-ms-submission-error,
+ id-att-multiple-originator-certificates, id-att-original-EITs,
+ id-att-originally-intended-recipient-name,
+ id-att-originating-MTA-certificate, id-att-originator-certificate,
+ id-att-originator-name, id-att-originator-report-request,
+ id-att-originator-return-address, id-att-other-recipient-names,
+ id-att-parent-sequence-number, id-att-per-message-indicators,
+ id-att-per-recipient-message-submission-fields,
+ id-att-per-recipient-probe-submission-fields,
+ id-att-per-recipient-report-delivery-fields, id-att-priority,
+ id-att-probe-origin-authentication-check, id-att-probe-submission-envelope,
+ id-att-proof-of-delivery-request, id-att-proof-of-submission,
+ id-att-recipient-certificate, id-att-recipient-names,
+ id-att-recipient-reassignment-prohibited, id-att-redirection-history,
+ id-att-report-delivery-envelope, id-att-reporting-DL-name,
+ id-att-reporting-MTA-certificate,
+ id-att-report-origin-authentication-check, id-att-retrieval-status,
+ id-att-security-classification, id-att-sequence-number,
+ id-att-signature-verification-status, id-att-storage-period,
+ id-att-storage-time, id-att-subject-submission-identifier,
+ id-att-this-recipient-name, id-att-trace-information
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Message Store matching-rules
+ bitStringMatch, contentCorrelatorMatch, contentIdentifierMatch,
+ mSSingleSubstringListElementsMatch, mSSingleSubstringListMatch,
+ mSSingleSubstringMatch, mSSubstringsMatch, mSStringCaseSensitiveMatch,
+ mSStringListElementsMatch, mSStringListMatch, mSStringMatch,
+ mSStringOrderingMatch, mTSIdentifierMatch, oRAddressElementsMatch,
+ oRAddressMatch, oRAddressSubstringElementsMatch, oRNameElementsMatch,
+ oRNameMatch, oRNameSingleElementMatch, oRNameSubstringElementsMatch,
+ redirectionOrDLExpansionElementsMatch, redirectionOrDLExpansionMatch,
+ redirectionOrDLExpansionSingleElementMatch,
+ redirectionOrDLExpansionSubstringElementsMatch, redirectionReasonMatch,
+ valueCountMatch
+ FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-entry-types, ub-message-notes-length
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service data-types
+ CertificateSelectors, Content, ContentCorrelator, ContentIdentifier,
+ ContentIntegrityCheck, ContentLength, ConversionWithLossProhibited,
+ DeferredDeliveryTime, DeliveryFlags, DLExpansion, DLExpansionProhibited,
+ ExtendedCertificates, ImproperlySpecifiedRecipients, LatestDeliveryTime,
+ MessageDeliveryEnvelope, MessageDeliveryTime,
+ MessageOriginAuthenticationCheck, MessageSecurityLabel,
+ MessageSubmissionEnvelope, MessageSubmissionTime, MessageToken,
+ MTSIdentifier, OriginatingMTACertificate, OriginatorCertificate,
+ OriginatorReportRequest, OriginatorReturnAddress, ORName,
+ PerMessageIndicators, PerRecipientMessageSubmissionFields,
+ PerRecipientProbeSubmissionFields, PerRecipientReportDeliveryFields,
+ Priority, ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope,
+ ProofOfDeliveryRequest, ProofOfSubmission, RecipientReassignmentProhibited,
+ Redirection, ReportDeliveryEnvelope, ReportingDLName,
+ ReportingMTACertificate, ReportOriginAuthenticationCheck,
+ SecurityClassification, SecurityProblem, SubjectSubmissionIdentifier
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS abstract-service upper bound
+ ub-recipients
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)}
+ -- MTA abstract-service data-types
+ InternalTraceInformationElement, TraceInformationElement
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- Directory matching-rules
+ booleanMatch, integerMatch, integerOrderingMatch, uTCTimeMatch,
+ uTCTimeOrderingMatch
+ FROM SelectedAttributeTypes
+ objectIdentifierMatch
+ FROM InformationFramework
+
+ -- Authentication-service data-types
+ AlgorithmIdentifier
+ FROM AuthenticationFramework;
+
+-- X413ATTRIBUTE table
+AttributeTable X413ATTRIBUTE ::=
+ {GeneralAttributes | ContentSpecificAttributes}
+
+GeneralAttributes X413ATTRIBUTE ::=
+ {ms-child-sequence-numbers | mt-content |
+ mt-content-confidentiality-algorithm-identifier | mt-content-correlator |
+ mt-content-identifier | mt-content-integrity-check | ms-content-length |
+ ms-content-returned | mt-content-type | mt-conversion-with-loss-prohibited |
+ mt-converted-EITs | ms-creation-time | ms-delivered-EITs | mt-delivery-flags
+ | mt-dl-expansion-history | ms-entry-type | mt-message-delivery-envelope |
+ mt-message-delivery-time | mt-message-identifier |
+ mt-message-origin-authentication-check | mt-message-security-label |
+ mt-message-submission-time | mt-message-token | mt-original-EITs |
+ mt-originally-intended-recipient-name | mt-originator-certificate |
+ mt-originator-name | mt-other-recipient-names | ms-parent-sequence-number |
+ mt-per-recipient-report-delivery-fields | mt-priority |
+ mt-proof-of-delivery-request | mt-redirection-history |
+ mt-report-delivery-envelope | mt-reporting-DL-name |
+ mt-reporting-MTA-certificate | mt-report-origin-authentication-check |
+ ms-retrieval-status | mt-security-classification | ms-sequence-number |
+ mt-subject-submission-identifier | mt-this-recipient-name,
+ ... -- 1994 extension additions --, ms-ac-correlated-report-list |
+ ms-ac-report-subject-entry | ms-ac-report-summary |
+ ms-ac-uncorrelated-report-list | ms-auto-action-error |
+ ms-auto-action-registration-identifier | ms-auto-action-subject-entry |
+ ms-auto-action-type | mt-certificate-selectors |
+ ms-deferred-delivery-cancellation-time | mt-deferred-delivery-time |
+ ms-deletion-time | mt-dl-exempted-recipients | mt-dl-expansion-prohibited |
+ mt-internal-trace-information | mt-latest-delivery-time |
+ ms-locally-originated | ms-marked-for-deletion | ms-message-group-name |
+ ms-message-notes | mt-message-submission-envelope |
+ mt-multiple-originator-certificates | ms-originated | ms-submission-error |
+ mt-originating-MTA-certificate | mt-originator-report-request |
+ mt-originator-return-address | mt-per-message-indicators |
+ mt-per-recipient-message-submission-fields |
+ mt-per-recipient-probe-submission-fields |
+ mt-probe-origin-authentication-check | mt-probe-submission-envelope |
+ mt-proof-of-submission | mt-recipient-certificate | ms-recipient-names |
+ mt-recipient-reassignment-prohibited | ms-signature-verification-status |
+ ms-storage-period | ms-storage-time | mt-trace-information}
+
+ContentSpecificAttributes X413ATTRIBUTE ::=
+ {...}
+
+-- Attribute-types
+ms-ac-correlated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportLocation,
+ NUMERATION multi-valued,
+ ID id-att-ac-correlated-report-list
+}
+
+ReportLocation ::= CHOICE {
+ no-correlated-reports [0] NULL,
+ location [1] SEQUENCE OF PerRecipientReport
+}
+
+PerRecipientReport ::= SEQUENCE {
+ report-entry [0] SequenceNumber,
+ position [1] INTEGER(1..ub-recipients) DEFAULT 1
+}
+
+ms-ac-report-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-ac-report-subject-entry
+}
+
+ms-ac-report-summary X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportSummary,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION multi-valued,
+ ID id-att-ac-report-summary
+}
+
+ReportSummary ::= ENUMERATED {
+ no-report-requested(0) -- non-delivery report suppressed --,
+ no-report-received(1) -- non-delivery report requested --,
+ report-outstanding(2) -- delivery report requested --, delivery-cancelled(3),
+ delivery-report-from-another-recipient(4),
+ non-delivery-report-from-another-recipient(5),
+ delivery-report-from-intended-recipient(6),
+ non-delivery-report-from-intended-recipient(7)}
+
+ms-ac-uncorrelated-report-list X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReport,
+ NUMERATION multi-valued,
+ ID id-att-ac-uncorrelated-report-list
+}
+
+ms-auto-action-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionError,
+ NUMERATION single-valued,
+ ID id-att-auto-action-error
+}
+
+ms-auto-action-registration-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX INTEGER,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-registration-identifier
+}
+
+ms-auto-action-subject-entry X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-subject-entry
+}
+
+ms-auto-action-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AutoActionType,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-auto-action-type
+}
+
+mt-certificate-selectors X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CertificateSelectors,
+ NUMERATION single-valued,
+ ID id-att-certificate-selectors
+}
+
+ms-child-sequence-numbers X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ NUMERATION multi-valued,
+ ID id-att-child-sequence-numbers
+}
+
+mt-content X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Content,
+ NUMERATION single-valued,
+ ID id-att-content
+}
+
+mt-content-confidentiality-algorithm-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX AlgorithmIdentifier,
+ NUMERATION single-valued,
+ ID id-att-content-confidentiality-algorithm-identifier
+}
+
+mt-content-correlator X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentCorrelator,
+ EQUALITY MATCHING-RULE contentCorrelatorMatch,
+ NUMERATION single-valued,
+ ID id-att-content-correlator
+}
+
+mt-content-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIdentifier,
+ EQUALITY MATCHING-RULE contentIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-identifier
+}
+
+mt-content-integrity-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentIntegrityCheck,
+ NUMERATION single-valued,
+ ID id-att-content-integrity-check
+}
+
+ms-content-length X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ContentLength,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-content-length
+}
+
+ms-content-returned X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX BOOLEAN,
+ EQUALITY MATCHING-RULE booleanMatch,
+ NUMERATION single-valued,
+ ID id-att-content-returned
+}
+
+mt-content-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION single-valued,
+ ID id-att-content-type
+}
+
+mt-conversion-with-loss-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ConversionWithLossProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-conversion-with-loss-prohibited
+}
+
+mt-converted-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-converted-EITs
+}
+
+ms-creation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX CreationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-creation-time
+}
+
+ms-deferred-delivery-cancellation-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryCancellationTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-cancellation-time
+}
+
+DeferredDeliveryCancellationTime ::= UTCTime
+
+mt-deferred-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeferredDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deferred-delivery-time
+}
+
+ms-deletion-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeletionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-deletion-time
+}
+
+DeletionTime ::= UTCTime
+
+ms-delivered-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-delivered-EITs
+}
+
+mt-delivery-flags X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DeliveryFlags,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-delivery-flags
+}
+
+mt-dl-exempted-recipients X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-exempted-recipients
+}
+
+mt-dl-expansion-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansion,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-dl-expansion-history
+}
+
+mt-dl-expansion-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX DLExpansionProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-dl-expansion-prohibited
+}
+
+ms-entry-type X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX EntryType,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-entry-type
+}
+
+mt-internal-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX InternalTraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-internal-trace-information
+}
+
+mt-latest-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX LatestDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-latest-delivery-time
+}
+
+ms-locally-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-locally-originated
+}
+
+ms-marked-for-deletion X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-marked-for-deletion
+}
+
+mt-message-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-envelope
+}
+
+mt-message-delivery-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageDeliveryTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-delivery-time
+}
+
+ms-message-group-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageGroupName,
+ EQUALITY MATCHING-RULE mSStringListMatch,
+ OTHER MATCHING-RULES
+ {mSSingleSubstringListMatch | mSStringListElementsMatch |
+ mSSingleSubstringListElementsMatch | valueCountMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-message-group-name
+}
+
+mt-message-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MTSIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-message-identifier
+}
+
+ms-message-notes X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX GeneralString(SIZE (1..ub-message-notes-length)),
+ EQUALITY MATCHING-RULE mSStringMatch,
+ SUBSTRINGS MATCHING-RULE mSSubstringsMatch,
+ NUMERATION multi-valued,
+ ID id-att-message-notes
+}
+
+mt-message-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-message-origin-authentication-check
+}
+
+mt-message-security-label X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSecurityLabel,
+ NUMERATION single-valued,
+ ID id-att-message-security-label
+}
+
+mt-message-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-message-submission-envelope
+}
+
+mt-message-submission-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageSubmissionTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-message-submission-time
+}
+
+mt-message-token X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MessageToken,
+ NUMERATION single-valued,
+ ID id-att-message-token
+}
+
+ms-originated X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX NULL,
+ NUMERATION single-valued,
+ ID id-att-ms-originated
+}
+
+ms-submission-error X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubmissionError,
+ NUMERATION single-valued,
+ ID id-att-ms-submission-error
+}
+
+SubmissionError ::= CHOICE {
+ submission-control-violated [1] NULL,
+ originator-invalid [2] NULL,
+ recipient-improperly-specified [3] ImproperlySpecifiedRecipients,
+ element-of-service-not-subscribed [4] NULL,
+ inconsistent-request [11] NULL,
+ security-error [12] SecurityProblem,
+ unsupported-critical-function [13] NULL,
+ remote-bind-error [15] NULL,
+ service-error [27] ServiceErrorParameter,
+ message-group-error [30] MessageGroupErrorParameter,
+ ms-extension-error [31] MSExtensionErrorParameter,
+ entry-class-error [34] EntryClassErrorParameter
+}
+
+mt-multiple-originator-certificates X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-multiple-originator-certificates
+}
+
+mt-original-EITs X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX MS-EIT,
+ EQUALITY MATCHING-RULE objectIdentifierMatch,
+ NUMERATION multi-valued,
+ ID id-att-original-EITs
+}
+
+mt-originally-intended-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originally-intended-recipient-name
+}
+
+mt-originating-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-originating-MTA-certificate
+}
+
+mt-originator-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorCertificate,
+ NUMERATION single-valued,
+ ID id-att-originator-certificate
+}
+
+mt-originator-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-originator-name
+}
+
+mt-originator-report-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReportRequest,
+ NUMERATION multi-valued,
+ ID id-att-originator-report-request
+}
+
+mt-originator-return-address X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX OriginatorReturnAddress,
+ NUMERATION single-valued,
+ ID id-att-originator-return-address
+}
+
+mt-other-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-other-recipient-names
+}
+
+ms-parent-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-parent-sequence-number
+}
+
+mt-per-message-indicators X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerMessageIndicators,
+ EQUALITY MATCHING-RULE bitStringMatch,
+ NUMERATION single-valued,
+ ID id-att-per-message-indicators
+}
+
+mt-per-recipient-message-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientMessageSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-message-submission-fields
+}
+
+mt-per-recipient-probe-submission-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientProbeSubmissionFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-probe-submission-fields
+}
+
+mt-per-recipient-report-delivery-fields X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX PerRecipientReportDeliveryFields,
+ NUMERATION multi-valued,
+ ID id-att-per-recipient-report-delivery-fields
+}
+
+mt-priority X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Priority,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE
+ integerOrderingMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-priority
+}
+
+mt-probe-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-probe-origin-authentication-check
+}
+
+mt-probe-submission-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProbeSubmissionEnvelope,
+ NUMERATION single-valued,
+ ID id-att-probe-submission-envelope
+}
+
+mt-proof-of-delivery-request X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfDeliveryRequest,
+ EQUALITY MATCHING-RULE
+ integerMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-proof-of-delivery-request
+}
+
+mt-proof-of-submission X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ProofOfSubmission,
+ NUMERATION single-valued,
+ ID id-att-proof-of-submission
+}
+
+mt-recipient-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ExtendedCertificates,
+ NUMERATION single-valued,
+ ID id-att-recipient-certificate
+}
+
+ms-recipient-names X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION multi-valued,
+ ID id-att-recipient-names
+}
+
+mt-recipient-reassignment-prohibited X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RecipientReassignmentProhibited,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-recipient-reassignment-prohibited
+}
+
+mt-redirection-history X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX Redirection,
+ OTHER MATCHING-RULES
+ {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionSubstringElementsMatch |
+ redirectionOrDLExpansionSingleElementMatch | redirectionReasonMatch,
+ ...},
+ NUMERATION multi-valued,
+ ID id-att-redirection-history
+}
+
+mt-report-delivery-envelope X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportDeliveryEnvelope,
+ NUMERATION single-valued,
+ ID id-att-report-delivery-envelope
+}
+
+mt-reporting-DL-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingDLName,
+ EQUALITY MATCHING-RULE
+ oRNameMatch, -- rule not defined in 1988 Application Contexts
+
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-reporting-DL-name
+}
+
+mt-reporting-MTA-certificate X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportingMTACertificate,
+ NUMERATION single-valued,
+ ID id-att-reporting-MTA-certificate
+}
+
+mt-report-origin-authentication-check X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ReportOriginAuthenticationCheck,
+ NUMERATION single-valued,
+ ID id-att-report-origin-authentication-check
+}
+
+ms-retrieval-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX RetrievalStatus,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-retrieval-status
+}
+
+mt-security-classification X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SecurityClassification,
+ EQUALITY MATCHING-RULE integerMatch,
+ NUMERATION single-valued,
+ ID id-att-security-classification
+}
+
+ms-sequence-number X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SequenceNumber,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-sequence-number
+}
+
+ms-signature-verification-status X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SignatureVerificationStatus,
+ NUMERATION single-valued,
+ ID id-att-signature-verification-status
+}
+
+SignatureVerificationStatus ::= SET {
+ content-integrity-check
+ [0] SignatureStatus DEFAULT signature-absent,
+ message-origin-authentication-check
+ [1] SignatureStatus DEFAULT signature-absent,
+ message-token
+ [2] SignatureStatus DEFAULT signature-absent,
+ report-origin-authentication-check
+ [3] SignatureStatus DEFAULT signature-absent,
+ proof-of-delivery
+ [4] SignatureStatus DEFAULT signature-absent,
+ proof-of-submission
+ [5] SignatureStatus DEFAULT signature-absent
+}
+
+SignatureStatus ::= INTEGER {
+ signature-absent(0), verification-in-progress(1), verification-succeeded(2),
+ verification-not-possible(3), content-converted(4), signature-encrypted(5),
+ algorithm-not-supported(6), certificate-not-obtainable(7),
+ verification-failed(8)}
+
+ms-storage-period X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StoragePeriod,
+ EQUALITY MATCHING-RULE integerMatch,
+ ORDERING MATCHING-RULE integerOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-period
+}
+
+StoragePeriod ::= INTEGER -- seconds
+
+ms-storage-time X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX StorageTime,
+ EQUALITY MATCHING-RULE uTCTimeMatch,
+ ORDERING MATCHING-RULE uTCTimeOrderingMatch,
+ NUMERATION single-valued,
+ ID id-att-storage-time
+}
+
+StorageTime ::= UTCTime
+
+mt-subject-submission-identifier X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX SubjectSubmissionIdentifier,
+ EQUALITY MATCHING-RULE
+ mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts
+
+ NUMERATION single-valued,
+ ID id-att-subject-submission-identifier
+}
+
+mt-this-recipient-name X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX ORName,
+ EQUALITY MATCHING-RULE oRNameMatch,
+ OTHER MATCHING-RULES
+ {oRNameElementsMatch | oRNameSubstringElementsMatch |
+ oRNameSingleElementMatch, ...},
+ NUMERATION single-valued,
+ ID id-att-this-recipient-name
+}
+
+mt-trace-information X413ATTRIBUTE ::= {
+ WITH ATTRIBUTE-SYNTAX TraceInformationElement,
+ NUMERATION multi-valued,
+ ID id-att-trace-information
+}
+
+END -- of MSGeneralAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAutoActionTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAutoActionTypes.asn
new file mode 100644
index 0000000000..eceae4ab44
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSGeneralAutoActionTypes.asn
@@ -0,0 +1,118 @@
+-- Module MSGeneralAutoActionTypes (X.413:06/1999)
+MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-auto-action-types(3) version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- AUTO-ACTION and AUTO-ACTION-ERROR information object classes
+ AUTO-ACTION,
+ AUTO-ACTION-ERROR,
+ -- MS abstract-service data-types and abstract-errors
+ EntryClass, EntryInformationSelection, EntryModification, Filter,
+ message-group-error, modify-error, service-error, SequenceNumber
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- MS Object Identifiers
+ id-aae-auto-alert-error, id-act-auto-alert, id-act-auto-correlate-reports,
+ id-act-auto-delete, id-act-auto-modify
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS abstract-service upper bounds
+ ub-alert-addresses, ub-modifications, ub-supplementary-info-length
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract-service
+ security-error
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Auto-action table information object set
+AutoActionTable AUTO-ACTION ::=
+ {GeneralAutoActions | ContentSpecificAutoActions}
+
+GeneralAutoActions AUTO-ACTION ::=
+ {auto-alert, ... -- 1994 extension additions --, auto-modify |
+ auto-correlate-reports | auto-delete}
+
+ContentSpecificAutoActions AUTO-ACTION ::=
+ {...}
+
+-- Auto-action error table information object set
+AutoActionErrorTable AUTO-ACTION-ERROR ::=
+ {GeneralAutoActionErrors | ContentSpecificAutoActionErrors}
+
+GeneralAutoActionErrors AUTO-ACTION-ERROR ::=
+ {auto-alert-error | modify-error | service-error | security-error |
+ message-group-error, ... -- For future extension additions --}
+
+ContentSpecificAutoActionErrors AUTO-ACTION-ERROR ::=
+ {...}
+
+-- Auto-action-types
+auto-alert AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoAlertRegistrationParameter
+ ERRORS {auto-alert-error}
+ IDENTIFIED BY id-act-auto-alert
+}
+
+AutoAlertRegistrationParameter ::= SET {
+ filter [0] Filter OPTIONAL,
+ alert-destinations
+ [1] SEQUENCE SIZE (1..ub-alert-addresses) OF AlertDestination OPTIONAL,
+ requested-attributes [2] EntryInformationSelection OPTIONAL,
+ -- 1994 extension
+ suppress-alert-destinations [3] BOOLEAN DEFAULT TRUE
+}
+
+AlertDestination ::= SEQUENCE {
+ alert-address EXTERNAL,
+ alert-qualifier OCTET STRING OPTIONAL
+}
+
+--
+auto-modify AUTO-ACTION ::= {
+ REGISTRATION PARAMETER IS AutoModifyRegistrationParameter
+ ERRORS
+ {security-error | service-error | modify-error | message-group-error}
+ IDENTIFIED BY id-act-auto-modify
+}
+
+AutoModifyRegistrationParameter ::= SET {
+ entry-class [0] EntryClass DEFAULT delivery,
+ filter [1] Filter OPTIONAL,
+ modifications [2] SEQUENCE SIZE (1..ub-modifications) OF EntryModification
+}
+
+--
+auto-correlate-reports AUTO-ACTION ::= {
+ IDENTIFIED BY id-act-auto-correlate-reports
+}
+
+--
+auto-delete AUTO-ACTION ::= {
+ ERRORS {security-error}
+ IDENTIFIED BY id-act-auto-delete
+}
+
+-- Auto-action errors
+auto-alert-error AUTO-ACTION-ERROR ::= {
+ PARAMETER SEQUENCE SIZE (1..ub-alert-addresses) OF AutoAlertErrorIndication
+ CODE global:id-aae-auto-alert-error
+}
+
+AutoAlertErrorIndication ::= SET {
+ failing-alert-destination [0] AlertDestination OPTIONAL,
+ supplementary-information
+ [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL
+}
+
+END -- of MSGeneralAutoActionTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSMatchingRules.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSMatchingRules.asn
new file mode 100644
index 0000000000..37c894da86
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSMatchingRules.asn
@@ -0,0 +1,225 @@
+-- Module MSMatchingRules (X.413:06/1999)
+MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ general-matching-rules(5) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+--Exports everything
+IMPORTS
+ -- MATCHING-RULE information object class and Directory matching-rules
+ MATCHING-RULE, objectIdentifierMatch
+ --==
+ FROM InformationFramework
+ bitStringMatch, booleanMatch, generalizedTimeMatch,
+ generalizedTimeOrderingMatch, integerMatch, integerOrderingMatch,
+ uTCTimeMatch, uTCTimeOrderingMatch
+ --==
+ FROM SelectedAttributeTypes
+
+ -- Matching-rule Object Identifiers
+ id-mr-content-correlator-match, id-mr-content-identifier-match,
+ id-mr-ms-single-substring-list-elements-match,
+ id-mr-ms-single-substring-list-match, id-mr-ms-single-substring-match,
+ id-mr-ms-substrings-match, id-mr-msstring-case-sensitive-match,
+ id-mr-msstring-list-elements-match, id-mr-msstring-list-match,
+ id-mr-msstring-match, id-mr-msstring-ordering-match,
+ id-mr-mts-identifier-match, id-mr-oraddress-elements-match,
+ id-mr-oraddress-match, id-mr-oraddress-substring-elements-match,
+ id-mr-orname-elements-match, id-mr-orname-match,
+ id-mr-orname-single-element-match, id-mr-orname-substring-elements-match,
+ id-mr-redirection-or-dl-expansion-elements-match,
+ id-mr-redirection-or-dl-expansion-match,
+ id-mr-redirection-or-dl-expansion-single-element-match,
+ id-mr-redirection-or-dl-expansion-substring-elements-match,
+ id-mr-redirection-reason-match, id-mr-value-count-match
+ --==
+ FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- MS upper bounds
+ ub-attribute-values, ub-msstring-match
+ --==
+ FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)}
+ -- MTS abstract service
+ ContentCorrelator, ContentIdentifier, MTSIdentifier, ORAddress,
+ ORAddressAndOptionalDirectoryName, ORName, RedirectionReason
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)};
+
+-- Matching rule table information object set
+MatchingRuleTable MATCHING-RULE ::=
+ {GeneralMatchingRules | ContentSpecificMatchingRules}
+
+GeneralMatchingRules MATCHING-RULE ::=
+ {bitStringMatch | booleanMatch | contentIdentifierMatch | integerMatch |
+ integerOrderingMatch | mSStringCaseSensitiveMatch | objectIdentifierMatch |
+ oRNameMatch | uTCTimeMatch | uTCTimeOrderingMatch,
+ ... -- 1994 extension additions --, contentCorrelatorMatch |
+ generalizedTimeMatch | generalizedTimeOrderingMatch | mSSingleSubstringMatch
+ | mSStringCaseSensitiveMatch | mSStringListElementsMatch | mSStringListMatch
+ | mSStringMatch | mSStringOrderingMatch | mSSingleSubstringListElementsMatch
+ | mSSingleSubstringListMatch | mSSubstringsMatch | mTSIdentifierMatch |
+ oRAddressElementsMatch | oRAddressMatch | oRAddressSubstringElementsMatch |
+ oRNameElementsMatch | oRNameMatch | oRNameSingleElementMatch |
+ oRNameSubstringElementsMatch | redirectionOrDLExpansionElementsMatch |
+ redirectionOrDLExpansionMatch | redirectionOrDLExpansionSingleElementMatch |
+ redirectionOrDLExpansionSubstringElementsMatch | redirectionReasonMatch |
+ valueCountMatch}
+
+ContentSpecificMatchingRules MATCHING-RULE ::=
+ {...}
+
+-- MS String assertion-syntax
+MSString{INTEGER:maxSize} ::= CHOICE {
+ printable PrintableString(SIZE (1..maxSize)),
+ teletex TeletexString(SIZE (1..maxSize)),
+ general GeneralString(SIZE (1..maxSize)),
+ universal UniversalString(SIZE (1..maxSize)),
+ bmp BMPString(SIZE (1..maxSize))
+}
+
+-- String matching-rules
+mSStringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-match
+}
+
+mSStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-ordering-match
+}
+
+mSSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-ms-substrings-match
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] MSString{ub-msstring-match},
+ any [1] MSString{ub-msstring-match},
+ final [2] MSString{ub-msstring-match}}
+
+-- at most one initial and one final component
+mSSingleSubstringMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-ms-single-substring-match
+}
+
+mSStringCaseSensitiveMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-msstring-case-sensitive-match
+}
+
+mSStringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-match
+}
+
+mSStringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-msstring-list-elements-match
+}
+
+mSSingleSubstringListMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-match
+}
+
+mSSingleSubstringListElementsMatch MATCHING-RULE ::= {
+ SYNTAX SEQUENCE OF MSString{ub-msstring-match}
+ ID id-mr-ms-single-substring-list-elements-match
+}
+
+-- Syntax-based matching-rule
+valueCountMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER(1..ub-attribute-values)
+ ID id-mr-value-count-match
+}
+
+-- Matching-rules for complex Message Store attributes
+-- OR-address matching-rules
+oRAddressMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-match
+}
+
+oRAddressElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-elements-match
+}
+
+oRAddressSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddress
+ ID id-mr-oraddress-substring-elements-match
+}
+
+-- OR-name matching-rules
+oRNameMatch MATCHING-RULE ::= {SYNTAX ORName
+ ID id-mr-orname-match
+}
+
+oRNameElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-elements-match
+}
+
+oRNameSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORName
+ ID id-mr-orname-substring-elements-match
+}
+
+oRNameSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-orname-single-element-match
+}
+
+-- Redirection or DL-expansion matching rules
+redirectionOrDLExpansionMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-match
+}
+
+redirectionOrDLExpansionElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-elements-match
+}
+
+redirectionOrDLExpansionSingleElementMatch MATCHING-RULE ::= {
+ SYNTAX MSString {ub-msstring-match}
+ ID id-mr-redirection-or-dl-expansion-single-element-match
+}
+
+redirectionOrDLExpansionSubstringElementsMatch MATCHING-RULE ::= {
+ SYNTAX ORAddressAndOptionalDirectoryName
+ ID id-mr-redirection-or-dl-expansion-substring-elements-match
+}
+
+redirectionReasonMatch MATCHING-RULE ::= {
+ SYNTAX RedirectionReason
+ ID id-mr-redirection-reason-match
+}
+
+-- MTS-identifier matching rule
+mTSIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX MTSIdentifier
+ ID id-mr-mts-identifier-match
+}
+
+-- Content-correlator matching rule
+contentCorrelatorMatch MATCHING-RULE ::= {
+ SYNTAX ContentCorrelator
+ ID id-mr-content-correlator-match
+}
+
+-- Content-identifier matching rule
+contentIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX ContentIdentifier
+ ID id-mr-content-identifier-match
+}
+
+END -- of MSMatchingRules
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSObjectIdentifiers.asn
new file mode 100644
index 0000000000..df194f838c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSObjectIdentifiers.asn
@@ -0,0 +1,322 @@
+-- Module MSObjectIdentifiers (X.413:06/1999)
+MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ ID, id-ms
+ --==
+ FROM MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Categories
+id-mod -- modules -- ID ::= {id-ms 0}
+
+id-ot -- objects -- ID ::= {id-ms 1}
+
+id-pt -- port types -- ID ::= {id-ms 2}
+
+id-att -- attribute types -- ID ::= {id-ms 3}
+
+id-act -- auto-action types -- ID ::= {id-ms 4}
+
+id-crt -- contracts -- ID ::= {id-ms 5}
+
+id-cp -- connection-packages -- ID ::= {id-ms 6}
+
+id-aae -- auto-action-errors-- ID ::= {id-ms 7}
+
+id-mr -- matching-rules -- ID ::= {id-ms 8}
+
+id-ext -- extensions -- ID ::= {id-ms 9}
+
+id-alg -- algorithms -- ID ::= {id-ms 10}
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-attribute-types ID ::= {id-mod 2} -- not definitive
+
+id-mod-action-types ID ::= {id-mod 3} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 4} -- not definitive
+
+id-mod-matching-rules ID ::= {id-mod 5} -- not definitive
+
+-- Objects
+id-ot-ms ID ::= {id-ot 0}
+
+id-ot-ms-user ID ::= {id-ot 1}
+
+-- Port types
+id-pt-retrieval-88 ID ::= {id-pt 0}
+
+id-pt-retrieval-94 ID ::= {id-pt 1}
+
+id-pt-ms-submission ID ::= {id-pt 2}
+
+-- Contracts
+id-crt-ms-access-88 ID ::= {id-crt 0}
+
+id-crt-ms-access-94 ID ::= {id-crt 1}
+
+-- Connection-packages
+id-cp-ms-connection ID ::= {id-cp 0}
+
+-- Attribute-types
+id-att-ac-correlated-report-list ID ::= {id-att 42}
+
+id-att-ac-report-subject-entry ID ::= {id-att 76}
+
+id-att-ac-report-summary ID ::= {id-att 43}
+
+id-att-ac-uncorrelated-report-list ID ::= {id-att 44}
+
+id-att-auto-action-error ID ::= {id-att 46}
+
+id-att-auto-action-registration-identifier ID ::= {id-att 47}
+
+id-att-auto-action-subject-entry ID ::= {id-att 48}
+
+id-att-auto-action-type ID ::= {id-att 49}
+
+id-att-certificate-selectors ID ::= {id-att 80}
+
+id-att-child-sequence-numbers ID ::= {id-att 0}
+
+id-att-content ID ::= {id-att 1}
+
+id-att-content-confidentiality-algorithm-identifier ID ::= {id-att 2}
+
+id-att-content-correlator ID ::= {id-att 3}
+
+id-att-content-identifier ID ::= {id-att 4}
+
+id-att-content-integrity-check ID ::= {id-att 5}
+
+id-att-content-length ID ::= {id-att 6}
+
+id-att-content-returned ID ::= {id-att 7}
+
+id-att-content-type ID ::= {id-att 8}
+
+id-att-conversion-with-loss-prohibited ID ::= {id-att 9}
+
+id-att-converted-EITs ID ::= {id-att 10}
+
+id-att-creation-time ID ::= {id-att 11}
+
+id-att-deferred-delivery-cancellation-time ID ::= {id-att 50}
+
+id-att-deferred-delivery-time ID ::= {id-att 51}
+
+id-att-deletion-time ID ::= {id-att 52}
+
+id-att-delivered-EITs ID ::= {id-att 12}
+
+id-att-delivery-flags ID ::= {id-att 13}
+
+id-att-dl-exempted-recipients ID ::= {id-att 78}
+
+id-att-dl-expansion-history ID ::= {id-att 14}
+
+id-att-dl-expansion-prohibited ID ::= {id-att 53}
+
+id-att-entry-type ID ::= {id-att 16}
+
+id-att-internal-trace-information ID ::= {id-att 54}
+
+id-att-latest-delivery-time ID ::= {id-att 55}
+
+id-att-locally-originated ID ::= {id-att 77}
+
+id-att-marked-for-deletion ID ::= {id-att 56}
+
+id-att-message-delivery-envelope ID ::= {id-att 18}
+
+id-att-message-delivery-time ID ::= {id-att 20}
+
+id-att-message-group-name ID ::= {id-att 57}
+
+id-att-message-identifier ID ::= {id-att 19}
+
+id-att-message-notes ID ::= {id-att 58}
+
+id-att-message-origin-authentication-check ID ::= {id-att 21}
+
+id-att-message-security-label ID ::= {id-att 22}
+
+id-att-message-submission-envelope ID ::= {id-att 59}
+
+id-att-message-submission-time ID ::= {id-att 23}
+
+id-att-message-token ID ::= {id-att 24}
+
+id-att-ms-originated ID ::= {id-att 60}
+
+id-att-ms-submission-error ID ::= {id-att 61}
+
+id-att-multiple-originator-certificates ID ::= {id-att 81}
+
+id-att-original-EITs ID ::= {id-att 25}
+
+id-att-originally-intended-recipient-name ID ::= {id-att 17}
+
+id-att-originating-MTA-certificate ID ::= {id-att 62}
+
+id-att-originator-certificate ID ::= {id-att 26}
+
+id-att-originator-name ID ::= {id-att 27}
+
+id-att-originator-report-request ID ::= {id-att 63}
+
+id-att-originator-return-address ID ::= {id-att 64}
+
+id-att-other-recipient-names ID ::= {id-att 28}
+
+id-att-parent-sequence-number ID ::= {id-att 29}
+
+id-att-per-message-indicators ID ::= {id-att 65}
+
+id-att-per-recipient-message-submission-fields ID ::= {id-att 66}
+
+id-att-per-recipient-probe-submission-fields ID ::= {id-att 67}
+
+id-att-per-recipient-report-delivery-fields ID ::= {id-att 30}
+
+id-att-priority ID ::= {id-att 31}
+
+id-att-probe-origin-authentication-check ID ::= {id-att 68}
+
+id-att-probe-submission-envelope ID ::= {id-att 69}
+
+id-att-proof-of-delivery-request ID ::= {id-att 32}
+
+id-att-proof-of-submission ID ::= {id-att 70}
+
+id-att-recipient-certificate ID ::= {id-att 82}
+
+id-att-recipient-names ID ::= {id-att 71}
+
+id-att-recipient-reassignment-prohibited ID ::= {id-att 72}
+
+id-att-redirection-history ID ::= {id-att 33}
+
+id-att-report-delivery-envelope ID ::= {id-att 34}
+
+id-att-reporting-DL-name ID ::= {id-att 35}
+
+id-att-reporting-MTA-certificate ID ::= {id-att 36}
+
+id-att-report-origin-authentication-check ID ::= {id-att 37}
+
+id-att-retrieval-status ID ::= {id-att 15}
+
+id-att-security-classification ID ::= {id-att 38}
+
+id-att-sequence-number ID ::= {id-att 39}
+
+id-att-signature-verification-status ID ::= {id-att 79}
+
+id-att-storage-period ID ::= {id-att 73}
+
+id-att-storage-time ID ::= {id-att 74}
+
+id-att-subject-submission-identifier ID ::= {id-att 40}
+
+id-att-this-recipient-name ID ::= {id-att 41}
+
+id-att-trace-information ID ::= {id-att 75}
+
+-- Auto-action-types
+id-act-ipm-auto-forward ID ::=
+ {id-act 0} -- Reserved for use in
+
+-- ITU-T Rec. X.420 |
+-- ISO/IEC 10021-7
+id-act-auto-alert ID ::= {id-act 1}
+
+id-act-auto-correlate-reports ID ::= {id-act 2}
+
+id-act-auto-delete ID ::= {id-act 3}
+
+id-act-auto-modify ID ::= {id-act 4}
+
+-- Auto-action errors
+id-aae-auto-alert-error ID ::= {id-aae 0}
+
+-- Matching-rules
+id-mr-content-correlator-match ID ::= {id-mr 1}
+
+id-mr-content-identifier-match ID ::= {id-mr 2}
+
+id-mr-ms-single-substring-list-elements-match ID ::= {id-mr 3}
+
+id-mr-ms-single-substring-list-match ID ::= {id-mr 4}
+
+id-mr-ms-single-substring-match ID ::= {id-mr 5}
+
+id-mr-ms-substrings-match ID ::= {id-mr 6}
+
+id-mr-msstring-case-sensitive-match ID ::= {id-mr 7}
+
+id-mr-msstring-list-elements-match ID ::= {id-mr 8}
+
+id-mr-msstring-list-match ID ::= {id-mr 9}
+
+id-mr-msstring-match ID ::= {id-mr 10}
+
+id-mr-msstring-ordering-match ID ::= {id-mr 11}
+
+id-mr-mts-identifier-match ID ::= {id-mr 12}
+
+id-mr-oraddress-elements-match ID ::= {id-mr 13}
+
+id-mr-oraddress-match ID ::= {id-mr 14}
+
+id-mr-oraddress-substring-elements-match ID ::= {id-mr 15}
+
+id-mr-orname-elements-match ID ::= {id-mr 16}
+
+id-mr-orname-match ID ::= {id-mr 17}
+
+id-mr-orname-single-element-match ID ::= {id-mr 18}
+
+id-mr-orname-substring-elements-match ID ::= {id-mr 19}
+
+id-mr-redirection-or-dl-expansion-elements-match ID ::= {id-mr 20}
+
+id-mr-redirection-or-dl-expansion-match ID ::= {id-mr 21}
+
+id-mr-redirection-or-dl-expansion-single-element-match ID ::= {id-mr 25}
+
+id-mr-redirection-or-dl-expansion-substring-elements-match ID ::= {id-mr 22}
+
+id-mr-redirection-reason-match ID ::= {id-mr 23}
+
+id-mr-value-count-match ID ::= {id-mr 24}
+
+-- Extensions
+id-ext-modify-capability ID ::= {id-ext 0}
+
+id-ext-modify-retrieval-status-capability ID ::= {id-ext 1}
+
+id-ext-originator-certificate-selectors-override ID ::= {id-ext 2}
+
+id-ext-originator-token ID ::= {id-ext 3}
+
+id-ext-protected-change-credentials ID ::= {id-ext 4}
+
+id-ext-protected-change-credentials-capability ID ::= {id-ext 5}
+
+-- Algorithms
+id-alg-password-xor ID ::= {id-alg 0}
+
+END -- of MSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSUpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSUpperBounds.asn
new file mode 100644
index 0000000000..6494fbd3ef
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MSUpperBounds.asn
@@ -0,0 +1,77 @@
+-- Module MSUpperBounds (X.413:06/1999)
+MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
+ version-1994(0)} DEFINITIONS ::=
+BEGIN
+
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-alert-addresses INTEGER ::= 16
+
+ub-attribute-values INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-attributes-supported INTEGER ::= 1024
+
+ub-auto-action-errors INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-auto-actions INTEGER ::= 128
+
+ub-auto-registrations INTEGER ::= 1024
+
+ub-default-registrations INTEGER ::= 1024
+
+ub-entry-classes INTEGER ::= 128
+
+ub-entry-types INTEGER ::= 16
+
+ub-error-reasons INTEGER ::= 16
+
+ub-extensions INTEGER ::= 32
+
+ub-group-depth INTEGER ::= 64
+
+ub-group-descriptor-length INTEGER ::= 256
+
+ub-group-part-length INTEGER ::= 128
+
+ub-information-bases INTEGER ::= 16
+
+ub-matching-rules INTEGER ::= 1024
+
+ub-message-groups INTEGER ::= 8192
+
+ub-message-notes-length INTEGER ::= 1024
+
+ub-messages INTEGER ::= 2147483647 -- (231 - 1) the largest integer
+
+-- representable in 32 bits
+ub-modifications INTEGER ::=
+ 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-msstring-match INTEGER ::= 512
+
+ub-per-auto-action INTEGER ::= 32767 -- (215 - 1) the largest integer
+
+-- representable in 16 bits
+ub-per-entry INTEGER ::= 1024
+
+ub-service-information-length INTEGER ::= 2048
+
+ub-summaries INTEGER ::= 16
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-ua-registration-identifier-length INTEGER ::= 32
+
+ub-ua-registrations INTEGER ::= 128
+
+ub-restrictions INTEGER ::= 16
+
+END -- of MSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTAAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTAAbstractService.asn
new file mode 100644
index 0000000000..38035c77ae
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTAAbstractService.asn
@@ -0,0 +1,481 @@
+-- Module MTAAbstractService (X.411:06/1999)
+MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTS Abstract Service Parameters
+ ABSTRACT-ERROR, ABSTRACT-OPERATION, administration, AdministrationDomainName,
+ certificate-selectors, certificate-selectors-override, Content,
+ ContentIdentifier, ContentLength, ContentType,
+ content-confidentiality-algorithm-identifier, content-correlator,
+ content-integrity-check, conversion-with-loss-prohibited,
+ ConvertedEncodedInformationTypes, CountryName, DeferredDeliveryTime,
+ delivery, dl-exempted-recipients, dl-expansion-history,
+ dl-expansion-prohibited, ExplicitConversion, EXTENSION, ExtensionField{},
+ GlobalDomainIdentifier, InitiatorCredentials, latest-delivery-time,
+ message-origin-authentication-check, message-security-label, message-token,
+ MHS-OBJECT, MTAName, MTSIdentifier, multiple-originator-certificates,
+ ORAddressAndOptionalDirectoryName, OriginalEncodedInformationTypes,
+ originator-and-DL-expansion-history, originator-certificate,
+ originator-return-address, PerMessageIndicators, physical-delivery-modes,
+ physical-delivery-report-request, physical-forwarding-address,
+ physical-forwarding-address-request, physical-forwarding-prohibited,
+ physical-rendition-attributes, PORT, Priority, PrivateDomainIdentifier,
+ PrivateExtensions, probe-origin-authentication-check, proof-of-delivery,
+ proof-of-delivery-request, recipient-certificate,
+ recipient-number-for-advice, recipient-reassignment-prohibited,
+ redirection-history, registered-mail-type, reporting-DL-name,
+ reporting-MTA-certificate, reporting-MTA-name, ReportType,
+ report-origin-authentication-check, requested-delivery-method,
+ ResponderCredentials, SecurityContext, submission,
+ SupplementaryInformation, Time
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-cp-mta-connect, id-ct-mta-transfer, id-ot-mta, id-pt-transfer
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Upper Bounds
+ ub-bit-options, ub-integer-options, ub-recipients, ub-transfers
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mta MHS-OBJECT ::= {BOTH {mta-transfer}
+ ID id-ot-mta
+}
+
+-- Contracts
+mta-transfer CONTRACT ::= {
+ CONNECTION mta-connect
+ OPERATIONS OF {transfer}
+ ID id-ct-mta-transfer
+}
+
+-- Connection package
+mta-connect CONNECTION-PACKAGE ::= {
+ BIND mta-bind
+ UNBIND mta-unbind
+ ID id-cp-mta-connect
+}
+
+-- Ports
+transfer PORT ::= {
+ OPERATIONS {message-transfer | probe-transfer | report-transfer}
+ ID id-pt-transfer
+}
+
+-- MTA-bind and MTA-unbind
+mta-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTABindArgument
+ RESULT MTABindResult
+ ERRORS {mta-bind-error}
+}
+
+mta-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+MTABindArgument ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--initiator-name
+ [0] MTAName,
+ initiator-credentials
+ [1] InitiatorCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ }),
+ security-context
+ [2] SecurityContext OPTIONAL
+ }
+}
+
+MTABindResult ::= CHOICE {
+ unauthenticated NULL, -- if no authentication is required
+ authenticated
+ [1] SET {-- if authentication is required--responder-name
+ [0] MTAName,
+ responder-credentials
+ [1] ResponderCredentials
+ (WITH COMPONENTS {
+ ...,
+ protected ABSENT
+ })}
+}
+
+mta-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+-- Transfer Port
+message-transfer ABSTRACT-OPERATION ::= {ARGUMENT Message
+}
+
+probe-transfer ABSTRACT-OPERATION ::= {ARGUMENT Probe
+}
+
+report-transfer ABSTRACT-OPERATION ::= {ARGUMENT Report
+}
+
+Message ::= SEQUENCE {envelope MessageTransferEnvelope,
+ content Content
+}
+
+Probe ::= ProbeTransferEnvelope
+
+Report ::= SEQUENCE {
+ envelope ReportTransferEnvelope,
+ content ReportTransferContent
+}
+
+-- Message Transfer Envelope
+MessageTransferEnvelope ::= SET {
+ COMPONENTS OF PerMessageTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientMessageTransferFields
+}
+
+PerMessageTransferFields ::= SET {
+ message-identifier MessageIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{MessageTransferExtensions}} DEFAULT {}
+}
+
+MessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ content-correlator | dl-exempted-recipients | certificate-selectors |
+ multiple-originator-certificates | dl-expansion-history |
+ internal-trace-information | PrivateExtensions, ...}
+
+PerRecipientMessageTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientMessageTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate | redirection-history
+ | IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Transfer Envelope
+ProbeTransferEnvelope ::= SET {
+ COMPONENTS OF PerProbeTransferFields,
+ per-recipient-fields
+ [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeTransferFields
+}
+
+PerProbeTransferFields ::= SET {
+ probe-identifier ProbeIdentifier,
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ per-domain-bilateral-information
+ [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation
+ OPTIONAL,
+ trace-information TraceInformation,
+ extensions
+ [3] SET OF ExtensionField{{ProbeTransferExtensions}} DEFAULT {}
+}
+
+ProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | internal-trace-information |
+ PrivateExtensions, ...}
+
+PerRecipientProbeTransferFields ::= SET {
+ recipient-name RecipientName,
+ originally-specified-recipient-number
+ [0] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [1] PerRecipientIndicators,
+ explicit-conversion [2] ExplicitConversion OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{PerRecipientProbeTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | redirection-history | PrivateExtensions,
+ ...}
+
+-- Report Transfer Envelope
+ReportTransferEnvelope ::= SET {
+ report-identifier ReportIdentifier,
+ report-destination-name ReportDestinationName,
+ trace-information TraceInformation,
+ extensions
+ [1] SET OF ExtensionField{{ReportTransferEnvelopeExtensions}} DEFAULT {}
+}
+
+ReportTransferEnvelopeExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ internal-trace-information | reporting-MTA-name | PrivateExtensions,
+ ...}
+
+-- Report Transfer Content
+ReportTransferContent ::= SET {
+ COMPONENTS OF PerReportTransferFields,
+ per-recipient-fields
+ [0] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportTransferFields
+}
+
+PerReportTransferFields ::= SET {
+ subject-identifier SubjectIdentifier,
+ subject-intermediate-trace-information
+ SubjectIntermediateTraceInformation OPTIONAL,
+ original-encoded-information-types
+ OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType OPTIONAL,
+ content-identifier ContentIdentifier OPTIONAL,
+ returned-content [1] Content OPTIONAL,
+ additional-information [2] AdditionalInformation OPTIONAL,
+ extensions
+ [3] SET OF ExtensionField{{ReportTransferContentExtensions}} DEFAULT {}
+}
+
+ReportTransferContentExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ content-correlator | PrivateExtensions, ...}
+
+PerRecipientReportTransferFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ originally-specified-recipient-number
+ [1] OriginallySpecifiedRecipientNumber,
+ per-recipient-indicators [2] PerRecipientIndicators,
+ last-trace-information [3] LastTraceInformation,
+ originally-intended-recipient-name
+ [4] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [5] SupplementaryInformation OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{PerRecipientReportTransferExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportTransferExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+-- Envelope & Report Content Fields
+MessageIdentifier ::= MTSIdentifier
+
+OriginatorName ::= ORAddressAndOptionalDirectoryName
+
+PerDomainBilateralInformation ::= SEQUENCE {
+ COMPONENTS OF BILATERAL.&id,
+ bilateral-information BILATERAL.&Type
+}
+
+BILATERAL ::= CLASS {&id BilateralDomain UNIQUE,
+ &Type
+}WITH SYNTAX {&Type,
+ IDENTIFIED BY &id
+}
+
+BilateralDomain ::= SEQUENCE {
+ country-name CountryName,
+ domain
+ CHOICE {administration-domain-name AdministrationDomainName,
+ private-domain
+ SEQUENCE {administration-domain-name
+ [0] AdministrationDomainName,
+ private-domain-identifier
+ [1] PrivateDomainIdentifier}}
+}
+
+RecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallySpecifiedRecipientNumber ::= INTEGER(1..ub-recipients)
+
+PerRecipientIndicators ::= BIT STRING {
+ responsibility(0),
+ -- responsible 'one', not-responsible 'zero'
+ originating-MTA-report(1),
+ originating-MTA-non-delivery-report(2),
+ -- either originating-MTA-report, or originating-MTA-non-delivery-report,
+ -- or both, shall be 'one':
+ -- originating-MTA-report bit 'one' requests a 'report';
+ -- originating-MTA-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'one' requests an 'audited-report';
+ -- bits 0 - 2 'don't care' for Report Transfer Content
+ originator-report(3),
+ originator-non-delivery-report(4),
+ -- at most one bit shall be 'one':
+ -- originator-report bit 'one' requests a 'report';
+ -- originator-non-delivery-report bit 'one' requests a 'non-delivery-report';
+ -- both bits 'zero' requests 'no-report'
+ reserved-5(5), reserved-6(6), reserved-7(7)
+
+-- reserved- bits 5 - 7 shall be 'zero' --}(SIZE (8..ub-bit-options))
+
+ProbeIdentifier ::= MTSIdentifier
+
+ReportIdentifier ::= MTSIdentifier
+
+ReportDestinationName ::= ORAddressAndOptionalDirectoryName
+
+SubjectIdentifier ::= MessageOrProbeIdentifier
+
+MessageOrProbeIdentifier ::= MTSIdentifier
+
+SubjectIntermediateTraceInformation ::= TraceInformation
+
+-- AdditionalInformation is retained for backwards compatibility only,
+-- and use in new systems is strongly deprecated
+ADDITIONAL ::= CLASS {&Type
+}
+
+AdditionalInformation ::=
+ ADDITIONAL.&Type -- maximum ub-additional-info octets including all encoding
+
+ActualRecipientName ::= ORAddressAndOptionalDirectoryName
+
+LastTraceInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ report-type [1] ReportType
+}
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+-- Extension Fields
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOptionalDirectoryName
+
+trace-information EXTENSION ::= {
+ TraceInformation,
+ IDENTIFIED BY standard-extension:37
+}
+
+internal-trace-information EXTENSION ::= {
+ InternalTraceInformation,
+ IDENTIFIED BY standard-extension:38
+}
+
+InternalTraceInformation ::=
+ SEQUENCE SIZE (1..ub-transfers) OF InternalTraceInformationElement
+
+InternalTraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-supplied-information MTASuppliedInformation
+}
+
+MTASuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted CHOICE {mta MTAName,
+ domain GlobalDomainIdentifier} OPTIONAL,
+ -- additional-actions --COMPONENTS OF InternalAdditionalActions
+}
+
+InternalAdditionalActions ::= AdditionalActions
+
+-- Common Parameter Types
+TraceInformation ::=
+ [APPLICATION 9] SEQUENCE SIZE (1..ub-transfers) OF TraceInformationElement
+
+TraceInformationElement ::= SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ domain-supplied-information DomainSuppliedInformation
+}
+
+DomainSuppliedInformation ::= SET {
+ arrival-time [0] ArrivalTime,
+ routing-action [2] RoutingAction,
+ attempted-domain GlobalDomainIdentifier OPTIONAL,
+ -- additional-actions --COMPONENTS OF AdditionalActions
+}
+
+AdditionalActions ::= SET {
+ deferred-time [1] DeferredTime OPTIONAL,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ other-actions [3] OtherActions DEFAULT {}
+}
+
+RoutingAction ::= ENUMERATED {relayed(0), rerouted(1)}
+
+DeferredTime ::= Time
+
+ArrivalTime ::= Time
+
+OtherActions ::= BIT STRING {redirected(0), dl-operation(1)
+}(SIZE (0..ub-bit-options))
+
+END -- of MTA Abstract Service
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService.asn
new file mode 100644
index 0000000000..68a5118bc8
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService.asn
@@ -0,0 +1,2366 @@
+-- Module MTSAbstractService (X.411:06/1999)
+MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ emptyUnbind
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ -- MTA Abstract Service
+ internal-trace-information, trace-information
+ --==
+ FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mta-abstract-service(2) version-1999(1)}
+ -- MS Abstract Service Extension
+ forwarding-request
+ --==
+ FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
+ abstract-service(1) version-1999(1)}
+ -- IPM Information Objects
+ IPMPerRecipientEnvelopeExtensions
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- Object Identifiers
+ id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access,
+ id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration,
+ id-pt-delivery, id-pt-submission, id-tok-asymmetricToken
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation and Error Codes
+ err-control-violates-registration,
+ err-deferred-delivery-cancellation-rejected, err-delivery-control-violated,
+ err-element-of-service-not-subscribed, err-inconsistent-request,
+ err-message-submission-identifier-invalid,
+ err-new-credentials-unacceptable,
+ err-old-credentials-incorrectly-specified, err-operation-refused,
+ err-originator-invalid, err-recipient-improperly-specified,
+ err-register-rejected, err-remote-bind-error, err-security-error,
+ err-submission-control-violated, err-unsupported-critical-function,
+ op-cancel-deferred-delivery, op-change-credentials, op-delivery-control,
+ op-message-delivery, op-message-submission, op-probe-submission,
+ op-register, op-report-delivery, op-submission-control
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Directory Definitions
+ Name
+ --==
+ FROM InformationFramework
+ PresentationAddress
+ --==
+ FROM SelectedAttributeTypes
+ ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{},
+ SIGNED{}
+ --==
+ FROM AuthenticationFramework
+
+ -- Certificate Extensions
+ CertificateAssertion
+ --==
+ FROM CertificateExtensions
+
+ -- Upper Bounds
+ ub-bit-options, ub-built-in-content-type,
+ ub-built-in-encoded-information-types, ub-certificates,
+ ub-common-name-length, ub-content-id-length, ub-content-length,
+ ub-content-types, ub-country-name-alpha-length,
+ ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes,
+ ub-dl-expansions, ub-domain-defined-attributes,
+ ub-domain-defined-attribute-type-length,
+ ub-domain-defined-attribute-value-length, ub-domain-name-length,
+ ub-encoded-information-types, ub-extension-attributes, ub-extension-types,
+ ub-e163-4-number-length, ub-e163-4-sub-address-length,
+ ub-generation-qualifier-length, ub-given-name-length, ub-initials-length,
+ ub-integer-options, ub-local-id-length, ub-mta-name-length,
+ ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length,
+ ub-organizational-units, ub-organizational-unit-name-length,
+ ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length,
+ ub-pds-parameter-length, ub-pds-physical-address-lines,
+ ub-postal-code-length, ub-privacy-mark-length, ub-queue-size,
+ ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length,
+ ub-redirections, ub-redirection-classes, ub-restrictions,
+ ub-security-categories, ub-security-labels, ub-security-problems,
+ ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length,
+ ub-tsap-id-length, ub-unformatted-address-length,
+ ub-universal-generation-qualifier-length, ub-universal-given-name-length,
+ ub-universal-initials-length, ub-universal-surname-length,
+ ub-x121-address-length
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+operationObject1 OPERATION ::= {LINKED {operationObject2}
+}
+
+operationObject2 OPERATION ::= {LINKED {operationObject3}
+}
+
+operationObject3 OPERATION ::= {LINKED {operationObject4}
+}
+
+operationObject4 OPERATION ::= {LINKED {...}
+}
+
+-- Objects
+MHS-OBJECT ::= ROS-OBJECT-CLASS
+
+mts MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract}
+ RESPONDS {mts-access-contract}
+ ID id-ot-mts
+}
+
+mts-user MHS-OBJECT ::= {
+ INITIATES {mts-access-contract}
+ RESPONDS {mts-forced-access-contract}
+ ID id-ot-mts-user
+}
+
+-- Contracts
+mts-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-access
+}
+
+mts-forced-access-contract CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery | administration}
+ ID id-ct-mts-forced-access
+}
+
+-- Connection package
+mts-connect CONNECTION-PACKAGE ::= {
+ BIND mts-bind
+ UNBIND mts-unbind
+ ID id-cp-mts-connect
+}
+
+-- Ports
+PORT ::= OPERATION-PACKAGE
+
+submission PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES
+ {message-submission | probe-submission | cancel-deferred-delivery, ...}
+ SUPPLIER INVOKES {submission-control, ...}
+ ID id-pt-submission
+}
+
+delivery PORT ::= {
+ OPERATIONS {operationObject1, ...}
+ CONSUMER INVOKES {delivery-control, ...}
+ SUPPLIER INVOKES {message-delivery | report-delivery, ...}
+ ID id-pt-delivery
+}
+
+administration PORT ::= {
+ OPERATIONS {change-credentials, ...}
+ CONSUMER INVOKES {register, ...}
+ SUPPLIER INVOKES {operationObject1, ...}
+ ID id-pt-administration
+}
+
+-- MTS-bind and MTS-unbind
+ABSTRACT-OPERATION ::= OPERATION
+
+ABSTRACT-ERROR ::= ERROR
+
+mts-bind ABSTRACT-OPERATION ::= {
+ ARGUMENT MTSBindArgument
+ RESULT MTSBindResult
+ ERRORS {mts-bind-error}
+}
+
+MTSBindArgument ::= SET {
+ initiator-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ initiator-credentials [2] InitiatorCredentials,
+ security-context [3] SecurityContext OPTIONAL,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {}
+}
+
+MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+MTSBindResult ::= SET {
+ responder-name ObjectName,
+ messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL,
+ responder-credentials [2] ResponderCredentials,
+ ...,
+ extensions
+ [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {}
+}
+
+MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+mts-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER
+ INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3),
+ unacceptable-security-context(4),
+ inadequate-association-confidentiality(5)}(0..ub-integer-options)
+}
+
+mts-unbind ABSTRACT-OPERATION ::= emptyUnbind
+
+-- Association Control Parameters
+ObjectName ::= CHOICE {
+ user-agent ORAddressAndOptionalDirectoryName,
+ mTA [0] MTAName,
+ message-store [4] ORAddressAndOptionalDirectoryName
+}
+
+MessagesWaiting ::= SET {
+ urgent [0] DeliveryQueue,
+ normal [1] DeliveryQueue,
+ non-urgent [2] DeliveryQueue
+}
+
+DeliveryQueue ::= SET {
+ messages [0] INTEGER(0..ub-queue-size),
+ octets [1] INTEGER(0..ub-content-length) OPTIONAL
+}
+
+InitiatorCredentials ::= Credentials
+
+ResponderCredentials ::= Credentials
+
+Credentials ::= CHOICE {
+ simple Password,
+ strong [0] StrongCredentials,
+ ...,
+ protected [1] ProtectedPassword
+}
+
+Password ::= CHOICE {
+ ia5-string IA5String(SIZE (0..ub-password-length)),
+ octet-string OCTET STRING(SIZE (0..ub-password-length))
+}
+
+StrongCredentials ::= SET {
+ bind-token [0] Token OPTIONAL,
+ certificate [1] Certificates OPTIONAL,
+ ...,
+ certificate-selector [2] CertificateAssertion OPTIONAL
+}
+
+ProtectedPassword ::= SET {
+ signature
+ SIGNATURE{SET {password Password,
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL}},
+ time1 [0] UTCTime OPTIONAL,
+ time2 [1] UTCTime OPTIONAL,
+ random1 [2] BIT STRING OPTIONAL,
+ random2 [3] BIT STRING OPTIONAL
+}
+
+SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel
+
+-- Submission Port
+message-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageSubmissionArgument
+ RESULT MessageSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-submission
+}
+
+MessageSubmissionArgument ::= SEQUENCE {
+ envelope MessageSubmissionEnvelope,
+ content Content
+}
+
+MessageSubmissionResult ::= SET {
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time [0] MessageSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {}
+}
+
+MessageSubmissionResultExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originating-MTA-certificate | proof-of-submission | PrivateExtensions,
+ ...}
+
+probe-submission ABSTRACT-OPERATION ::= {
+ ARGUMENT ProbeSubmissionArgument
+ RESULT ProbeSubmissionResult
+ ERRORS
+ {submission-control-violated | element-of-service-not-subscribed |
+ originator-invalid | recipient-improperly-specified |
+ inconsistent-request | security-error | unsupported-critical-function |
+ remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-probe-submission
+}
+
+ProbeSubmissionArgument ::= ProbeSubmissionEnvelope
+
+ProbeSubmissionResult ::= SET {
+ probe-submission-identifier ProbeSubmissionIdentifier,
+ probe-submission-time [0] ProbeSubmissionTime,
+ content-identifier ContentIdentifier OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {}
+}
+
+ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions,
+-- at most one instance of each extension type
+cancel-deferred-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT CancelDeferredDeliveryArgument
+ RESULT CancelDeferredDeliveryResult
+ ERRORS
+ {deferred-delivery-cancellation-rejected |
+ message-submission-identifier-invalid | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-cancel-deferred-delivery
+}
+
+CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier
+
+CancelDeferredDeliveryResult ::= NULL
+
+submission-control ABSTRACT-OPERATION ::= {
+ ARGUMENT SubmissionControlArgument
+ RESULT SubmissionControlResult
+ ERRORS {security-error | remote-bind-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-submission-control
+}
+
+SubmissionControlArgument ::= SubmissionControls
+
+SubmissionControlResult ::= Waiting
+
+submission-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-submission-control-violated
+}
+
+element-of-service-not-subscribed ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-element-of-service-not-subscribed
+}
+
+deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-deferred-delivery-cancellation-rejected
+}
+
+originator-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-originator-invalid
+}
+
+recipient-improperly-specified ABSTRACT-ERROR ::= {
+ PARAMETER ImproperlySpecifiedRecipients
+ CODE err-recipient-improperly-specified
+}
+
+ImproperlySpecifiedRecipients ::=
+ SEQUENCE SIZE (1..ub-recipients) OF RecipientName
+
+message-submission-identifier-invalid ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-message-submission-identifier-invalid
+}
+
+inconsistent-request ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-inconsistent-request
+}
+
+security-error ABSTRACT-ERROR ::= {
+ PARAMETER SecurityProblem
+ CODE err-security-error
+}
+
+SecurityProblem ::= INTEGER {
+ assemby-instructions-conflict-with-security-services(0),
+ authentication-problem(1), authentication-failure-on-subject-message(2),
+ confidentiality-association-problem(3), decryption-failed(4),
+ decryption-key-unobtainable(5), failure-of-proof-of-message(6),
+ forbidden-user-security-label-register(7),
+ incompatible-change-with-original-security-context(8),
+ integrity-failure-on-subject-message(9), invalid-security-label(10),
+ invalid-security-label-update(11), key-failure(12),
+ mandatory-parameter-absence(13), operation-security-failure(14),
+ redirection-prohibited(15), refused-alternate-recipient-name(16),
+ repudiation-failure-of-message(17),
+ responder-credentials-checking-problem(18), security-context-failure(19),
+ security-context-problem(20), security-policy-violation(21),
+ security-services-refusal(22), token-decryption-failed(23), token-error(24),
+ unable-to-aggregate-security-labels(25), unauthorised-dl-name(26),
+ unauthorised-entry-class(27),
+ unauthorised-originally-intended-recipient-name(28),
+ unauthorised-originator-name(29), unauthorised-recipient-name(30),
+ unauthorised-security-label-update(31), unauthorised-user-name(32),
+ unknown-security-label(33), unsupported-algorithm-identifier(34),
+ unsupported-security-policy(35)}(0..ub-security-problems)
+
+unsupported-critical-function ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-unsupported-critical-function
+}
+
+remote-bind-error ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-remote-bind-error
+}
+
+-- Submission Port Parameters
+MessageSubmissionIdentifier ::= MTSIdentifier
+
+MessageSubmissionTime ::= Time
+
+ProbeSubmissionIdentifier ::= MTSIdentifier
+
+ProbeSubmissionTime ::= Time
+
+SubmissionControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-content-types ABSENT,
+ permissible-encoded-information-types ABSENT
+ })
+
+Waiting ::= SET {
+ waiting-operations [0] Operations DEFAULT {},
+ waiting-messages [1] WaitingMessages DEFAULT {},
+ waiting-content-types
+ [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {},
+ waiting-encoded-information-types EncodedInformationTypes OPTIONAL
+}
+
+Operations ::= BIT STRING {
+ probe-submission-or-report-delivery(0),
+ message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options))
+
+-- holding 'one', not-holding 'zero'
+WaitingMessages ::= BIT STRING {
+ long-content(0), low-priority(1), other-security-labels(2)
+}(SIZE (0..ub-bit-options))
+
+-- Delivery Port
+message-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT MessageDeliveryArgument
+ RESULT MessageDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {4 | 6 | 7}
+ CODE op-message-delivery
+}
+
+MessageDeliveryArgument ::= SEQUENCE {
+ COMPONENTS OF MessageDeliveryEnvelope,
+ content Content
+}
+
+MessageDeliveryResult ::= SET {
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL,
+ ...,
+ extensions
+ [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {}
+}
+
+MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+report-delivery ABSTRACT-OPERATION ::= {
+ ARGUMENT ReportDeliveryArgument
+ RESULT ReportDeliveryResult
+ ERRORS
+ {delivery-control-violated | security-error |
+ unsupported-critical-function}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-report-delivery
+}
+
+ReportDeliveryArgument ::= SET {
+ COMPONENTS OF ReportDeliveryEnvelope,
+ returned-content [0] Content OPTIONAL
+}
+
+ReportDeliveryResult ::= CHOICE {
+ empty-result NULL,
+ ...,
+ extensions
+ SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}}
+}
+
+ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControlArgument
+ RESULT DeliveryControlResult
+ ERRORS
+ {control-violates-registration | security-error | operation-refused}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControlArgument ::= SET {
+ COMPONENTS OF DeliveryControls,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {}
+}
+
+DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+DeliveryControlResult ::= SET {
+ COMPONENTS OF Waiting,
+ extensions
+ [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {}
+}
+
+DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+delivery-control-violated ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-delivery-control-violated
+}
+
+control-violates-registration ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-control-violates-registration
+}
+
+operation-refused ABSTRACT-ERROR ::= {
+ PARAMETER RefusedOperation
+ CODE err-operation-refused
+}
+
+RefusedOperation ::= SET {
+ refused-argument
+ CHOICE {built-in-argument [1] RefusedArgument,
+ refused-extension EXTENSION.&id},
+ refusal-reason [2] RefusalReason
+}
+
+RefusedArgument ::= INTEGER {
+ user-name(0), user-address(1), deliverable-content-types(2),
+ deliverable-maximum-content-length(3),
+ deliverable-encoded-information-types-constraints(4),
+ deliverable-security-labels(5), recipient-assigned-redirections(6),
+ restricted-delivery(7),
+ retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments
+ restrict(10), permissible-operations(11), permissible-lowest-priority(12),
+ permissible-encoded-information-types(13), permissible-content-types(14),
+ permissible-maximum-content-length(15), permissible-security-context(16)
+}(0..ub-integer-options)
+
+RefusalReason ::= INTEGER {
+ facility-unavailable(0), facility-not-subscribed(1),
+ parameter-unacceptable(2)}(0..ub-integer-options)
+
+-- Delivery Port Parameters
+RecipientCertificate ::= Certificates
+
+ProofOfDelivery ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfDeliveryAlgorithmIdentifier,
+ delivery-time MessageDeliveryTime,
+ this-recipient-name ThisRecipientName,
+ originally-intended-recipient-name
+ OriginallyIntendedRecipientName OPTIONAL,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label
+ MessageSecurityLabel OPTIONAL}}
+
+ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier
+
+DeliveryControls ::= Controls
+
+Controls ::= SET {
+ restrict [0] BOOLEAN DEFAULT TRUE,
+ -- update 'TRUE', remove 'FALSE'
+ permissible-operations [1] Operations OPTIONAL,
+ permissible-maximum-content-length [2] ContentLength OPTIONAL,
+ permissible-lowest-priority Priority OPTIONAL,
+ permissible-content-types [4] ContentTypes OPTIONAL,
+ permissible-encoded-information-types
+ PermissibleEncodedInformationTypes OPTIONAL,
+ permissible-security-context [5] SecurityContext OPTIONAL
+}
+
+-- Note - The Tags [0], [1] and [2] are altered for the Register operation only.
+PermissibleEncodedInformationTypes ::=
+ EncodedInformationTypesConstraints
+
+-- Administration Port
+register ABSTRACT-OPERATION ::= {
+ ARGUMENT RegisterArgument
+ RESULT RegisterResult
+ ERRORS
+ {register-rejected | remote-bind-error | operation-refused |
+ security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+RegisterArgument ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-class
+ SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL,
+ default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ redirections [3] Redirections OPTIONAL,
+ restricted-delivery [4] RestrictedDelivery OPTIONAL,
+ retrieve-registrations [5] RegistrationTypes OPTIONAL,
+ extensions
+ [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {}
+}
+
+RegisterExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RegisterResult ::= CHOICE {
+ empty-result NULL,
+ non-empty-result
+ SET {registered-information
+ [0] RegisterArgument
+ (WITH COMPONENTS {
+ ...,
+ retrieve-registrations ABSENT
+ }) OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {}
+ }
+}
+
+RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+change-credentials ABSTRACT-OPERATION ::= {
+ ARGUMENT ChangeCredentialsArgument
+ RESULT NULL
+ ERRORS
+ {new-credentials-unacceptable | old-credentials-incorrectly-specified |
+ remote-bind-error | security-error}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-change-credentials
+}
+
+ChangeCredentialsArgument ::= SET {
+ old-credentials [0] Credentials(WITH COMPONENTS {
+ simple
+ }),
+ new-credentials [1] Credentials(WITH COMPONENTS {
+ simple
+ })
+}
+
+register-rejected ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-register-rejected
+}
+
+new-credentials-unacceptable ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-new-credentials-unacceptable
+}
+
+old-credentials-incorrectly-specified ABSTRACT-ERROR ::= {
+ PARAMETER NULL
+ CODE err-old-credentials-incorrectly-specified
+}
+
+-- Administration Port Parameters
+UserName ::= ORAddressAndOptionalDirectoryName
+
+UserAddress ::= CHOICE {
+ x121
+ [0] SEQUENCE {x121-address
+ NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL,
+ tsap-id
+ PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL
+ },
+ presentation [1] PSAPAddress
+}
+
+PSAPAddress ::= PresentationAddress
+
+DeliverableClass ::=
+ MessageClass
+ (WITH COMPONENTS {
+ ...,
+ priority ABSENT,
+ -- The 'objects' component shall always be defaulted.
+ -- objects ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ applies-only-to ABSENT
+ })
+
+DefaultDeliveryControls ::=
+ Controls
+ (WITH COMPONENTS {
+ ...,
+
+ -- The 'restrict' component shall always be defaulted.
+ -- restrict ABSENT,
+ -- A component with a DEFAULT clause cannot be ABSENT
+ permissible-security-context ABSENT
+ })
+
+Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection
+
+RecipientRedirection ::= SET {
+ redirection-classes
+ [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+RedirectionClass ::= MessageClass
+
+MessageClass ::= SET {
+ content-types [0] ContentTypes OPTIONAL,
+ maximum-content-length [1] ContentLength OPTIONAL,
+ encoded-information-types-constraints
+ [2] EncodedInformationTypesConstraints OPTIONAL,
+ security-labels [3] SecurityContext OPTIONAL,
+ priority [4] SET OF Priority OPTIONAL,
+ objects
+ [5] ENUMERATED {messages(0), reports(1), both(2), ...
+ } DEFAULT both,
+ applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports
+ extensions
+ [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {}
+}
+
+EncodedInformationTypesConstraints ::= SEQUENCE {
+ unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL,
+ acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL,
+ exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...}
+
+-- May contain private extensions and future standardised extensions
+RecipientAssignedAlternateRecipient ::=
+ ORAddressAndOrDirectoryName
+
+RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction
+
+Restriction ::= SET {
+ permitted BOOLEAN DEFAULT TRUE,
+ source-type
+ BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)}
+ DEFAULT {originated-by, redirected-by, dl-expanded-by},
+ source-name ExactOrPattern OPTIONAL
+}
+
+ExactOrPattern ::= CHOICE {
+ exact-match [0] ORName,
+ pattern-match [1] ORName
+}
+
+RegistrationTypes ::= SEQUENCE {
+ standard-parameters
+ [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2),
+ default-delivery-controls(3), redirections(4),
+ restricted-delivery(5)} OPTIONAL,
+ extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL
+}
+
+-- Message Submission Envelope
+MessageSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerMessageSubmissionFields,
+ per-recipient-fields
+ [1] SEQUENCE SIZE (1..ub-recipients) OF
+ PerRecipientMessageSubmissionFields
+}
+
+PerMessageSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ priority Priority DEFAULT normal,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {}
+}
+
+PerMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | latest-delivery-time |
+ originator-return-address | originator-certificate |
+ content-confidentiality-algorithm-identifier |
+ message-origin-authentication-check | message-security-label |
+ proof-of-submission-request | content-correlator | dl-exempted-recipients |
+ certificate-selectors | multiple-originator-certificates |
+ forwarding-request -- for MS Abstract Service only -- | PrivateExtensions,
+ ...}
+
+PerRecipientMessageSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientMessageSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | physical-delivery-report-request |
+ message-token | content-integrity-check | proof-of-delivery-request |
+ certificate-selectors-override | recipient-certificate |
+ IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...}
+
+-- Probe Submission Envelope
+ProbeSubmissionEnvelope ::= SET {
+ COMPONENTS OF PerProbeSubmissionFields,
+ per-recipient-fields
+ [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields
+}
+
+PerProbeSubmissionFields ::= SET {
+ originator-name OriginatorName,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ content-type ContentType,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-length [0] ContentLength OPTIONAL,
+ per-message-indicators PerMessageIndicators DEFAULT {},
+ extensions
+ [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {}
+}
+
+PerProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ recipient-reassignment-prohibited | dl-expansion-prohibited |
+ conversion-with-loss-prohibited | originator-certificate |
+ message-security-label | content-correlator |
+ probe-origin-authentication-check | PrivateExtensions, ...}
+
+PerRecipientProbeSubmissionFields ::= SET {
+ recipient-name RecipientName,
+ originator-report-request [0] OriginatorReportRequest,
+ explicit-conversion [1] ExplicitConversion OPTIONAL,
+ extensions
+ [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientProbeSubmissionExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ originator-requested-alternate-recipient | requested-delivery-method |
+ physical-rendition-attributes | PrivateExtensions, ...}
+
+-- Message Delivery Envelope
+MessageDeliveryEnvelope ::= SEQUENCE {
+ message-delivery-identifier MessageDeliveryIdentifier,
+ message-delivery-time MessageDeliveryTime,
+ other-fields OtherMessageDeliveryFields
+}
+
+OtherMessageDeliveryFields ::= SET {
+ content-type DeliveredContentType,
+ originator-name DeliveredOriginatorName,
+ original-encoded-information-types
+ [1] OriginalEncodedInformationTypes OPTIONAL,
+ priority Priority DEFAULT normal,
+ delivery-flags [2] DeliveryFlags OPTIONAL,
+ other-recipient-names [3] OtherRecipientNames OPTIONAL,
+ this-recipient-name [4] ThisRecipientName,
+ originally-intended-recipient-name
+ [5] OriginallyIntendedRecipientName OPTIONAL,
+ converted-encoded-information-types
+ [6] ConvertedEncodedInformationTypes OPTIONAL,
+ message-submission-time [7] MessageSubmissionTime,
+ content-identifier [8] ContentIdentifier OPTIONAL,
+ extensions
+ [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {}
+}
+
+MessageDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ conversion-with-loss-prohibited | requested-delivery-method |
+ physical-forwarding-prohibited | physical-forwarding-address-request |
+ physical-delivery-modes | registered-mail-type | recipient-number-for-advice
+ | physical-rendition-attributes | originator-return-address |
+ physical-delivery-report-request | originator-certificate | message-token |
+ content-confidentiality-algorithm-identifier | content-integrity-check |
+ message-origin-authentication-check | message-security-label |
+ proof-of-delivery-request | dl-exempted-recipients | certificate-selectors |
+ certificate-selectors-override | multiple-originator-certificates |
+ recipient-certificate | IPMPerRecipientEnvelopeExtensions |
+ redirection-history | dl-expansion-history | trace-information |
+ internal-trace-information | PrivateExtensions, ...}
+
+-- Report Delivery Envelope
+ReportDeliveryEnvelope ::= SET {
+ COMPONENTS OF PerReportDeliveryFields,
+ per-recipient-fields
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields
+}
+
+PerReportDeliveryFields ::= SET {
+ subject-submission-identifier SubjectSubmissionIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ content-type ContentType OPTIONAL,
+ original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
+ extensions
+ [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {}
+}
+
+ReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ message-security-label | content-correlator | redirection-history |
+ originator-and-DL-expansion-history | reporting-DL-name |
+ reporting-MTA-certificate | report-origin-authentication-check |
+ trace-information | internal-trace-information | reporting-MTA-name |
+ PrivateExtensions, ...}
+
+PerRecipientReportDeliveryFields ::= SET {
+ actual-recipient-name [0] ActualRecipientName,
+ report-type [1] ReportType,
+ converted-encoded-information-types
+ ConvertedEncodedInformationTypes OPTIONAL,
+ originally-intended-recipient-name
+ [2] OriginallyIntendedRecipientName OPTIONAL,
+ supplementary-information [3] SupplementaryInformation OPTIONAL,
+ extensions
+ [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}}
+ DEFAULT {}
+}
+
+PerRecipientReportDeliveryExtensions EXTENSION ::=
+ {-- May contain the following extensions, private extensions, and future standardised extensions,
+ -- at most one instance of each extension type:
+ redirection-history | physical-forwarding-address | recipient-certificate |
+ proof-of-delivery | PrivateExtensions, ...}
+
+ReportType ::= CHOICE {
+ delivery [0] DeliveryReport,
+ non-delivery [1] NonDeliveryReport
+}
+
+DeliveryReport ::= SET {
+ message-delivery-time [0] MessageDeliveryTime,
+ type-of-MTS-user [1] TypeOfMTSUser DEFAULT public
+}
+
+NonDeliveryReport ::= SET {
+ non-delivery-reason-code [0] NonDeliveryReasonCode,
+ non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL
+}
+
+-- Envelope Fields
+OriginatorName ::= ORAddressAndOrDirectoryName
+
+DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName
+
+OriginalEncodedInformationTypes ::= EncodedInformationTypes
+
+ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType
+
+ContentType ::= CHOICE {
+ built-in BuiltInContentType,
+ extended ExtendedContentType
+}
+
+BuiltInContentType ::= [APPLICATION 6] INTEGER {
+ unidentified(0),
+ external(1), -- identified by the object-identifier of the EXTERNAL content
+ interpersonal-messaging-1984(2), interpersonal-messaging-1988(22),
+ edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type)
+
+ExtendedContentType ::= RELATIVE-OID
+
+DeliveredContentType ::= CHOICE {
+ built-in [0] BuiltInContentType,
+ extended ExtendedContentType
+}
+
+ContentIdentifier ::=
+ [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length))
+
+PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
+ disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one',
+
+ -- disclosure-of-other-recipients-prohibited 'zero';
+ -- ignored for Probe-submission
+ implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero'
+ alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one',
+
+ -- alternate-recipient-prohibited 'zero'
+ content-return-request(3), -- content-return-requested 'one',
+
+ -- content-return-not-requested 'zero';
+ -- ignored for Probe-submission
+ reserved(4), -- bit reserved by MOTIS 1986
+ bit-5(5),
+ bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one'
+
+ -- notification type-2 : bit 5 'one' and bit 6 'zero'
+ -- notification type-3 : bit 5 'one' and bit 6 'one'
+ -- the mapping between notification type 1, 2, 3
+ -- and the content specific notification types are defined
+ -- in relevant content specifications
+ service-message(7) -- the message content is for service purposes;
+
+
+-- it may be a notification related to a service message;
+-- used only by bilateral agreement --}(SIZE (0..ub-bit-options))
+
+RecipientName ::= ORAddressAndOrDirectoryName
+
+OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4)
+
+-- at most one bit shall be 'one':
+-- report bit 'one' requests a 'report';
+-- non-delivery-report bit 'one' requests a 'non-delivery-report';
+-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options))
+
+ExplicitConversion ::= INTEGER {
+ ia5-text-to-teletex(0),
+ -- values 1 to 7 are no longer defined
+ ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9),
+ ia5-text-to-videotex(10), teletex-to-ia5-text(11),
+ teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13),
+ teletex-to-videotex(14),
+ -- value 15 is no longer defined
+ videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options)
+
+DeferredDeliveryTime ::= Time
+
+Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)}
+
+ContentLength ::= INTEGER(0..ub-content-length)
+
+MessageDeliveryIdentifier ::= MTSIdentifier
+
+MessageDeliveryTime ::= Time
+
+DeliveryFlags ::= BIT STRING {
+ implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one',
+
+ -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options))
+
+OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
+
+OtherRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ThisRecipientName ::= ORAddressAndOptionalDirectoryName
+
+OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName
+
+ConvertedEncodedInformationTypes ::= EncodedInformationTypes
+
+SubjectSubmissionIdentifier ::= MTSIdentifier
+
+ActualRecipientName ::= ORAddressAndOrDirectoryName
+
+TypeOfMTSUser ::= INTEGER {
+ public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6)
+}(0..ub-mts-user-types)
+
+NonDeliveryReasonCode ::= INTEGER {
+ transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2),
+ physical-rendition-not-performed(3), physical-delivery-not-performed(4),
+ restricted-delivery(5), directory-operation-unsuccessful(6),
+ deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8)
+}(0..ub-reason-codes)
+
+NonDeliveryDiagnosticCode ::= INTEGER {
+ unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2),
+ loop-detected(3), recipient-unavailable(4), maximum-time-expired(5),
+ encoded-information-types-unsupported(6), content-too-long(7),
+ conversion-impractical(8), implicit-conversion-prohibited(9),
+ implicit-conversion-not-subscribed(10), invalid-arguments(11),
+ content-syntax-error(12), size-constraint-violation(13),
+ protocol-violation(14), content-type-not-supported(15),
+ too-many-recipients(16), no-bilateral-agreement(17),
+ unsupported-critical-function(18), conversion-with-loss-prohibited(19),
+ line-too-long(20), page-split(21), pictorial-symbol-loss(22),
+ punctuation-symbol-loss(23), alphabetic-character-loss(24),
+ multiple-information-loss(25), recipient-reassignment-prohibited(26),
+ redirection-loop-detected(27), dl-expansion-prohibited(28),
+ no-dl-submit-permission(29), dl-expansion-failure(30),
+ physical-rendition-attributes-not-supported(31),
+ undeliverable-mail-physical-delivery-address-incorrect(32),
+ undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33),
+ undeliverable-mail-physical-delivery-address-incomplete(34),
+ undeliverable-mail-recipient-unknown(35),
+ undeliverable-mail-recipient-deceased(36),
+ undeliverable-mail-organization-expired(37),
+ undeliverable-mail-recipient-refused-to-accept(38),
+ undeliverable-mail-recipient-did-not-claim(39),
+ undeliverable-mail-recipient-changed-address-permanently(40),
+ undeliverable-mail-recipient-changed-address-temporarily(41),
+ undeliverable-mail-recipient-changed-temporary-address(42),
+ undeliverable-mail-new-address-unknown(43),
+ undeliverable-mail-recipient-did-not-want-forwarding(44),
+ undeliverable-mail-originator-prohibited-forwarding(45),
+ secure-messaging-error(46), unable-to-downgrade(47),
+ unable-to-complete-transfer(48), transfer-attempts-limit-reached(49),
+ incorrect-notification-type(50),
+ dl-expansion-prohibited-by-security-policy(51),
+ forbidden-alternate-recipient(52), security-policy-violation(53),
+ security-services-refusal(54), unauthorised-dl-member(55),
+ unauthorised-dl-name(56),
+ unauthorised-originally-intended-recipient-name(57),
+ unauthorised-originator-name(58), unauthorised-recipient-name(59),
+ unreliable-system(60), authentication-failure-on-subject-message(61),
+ decryption-failed(62), decryption-key-unobtainable(63),
+ double-envelope-creation-failure(64),
+ double-enveloping-message-restoring-failure(65),
+ failure-of-proof-of-message(66), integrity-failure-on-subject-message(67),
+ invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70),
+ operation-security-failure(71), repudiation-failure-of-message(72),
+ security-context-failure(73), token-decryption-failed(74), token-error(75),
+ unknown-security-label(76), unsupported-algorithm-identifier(77),
+ unsupported-security-policy(78)}(0..ub-diagnostic-codes)
+
+SupplementaryInformation ::=
+ PrintableString(SIZE (1..ub-supplementary-info-length))
+
+-- Extension Fields
+EXTENSION ::= CLASS {
+ &id ExtensionType UNIQUE,
+ &Type OPTIONAL,
+ &absent &Type OPTIONAL,
+ &recommended Criticality DEFAULT {}
+}
+WITH SYNTAX {
+ [&Type
+ [IF ABSENT &absent],]
+ [RECOMMENDED CRITICALITY &recommended,]
+ IDENTIFIED BY &id
+}
+
+ExtensionType ::= CHOICE {
+ standard-extension [0] INTEGER(0..ub-extension-types),
+ private-extension [3] OBJECT IDENTIFIER
+}
+
+Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2)
+}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero'
+
+
+ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE {
+ type EXTENSION.&id({ChosenFrom}),
+ criticality [1] Criticality DEFAULT {},
+ value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
+}
+
+PrivateExtensions EXTENSION ::=
+ {-- Any value shall be relayed and delivered if not Critical (see Table 27)
+ -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed.
+ -- Shall be IDENTIFIED BY ExtensionType.private-extension --...}
+
+recipient-reassignment-prohibited EXTENSION ::= {
+ RecipientReassignmentProhibited
+ IF ABSENT recipient-reassignment-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:1
+}
+
+RecipientReassignmentProhibited ::= ENUMERATED {
+ recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1)
+}
+
+originator-requested-alternate-recipient EXTENSION ::= {
+ OriginatorRequestedAlternateRecipient,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:2
+}
+
+OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName
+
+-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name
+-- defined in Figure 4, since on submission the OR-address need not be present, but on
+-- transfer the OR-address must be present.
+dl-expansion-prohibited EXTENSION ::= {
+ DLExpansionProhibited
+ IF ABSENT dl-expansion-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:3
+}
+
+DLExpansionProhibited ::= ENUMERATED {
+ dl-expansion-allowed(0), dl-expansion-prohibited(1)}
+
+conversion-with-loss-prohibited EXTENSION ::= {
+ ConversionWithLossProhibited
+ IF ABSENT conversion-with-loss-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:4
+}
+
+ConversionWithLossProhibited ::= ENUMERATED {
+ conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1)
+}
+
+latest-delivery-time EXTENSION ::= {
+ LatestDeliveryTime,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:5
+}
+
+LatestDeliveryTime ::= Time
+
+requested-delivery-method EXTENSION ::= {
+ RequestedDeliveryMethod
+ IF ABSENT {any-delivery-method},
+ IDENTIFIED BY standard-extension:6
+}
+
+RequestedDeliveryMethod ::=
+ SEQUENCE OF INTEGER { -- each different in order of preference,
+ -- most preferred first
+ any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8),
+ telephone-delivery(9)}(0..ub-integer-options)
+
+physical-forwarding-prohibited EXTENSION ::= {
+ PhysicalForwardingProhibited
+ IF ABSENT physical-forwarding-allowed,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:7
+}
+
+PhysicalForwardingProhibited ::= ENUMERATED {
+ physical-forwarding-allowed(0), physical-forwarding-prohibited(1)}
+
+physical-forwarding-address-request EXTENSION ::= {
+ PhysicalForwardingAddressRequest
+ IF ABSENT physical-forwarding-address-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:8
+}
+
+PhysicalForwardingAddressRequest ::= ENUMERATED {
+ physical-forwarding-address-not-requested(0),
+ physical-forwarding-address-requested(1)}
+
+physical-delivery-modes EXTENSION ::= {
+ PhysicalDeliveryModes
+ IF ABSENT {ordinary-mail},
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:9
+}
+
+PhysicalDeliveryModes ::= BIT STRING {
+ ordinary-mail(0), special-delivery(1), express-mail(2),
+ counter-collection(3), counter-collection-with-telephone-advice(4),
+ counter-collection-with-telex-advice(5),
+ counter-collection-with-teletex-advice(6), bureau-fax-delivery(7)
+
+-- bits 0 to 6 are mutually exclusive
+-- bit 7 can be set independently of any of bits 0 to 6 --}
+(SIZE (0..ub-bit-options))
+
+registered-mail-type EXTENSION ::= {
+ RegisteredMailType
+ IF ABSENT non-registered-mail,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:10
+}
+
+RegisteredMailType ::= INTEGER {
+ non-registered-mail(0), registered-mail(1),
+ registered-mail-to-addressee-in-person(2)}(0..ub-integer-options)
+
+recipient-number-for-advice EXTENSION ::= {
+ RecipientNumberForAdvice,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:11
+}
+
+RecipientNumberForAdvice ::=
+ TeletexString(SIZE (1..ub-recipient-number-for-advice-length))
+
+physical-rendition-attributes EXTENSION ::= {
+ PhysicalRenditionAttributes
+ IF ABSENT id-att-physicalRendition-basic,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:12
+}
+
+PhysicalRenditionAttributes ::= OBJECT IDENTIFIER
+
+originator-return-address EXTENSION ::= {
+ OriginatorReturnAddress,
+ IDENTIFIED BY standard-extension:13
+}
+
+OriginatorReturnAddress ::= ORAddress
+
+physical-delivery-report-request EXTENSION ::= {
+ PhysicalDeliveryReportRequest
+ IF ABSENT return-of-undeliverable-mail-by-PDS,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:14
+}
+
+PhysicalDeliveryReportRequest ::= INTEGER {
+ return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1),
+ return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3)
+}(0..ub-integer-options)
+
+originator-certificate EXTENSION ::= {
+ OriginatorCertificate,
+ IDENTIFIED BY standard-extension:15
+}
+
+OriginatorCertificate ::= Certificates
+
+message-token EXTENSION ::= {
+ MessageToken,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:16
+}
+
+MessageToken ::= Token
+
+content-confidentiality-algorithm-identifier EXTENSION ::= {
+ ContentConfidentialityAlgorithmIdentifier,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:17
+}
+
+ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+content-integrity-check EXTENSION ::= {
+ ContentIntegrityCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:18
+}
+
+ContentIntegrityCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ContentIntegrityAlgorithmIdentifier OPTIONAL,
+ content Content}}
+
+ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-origin-authentication-check EXTENSION ::= {
+ MessageOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:19
+}
+
+MessageOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ MessageOriginAuthenticationAlgorithmIdentifier,
+ content Content,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+message-security-label EXTENSION ::= {
+ MessageSecurityLabel,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:20
+}
+
+MessageSecurityLabel ::= SecurityLabel
+
+proof-of-submission-request EXTENSION ::= {
+ ProofOfSubmissionRequest
+ IF ABSENT proof-of-submission-not-requested,
+ RECOMMENDED CRITICALITY {for-submission},
+ IDENTIFIED BY standard-extension:21
+}
+
+ProofOfSubmissionRequest ::= ENUMERATED {
+ proof-of-submission-not-requested(0), proof-of-submission-requested(1)
+}
+
+proof-of-delivery-request EXTENSION ::= {
+ ProofOfDeliveryRequest
+ IF ABSENT proof-of-delivery-not-requested,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:22
+}
+
+ProofOfDeliveryRequest ::= ENUMERATED {
+ proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)}
+
+content-correlator EXTENSION ::= {
+ ContentCorrelator,
+ IDENTIFIED BY standard-extension:23
+}
+
+ContentCorrelator ::= CHOICE {ia5text IA5String,
+ octets OCTET STRING
+}
+
+probe-origin-authentication-check EXTENSION ::= {
+ ProbeOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:24
+}
+
+ProbeOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProbeOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL}}
+
+ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+redirection-history EXTENSION ::= {
+ RedirectionHistory,
+ IDENTIFIED BY standard-extension:25
+}
+
+RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection
+
+Redirection ::= SEQUENCE {
+ intended-recipient-name IntendedRecipientName,
+ redirection-reason RedirectionReason
+}
+
+IntendedRecipientName ::= SEQUENCE {
+ intended-recipient ORAddressAndOptionalDirectoryName,
+ redirection-time Time
+}
+
+RedirectionReason ::= ENUMERATED {
+ recipient-assigned-alternate-recipient(0),
+ originator-requested-alternate-recipient(1),
+ recipient-MD-assigned-alternate-recipient(2),
+ -- The following values may not be supported by implementations of earlier versions of this Service Definition
+ directory-look-up(3), alias(4), ...
+ }
+
+dl-expansion-history EXTENSION ::= {
+ DLExpansionHistory,
+ IDENTIFIED BY standard-extension:26
+}
+
+DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion
+
+DLExpansion ::= SEQUENCE {
+ dl ORAddressAndOptionalDirectoryName,
+ dl-expansion-time Time
+}
+
+physical-forwarding-address EXTENSION ::= {
+ PhysicalForwardingAddress,
+ IDENTIFIED BY standard-extension:27
+}
+
+PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName
+
+recipient-certificate EXTENSION ::= {
+ RecipientCertificate,
+ IDENTIFIED BY standard-extension:28
+}
+
+proof-of-delivery EXTENSION ::= {
+ ProofOfDelivery,
+ IDENTIFIED BY standard-extension:29
+}
+
+originator-and-DL-expansion-history EXTENSION ::= {
+ OriginatorAndDLExpansionHistory,
+ IDENTIFIED BY standard-extension:30
+}
+
+OriginatorAndDLExpansionHistory ::=
+ SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion
+
+OriginatorAndDLExpansion ::= SEQUENCE {
+ originator-or-dl-name ORAddressAndOptionalDirectoryName,
+ origination-or-expansion-time Time
+}
+
+reporting-DL-name EXTENSION ::= {
+ ReportingDLName,
+ IDENTIFIED BY standard-extension:31
+}
+
+ReportingDLName ::= ORAddressAndOptionalDirectoryName
+
+reporting-MTA-certificate EXTENSION ::= {
+ ReportingMTACertificate,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:32
+}
+
+ReportingMTACertificate ::= Certificates
+
+report-origin-authentication-check EXTENSION ::= {
+ ReportOriginAuthenticationCheck,
+ RECOMMENDED CRITICALITY {for-delivery},
+ IDENTIFIED BY standard-extension:33
+}
+
+ReportOriginAuthenticationCheck ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ReportOriginAuthenticationAlgorithmIdentifier,
+ content-identifier ContentIdentifier OPTIONAL,
+ message-security-label MessageSecurityLabel OPTIONAL,
+ per-recipient
+ SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields
+ }}
+
+ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier
+
+PerRecipientReportFields ::= SEQUENCE {
+ actual-recipient-name ActualRecipientName,
+ originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL,
+ report-type
+ CHOICE {delivery [0] PerRecipientDeliveryReportFields,
+ non-delivery [1] PerRecipientNonDeliveryReportFields}
+}
+
+PerRecipientDeliveryReportFields ::= SEQUENCE {
+ message-delivery-time MessageDeliveryTime,
+ type-of-MTS-user TypeOfMTSUser,
+ recipient-certificate [0] RecipientCertificate OPTIONAL,
+ proof-of-delivery [1] ProofOfDelivery OPTIONAL
+}
+
+PerRecipientNonDeliveryReportFields ::= SEQUENCE {
+ non-delivery-reason-code NonDeliveryReasonCode,
+ non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL
+}
+
+originating-MTA-certificate EXTENSION ::= {
+ OriginatingMTACertificate,
+ IDENTIFIED BY standard-extension:34
+}
+
+OriginatingMTACertificate ::= Certificates
+
+proof-of-submission EXTENSION ::= {
+ ProofOfSubmission,
+ IDENTIFIED BY standard-extension:35
+}
+
+ProofOfSubmission ::=
+ SIGNATURE
+ {SEQUENCE {algorithm-identifier
+ ProofOfSubmissionAlgorithmIdentifier,
+ message-submission-envelope MessageSubmissionEnvelope,
+ content Content,
+ message-submission-identifier MessageSubmissionIdentifier,
+ message-submission-time MessageSubmissionTime}}
+
+ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+reporting-MTA-name EXTENSION ::= {
+ ReportingMTAName,
+ IDENTIFIED BY standard-extension:39
+}
+
+ReportingMTAName ::= SEQUENCE {
+ domain GlobalDomainIdentifier,
+ mta-name MTAName,
+ mta-directory-name [0] Name OPTIONAL
+}
+
+multiple-originator-certificates EXTENSION ::= {
+ ExtendedCertificates,
+ IDENTIFIED BY standard-extension:40
+}
+
+ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate
+
+ExtendedCertificate ::= CHOICE {
+ directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found
+ certificate [1] Certificates
+}
+
+dl-exempted-recipients EXTENSION ::= {
+ DLExemptedRecipients,
+ IDENTIFIED BY standard-extension:42
+}
+
+DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName
+
+certificate-selectors EXTENSION ::= {
+ CertificateSelectors,
+ IDENTIFIED BY standard-extension:45
+}
+
+CertificateSelectors ::= SET {
+ encryption-recipient [0] CertificateAssertion OPTIONAL,
+ encryption-originator [1] CertificateAssertion OPTIONAL,
+ content-integrity-check [2] CertificateAssertion OPTIONAL,
+ token-signature [3] CertificateAssertion OPTIONAL,
+ message-origin-authentication [4] CertificateAssertion OPTIONAL
+}
+
+certificate-selectors-override EXTENSION ::= {
+ CertificateSelectors
+ (WITH COMPONENTS {
+ ...,
+ message-origin-authentication ABSENT
+ }),
+ IDENTIFIED BY standard-extension:46
+}
+
+-- Some standard-extensions are defined elsewhere:
+-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5;
+-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4;
+-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in
+-- ITU-T Rec. X.420 | ISO/IEC 10021-7
+-- Common Parameter Types
+Content ::=
+ OCTET
+ STRING -- when the content-type has the integer value external, the value of the
+
+-- content octet string is the ASN.1 encoding of the external-content;
+-- an external-content is a data type EXTERNAL
+MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
+ global-domain-identifier GlobalDomainIdentifier,
+ local-identifier LocalIdentifier
+}
+
+LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length))
+
+GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
+ country-name CountryName,
+ administration-domain-name AdministrationDomainName,
+ private-domain-identifier PrivateDomainIdentifier OPTIONAL
+}
+
+PrivateDomainIdentifier ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+MTAName ::= IA5String(SIZE (1..ub-mta-name-length))
+
+Time ::= UTCTime
+
+-- OR Names
+ORAddressAndOrDirectoryName ::= ORName
+
+ORAddressAndOptionalDirectoryName ::= ORName
+
+ORName ::= [APPLICATION 0] SEQUENCE {
+ -- address --COMPONENTS OF ORAddress,
+ directory-name [0] Name OPTIONAL
+}
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL
+}
+
+-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute
+-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted.
+-- Built-in Standard Attributes
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+ personal-name [5] PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+ -- see also teletex-organizational-unit-names
+}
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString(SIZE (0..ub-domain-name-length)),
+ printable PrintableString(SIZE (0..ub-domain-name-length))
+}
+
+NetworkAddress ::= X121Address
+
+-- see also extended-network-address
+X121Address ::= NumericString(SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString(SIZE (1..ub-domain-name-length)),
+ printable PrintableString(SIZE (1..ub-domain-name-length))
+}
+
+OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length))
+
+-- see also teletex-organization-name
+NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] PrintableString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+-- see also teletex-personal-name
+OrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName
+
+-- see also teletex-organizational-unit-names
+OrganizationalUnitName ::=
+ PrintableString(SIZE (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+BuiltInDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+-- Extension Attributes
+ExtensionAttributes ::=
+ SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type
+ [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}),
+ extension-attribute-value
+ [1] EXTENSION-ATTRIBUTE.&Type
+ ({ExtensionAttributeTable}{@extension-attribute-type})
+}
+
+EXTENSION-ATTRIBUTE ::= CLASS {
+ &id INTEGER(0..ub-extension-attributes) UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+ExtensionAttributeTable EXTENSION-ATTRIBUTE ::=
+ {common-name | teletex-common-name | universal-common-name |
+ teletex-organization-name | universal-organization-name |
+ teletex-personal-name | universal-personal-name |
+ teletex-organizational-unit-names | universal-organizational-unit-names |
+ teletex-domain-defined-attributes | universal-domain-defined-attributes |
+ pds-name | physical-delivery-country-name | postal-code |
+ physical-delivery-office-name | universal-physical-delivery-office-name |
+ physical-delivery-office-number | universal-physical-delivery-office-number
+ | extension-OR-address-components |
+ universal-extension-OR-address-components | physical-delivery-personal-name
+ | universal-physical-delivery-personal-name |
+ physical-delivery-organization-name |
+ universal-physical-delivery-organization-name |
+ extension-physical-delivery-address-components |
+ universal-extension-physical-delivery-address-components |
+ unformatted-postal-address | universal-unformatted-postal-address |
+ street-address | universal-street-address | post-office-box-address |
+ universal-post-office-box-address | poste-restante-address |
+ universal-poste-restante-address | unique-postal-name |
+ universal-unique-postal-name | local-postal-attributes |
+ universal-local-postal-attributes | extended-network-address | terminal-type
+ }
+
+-- Extension Standard Attributes
+common-name EXTENSION-ATTRIBUTE ::= {CommonName
+ IDENTIFIED BY 1
+}
+
+CommonName ::= PrintableString(SIZE (1..ub-common-name-length))
+
+teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName
+ IDENTIFIED BY 2
+}
+
+TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length))
+
+universal-common-name EXTENSION-ATTRIBUTE ::= {
+ UniversalCommonName
+ IDENTIFIED BY 24
+}
+
+UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length}
+
+teletex-organization-name EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationName
+ IDENTIFIED BY 3
+}
+
+TeletexOrganizationName ::=
+ TeletexString(SIZE (1..ub-organization-name-length))
+
+universal-organization-name EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationName
+ IDENTIFIED BY 25
+}
+
+UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length}
+
+teletex-personal-name EXTENSION-ATTRIBUTE ::= {
+ TeletexPersonalName
+ IDENTIFIED BY 4
+}
+
+TeletexPersonalName ::= SET {
+ surname [0] TeletexString(SIZE (1..ub-surname-length)),
+ given-name
+ [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials
+ [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier
+ [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL
+}
+
+universal-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPersonalName
+ IDENTIFIED BY 26
+}
+
+UniversalPersonalName ::= SET {
+ surname [0] UniversalOrBMPString{ub-universal-surname-length},
+ -- If a language is specified within surname, then that language applies to each of the following
+ -- optional components unless the component specifies another language.
+ given-name
+ [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL,
+ initials
+ [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL,
+ generation-qualifier
+ [3] UniversalOrBMPString{ub-universal-generation-qualifier-length}
+ OPTIONAL
+}
+
+teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ TeletexOrganizationalUnitNames
+ IDENTIFIED BY 5
+}
+
+TeletexOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::=
+ TeletexString(SIZE (1..ub-organizational-unit-name-length))
+
+universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= {
+ UniversalOrganizationalUnitNames
+ IDENTIFIED BY 27
+}
+
+UniversalOrganizationalUnitNames ::=
+ SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName
+
+-- If a unit name specifies a language, then that language applies to subordinate unit names unless
+-- the subordinate specifies another language.
+UniversalOrganizationalUnitName ::=
+ UniversalOrBMPString{ub-organizational-unit-name-length}
+
+UniversalOrBMPString{INTEGER:ub-string-length} ::= SET {
+ character-encoding
+ CHOICE {two-octets BMPString(SIZE (1..ub-string-length)),
+ four-octets UniversalString(SIZE (1..ub-string-length))},
+ iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL
+}
+
+pds-name EXTENSION-ATTRIBUTE ::= {PDSName
+ IDENTIFIED BY 7
+}
+
+PDSName ::= PrintableString(SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryCountryName
+ IDENTIFIED BY 8
+}
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length))
+}
+
+postal-code EXTENSION-ATTRIBUTE ::= {PostalCode
+ IDENTIFIED BY 9
+}
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString(SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString(SIZE (1..ub-postal-code-length))
+}
+
+physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeName
+ IDENTIFIED BY 10
+}
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeName
+ IDENTIFIED BY 29
+}
+
+UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter
+
+physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 11
+}
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryOfficeNumber
+ IDENTIFIED BY 30
+}
+
+UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter
+
+extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ ExtensionORAddressComponents
+ IDENTIFIED BY 12
+}
+
+ExtensionORAddressComponents ::= PDSParameter
+
+universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= {
+ UniversalExtensionORAddressComponents
+ IDENTIFIED BY 31
+}
+
+UniversalExtensionORAddressComponents ::= UniversalPDSParameter
+
+physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryPersonalName
+ IDENTIFIED BY 13
+}
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalPhysicalDeliveryPersonalName
+ IDENTIFIED BY 32
+}
+
+UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter
+
+physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= {
+ PhysicalDeliveryOrganizationName
+ IDENTIFIED BY 14
+}
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+{UniversalPhysicalDeliveryOrganizationName
+ IDENTIFIED BY 33
+}
+
+UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter
+
+extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+{ExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 15
+}
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE
+ ::= {UniversalExtensionPhysicalDeliveryAddressComponents
+ IDENTIFIED BY 34
+}
+
+UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter
+
+unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UnformattedPostalAddress
+ IDENTIFIED BY 16
+}
+
+UnformattedPostalAddress ::= SET {
+ printable-address
+ SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+ PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string
+ TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL
+}
+
+universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= {
+ UniversalUnformattedPostalAddress
+ IDENTIFIED BY 35
+}
+
+UniversalUnformattedPostalAddress ::=
+ UniversalOrBMPString{ub-unformatted-address-length}
+
+street-address EXTENSION-ATTRIBUTE ::= {StreetAddress
+ IDENTIFIED BY 17
+}
+
+StreetAddress ::= PDSParameter
+
+universal-street-address EXTENSION-ATTRIBUTE ::= {
+ UniversalStreetAddress
+ IDENTIFIED BY 36
+}
+
+UniversalStreetAddress ::= UniversalPDSParameter
+
+post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ PostOfficeBoxAddress
+ IDENTIFIED BY 18
+}
+
+PostOfficeBoxAddress ::= PDSParameter
+
+universal-post-office-box-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPostOfficeBoxAddress
+ IDENTIFIED BY 37
+}
+
+UniversalPostOfficeBoxAddress ::= UniversalPDSParameter
+
+poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ PosteRestanteAddress
+ IDENTIFIED BY 19
+}
+
+PosteRestanteAddress ::= PDSParameter
+
+universal-poste-restante-address EXTENSION-ATTRIBUTE ::= {
+ UniversalPosteRestanteAddress
+ IDENTIFIED BY 38
+}
+
+UniversalPosteRestanteAddress ::= UniversalPDSParameter
+
+unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName
+ IDENTIFIED BY 20
+}
+
+UniquePostalName ::= PDSParameter
+
+universal-unique-postal-name EXTENSION-ATTRIBUTE ::= {
+ UniversalUniquePostalName
+ IDENTIFIED BY 39
+}
+
+UniversalUniquePostalName ::= UniversalPDSParameter
+
+local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ LocalPostalAttributes
+ IDENTIFIED BY 21
+}
+
+LocalPostalAttributes ::= PDSParameter
+
+universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalLocalPostalAttributes
+ IDENTIFIED BY 40
+}
+
+UniversalLocalPostalAttributes ::= UniversalPDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL
+}
+
+UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length}
+
+extended-network-address EXTENSION-ATTRIBUTE ::= {
+ ExtendedNetworkAddress
+ IDENTIFIED BY 22
+}
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address
+ SEQUENCE {number
+ [0] NumericString(SIZE (1..ub-e163-4-number-length)),
+ sub-address
+ [1] NumericString(SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL},
+ psap-address [0] PresentationAddress
+}
+
+terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType
+ IDENTIFIED BY 23
+}
+
+TerminalType ::= INTEGER {
+ telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7),
+ videotex(8)}(0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ TeletexDomainDefinedAttributes
+ IDENTIFIED BY 6
+}
+
+TeletexDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length))
+}
+
+universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= {
+ UniversalDomainDefinedAttributes
+ IDENTIFIED BY 28
+}
+
+UniversalDomainDefinedAttributes ::=
+ SEQUENCE SIZE (1..ub-domain-defined-attributes) OF
+ UniversalDomainDefinedAttribute
+
+UniversalDomainDefinedAttribute ::= SEQUENCE {
+ type UniversalOrBMPString{ub-domain-defined-attribute-type-length},
+ value UniversalOrBMPString{ub-domain-defined-attribute-value-length}
+}
+
+-- Encoded Information Types
+EncodedInformationTypes ::= [APPLICATION 5] SET {
+ built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
+ -- non-basic-parameters --COMPONENTS OF NonBasicParameters,
+ extended-encoded-information-types
+ [4] ExtendedEncodedInformationTypes OPTIONAL
+}
+
+-- Built-in Encoded Information Types
+BuiltInEncodedInformationTypes ::= BIT STRING {
+ unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5),
+ videotex(6), voice(7), sfd(8), mixed-mode(9)
+}(SIZE (0..ub-built-in-encoded-information-types))
+
+-- Extended Encoded Information Types
+ExtendedEncodedInformationTypes ::=
+ SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType
+
+ExtendedEncodedInformationType ::= OBJECT IDENTIFIER
+
+-- Non-basic Parameters
+NonBasicParameters ::= SET {
+ g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {},
+ teletex [2] TeletexNonBasicParameters DEFAULT {}
+}
+
+G3FacsimileNonBasicParameters ::= BIT STRING {
+ two-dimensional(8), -- As defined in ITU-T Recommendation T.30
+ fine-resolution(9), --
+ unlimited-length(20), -- These bit values are chosen such that when
+ b4-length(21), -- encoded using ASN.1 Basic Encoding Rules
+ a3-width(22), -- the resulting octets have the same values
+ b4-width(23), -- as for T.30 encoding
+ t6-coding(25), --
+ uncompressed(30), -- Trailing zero bits are not significant.
+ width-middle-864-of-1728(37), -- It is recommended that implementations
+ width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless
+ resolution-type(44), -- higher numbered bits are non-zero.
+ resolution-400x400(45), resolution-300x300(46), resolution-8x15(47),
+ edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60),
+ twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68),
+ processable-mode-26(71)}
+
+TeletexNonBasicParameters ::= SET {
+ graphic-character-sets [0] TeletexString OPTIONAL,
+ control-character-sets [1] TeletexString OPTIONAL,
+ page-formats [2] OCTET STRING OPTIONAL,
+ miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
+ private-use
+ [4] OCTET STRING
+ OPTIONAL -- maximum ub-teletex-private-use-length octets --
+}
+
+-- as defined in CCITT Recommendation T.62
+-- Token
+Token ::= SEQUENCE {
+ token-type-identifier [0] TOKEN.&id({TokensTable}),
+ token
+ [1] TOKEN.&Type({TokensTable}{@token-type-identifier})
+}
+
+TOKEN ::= TYPE-IDENTIFIER
+
+TokensTable TOKEN ::= {asymmetric-token, ...}
+
+asymmetric-token TOKEN ::= {
+ AsymmetricToken
+ IDENTIFIED BY id-tok-asymmetricToken
+}
+
+AsymmetricToken ::=
+ SIGNED
+ {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier,
+ name
+ CHOICE {recipient-name RecipientName,
+ mta
+ [3] SEQUENCE {global-domain-identifier
+ GlobalDomainIdentifier OPTIONAL,
+ mta-name MTAName
+ }},
+ time Time,
+ signed-data [0] TokenData OPTIONAL,
+ encryption-algorithm-identifier
+ [1] AlgorithmIdentifier OPTIONAL,
+ encrypted-data
+ [2] ENCRYPTED{TokenData} OPTIONAL}}
+
+TokenData ::= SEQUENCE {
+ type [0] TOKEN-DATA.&id({TokenDataTable}),
+ value [1] TOKEN-DATA.&Type({TokenDataTable}{@type})
+}
+
+TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE,
+ &Type
+}WITH SYNTAX {&Type
+ IDENTIFIED BY &id
+}
+
+TokenDataTable TOKEN-DATA ::=
+ {bind-token-signed-data | message-token-signed-data |
+ message-token-encrypted-data | bind-token-encrypted-data, ...}
+
+bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData
+ IDENTIFIED BY 1
+}
+
+BindTokenSignedData ::= RandomNumber
+
+RandomNumber ::= BIT STRING
+
+message-token-signed-data TOKEN-DATA ::= {
+ MessageTokenSignedData
+ IDENTIFIED BY 2
+}
+
+MessageTokenSignedData ::= SEQUENCE {
+ content-confidentiality-algorithm-identifier
+ [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL,
+ content-integrity-check
+ [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label
+ [2] MessageSecurityLabel OPTIONAL,
+ proof-of-delivery-request
+ [3] ProofOfDeliveryRequest OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+message-token-encrypted-data TOKEN-DATA ::= {
+ MessageTokenEncryptedData
+ IDENTIFIED BY 3
+}
+
+MessageTokenEncryptedData ::= SEQUENCE {
+ content-confidentiality-key [0] EncryptionKey OPTIONAL,
+ content-integrity-check [1] ContentIntegrityCheck OPTIONAL,
+ message-security-label [2] MessageSecurityLabel OPTIONAL,
+ content-integrity-key [3] EncryptionKey OPTIONAL,
+ message-sequence-number [4] INTEGER OPTIONAL
+}
+
+EncryptionKey ::= BIT STRING
+
+bind-token-encrypted-data TOKEN-DATA ::= {
+ BindTokenEncryptedData
+ IDENTIFIED BY 4
+}
+
+BindTokenEncryptedData ::= EXTERNAL
+
+-- Security Label
+SecurityLabel ::= SET {
+ security-policy-identifier SecurityPolicyIdentifier OPTIONAL,
+ security-classification SecurityClassification OPTIONAL,
+ privacy-mark PrivacyMark OPTIONAL,
+ security-categories SecurityCategories OPTIONAL
+}
+
+SecurityPolicyIdentifier ::= OBJECT IDENTIFIER
+
+SecurityClassification ::= INTEGER {
+ unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4),
+ top-secret(5)}(0..ub-integer-options)
+
+PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length))
+
+SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory
+
+SecurityCategory ::= SEQUENCE {
+ type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}),
+ value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type})
+}
+
+SECURITY-CATEGORY ::= TYPE-IDENTIFIER
+
+SecurityCategoriesTable SECURITY-CATEGORY ::=
+ {...}
+
+END -- of MTSAbstractService
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService88.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService88.asn
new file mode 100644
index 0000000000..f66d117f35
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAbstractService88.asn
@@ -0,0 +1,150 @@
+-- Module MTSAbstractService88 (X.411:06/1999)
+MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS
+ -- Remote Operations
+ CONTRACT
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ -- MTS Abstract Service Parameters
+ operationObject1, ABSTRACT-OPERATION, change-credentials, ContentLength,
+ ContentTypes, Controls, control-violates-registration,
+ DefaultDeliveryControls, EncodedInformationTypes, message-delivery,
+ MHS-OBJECT, mts-connect, PORT, RecipientAssignedAlternateRecipient,
+ register-rejected, report-delivery, SecurityLabel, security-error,
+ submission, UserAddress, UserName, Waiting
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- Object Identifiers
+ id-ct-mts-access, id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user,
+ id-pt-administration, id-pt-delivery
+ --==
+ FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)}
+ -- Operation Codes
+ op-delivery-control, op-register
+ --==
+ FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)}
+ -- Upper Bounds
+ ub-content-types, ub-labels-and-redirections
+ --==
+ FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ upper-bounds(3) version-1999(1)};
+
+-- Objects
+mts-88 MHS-OBJECT ::= {
+ INITIATES {mts-forced-access-contract-88}
+ RESPONDS {mts-access-contract-88}
+ ID {id-ot-mts 88}
+}
+
+mts-user-88 MHS-OBJECT ::= {
+ INITIATES {mts-access-contract-88}
+ RESPONDS {mts-forced-access-contract-88}
+ ID {id-ot-mts-user 88}
+}
+
+-- Contracts
+mts-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ INITIATOR CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-access 88}
+}
+
+mts-forced-access-contract-88 CONTRACT ::= {
+ CONNECTION mts-connect
+ RESPONDER CONSUMER OF {submission | delivery-88 | administration-88}
+ ID {id-ct-mts-forced-access 88}
+}
+
+-- Ports
+delivery-88 PORT ::= {
+ OPERATIONS
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {delivery-control-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {message-delivery | report-delivery,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-delivery 88}
+}
+
+administration-88 PORT ::= {
+ OPERATIONS
+ {change-credentials,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ CONSUMER INVOKES
+ {register-88,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ SUPPLIER INVOKES
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ ID {id-pt-administration 88}
+}
+
+-- Delivery Port
+delivery-control-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT DeliveryControls88
+ RESULT Waiting
+ ERRORS {control-violates-registration | security-error}
+ LINKED
+ {operationObject1,
+ ...} -- This IOS needs to be extensible for Forward{} of X.880
+ INVOKE PRIORITY {3}
+ CODE op-delivery-control
+}
+
+DeliveryControls88 ::= SET {
+ COMPONENTS OF
+ Controls
+ (WITH COMPONENTS {
+ ...,
+ permissible-encoded-information-types ABSENT
+ }),
+ permissible-encoded-information-types-88 EncodedInformationTypes OPTIONAL
+}
+
+-- Administration Port
+register-88 ABSTRACT-OPERATION ::= {
+ ARGUMENT Register88
+ RESULT NULL
+ ERRORS {register-rejected}
+ LINKED {operationObject1, ...}
+ INVOKE PRIORITY {5}
+ CODE op-register
+}
+
+Register88 ::= SET {
+ user-name UserName OPTIONAL,
+ user-address [0] UserAddress OPTIONAL,
+ deliverable-encoded-information-types EncodedInformationTypes OPTIONAL,
+ deliverable-maximum-content-length [1] EXPLICIT ContentLength OPTIONAL,
+ default-delivery-controls
+ [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
+ deliverable-content-types [3] ContentTypes OPTIONAL,
+ labels-and-redirections
+ [4] SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection
+ OPTIONAL
+}
+
+LabelAndRedirection ::= SET {
+ user-security-label [0] UserSecurityLabel OPTIONAL,
+ recipient-assigned-alternate-recipient
+ [1] RecipientAssignedAlternateRecipient OPTIONAL
+}
+
+UserSecurityLabel ::= SecurityLabel
+
+END -- of MTSAbstractService88
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAccessProtocol.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAccessProtocol.asn
new file mode 100644
index 0000000000..03181c5951
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSAccessProtocol.asn
@@ -0,0 +1,321 @@
+-- Module MTSAccessProtocol (X.419:06/1999)
+
+MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
+ mts-access-protocol(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+IMPORTS
+ -- MTS Abstract Service
+ administration, delivery, mts-access-contract, mts-connect,
+ mts-forced-access-contract, submission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- MTS Abstract Service (1988)
+ administration-88, delivery-88, mts-access-contract-88,
+ mts-forced-access-contract-88
+ --==
+ FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1988(1988)}
+ -- Remote Operations
+ APPLICATION-CONTEXT
+ --==
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ Code
+ --==
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, Unbind{}
+ --==
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ROS-SingleAS{}
+ --==
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ acse, association-by-RTSE, pData, transfer-by-RTSE
+ --==
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ --==
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)}
+ -- Reliable Transfer
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ -- Object Identifiers
+ id-ac-mts-access-88, id-ac-mts-access-94, id-ac-mts-forced-access-88,
+ id-ac-mts-forced-access-94, id-ac-mts-forced-reliable-access-88,
+ id-ac-mts-forced-reliable-access-94, id-ac-mts-reliable-access-88,
+ id-ac-mts-reliable-access-94, id-as-mase-88, id-as-mase-94, id-as-mdse-88,
+ id-as-mdse-94, id-as-msse, id-as-mts, id-as-mts-rtse
+ --==
+ FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0)
+ modules(0) object-identifiers(0) version-1994(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+-- APPLICATION CONTEXTS
+-- 1994 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-94
+}
+
+-- MTS initiated
+mts-forced-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-94
+}
+
+-- 1994 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-94
+}
+
+-- MTS initiated
+mts-forced-reliable-access-94 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax |
+ message-administration-abstract-syntax-94 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-94
+}
+
+-- 1988 Application Contexts omitting RTSE
+-- MTS-user initiated
+mts-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-access-88
+}
+
+-- MTS initiated
+mts-forced-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-access-88
+}
+
+-- 1988 Application Contexts including RTSE in normal mode
+-- MTS-user initiated
+mts-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-reliable-access-88
+}
+
+-- MTS initiated
+mts-forced-reliable-access-88 APPLICATION-CONTEXT ::= {
+ CONTRACT mts-forced-access-contract-88
+ ESTABLISHED BY association-by-RTSE
+ INFORMATION TRANSFER BY transfer-by-RTSE
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | message-submission-abstract-syntax |
+ message-delivery-abstract-syntax-88 |
+ message-administration-abstract-syntax-88 |
+ mts-bind-unbind-rtse-abstract-syntax}
+ APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-88
+}
+
+-- ABSTRACT-SYNTAXES
+-- Abstract Syntax for MTS-Bind and MTS-Unbind
+mts-bind-unbind-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MTSBindUnbindPDUs
+ IDENTIFIED BY id-as-mts
+}
+
+MTSBindUnbindPDUs ::= CHOICE {
+ bind Bind{mts-connect.&bind},
+ unbind Unbind{mts-connect.&unbind}
+}
+
+-- Abstract Syntax for MTS-Bind and MTS-Unbind with RTSE
+mts-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus -- With MTS Bind and MTS Unbind --
+ IDENTIFIED BY id-as-mts-rtse
+}
+
+-- Abstract Syntax for Message Submission Service Element
+message-submission-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageSubmissionPDUs
+ IDENTIFIED BY id-as-msse
+}
+
+MessageSubmissionPDUs ::= ROS-SingleAS{{MTSInvokeIds}, submission}
+
+MTSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL)
+
+-- Remote Operations
+op-message-submission Code ::= local:3
+
+op-probe-submission Code ::= local:4
+
+op-cancel-deferred-delivery Code ::= local:7
+
+op-submission-control Code ::= local:2
+
+-- Remote Errors
+err-submission-control-violated Code ::= local:1
+
+err-element-of-service-not-subscribed Code ::= local:4
+
+err-deferred-delivery-cancellation-rejected Code ::= local:8
+
+err-originator-invalid Code ::= local:2
+
+err-recipient-improperly-specified Code ::= local:3
+
+err-message-submission-identifier-invalid Code ::= local:7
+
+err-inconsistent-request Code ::= local:11
+
+err-security-error Code ::= local:12
+
+err-unsupported-critical-function Code ::= local:13
+
+err-remote-bind-error Code ::= local:15
+
+-- Abstract Syntax for Message Delivery Service Element 1994
+message-delivery-abstract-syntax ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs
+ IDENTIFIED BY id-as-mdse-94
+}
+
+MessageDeliveryPDUs ::= ROS-SingleAS{{MTSInvokeIds}, delivery}
+
+-- Abstract Syntax for Message Delivery Service Element 1988
+message-delivery-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageDeliveryPDUs88
+ IDENTIFIED BY id-as-mdse-88
+}
+
+MessageDeliveryPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, delivery-88}
+
+-- Remote Operations
+op-message-delivery Code ::= local:5
+
+op-report-delivery Code ::= local:6
+
+op-delivery-control Code ::= local:2
+
+-- Remote Errors
+err-delivery-control-violated Code ::= local:1
+
+err-control-violates-registration Code ::= local:14
+
+err-operation-refused Code ::= local:16
+
+-- Abstract Syntax for Message Administration Service Element 1994
+message-administration-abstract-syntax-94 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs
+ IDENTIFIED BY id-as-mase-94
+}
+
+MessageAdministrationPDUs ::= ROS-SingleAS{{MTSInvokeIds}, administration}
+
+-- Abstract Syntax for Message Administration Service Element 1988
+message-administration-abstract-syntax-88 ABSTRACT-SYNTAX ::= {
+ MessageAdministrationPDUs88
+ IDENTIFIED BY id-as-mase-88
+}
+
+MessageAdministrationPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, administration-88}
+
+-- Remote Operations
+op-register Code ::= local:1
+
+op-change-credentials Code ::= local:8
+
+-- Remote Errors
+err-register-rejected Code ::= local:10
+
+err-new-credentials-unacceptable Code ::= local:6
+
+err-old-credentials-incorrectly-specified Code ::= local:5
+
+END -- of MTSAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSObjectIdentifiers.asn
new file mode 100644
index 0000000000..1615b241ee
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSObjectIdentifiers.asn
@@ -0,0 +1,116 @@
+-- Module MTSObjectIdentifiers (X.411:06/1999)
+MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Message Transfer System
+id-mts ID ::=
+ {joint-iso-itu-t mhs(6) mts(3)} -- not definitive
+
+-- Categories of Object Identifiers
+id-mod ID ::= {id-mts 0} -- modules
+
+id-ot ID ::= {id-mts 1} -- object types
+
+id-pt ID ::= {id-mts 2} -- port types
+
+id-cont ID ::= {id-mts 3} -- content types
+
+id-eit ID ::= {id-mts 4} -- encoded information types
+
+id-att ID ::= {id-mts 5} -- attributes
+
+id-tok ID ::= {id-mts 6} -- token types
+
+id-sa ID ::= {id-mts 7} -- secure agent types
+
+id-ct ID ::= {id-mts 8} -- contracts
+
+id-cp ID ::= {id-mts 9} -- connection packages
+
+-- Modules
+id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive
+
+id-mod-mts-abstract-service ID ::= {id-mod 1} -- not definitive
+
+id-mod-mta-abstract-service ID ::= {id-mod 2} -- not definitive
+
+id-mod-upper-bounds ID ::= {id-mod 3} -- not definitive
+
+-- Object Types
+id-ot-mts ID ::= {id-ot 0}
+
+id-ot-mts-user ID ::= {id-ot 1}
+
+id-ot-mta ID ::= {id-ot 2}
+
+-- Port Types
+id-pt-submission ID ::= {id-pt 0}
+
+id-pt-delivery ID ::= {id-pt 1}
+
+id-pt-administration ID ::= {id-pt 2}
+
+id-pt-transfer ID ::= {id-pt 3}
+
+-- Content Types
+id-cont-unidentified ID ::=
+ {id-cont 0} -- For use by MS and Directory
+
+id-cont-inner-envelope ID ::= {id-cont 1}
+
+-- Encoded Information Types
+id-eit-unknown ID ::= {id-eit 0}
+
+-- Value { id-eit 1 } is no longer defined
+id-eit-ia5-text ID ::= {id-eit 2}
+
+id-eit-g3-facsimile ID ::= {id-eit 3}
+
+id-eit-g4-class-1 ID ::= {id-eit 4}
+
+id-eit-teletex ID ::= {id-eit 5}
+
+id-eit-videotex ID ::= {id-eit 6}
+
+id-eit-voice ID ::= {id-eit 7}
+
+id-eit-sfd ID ::= {id-eit 8}
+
+id-eit-mixed-mode ID ::= {id-eit 9}
+
+-- Attributes
+id-att-physicalRendition-basic ID ::= {id-att 0}
+
+id-att-physicalRendition-no-cover-page ID ::= {id-att 1}
+
+-- Token Types
+id-tok-asymmetricToken ID ::= {id-tok 0}
+
+-- Secure Agent Types
+id-sa-ua ID ::= {id-sa 0}
+
+id-sa-ms ID ::= {id-sa 1}
+
+-- Contracts
+id-ct-mts-access ID ::= {id-ct 0}
+
+id-ct-mts-forced-access ID ::= {id-ct 1}
+
+id-ct-mta-transfer ID ::= {id-ct 2}
+
+-- Connection Packages
+id-cp-mts-connect ID ::= {id-cp 0}
+
+id-cp-mta-connect ID ::= {id-cp 1}
+
+END -- of MTSObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSUpperBounds.asn
new file mode 100644
index 0000000000..10eac962cb
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/MTSUpperBounds.asn
@@ -0,0 +1,146 @@
+-- Module MTSUpperBounds (X.411:06/1999)
+MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3)
+ version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything
+IMPORTS -- nothing -- ;
+
+-- Upper Bounds
+ub-additional-info INTEGER ::= 1024
+
+ub-bilateral-info INTEGER ::= 1024
+
+ub-bit-options INTEGER ::= 16
+
+ub-built-in-content-type INTEGER ::= 32767
+
+ub-built-in-encoded-information-types INTEGER ::= 32
+
+ub-certificates INTEGER ::= 64
+
+ub-common-name-length INTEGER ::= 64
+
+ub-content-correlator-length INTEGER ::= 512
+
+ub-content-id-length INTEGER ::= 16
+
+ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-content-types INTEGER ::= 1024
+
+ub-country-name-alpha-length INTEGER ::= 2
+
+ub-country-name-numeric-length INTEGER ::= 3
+
+ub-diagnostic-codes INTEGER ::= 32767
+
+ub-deliverable-class INTEGER ::= 256
+
+ub-dl-expansions INTEGER ::= 512
+
+ub-domain-defined-attributes INTEGER ::= 4
+
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+
+ub-domain-name-length INTEGER ::= 16
+
+ub-encoded-information-types INTEGER ::= 1024
+
+ub-extension-attributes INTEGER ::= 256
+
+ub-extension-types INTEGER ::= 256
+
+ub-e163-4-number-length INTEGER ::= 15
+
+ub-e163-4-sub-address-length INTEGER ::= 40
+
+ub-generation-qualifier-length INTEGER ::= 3
+
+ub-given-name-length INTEGER ::= 16
+
+ub-initials-length INTEGER ::= 5
+
+ub-integer-options INTEGER ::= 256
+
+ub-labels-and-redirections INTEGER ::= 256
+
+ub-local-id-length INTEGER ::= 32
+
+ub-mta-name-length INTEGER ::= 32
+
+ub-mts-user-types INTEGER ::= 256
+
+ub-numeric-user-id-length INTEGER ::= 32
+
+ub-organization-name-length INTEGER ::= 64
+
+ub-organizational-unit-name-length INTEGER ::= 32
+
+ub-organizational-units INTEGER ::= 4
+
+ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one
+
+ub-password-length INTEGER ::= 62
+
+ub-pds-name-length INTEGER ::= 16
+
+ub-pds-parameter-length INTEGER ::= 30
+
+ub-pds-physical-address-lines INTEGER ::= 6
+
+ub-postal-code-length INTEGER ::= 16
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits
+
+ub-reason-codes INTEGER ::= 32767
+
+ub-recipient-number-for-advice-length INTEGER ::= 32
+
+ub-recipients INTEGER ::= 32767
+
+ub-redirection-classes INTEGER ::= 256
+
+ub-redirections INTEGER ::= 512
+
+ub-restrictions INTEGER ::= 1024
+
+ub-security-categories INTEGER ::= 64
+
+ub-security-labels INTEGER ::= 256
+
+ub-security-problems INTEGER ::= 256
+
+ub-supplementary-info-length INTEGER ::= 256
+
+ub-surname-length INTEGER ::= 40
+
+ub-teletex-private-use-length INTEGER ::= 128
+
+ub-terminal-id-length INTEGER ::= 24
+
+ub-transfers INTEGER ::= 512
+
+ub-tsap-id-length INTEGER ::= 16
+
+ub-unformatted-address-length INTEGER ::= 180
+
+ub-universal-generation-qualifier-length INTEGER ::= 16
+
+ub-universal-given-name-length INTEGER ::= 40
+
+ub-universal-initials-length INTEGER ::= 16
+
+ub-universal-surname-length INTEGER ::= 64
+
+ub-x121-address-length INTEGER ::= 16
+
+END -- of MTSUpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Notation.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Notation.asn
new file mode 100644
index 0000000000..96dfc39b6a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Notation.asn
@@ -0,0 +1,244 @@
+-- Module Notation (X.830:04/1995)
+
+Notation {joint-iso-itu-t genericULS(20) modules(1) notation(1)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+IMPORTS
+ -- From Directory Standards:
+ informationFramework, selectedAttributeTypes, authenticationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Name
+ FROM InformationFramework informationFramework
+ UniqueIdentifier
+ FROM SelectedAttributeTypes selectedAttributeTypes
+ AlgorithmIdentifier
+ FROM AuthenticationFramework authenticationFramework
+ -- From Other GULS Modules:
+ genericProtectingTransferSyntax
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ SyntaxStructure{}
+ FROM GenericProtectingTransferSyntax genericProtectingTransferSyntax;
+
+-- *************************************************
+-- Notation for security identity and SA-identifiers
+-- *************************************************
+-- Values of the SecurityIdentity type are used to identify entities
+-- which assign externally-established security association identifiers,
+-- and for other security-related purposes requiring globally-unique
+-- identifiers.
+SecurityIdentity ::= CHOICE {
+ directoryName Name,
+ objectIdentifier OBJECT IDENTIFIER
+}
+
+ExternalSAID ::= SEQUENCE {
+ localSAID INTEGER,
+ assignerIdentity SecurityIdentity OPTIONAL
+ -- Identity of the system which assigned the integer value
+}
+
+-- ******************************************
+-- Notation for specifying security exchanges
+-- ******************************************
+SECURITY-EXCHANGE ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security exchange.
+ {
+ &SE-Items SEC-EXCHG-ITEM,
+ -- This is an ASN.1 information object set, comprising a set
+ -- of security exchange items
+ &sE-Identifier Identifier UNIQUE
+ -- A local or global identifier for the particular security
+ -- exchange
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- exchange.
+{SE-ITEMS &SE-Items
+ IDENTIFIER &sE-Identifier
+}
+
+Identifier ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+SEC-EXCHG-ITEM ::= CLASS {
+ &ItemType ,
+ -- ASN.1 type for this exchange item
+ &itemId INTEGER,
+ -- Identifier for this item, e.g. 1, 2, 3, ..
+ &Errors SE-ERROR OPTIONAL
+ -- Optional list of errors which may result from
+ -- transfer of this item
+}WITH SYNTAX {ITEM-TYPE &ItemType
+ ITEM-ID &itemId
+ [ERRORS &Errors]
+}
+
+SE-ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ -- ASN.1 type of a parameter to accompany the signalling
+ -- of the error condition back to the sender of the SEI
+ &errorCode Identifier UNIQUE
+ -- An identifier used in signalling the error condition
+ -- back to the sender of the SEI
+}WITH SYNTAX {[PARAMETER &ParameterType]
+ ERROR-CODE &errorCode
+}
+
+-- ************************************************
+-- Notation for specifying security transformations
+-- ************************************************
+SECURITY-TRANSFORMATION ::=
+ CLASS
+ -- This information object class definition is for use when
+ -- specifying a particular instance of a security transformation.
+ {
+ &sT-Identifier OBJECT IDENTIFIER UNIQUE,
+ -- Identifier to be used in signalling the application
+ -- of the particular security transformation
+ &initialEncodingRules OBJECT IDENTIFIER DEFAULT {joint-iso-ccitt
+ asn1(1) ber-derived(2)
+ canonical-encoding(0)},
+ -- Default initial encoding rules to generate a bit
+ -- string prior to applying the encoding process of a
+ -- security transformation.
+ &StaticUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying static unprotected parameters
+ &DynamicUnprotectedParm OPTIONAL,
+ -- ASN.1 type for conveying dynamic unprotected parameters
+ &XformedDataType ,
+ -- ASN.1 type of the ASN.1 value produced by the security
+ -- transformations encoding process
+ &QualifierType OPTIONAL
+ -- &QualifierType specifies the ASN.1 type of the qualifier
+ -- parameter used with the PROTECTED-Q notation.
+}
+WITH SYNTAX
+ -- The following syntax is used to specify a particular security
+-- transformation.
+{
+ IDENTIFIER &sT-Identifier
+ [INITIAL-ENCODING-RULES &initialEncodingRules]
+ [STATIC-UNPROT-PARM &StaticUnprotectedParm]
+ [DYNAMIC-UNPROT-PARM &DynamicUnprotectedParm]
+ XFORMED-DATA-TYPE &XformedDataType
+ [QUALIFIER-TYPE &QualifierType]
+}
+
+-- **************************************************
+-- Notation for specifying selective field protection
+-- **************************************************
+PROTECTED{BaseType, PROTECTION-MAPPING:protectionReqd} ::= CHOICE {
+ dirEncrypt
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- dirEncrypt is for use only with the
+ -- dirEncryptedTransformation,
+ -- and generates the same encoding as the
+ -- X.509/9594-8 ENCRYPTED type-- }),
+ dirSign
+ SEQUENCE {baseType BaseType OPTIONAL,
+ -- must be present for dirSignedTransformation
+ -- and must be omitted for
+ -- dirSignatureTransformation
+ algorithmId AlgorithmIdentifier,
+ encipheredHash
+ BIT STRING
+ (CONSTRAINED BY {
+ BaseType-- contains enciphered hash--
+ -- of a value of BaseType -- })}-- dirSign is for use only with the
+ -- dirSignedTransformation or
+ -- dirSignatureTransformation, and generates
+ -- the same encoding as the corresponding
+ -- X.509/9594-8 SIGNED or SIGNATURE type--,
+ noTransform [0] BaseType,
+ -- noTransform invokes no security transformation.
+ -- Subject to security policy, noTransform may be used
+ -- if adequate protection is provided by lower layers
+ -- and any application relays through which the data
+ -- may pass are trusted to maintain the required
+ -- protection. This alternative may only be used
+ -- if protectionReqd.&bypassPermitted is TRUE,
+ direct [1] SyntaxStructure{{protectionReqd.&SecurityTransformation}},
+ -- direct generates a protecting transfer syntax
+ -- value, which is encoded using the same encoding
+ -- rules as the surrounding ASN.1 (The type
+ -- SyntaxStructure is imported from Rec. X.833 |
+ -- ISO/IEC 11586-3)
+ embedded
+ [2] EMBEDDED PDV
+ (WITH COMPONENTS {
+ identification (WITH COMPONENTS {
+ presentation-context-id ,
+ context-negotiation (WITH COMPONENTS {
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT
+ IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ transfer-syntax (CONSTRAINED BY {
+ OBJECT IDENTIFIER:
+ protectionReqd.
+ &protTransferSyntax})
+ }),
+ data-value (CONTAINING BaseType )
+
+ -- The data value encoded is a value of type BaseType
+ })
+}
+
+PROTECTED-Q{BaseType, PROTECTION-MAPPING:protectionReqd,
+ PROTECTION-MAPPING.&SecurityTransformation.&QualifierType:qualifier}
+ ::=
+ PROTECTED{BaseType, protectionReqd}
+ (CONSTRAINED BY {
+ protectionReqd.&SecurityTransformation.&QualifierType:qualifier
+ -- The value of qualifier must be made available to
+ -- the security transformation used
+ })
+
+-- BaseType is the type to be protected, and protectionReqd is an
+-- object of class PROTECTION-MAPPING. The use of PROTECTED requires
+-- the importation into the user's module of the PROTECTED parameterized
+-- type, together with the necessary PROTECTION-MAPPING object
+-- definition.
+-- *******************************************
+-- Notation for specifying protection mappings
+-- *******************************************
+PROTECTION-MAPPING ::= CLASS {
+ &SecurityTransformation SECURITY-TRANSFORMATION,
+ -- &SecurityTransformation specifies an ASN.1 object set of the
+ -- SECURITY-TRANSFORMATION class. Use of the particular
+ -- protection mapping implies use of one of the specified
+ -- transformations, with the choice being left to the
+ -- encoding system. Rules for selecting between these security
+ -- transformations may be specified in comments.
+ &protTransferSyntax OBJECT IDENTIFIER DEFAULT {joint-iso-itu-t
+ genericULS(20)
+ generalTransferSyntax(2)},
+ -- Identifies the particular protecting transfer syntax to
+ -- be used in an EMDEDDED PDV encoding for the embedded
+ -- option.
+ &bypassPermitted BOOLEAN DEFAULT FALSE
+ -- Indicates if bypassing of protection is permitted
+}
+WITH SYNTAX {
+ SECURITY-TRANSFORMATION &SecurityTransformation
+ [PROTECTING-TRANSFER-SYNTAX &protTransferSyntax]
+ [BYPASS-PERMITTED &bypassPermitted]
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ObjectIdentifiers.asn
new file mode 100644
index 0000000000..b4f91f50c5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ObjectIdentifiers.asn
@@ -0,0 +1,46 @@
+-- Module ObjectIdentifiers (X.830:04/1995)
+
+ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)} DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS All
+genericULS OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t genericULS(20)}
+
+-- Categories of information object
+modules OBJECT IDENTIFIER ::=
+ {genericULS 1}
+
+generalTransferSyntax OBJECT IDENTIFIER ::= {genericULS 2}
+
+specificTransferSyntax OBJECT IDENTIFIER ::= {genericULS 3}
+
+securityExchanges OBJECT IDENTIFIER ::= {genericULS 4}
+
+securityTransformations OBJECT IDENTIFIER ::= {genericULS 5}
+
+-- ASN.1 modules
+objectIdentifiers OBJECT IDENTIFIER ::= {modules 0}
+
+notation OBJECT IDENTIFIER ::= {modules 1}
+
+gulsSecurityExchanges OBJECT IDENTIFIER ::= {modules 2}
+
+gulsSecurityTransformations OBJECT IDENTIFIER ::= {modules 3}
+
+dirProtectionMappings OBJECT IDENTIFIER ::= {modules 4}
+
+gulsProtectionMappings OBJECT IDENTIFIER ::= {modules 5}
+
+seseAPDUs OBJECT IDENTIFIER ::= {modules 6}
+
+genericProtectingTransferSyntax OBJECT IDENTIFIER ::= {modules 7}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
+
+-- content of stack:
+--
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/OperationalBindingManagement.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/OperationalBindingManagement.asn
new file mode 100644
index 0000000000..2044feb155
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/OperationalBindingManagement.asn
@@ -0,0 +1,263 @@
+-- Module OperationalBindingManagement (X.501:08/1997)
+OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
+ opBindingManagement(18) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ directoryShadowAbstractService, hierarchicalOperationalBindings, dop,
+ directoryAbstractService, distributedOperations, enhancedSecurity
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ shadowOperationalBinding
+ FROM DirectoryShadowAbstractService directoryShadowAbstractService
+ hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
+ FROM HierarchicalOperationalBindings hierarchicalOperationalBindings
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ id-op-establishOperationalBinding, id-op-modifyOperationalBinding,
+ id-op-terminateOperationalBinding, id-err-operationalBindingError
+ FROM DirectoryOperationalBindingManagementProtocol dop
+ directoryBind, directoryUnbind, securityError, CommonResultsSeq,
+ SecurityParameters
+ FROM DirectoryAbstractService directoryAbstractService
+ OPTIONALLY-PROTECTED-SEQ{}
+ FROM EnhancedSecurity enhancedSecurity
+ AccessPoint
+ FROM DistributedOperations distributedOperations;
+
+--PROTECTED
+-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) }
+-- bind and unbind
+dSAOperationalBindingManagementBind OPERATION ::=
+ directoryBind
+
+dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind
+
+-- operations, arguments and results
+establishOperationalBinding OPERATION ::= {
+ ARGUMENT EstablishOperationalBindingArgument
+ RESULT EstablishOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-establishOperationalBinding
+}
+
+EstablishOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A initiates, or Role B initiates -
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ agreement
+ [6] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid [7] Validity DEFAULT {},
+ securityParameters [8] SecurityParameters OPTIONAL}}
+
+OperationalBindingID ::= SEQUENCE {identifier INTEGER,
+ version INTEGER
+}
+
+Validity ::= SEQUENCE {
+ validFrom [0] CHOICE {now [0] NULL,
+ time [1] Time} DEFAULT now:NULL,
+ validUntil
+ [1] CHOICE {explicitTermination [0] NULL,
+ time [1] Time
+ } DEFAULT explicitTermination:NULL
+}
+
+Time ::= CHOICE {utcTime UTCTime,
+ generalizedTime GeneralizedTime
+}
+
+EstablishOperationalBindingResult ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID OPTIONAL,
+ accessPoint [2] AccessPoint,
+ -- symmetric, Role A replies , or Role B replies
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-replies
+ [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-replies
+ [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ COMPONENTS OF CommonResultsSeq}}
+
+modifyOperationalBinding OPERATION ::= {
+ ARGUMENT ModifyOperationalBindingArgument
+ RESULT ModifyOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-modifyOperationalBinding
+}
+
+ModifyOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ accessPoint [2] AccessPoint OPTIONAL,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [3] OPERATIONAL-BINDING.&both.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [4] OPERATIONAL-BINDING.&roleA.&ModifyParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [5] OPERATIONAL-BINDING.&roleB.&ModifyParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ newBindingID [6] OperationalBindingID,
+ newAgreement
+ [7] OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}) OPTIONAL,
+ valid [8] Validity OPTIONAL,
+ securityParameters [9] SecurityParameters OPTIONAL}}
+
+ModifyOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newBindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ newAgreement
+ OPERATIONAL-BINDING.&Agreement
+ ({OpBindingSet}{@bindingType}),
+ valid Validity OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+terminateOperationalBinding OPERATION ::= {
+ ARGUMENT TerminateOperationalBindingArgument
+ RESULT TerminateOperationalBindingResult
+ ERRORS {operationalBindingError | securityError}
+ CODE id-op-terminateOperationalBinding
+}
+
+TerminateOperationalBindingArgument ::=
+ OPTIONALLY-PROTECTED-SEQ
+ {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
+ bindingID [1] OperationalBindingID,
+ -- symmetric, Role A initiates, or Role B initiates
+ initiator
+ CHOICE {symmetric
+ [2] OPERATIONAL-BINDING.&both.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleA-initiates
+ [3] OPERATIONAL-BINDING.&roleA.&TerminateParam
+ ({OpBindingSet}{@bindingType}),
+ roleB-initiates
+ [4] OPERATIONAL-BINDING.&roleB.&TerminateParam
+ ({OpBindingSet}{@bindingType})} OPTIONAL,
+ terminateAt [5] Time OPTIONAL,
+ securityParameters [6] SecurityParameters OPTIONAL}}
+
+TerminateOperationalBindingResult ::= CHOICE {
+ null [0] NULL,
+ protected
+ [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {bindingID OperationalBindingID,
+ bindingType
+ OPERATIONAL-BINDING.&id
+ ({OpBindingSet}),
+ terminateAt
+ GeneralizedTime OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+ }}
+}
+
+-- errors and parameters
+operationalBindingError ERROR ::= {
+ PARAMETER OPTIONALLY-PROTECTED-SEQ {OpBindingErrorParam}
+ CODE id-err-operationalBindingError
+}
+
+OpBindingErrorParam ::= SEQUENCE {
+ problem
+ [0] ENUMERATED {invalidID(0), duplicateID(1), unsupportedBindingType(2),
+ notAllowedForRole(3), parametersMissing(4),
+ roleAssignment(5), invalidStartTime(6), invalidEndTime(7),
+ invalidAgreement(8), currentlyNotDecidable(9),
+ modificationNotAllowed(10)},
+ bindingType [1] OPERATIONAL-BINDING.&id({OpBindingSet}) OPTIONAL,
+ agreementProposal
+ [2] OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType}) OPTIONAL,
+ retryAt [3] Time OPTIONAL,
+ COMPONENTS OF CommonResultsSeq
+}
+
+-- information object classes
+OPERATIONAL-BINDING ::= CLASS {
+ &Agreement ,
+ &Cooperation OP-BINDING-COOP,
+ &both OP-BIND-ROLE OPTIONAL,
+ &roleA OP-BIND-ROLE OPTIONAL,
+ &roleB OP-BIND-ROLE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ AGREEMENT &Agreement
+ APPLICATION CONTEXTS &Cooperation
+ [SYMMETRIC &both]
+ [ASYMMETRIC
+ [ROLE-A &roleA]
+ [ROLE-B &roleB]]
+ ID &id
+}
+
+OP-BINDING-COOP ::= CLASS {
+ &applContext APPLICATION-CONTEXT,
+ &Operations OPERATION OPTIONAL
+}WITH SYNTAX {&applContext
+ [APPLIES TO &Operations]
+}
+
+OP-BIND-ROLE ::= CLASS {
+ &establish BOOLEAN DEFAULT FALSE,
+ &EstablishParam OPTIONAL,
+ &modify BOOLEAN DEFAULT FALSE,
+ &ModifyParam OPTIONAL,
+ &terminate BOOLEAN DEFAULT FALSE,
+ &TerminateParam OPTIONAL
+}
+WITH SYNTAX {
+ [ESTABLISHMENT-INITIATOR &establish]
+ [ESTABLISHMENT-PARAMETER &EstablishParam]
+ [MODIFICATION-INITIATOR &modify]
+ [MODIFICATION-PARAMETER &ModifyParam]
+ [TERMINATION-INITIATOR &terminate]
+ [TERMINATION-PARAMETER &TerminateParam]
+}
+
+OpBindingSet OPERATIONAL-BINDING ::=
+ {shadowOperationalBinding | hierarchicalOperationalBinding |
+ nonSpecificHierarchicalOperationalBinding}
+
+END -- OperationalBindingManagement
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7.asn
new file mode 100644
index 0000000000..ac449b59c7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7.asn
@@ -0,0 +1,342 @@
+-- Module PKCS7 (X.420:06/1999)
+-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules.
+-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7.
+-- Extensions to PKCS#7 defined in RFC 2630 are included.
+-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive.
+PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7
+ module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT
+TAGS ::=
+BEGIN
+
+IMPORTS
+ -- Directory Information Framework
+ Attribute, Name
+ --==
+ FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
+ informationFramework(1) 3}
+ -- Directory Authentication Framework
+ AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList,
+ CertificateSerialNumber, HASH{}, SIGNED{}
+ --==
+ FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- In PKCS#7 the HASHED parameterised type applies the hash function to the
+-- contents octets component of a DER encoding of a value of the parameter.
+-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are
+-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework
+ENCRYPTED{ToBeEnciphered} ::=
+ OCTET STRING
+ (CONSTRAINED BY {
+ -- must be the result of applying an encipherment procedure to the contents octets component
+ -- of a definite-length BER-encoding of a value of --ToBeEnciphered})
+
+ContentInfo ::= SEQUENCE {
+ content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})
+}
+
+PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER
+
+PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
+ {data | signed-data | enveloped-data | signed-and-enveloped-data |
+ digested-data | encrypted-data | authenticated-data, ...}
+
+-- Data
+data PKCS7-CONTENT-TYPE ::= {Data
+ IDENTIFIED BY id-data
+}
+
+Data ::= OCTET STRING
+
+-- Signed Data
+signed-data PKCS7-CONTENT-TYPE ::= {SignedData
+ IDENTIFIED BY id-signed-data
+}
+
+SignedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+}
+
+Version ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+CertificateSet ::= SET OF CertificateChoice
+
+CertificateChoice ::= CHOICE {
+ certificate Certificate,
+ extendedCertificate [0] ExtendedCertificate, -- Obsolete
+ attributeCertificate [1] AttributeCertificate
+}
+
+CertificateRevocationLists ::= SET OF CertificateList
+
+SignerInfos ::= SET OF SignerInfo
+
+SignerInfo ::= SEQUENCE {
+ version Version,
+ signerIdentifier SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] Attributes OPTIONAL
+}
+
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [2] SubjectKeyIdentifier
+}
+
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber
+}
+
+SubjectKeyIdentifier ::= OCTET STRING
+
+DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedDigest ::= ENCRYPTED{DigestInfo}
+
+DigestInfo ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ digest Digest
+}
+
+Digest ::=
+ HASH
+ {CHOICE {content
+ [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}),
+ authenticated-attributes [0] EXPLICIT Attributes}}
+
+-- Enveloped Data
+enveloped-data PKCS7-CONTENT-TYPE ::= {
+ EnvelopedData
+ IDENTIFIED BY id-enveloped-data
+}
+
+EnvelopedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+OriginatorInfo ::= SEQUENCE {
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL
+}
+
+RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
+
+RecipientInfo ::= CHOICE {
+ keyTransportRecipientInfo KeyTransportRecipientInfo,
+ keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo,
+ keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo
+}
+
+KeyTransportRecipientInfo ::= SEQUENCE {
+ version Version,
+ recipientIdentifier RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+}
+
+KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+EncryptedKey ::= OCTET STRING
+
+KeyAgreementRecipientInfo ::= SEQUENCE {
+ version Version,
+ originator [0] OriginatorIdentifierOrKey,
+ userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ recipientEncryptedKeys RecipientEncryptedKeys
+}
+
+OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorPublicKey [1] OriginatorPublicKey
+}
+
+OriginatorPublicKey ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+}
+
+RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
+
+RecipientEncryptedKey ::= SEQUENCE {
+ recipientIdentifier KeyAgreementRecipientIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyAgreementRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ recipientKeyIdentifier [0] RecipientKeyIdentifier
+}
+
+RecipientKeyIdentifier ::= SEQUENCE {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+OtherKeyAttribute ::= SEQUENCE {
+ keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}),
+ keyAttribute
+ OTHER-KEY-ATTRIBUTE.&Type
+ ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL
+}
+
+OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER
+
+OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::=
+ {...}
+
+KeyEncryptionKeyRecipientInfo ::= SEQUENCE {
+ version Version,
+ keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+}
+
+KeyEncryptionKeyIdentifier ::= SEQUENCE {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ otherKeyAttribute OtherKeyAttribute OPTIONAL
+}
+
+EncryptedContentInfo ::= SEQUENCE {
+ contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}),
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent
+ [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})}
+ OPTIONAL
+}
+
+ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+-- Signed and Enveloped Data
+signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= {
+ SignedAndEnvelopedData
+ IDENTIFIED BY id-signed-and-enveloped-data
+}
+
+SignedAndEnvelopedData ::= SEQUENCE {
+ version Version,
+ recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encryptedContentInfo EncryptedContentInfo,
+ certificates [0] CertificateSet OPTIONAL,
+ crls [1] CertificateRevocationLists OPTIONAL,
+ signerInfos
+ SET SIZE (1..MAX) OF
+ SignerInfo
+ (WITH COMPONENTS {
+ ...,
+ signerIdentifier (WITH COMPONENTS {
+ issuerAndSerialNumber PRESENT
+ }),
+ authenticatedAttributes ABSENT,
+ unauthenticatedAttributes ABSENT
+ })
+}
+
+-- Digested Data
+digested-data PKCS7-CONTENT-TYPE ::= {
+ DigestedData
+ IDENTIFIED BY id-digested-data
+}
+
+DigestedData ::= SEQUENCE {
+ version Version,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ contentInfo ContentInfo,
+ digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})}
+}
+
+-- Encrypted Data
+encrypted-data PKCS7-CONTENT-TYPE ::= {
+ EncryptedData
+ IDENTIFIED BY id-encrypted-data
+}
+
+EncryptedData ::= SEQUENCE {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttributes [1] Attributes OPTIONAL
+}
+
+-- Authenticated Data
+authenticated-data PKCS7-CONTENT-TYPE ::= {
+ AuthenticatedData
+ IDENTIFIED BY id-authenticated-data
+}
+
+AuthenticatedData ::= SEQUENCE {
+ version Version,
+ originatorInfo [0] OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ contentInfo ContentInfo,
+ authenticatedAttributes [2] Attributes OPTIONAL,
+ messageAuthenticationCode MessageAuthenticationCode,
+ unauthenticatedAttributes [3] Attributes OPTIONAL
+}
+
+MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier
+
+MessageAuthenticationCode ::= OCTET STRING
+
+-- Object Identifiers
+id-pkcs OBJECT IDENTIFIER ::=
+ {iso member-body usa(840) rsadsi(113549) pkcs(1)}
+
+id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1}
+
+id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2}
+
+id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3}
+
+id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4}
+
+id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5}
+
+id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6}
+
+id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2}
+
+-- Definitions from PKCS#6
+ExtendedCertificate ::=
+ SIGNED{ExtendedCertificateInfo}
+
+ExtendedCertificateInfo ::= SEQUENCE {
+ version Version,
+ certificate Certificate,
+ attributes Attributes
+}
+
+Attributes ::= SET OF Attribute
+
+END -- of PKCS#7
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7BodyPartType.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7BodyPartType.asn
new file mode 100644
index 0000000000..525ee3c5ec
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/PKCS7BodyPartType.asn
@@ -0,0 +1,31 @@
+-- Module PKCS7BodyPartType (X.420:06/1999)
+PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ pkcs7-body-part-type(16)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+IMPORTS
+ -- PKCS#7
+ ContentInfo
+ FROM PKCS7 {iso(1) member-body(2) usa(840) rsadsi(113549) pkcs(1)
+ 7 module(0)}
+ -- module not formally defined in the PKCS#7document, therefore defined in Annex O
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-et-pkcs7
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- PKCS7 body part
+pkcs7-body-part EXTENDED-BODY-PART-TYPE ::= {
+ DATA {ContentInfo
+ IDENTIFIED BY id-et-pkcs7}
+}
+
+END -- of PKCS7BodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Protected-Part-Descriptors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Protected-Part-Descriptors.asn
new file mode 100644
index 0000000000..5512f1590b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Protected-Part-Descriptors.asn
@@ -0,0 +1,74 @@
+-- Module Protected-Part-Descriptors (T.415:03/1993)
+
+Protected-Part-Descriptors {2 8 1 5 13} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor,
+ Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor;
+
+IMPORTS Protected-Part-Identifier
+ FROM Identifiers-and-Expressions; -- see 7.8
+
+Sealed-Doc-Prof-Descriptor ::= SEQUENCE {
+ sealed-doc-prof-identifier Protected-Part-Identifier,
+ sealed-doc-prof-information Document-Profile-Attribute-Names
+}
+
+Document-Profile-Attribute-Names ::= BIT STRING {
+ generic-layout-structure(0), specific-layout-structure(1),
+ generic-logical-structure(2), specific-logical-structure(3),
+ layout-styles(4), presentation-styles(5), sealed-profiles(6),
+ enciphered-profiles(7), pre-enciphered-body-parts(8),
+ post-enciphered-body-parts(9), external-document-class(10),
+ resource-document(11), resources(12), document-application-profile(13),
+ document-application-profile-defaults(14), document-architecture-class(15),
+ content-architecture-classes(16), interchange-format-class(17),
+ oda-version(18), alternative-feature-sets(19), profile-character-sets(20),
+ comments-character-sets(21), alternative-representation-character-sets(22),
+ page-dimensions(23), medium-types(24), layout-paths(25), protections(26),
+ block-alignments(27), fill-orders(28), transparencies(29), colours(30),
+ colours-of-layout-object(31), object-colour-tables(32),
+ content-background-colours(33), content-foreground-colours(34),
+ content-colour-tables(35), borders(36), page-positions(37),
+ types-of-coding(38), coding-attributes(39), presentation-features(40),
+ number-of-objects-per-page(41), unit-scaling(42), fonts-list(43),
+ colour-characteristics(44), colour-spaces-list(45),
+ assured-reproduction-areas(86), title(46), subject(47),
+ document-reference(48), document-type(49), abstract(50), keywords(51),
+ document-date-and-time(52), creation-date-and-time(53),
+ local-filing-date-and-time(54), expiry-date-and-time(55),
+ start-date-and-time(56), purge-date-and-time(57), release-date-and-time(58),
+ revision-history(59), organizations(60), preparers(61), owners(62),
+ authors(63), copyright(64), status(65), user-specific-codes(66),
+ distribution-list(67), additional-information(68),
+ references-to-other-documents(69), superseded-documents(70),
+ local-file-references(71), document-size(72), number-of-pages(73),
+ languages(74), authorization(75), security-classification(76),
+ access-rights(77), sealed-information-encoding(78), oda-security-label(79),
+ sealed-document-profiles(80), pre-sealed-document-body-parts(81),
+ post-sealed-document-body-parts(82), enciphered-document-profiles(83),
+ pre-enciphered-document-body-parts(84),
+ post-enciphered-document-body-parts(85)}
+
+Enciphered-Doc-Prof-Descriptor ::= SEQUENCE {
+ enciphered-doc-prof-identifier Protected-Part-Identifier,
+ enciphered-doc-prof-information Enciphered-Information
+}
+
+Preenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ preenciphered-bodypart-identifier Protected-Part-Identifier,
+ preenciphered-bodypart-info Enciphered-Information
+}
+
+Postenciphered-Bodypart-Descriptor ::= SEQUENCE {
+ postenciphered-bodypart-identifier Protected-Part-Identifier,
+ postenciphered-bodypart-info Enciphered-Information
+}
+
+Enciphered-Information ::= OCTET STRING
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ProtocolObjectIdentifiers.asn
new file mode 100644
index 0000000000..d6e88a2e47
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/ProtocolObjectIdentifiers.asn
@@ -0,0 +1,140 @@
+-- Module ProtocolObjectIdentifiers (X.519 TC2:08/1997)
+
+ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1)
+ protocolObjectIdentifiers(4) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ id-rosObject, id-contract, id-package, id-ac, id-as
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3};
+
+-- ROS Objects
+id-rosObject-dua OBJECT IDENTIFIER ::= {id-rosObject 1}
+
+id-rosObject-directory OBJECT IDENTIFIER ::= {id-rosObject 2}
+
+id-rosObject-dapDSA OBJECT IDENTIFIER ::= {id-rosObject 3}
+
+id-rosObject-dspDSA OBJECT IDENTIFIER ::= {id-rosObject 4}
+
+id-rosObject-dopDSA OBJECT IDENTIFIER ::= {id-rosObject 7}
+
+id-rosObject-initiatingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 8}
+
+id-rosObject-respondingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 9}
+
+id-rosObject-initiatingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 10}
+
+id-rosObject-respondingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 11}
+
+-- contracts
+id-contract-dap OBJECT IDENTIFIER ::= {id-contract 1}
+
+id-contract-dsp OBJECT IDENTIFIER ::= {id-contract 2}
+
+id-contract-shadowConsumer OBJECT IDENTIFIER ::= {id-contract 3}
+
+id-contract-shadowSupplier OBJECT IDENTIFIER ::= {id-contract 4}
+
+id-contract-dop OBJECT IDENTIFIER ::= {id-contract 5}
+
+-- packages
+id-package-read OBJECT IDENTIFIER ::= {id-package 1}
+
+id-package-search OBJECT IDENTIFIER ::= {id-package 2}
+
+id-package-modify OBJECT IDENTIFIER ::= {id-package 3}
+
+id-package-chainedRead OBJECT IDENTIFIER ::= {id-package 4}
+
+id-package-chainedSearch OBJECT IDENTIFIER ::= {id-package 5}
+
+id-package-chainedModify OBJECT IDENTIFIER ::= {id-package 6}
+
+id-package-shadowConsumer OBJECT IDENTIFIER ::= {id-package 7}
+
+id-package-shadowSupplier OBJECT IDENTIFIER ::= {id-package 8}
+
+id-package-operationalBindingManagement OBJECT IDENTIFIER ::= {id-package 9}
+
+id-package-dapConnection OBJECT IDENTIFIER ::= {id-package 10}
+
+id-package-dspConnection OBJECT IDENTIFIER ::= {id-package 11}
+
+id-package-dispConnection OBJECT IDENTIFIER ::= {id-package 12}
+
+id-package-dopConnection OBJECT IDENTIFIER ::= {id-package 13}
+
+-- application contexts
+id-ac-directoryAccessAC OBJECT IDENTIFIER ::=
+ {id-ac 1}
+
+id-ac-directorySystemAC OBJECT IDENTIFIER ::= {id-ac 2}
+
+id-ac-directoryOperationalBindingManagementAC OBJECT IDENTIFIER ::= {id-ac 3}
+
+id-ac-shadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 4}
+
+id-ac-shadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 5}
+
+id-ac-reliableShadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 6}
+
+id-ac-reliableShadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 7}
+
+id-ac-shadowSupplierInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 8}
+
+id-ac-shadowConsumerInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 9}
+
+id-ac-directoryAccessWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 10}
+
+id-ac-directorySystemWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 11}
+
+id-ac-shadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 12}
+
+id-ac-shadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 13}
+
+id-ac-reliableShadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 14}
+
+id-ac-reliableShadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 15}
+
+id-ac-directoryOperationalBindingManagementWith2or3seAC OBJECT IDENTIFIER ::=
+ {id-ac 16}
+
+-- ASEs (obsolete)
+-- id-ase-readASE OBJECT IDENTIFIER ::= {id-ase 1}
+-- id-ase-searchASE OBJECT IDENTIFIER ::= {id-ase 2}
+-- id-ase-modifyASE OBJECT IDENTIFIER ::= {id-ase 3}
+-- id-ase-chainedReadASE OBJECT IDENTIFIER ::= {id-ase 4}
+-- id-ase-chainedSearchASE OBJECT IDENTIFIER ::= {id-ase 5}
+-- id-ase-chainedModifyASE OBJECT IDENTIFIER ::= {id-ase 6}
+-- id-ase-operationalBindingManagementASE OBJECT IDENTIFIER ::= {id-ase 7}
+-- id-ase-shadowConsumerASE OBJECT IDENTIFIER ::= {id-ase 8}
+-- id-ase-shadowSupplierASE OBJECT IDENTIFIER ::= {id-ase 9}
+-- abstract syntaxes
+id-as-directoryAccessAS OBJECT IDENTIFIER ::=
+ {id-as 1}
+
+id-as-directorySystemAS OBJECT IDENTIFIER ::= {id-as 2}
+
+id-as-directoryShadowAS OBJECT IDENTIFIER ::= {id-as 3}
+
+id-as-directoryOperationalBindingManagementAS OBJECT IDENTIFIER ::= {id-as 4}
+
+id-as-directoryReliableShadowAS OBJECT IDENTIFIER ::= {id-as 5}
+
+id-as-reliableShadowBindingAS OBJECT IDENTIFIER ::= {id-as 6}
+
+id-as-2or3se OBJECT IDENTIFIER ::= {id-as 7}
+
+END -- ProtocolObjectIdentifiers
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
new file mode 100644
index 0000000000..258c5f0b23
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn
@@ -0,0 +1,75 @@
+-- Module Raster-Gr-Coding-Attributes (T.417:03/1993)
+
+Raster-Gr-Coding-Attributes {2 8 1 7 3} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Gr-Coding-Attributes, Compression, Tile-Type,
+ Bits-Per-Colour-Component, Subsampling;
+
+IMPORTS Coordinate-Pair
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2};
+
+Raster-Gr-Coding-Attributes ::= SET {
+ number-of-pels-per-line [0] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines [1] IMPLICIT INTEGER OPTIONAL,
+ compression [2] IMPLICIT Compression OPTIONAL,
+ number-of-discarded-pels [3] IMPLICIT INTEGER OPTIONAL,
+ bits-per-colour-component [4] Bits-Per-Colour-Component OPTIONAL,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)} OPTIONAL,
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [8] IMPLICIT Coordinate-Pair OPTIONAL,
+ tile-types [9] IMPLICIT SEQUENCE OF Tile-Type OPTIONAL,
+ subsampling [10] IMPLICIT Subsampling OPTIONAL,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ baseline(0), huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-extended-sequential-DCT(9),
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)} OPTIONAL,
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ -- basic and default value is "associated".
+ jbig-differential-layer
+ [17] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)}
+ OPTIONAL,
+ number-of-lines-per-stripe [18] IMPLICIT INTEGER OPTIONAL
+}
+
+Compression ::= INTEGER {uncompressed(0), compressed(1)}
+
+Tile-Type ::= INTEGER {
+ null-background(0), null-foreground(1), t6-encoded(2),
+ t4-one-dimensional-encoded(3), t4-two-dimensional-encoded(4),
+ bitmap-encoded(5), t6-encoded-msb(6), t4-one-dimensional-encoded-msb(7),
+ t4-two-dimensional-encoded-msb(8), jbig-bits-per-component-eq-1(9),
+ jpeg(10), jbig-bits-per-component-gr-1(11)}
+
+Bits-Per-Colour-Component ::= CHOICE {
+ single-integer INTEGER,
+ component-list SEQUENCE OF INTEGER
+}
+
+Subsampling ::= OCTET STRING
+
+-- The value OCTET STRING shall be chosen from the
+-- following table:
+-- Semantic Meaning JPEG notations Octet strings
+-- 4:1:1 ((2,2),(1,1),(1,1)) '221111'H
+-- 2:1:1 or 4:2:2 ((2,1),(1,1),(1,1)) '211111'H
+-- 1:1:1 ((1,1),(1,1),(1,1)) '111111'H
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
new file mode 100644
index 0000000000..c8f3a2ff33
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn
@@ -0,0 +1,92 @@
+-- Module Raster-Gr-Presentation-Attributes (T.417:03/1993)
+
+Raster-Gr-Presentation-Attributes {2 8 1 7 2} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Raster-Graphics-Attributes, Clipping, Measure-Pair, One-Of-Four-Angles,
+ One-Of-Two-Angles, Pel-Transmission-Density, Pel-Spacing, Spacing-Ratio,
+ Image-Dimensions, Coordinate-Pair;
+
+Raster-Graphics-Attributes ::= SET {
+ pel-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL,
+ line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL,
+ pel-transmission-density [2] IMPLICIT Pel-Transmission-Density OPTIONAL,
+ initial-offset [3] IMPLICIT Measure-Pair OPTIONAL,
+ clipping [4] IMPLICIT Clipping OPTIONAL,
+ pel-spacing [5] Pel-Spacing OPTIONAL,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio OPTIONAL,
+ image-dimensions [7] Image-Dimensions OPTIONAL
+}
+
+One-Of-Four-Angles ::= INTEGER {
+ d0(0), -- d0
+ d90(1), -- d90
+ d180(2), --d180
+ d270(3) -- d270--}
+
+One-Of-Two-Angles ::= INTEGER {d90(1), -- d90
+ d270(3) -- d270 --}
+
+Pel-Transmission-Density ::= INTEGER {
+ p5(2), -- 5 BMU (240 pels/25.4 mm)
+ p4(3), -- 4 BMU (300 pels/25.4 mm)
+ p3(4), -- 3 BMU (400 pels/25.4 mm)
+ p2(5), -- 2 BMU (600 pels/25.4 mm)
+ p1(6), -- 1 BMU (1200 pels/25.4 mm)
+ colour-grey-scale-p12(10), -- 12 BMU (100 pels/25.4 mm)
+ colour-grey-scale-p6(11), -- 6 BMU (200 pels/25.4 mm)
+ colour-grey-scale-p4(13), -- 4 BMU (300 pels/25.4 mm)
+ colour-grey-scale-p3(14), -- 3 BMU (400 pels/25.4 mm)
+ colour-grey-scale-p2(15), -- 2 BMU (600 pels/25.4 mm)
+ colour-grey-scale-p1(16), -- 1 BMU (1200 pels/25.4 mm)
+ p6(1)} -- 6 BMU (200 pels/25.4 mm)
+
+-- default and basic value is p6 (1)
+Measure-Pair ::= SEQUENCE {
+ horizontal [0] IMPLICIT INTEGER,
+ vertical [0] IMPLICIT INTEGER
+}
+
+Clipping ::= SEQUENCE {
+ first-coordinate-pair [0] IMPLICIT Coordinate-Pair OPTIONAL,
+ second-coordinate-pair [1] IMPLICIT Coordinate-Pair OPTIONAL
+}
+
+Coordinate-Pair ::= SEQUENCE {x-coordinate INTEGER,
+ y-coordinate INTEGER
+}
+
+Pel-Spacing ::= CHOICE {
+ spacing
+ [0] IMPLICIT SEQUENCE {length [0] INTEGER,
+ pel-spaces [0] INTEGER},
+ null [1] IMPLICIT NULL
+}
+
+Spacing-Ratio ::= SEQUENCE {
+ line-spacing-value INTEGER,
+ pel-spacing-value INTEGER
+}
+
+Image-Dimensions ::= CHOICE {
+ width-controlled
+ [0] IMPLICIT SEQUENCE {minimum-width [0] INTEGER,
+ preferred-width [0] INTEGER},
+ height-controlled
+ [1] IMPLICIT SEQUENCE {minimum-height INTEGER,
+ preferred-height INTEGER},
+ area-controlled
+ [2] IMPLICIT SEQUENCE {minimum-width INTEGER,
+ preferred-width INTEGER,
+ minimum-height INTEGER,
+ preferred-height INTEGER,
+ aspect-ratio-flag INTEGER {fixed(0), variable(1)}
+ },
+ automatic [3] IMPLICIT NULL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
new file mode 100644
index 0000000000..365144ff35
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn
@@ -0,0 +1,76 @@
+-- Module Raster-Gr-Profile-Attributes (T.417:03/1993)
+
+Raster-Gr-Profile-Attributes {2 8 1 7 4} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Ra-Gr-Presentation-Feature, Ra-Gr-Coding-Attribute,
+ Raster-Gr-Content-Defaults;
+
+IMPORTS
+ One-Of-Four-Angles, One-Of-Two-Angles, Pel-Transmission-Density,
+ Measure-Pair, Clipping, Pel-Spacing, Spacing-Ratio, Image-Dimensions,
+ Coordinate-Pair, Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2}
+ Compression, Tile-Type, Bits-Per-Colour-Component, Subsampling
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3};
+
+Ra-Gr-Coding-Attribute ::= CHOICE {
+ compression [0] IMPLICIT Compression,
+ bits-per-colour-component [4] Bits-Per-Colour-Component,
+ interleaving-format
+ [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)},
+ number-of-pels-per-tile-line [6] IMPLICIT INTEGER,
+ number-of-lines-per-tile [7] IMPLICIT INTEGER,
+ tiling-offset [8] IMPLICIT Coordinate-Pair,
+ tiling-types [9] IMPLICIT Tile-Type,
+ subsampling [10] IMPLICIT Subsampling,
+ jpeg-coding-mode
+ [11] IMPLICIT INTEGER {-- Huffman coding
+ huffman-baseline(0),
+ huffman-extended-sequential-DCT(1),
+ huffman-progressive-DCT(2),
+ huffman-spatial-lossless(3),
+ -- arithmetic coding
+ arithmetic-progressive-DCT(10),
+ arithmetic-spatial-lossless(11)},
+ jpeg-quantization-table
+ [12] IMPLICIT INTEGER {associated(0), default(1)},
+ jpeg-huffman-table
+ [13] IMPLICIT INTEGER {associated(0), preferred(1)},
+ jbig-tp-for-base-layer [14] IMPLICIT INTEGER {not-used(0), used(1)},
+ jbig-differential-layer
+ [15] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1),
+ dl-encoded-with-tp(2), dl-encoded-with-dp(3),
+ dl-encoded-with-dp-and-private-dp-table(4),
+ dl-encoded-with-tp-and-dp(5),
+ dl-encoded-with-tp-dp-and-private-dp-table(6)},
+ number-of-lines-per-stripe [16] IMPLICIT INTEGER
+}
+
+Ra-Gr-Presentation-Feature ::= CHOICE {
+ initial-offset [3] IMPLICIT Measure-Pair,
+ clipping [4] IMPLICIT Clipping,
+ pel-spacing [5] Pel-Spacing,
+ spacing-ratio [6] IMPLICIT Spacing-Ratio,
+ image-dimensions [7] Image-Dimensions,
+ pel-path [9] IMPLICIT One-Of-Four-Angles,
+ line-progression [10] IMPLICIT One-Of-Two-Angles,
+ pel-transmission-density [11] IMPLICIT Pel-Transmission-Density
+}
+
+-- The tag values used above preserve compatibility
+-- with Group 4 Class I facsimile data streams.
+Raster-Gr-Content-Defaults ::= SET {
+ COMPONENTS OF Raster-Graphics-Attributes,
+ compression [8] IMPLICIT Compression OPTIONAL,
+ number-of-pels-per-tile-line [11] IMPLICIT INTEGER OPTIONAL,
+ number-of-lines-per-tile [12] IMPLICIT INTEGER OPTIONAL,
+ tiling-offset [13] IMPLICIT Coordinate-Pair OPTIONAL,
+ tiling-type [14] IMPLICIT Tile-Type OPTIONAL
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Reliable-Transfer-APDU.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Reliable-Transfer-APDU.asn
new file mode 100644
index 0000000000..d00570b7e7
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Reliable-Transfer-APDU.asn
@@ -0,0 +1,132 @@
+-- Module Reliable-Transfer-APDU (X.228:11/1988)
+
+Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ rTSE, rTSE-abstract-syntax, RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu; -- for use by Presentation Layer only
+
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+OPEN ::= CLASS {&Type
+}WITH SYNTAX {TYPE &Type
+}
+
+rTSE-abstract-syntax OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t reliable-transfer(3) abstract-syntax(2)}
+
+rTSE CONTRACT ::= {ID {joint-iso-itu-t reliable-transfer(3) aseID(1)}
+}
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+-- Tags [19], [20], [21] are used by the values of the UNBIND macro of the RO-notation of
+-- Recommendation X.219. Tags [0] to [15] inclusive are reserved for the
+-- use by the APDUs of ROSE (Recommendation X229). Any occurrence of
+-- ANY in this module shall be replaced by a single ASN. 1 type (if any) in an RTSE-user
+-- protocol specification. In addition any RTSE-user protocol sharing a single named
+-- abstract syntax with the RTSE protocol shall use distinct tags for the single
+-- presentation data values in the user data parameters of the RT-CLOSE (if any) and
+-- RT- TRANSFER services. These tags shall be distinct from the tag values [16], [17],
+-- [18] and [22] and from the ASN. 1 types INTEGER and OCTET STRING.
+-- Note - The above conditions are ensured, if the RTSE-user protocol specification uses the
+-- RO-notation of Recommendation X229.
+-- In X.410-1984 mode only the components of RTORQapdu, RTOACapdu, RTORJapdu
+-- and RTABapdu are used by the presentation layer. This has the effect that the following
+-- APDU types appear in the protocol in X.410-1984 mode instead of the alternative types
+-- of the RTSE-apdus type:
+-- RTORQapdu
+-- RTOACapdu
+-- RTORJapdu
+-- RTTPapdu
+-- RTTRapdu
+-- RTABapdu
+RTORQapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ dialogueMode
+ [2] IMPLICIT INTEGER {monologue(0), twa(1)} DEFAULT monologue,
+ connectionDataRQ [3] ConnectionData,
+ applicationProtocol
+ [4] IMPLICIT INTEGER OPTIONAL --solely in X.410-1984 mode--
+}
+
+RTOACapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ connectionDataAC [2] ConnectionData
+}
+
+RTORJapdu ::= SET {
+ refuseReason [0] IMPLICIT RefuseReason OPTIONAL, -- only in X.410-1984 mode
+ userDataRJ
+ [1] OPEN.&Type OPTIONAL -- RTSE user data, only in normal mode--
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] OPEN.&Type OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+ConnectionData ::= CHOICE {
+ open [0] OPEN.&Type, -- RTSE user data
+
+ -- this alternative is encoded as [0] IMPLICIT NULL
+ -- in the case of absence of RTSE user data,
+ recover [1] IMPLICIT SessionConnectionIdentifier
+}
+
+SessionConnectionIdentifier ::= SEQUENCE {
+ callingSSuserReference CallingSSuserReference,
+ commonReference CommonReference,
+ additionalReferenceInformation
+ [0] IMPLICIT AdditionalReferenceInformation OPTIONAL
+}
+
+RefuseReason ::= INTEGER {
+ rtsBusy(0), cannotRecover(1), validationFailure(2),
+ unacceptableDialogueMode(3)}
+
+CallingSSuserReference ::= CHOICE {
+ t61String T61String -- solely in X.410-1984 --,
+ octetString OCTET STRING -- solely in normal mode --
+}
+
+CommonReference ::= UTCTime
+
+AdditionalReferenceInformation ::= T61String
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
new file mode 100644
index 0000000000..4a59cc403b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn
@@ -0,0 +1,103 @@
+-- Module Remote-Operations-Abstract-Syntaxes (X.882:07/1994)
+
+Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t remote-operations(4)
+ remote-operations-abstract-syntaxes(12) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION-PACKAGE
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, noInvokeId, ROS{}, Bind{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ ACSE-apdu
+ FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0)
+ version1(1)}
+ RTORQapdu, RTOACapdu, RTORJapdu
+ FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+ combine{}, AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)}
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] TYPE-IDENTIFIER.&Type
+ OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+acse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ ACSE-apdu
+ IDENTIFIED BY
+ {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
+ version1(1)}
+}
+
+rtse-abstract-syntax ABSTRACT-SYNTAX ::= {
+ RTSE-apdus
+ IDENTIFIED BY {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+}
+
+AllValues{APPLICATION-CONTEXT:ac} ::= CHOICE {
+ bind Bind{ac.&associationContract.&connection.&bind},
+ unbind Unbind{ac.&associationContract.&connection.&unbind},
+ ros-singleAS
+ ROS-SingleAS{{ROSEInvokeIds},
+ combine{{ac.&associationContract.&OperationsOf |
+ ac.&associationContract.&InitiatorConsumerOf |
+ ac.&associationContract.&ResponderConsumerOf}, {
+ ...},
+ {-- Information Object of class OPERATION-PACKAGE to be defined -- }}}
+}
+
+ROS-SingleAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS{{ROSEInvokeIds}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{ROSEInvokeIds}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+ROSEInvokeIds InvokeId ::= {ALL EXCEPT noInvokeId}
+
+END -- end of the remote-operations-abstract-syntaxes module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000000..e55ea3c05e
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,163 @@
+-- Module Remote-Operations-Generic-ROS-PDUs (X.880:07/1994)
+
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+ generic-ROS-PDUs(6) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+ CHOICE {
+ invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
+ returnResult [2] ReturnResult{{Returnable}},
+ returnError [3] ReturnError{{Errors {{Returnable}}}},
+ reject [4] Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId(InvokeIdSet)
+ (CONSTRAINED BY { -- must be unambiguous --} !
+ RejectProblem:invoke-duplicateInvocation),
+ linkedId
+ CHOICE {present [0] IMPLICIT present < InvokeId,
+ absent [1] IMPLICIT NULL
+ }
+ (CONSTRAINED BY { -- must identify an outstanding operation --} !
+ RejectProblem:invoke-unrecognizedLinkedId)
+ (CONSTRAINED BY { -- which has one or more linked operations--} !
+ RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+ opcode
+ OPERATION.&operationCode
+ ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+ argument
+ OPERATION.&ArgumentType
+ ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+ ...,
+ linkedId ABSENT
+ } |
+ WITH COMPONENTS {
+ ...,
+ linkedId PRESENT,
+ opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+ } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnResult-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns a result --} !
+ RejectProblem:returnResult-resultResponseUnexpected),
+ result
+ SEQUENCE {opcode
+ OPERATION.&operationCode({Operations})
+ (CONSTRAINED BY { -- identified by invokeId --} !
+ RejectProblem:returnResult-unrecognizedInvocation),
+ result
+ OPERATION.&ResultType
+ ({Operations}{@.opcode} !
+ RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+ invokeId
+ InvokeId
+ (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+ RejectProblem:returnError-unrecognizedInvocation)
+ (CONSTRAINED BY { -- which returns an error --} !
+ RejectProblem:returnError-errorResponseUnexpected),
+ errcode
+ ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+ (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+ } !RejectProblem:returnError-unexpectedError),
+ parameter
+ ERROR.&ParameterType
+ ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+ OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+ invokeId InvokeId,
+ problem
+ CHOICE {general [0] GeneralProblem,
+ invoke [1] InvokeProblem,
+ returnResult [2] ReturnResultProblem,
+ returnError [3] ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+ unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+ duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+ resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+ linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+ unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+ unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+ general-unrecognizedPDU(0), general-mistypedPDU(1),
+ general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+ invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+ invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+ invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+ invoke-unexpectedLinkedOperation(17),
+ returnResult-unrecognizedInvocation(20),
+ returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+ returnError-unrecognizedInvocation(30),
+ returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+ returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+ bind-invoke [16] OPERATION.&ArgumentType({operation}),
+ bind-result [17] OPERATION.&ResultType({operation}),
+ bind-error [18] OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+ unbind-invoke [19] OPERATION.&ArgumentType({operation}),
+ unbind-result [20] OPERATION.&ResultType({operation}),
+ unbind-error [21] OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
new file mode 100644
index 0000000000..671cf0e780
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn
@@ -0,0 +1,36 @@
+-- Module Remote-Operations-Information-Objects-extensions (X.881:07/1994)
+
+Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+APPLICATION-CONTEXT ::= CLASS {
+ &associationContract CONTRACT,
+ &associationRealization REALIZATION OPTIONAL,
+ &transferRealization REALIZATION,
+ &AbstractSyntaxes ABSTRACT-SYNTAX,
+ &applicationContextName OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ CONTRACT &associationContract
+ [ESTABLISHED BY &associationRealization]
+ INFORMATION TRANSFER BY &transferRealization
+ ABSTRACT SYNTAXES &AbstractSyntaxes
+ APPLICATION CONTEXT NAME &applicationContextName
+}
+
+REALIZATION ::= TYPE-IDENTIFIER
+
+-- information objects ABSTRACT-SYNTAX and TYPE-IDENTIFIER are defined in ITU-T Rec. X.681 |
+-- ISO/IEC 8824-2
+END -- end of the information-objects-extensions module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000000..b497e4126b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,123 @@
+-- Module Remote-Operations-Information-Objects (X.880:07/1994)
+
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+ informationObjects(5) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ emptyBind, emptyUnbind
+ FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+ remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+ &ArgumentType OPTIONAL,
+ &argumentTypeOptional BOOLEAN OPTIONAL,
+ &returnResult BOOLEAN DEFAULT TRUE,
+ &ResultType OPTIONAL,
+ &resultTypeOptional BOOLEAN OPTIONAL,
+ &Errors ERROR OPTIONAL,
+ &Linked OPERATION OPTIONAL,
+ &synchronous BOOLEAN DEFAULT FALSE,
+ &alwaysReturns BOOLEAN DEFAULT TRUE,
+ &InvokePriority Priority OPTIONAL,
+ &ResultPriority Priority OPTIONAL,
+ &operationCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [ARGUMENT &ArgumentType
+ [OPTIONAL &argumentTypeOptional]]
+ [RESULT &ResultType
+ [OPTIONAL &resultTypeOptional]]
+ [RETURN RESULT &returnResult]
+ [ERRORS &Errors]
+ [LINKED &Linked]
+ [SYNCHRONOUS &synchronous]
+ [ALWAYS RESPONDS &alwaysReturns]
+ [INVOKE PRIORITY &InvokePriority]
+ [RESULT-PRIORITY &ResultPriority]
+ [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+ &ParameterType OPTIONAL,
+ &parameterTypeOptional BOOLEAN OPTIONAL,
+ &ErrorPriority Priority OPTIONAL,
+ &errorCode Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [PARAMETER &ParameterType
+ [OPTIONAL &parameterTypeOptional]]
+ [PRIORITY &ErrorPriority]
+ [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+ &Both OPERATION OPTIONAL,
+ &Consumer OPERATION OPTIONAL,
+ &Supplier OPERATION OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+ [OPERATIONS &Both]
+ [CONSUMER INVOKES &Supplier]
+ [SUPPLIER INVOKES &Consumer]
+ [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+ &bind OPERATION DEFAULT emptyBind,
+ &unbind OPERATION DEFAULT emptyUnbind,
+ &responderCanUnbind BOOLEAN DEFAULT FALSE,
+ &unbindCanFail BOOLEAN DEFAULT FALSE,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [BIND &bind]
+ [UNBIND &unbind]
+ [RESPONDER UNBIND &responderCanUnbind]
+ [FAILURE TO UNBIND &unbindCanFail]
+ [ID &id]
+}
+
+CONTRACT ::= CLASS {
+ &connection CONNECTION-PACKAGE OPTIONAL,
+ &OperationsOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
+ &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+ [CONNECTION &connection]
+ [OPERATIONS OF &OperationsOf]
+ [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+ [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+ [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+ &Is ROS-OBJECT-CLASS OPTIONAL,
+ &Initiates CONTRACT OPTIONAL,
+ &Responds CONTRACT OPTIONAL,
+ &InitiatesAndResponds CONTRACT OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [IS &Is]
+ [BOTH &InitiatesAndResponds]
+ [INITIATES &Initiates]
+ [RESPONDS &Responds]
+ ID &id
+}
+
+Code ::= CHOICE {local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Realizations.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Realizations.asn
new file mode 100644
index 0000000000..73b49c8d7a
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Realizations.asn
@@ -0,0 +1,81 @@
+-- Module Remote-Operations-Realizations (X.882:07/1994)
+
+Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)} DEFINITIONS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ REALIZATION
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)};
+
+RealizationParameter ::= SEQUENCE {
+ realization-type ENUMERATED {association-service(0), transfer-service(1)},
+ concatenation BOOLEAN DEFAULT FALSE
+}
+
+acse REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-without-concatenation(0)}
+}
+
+acse-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ acse-with-concatenation(1)}
+}
+
+association-by-RTSE REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (association-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) association-realizations(10)
+ association-by-rtse(2)}
+}
+
+pData REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-without-concatenation(0)}
+}
+
+pData-with-concatenation REALIZATION ::= {
+ RealizationParameter
+ (WITH COMPONENTS {
+ realization-type (transfer-service),
+ concatenation (TRUE)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ pData-with-concatenation(1)}
+}
+
+transfer-by-RTSE REALIZATION ::= {
+ RealizationParameter(WITH COMPONENTS {
+ realization-type (transfer-service)
+ })
+ IDENTIFIED BY
+ {joint-iso-itu-t remote-operations(4) transfer-realizations(11)
+ rTSE-transfer(2)}
+}
+
+END -- end of the OSI realizations module
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000000..e526ff4600
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,95 @@
+-- Module Remote-Operations-Useful-Definitions (X.880:07/1994)
+
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+ useful-definitions(7) version1(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- exports everything
+IMPORTS
+ OPERATION, ERROR, OPERATION-PACKAGE, Code
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ InvokeId, ROS{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS {refuse}
+ SYNCHRONOUS TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE
+}
+
+refuse ERROR ::= {CODE local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS FALSE
+ CODE local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+ {OperationSet | OperationSet.&Linked.&Linked |
+ OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+ Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+ {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+ Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+ {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+ ARGUMENT operation.&ArgumentType
+ OPTIONAL operation.&argumentTypeOptional
+ RESULT operation.&ResultType
+ OPTIONAL operation.&resultTypeOptional
+ RETURN RESULT operation.&returnResult
+ ERRORS {operation.&Errors}
+ LINKED {operation.&Linked}
+ SYNCHRONOUS operation.&synchronous
+ ALWAYS RESPONDS operation.&alwaysReturns
+ INVOKE PRIORITY {operation.&InvokePriority}
+ RESULT-PRIORITY {operation.&ResultPriority}
+ CODE code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
+{
+ OPERATIONS {package.&Both}
+ CONSUMER INVOKES {package.&Consumer}
+ SUPPLIER INVOKES {package.&Supplier}
+ ID id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+ OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+ OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+ CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+ SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+ ID base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {ConsumerPerforms {package}},
+ {SupplierPerforms {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+ ROS
+ {{InvokeIdSet}, {SupplierPerforms {package}},
+ {ConsumerPerforms {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..07bba30690
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SelectedAttributeTypes.asn
@@ -0,0 +1,1466 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+IMPORTS
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+DirectoryString{INTEGER:maxSize} ::= CHOICE {
+ teletexString TeletexString(SIZE (1..maxSize)),
+ printableString PrintableString(SIZE (1..maxSize)),
+ universalString UniversalString(SIZE (1..maxSize)),
+ bmpString BMPString(SIZE (1..maxSize)),
+ uTF8String UTF8String(SIZE (1..maxSize))
+}
+
+-- Attribute types
+knowledgeInformation ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-knowledge-information}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ID id-at-knowledgeInformation
+}
+
+name ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-name
+}
+
+commonName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-commonName
+}
+
+surname ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-surname}
+ ID id-at-surname
+}
+
+givenName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-givenName
+}
+
+initials ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-initials
+}
+
+generationQualifier ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-name}
+ ID id-at-generationQualifier
+}
+
+uniqueIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX UniqueIdentifier
+ EQUALITY MATCHING RULE bitStringMatch
+ ID id-at-uniqueIdentifier
+}
+
+UniqueIdentifier ::= BIT STRING
+
+dnQualifier ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ ORDERING MATCHING RULE caseIgnoreOrderingMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-dnQualifier
+}
+
+serialNumber ATTRIBUTE ::= {
+ WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-serialNumber
+}
+
+pseudonym ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-pseudonym}
+ ID id-at-pseudonym
+}
+
+countryName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX CountryName
+ SINGLE VALUE TRUE
+ ID id-at-countryName
+}
+
+CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only
+
+
+localityName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-locality-name}
+ ID id-at-localityName
+}
+
+collectiveLocalityName ATTRIBUTE ::= {
+ SUBTYPE OF localityName
+ COLLECTIVE TRUE
+ ID id-at-collectiveLocalityName
+}
+
+stateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-state-name}
+ ID id-at-stateOrProvinceName
+}
+
+collectiveStateOrProvinceName ATTRIBUTE ::= {
+ SUBTYPE OF stateOrProvinceName
+ COLLECTIVE TRUE
+ ID id-at-collectiveStateOrProvinceName
+}
+
+streetAddress ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-street-address}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-streetAddress
+}
+
+collectiveStreetAddress ATTRIBUTE ::= {
+ SUBTYPE OF streetAddress
+ COLLECTIVE TRUE
+ ID id-at-collectiveStreetAddress
+}
+
+houseIdentifier ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-houseIdentifier
+}
+
+organizationName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organization-name}
+ ID id-at-organizationName
+}
+
+collectiveOrganizationName ATTRIBUTE ::= {
+ SUBTYPE OF organizationName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationName
+}
+
+organizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+ ID id-at-organizationalUnitName
+}
+
+collectiveOrganizationalUnitName ATTRIBUTE ::= {
+ SUBTYPE OF organizationalUnitName
+ COLLECTIVE TRUE
+ ID id-at-collectiveOrganizationalUnitName
+}
+
+title ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-title}
+ ID id-at-title
+}
+
+description ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-description}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-description
+}
+
+searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+ ID id-at-searchGuide
+}
+
+Guide ::= SET {
+ objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+ criteria [1] Criteria
+}
+
+Criteria ::= CHOICE {
+ type [0] CriteriaItem,
+ and [1] SET OF Criteria,
+ or [2] SET OF Criteria,
+ not [3] Criteria
+}
+
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+enhancedSearchGuide ATTRIBUTE ::= {
+ WITH SYNTAX EnhancedGuide
+ ID id-at-enhancedSearchGuide
+}
+
+EnhancedGuide ::= SEQUENCE {
+ objectClass [0] OBJECT-CLASS.&id,
+ criteria [1] Criteria,
+ subset
+ [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+}
+
+businessCategory ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-business-category}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-businessCategory
+}
+
+postalAddress ATTRIBUTE ::= {
+ WITH SYNTAX PostalAddress
+ EQUALITY MATCHING RULE caseIgnoreListMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+ ID id-at-postalAddress
+}
+
+PostalAddress ::=
+ SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+
+collectivePostalAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalAddress
+}
+
+postalCode ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-postal-code}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postalCode
+}
+
+collectivePostalCode ATTRIBUTE ::= {
+ SUBTYPE OF postalCode
+ COLLECTIVE TRUE
+ ID id-at-collectivePostalCode
+}
+
+postOfficeBox ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-post-office-box}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-postOfficeBox
+}
+
+collectivePostOfficeBox ATTRIBUTE ::= {
+ SUBTYPE OF postOfficeBox
+ COLLECTIVE TRUE
+ ID id-at-collectivePostOfficeBox
+}
+
+physicalDeliveryOfficeName ATTRIBUTE ::= {
+ WITH SYNTAX DirectoryString {ub-physical-office-name}
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-physicalDeliveryOfficeName
+}
+
+collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+ SUBTYPE OF physicalDeliveryOfficeName
+ COLLECTIVE TRUE
+ ID id-at-collectivePhysicalDeliveryOfficeName
+}
+
+telephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelephoneNumber
+ EQUALITY MATCHING RULE telephoneNumberMatch
+ SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+ ID id-at-telephoneNumber
+}
+
+TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+
+-- String complying with CCITT Rec. E.123 only
+collectiveTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF telephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelephoneNumber
+}
+
+telexNumber ATTRIBUTE ::= {
+ WITH SYNTAX TelexNumber
+ ID id-at-telexNumber
+}
+
+TelexNumber ::= SEQUENCE {
+ telexNumber PrintableString(SIZE (1..ub-telex-number)),
+ countryCode PrintableString(SIZE (1..ub-country-code)),
+ answerback PrintableString(SIZE (1..ub-answerback))
+}
+
+collectiveTelexNumber ATTRIBUTE ::= {
+ SUBTYPE OF telexNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveTelexNumber
+}
+
+facsimileTelephoneNumber ATTRIBUTE ::= {
+ WITH SYNTAX FacsimileTelephoneNumber
+ EQUALITY MATCHING RULE facsimileNumberMatch
+ SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+ ID id-at-facsimileTelephoneNumber
+}
+
+facsimileNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-facsimileNumberMatch
+}
+
+facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-facsimileNumberSubstringsMatch
+}
+
+FacsimileTelephoneNumber ::= SEQUENCE {
+ telephoneNumber TelephoneNumber,
+ parameters G3FacsimileNonBasicParameters OPTIONAL
+}
+
+collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+ SUBTYPE OF facsimileTelephoneNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveFacsimileTelephoneNumber
+}
+
+x121Address ATTRIBUTE ::= {
+ WITH SYNTAX X121Address
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-x121Address
+}
+
+X121Address ::= NumericString(SIZE (1..ub-x121-address))
+
+-- String as defined by ITU-T Rec. X.121
+internationalISDNNumber ATTRIBUTE ::= {
+ WITH SYNTAX InternationalISDNNumber
+ EQUALITY MATCHING RULE numericStringMatch
+ SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+ ID id-at-internationalISDNNumber
+}
+
+InternationalISDNNumber ::=
+ NumericString(SIZE (1..ub-international-isdn-number))
+
+-- String complying with ITU-T Rec. E.164 only
+collectiveInternationalISDNNumber ATTRIBUTE ::= {
+ SUBTYPE OF internationalISDNNumber
+ COLLECTIVE TRUE
+ ID id-at-collectiveInternationalISDNNumber
+}
+
+registeredAddress ATTRIBUTE ::= {
+ SUBTYPE OF postalAddress
+ WITH SYNTAX PostalAddress
+ ID id-at-registeredAddress
+}
+
+destinationIndicator ATTRIBUTE ::= {
+ WITH SYNTAX DestinationIndicator
+ EQUALITY MATCHING RULE caseIgnoreMatch
+ SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+ ID id-at-destinationIndicator
+}
+
+DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+
+communicationsService ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-communicationsService
+}
+
+communicationsNetwork ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-at-communicationsNetwork
+}
+
+-- alphabetical characters only
+preferredDeliveryMethod ATTRIBUTE ::= {
+ WITH SYNTAX PreferredDeliveryMethod
+ SINGLE VALUE TRUE
+ ID id-at-preferredDeliveryMethod
+}
+
+PreferredDeliveryMethod ::=
+ SEQUENCE OF
+ INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+ telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+ g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+ videotex-delivery(8), telephone-delivery(9)}
+
+presentationAddress ATTRIBUTE ::= {
+ WITH SYNTAX PresentationAddress
+ EQUALITY MATCHING RULE presentationAddressMatch
+ SINGLE VALUE TRUE
+ ID id-at-presentationAddress
+}
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] OCTET STRING OPTIONAL,
+ sSelector [1] OCTET STRING OPTIONAL,
+ tSelector [2] OCTET STRING OPTIONAL,
+ nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+}
+
+supportedApplicationContext ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-supportedApplicationContext
+}
+
+protocolInformation ATTRIBUTE ::= {
+ WITH SYNTAX ProtocolInformation
+ EQUALITY MATCHING RULE protocolInformationMatch
+ ID id-at-protocolInformation
+}
+
+ProtocolInformation ::= SEQUENCE {
+ nAddress OCTET STRING,
+ profiles SET OF OBJECT IDENTIFIER
+}
+
+distinguishedName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ ID id-at-distinguishedName
+}
+
+member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-member
+}
+
+uniqueMember ATTRIBUTE ::= {
+ WITH SYNTAX NameAndOptionalUID
+ EQUALITY MATCHING RULE uniqueMemberMatch
+ ID id-at-uniqueMember
+}
+
+NameAndOptionalUID ::= SEQUENCE {
+ dn DistinguishedName,
+ uid UniqueIdentifier OPTIONAL
+}
+
+owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-owner
+}
+
+roleOccupant ATTRIBUTE ::= {
+ SUBTYPE OF distinguishedName
+ ID id-at-roleOccupant
+}
+
+seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+ ID id-at-seeAlso
+}
+
+dmdName ATTRIBUTE ::= {
+ SUBTYPE OF name
+ WITH SYNTAX DirectoryString {ub-common-name}
+ ID id-at-dmdName
+}
+
+dSAProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-dSAProblem
+}
+
+searchServiceProblem ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-searchServiceProblem
+}
+
+serviceType ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ SINGLE VALUE TRUE
+ ID id-not-serviceType
+}
+
+attributeTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-attributeTypeList
+}
+
+filterItem ATTRIBUTE ::= {
+ WITH SYNTAX FilterItem
+ ID id-not-filterItem
+}
+
+attributeCombinations ATTRIBUTE ::= {
+ WITH SYNTAX AttributeCombination
+ ID id-not-attributeCombinations
+}
+
+contextTypeList ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-contextTypeList
+}
+
+contextList ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-not-contextList
+}
+
+hierarchySelectList ATTRIBUTE ::= {
+ WITH SYNTAX HierarchySelections
+ SINGLE VALUE TRUE
+ ID id-not-hierarchySelectList
+}
+
+searchOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX SearchControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-searchOptionsList
+}
+
+serviceControlOptionsList ATTRIBUTE ::= {
+ WITH SYNTAX ServiceControlOptions
+ SINGLE VALUE TRUE
+ ID id-not-serviceControlOptionsList
+}
+
+multipleMatchingLocalities ATTRIBUTE ::= {
+ WITH SYNTAX MultipleMatchingLocalities
+ ID id-not-multipleMatchingLocalities
+}
+
+MultipleMatchingLocalities ::= SEQUENCE {
+ matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+ attributeList SEQUENCE OF AttributeValueAssertion
+}
+
+proposedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX SEQUENCE OF MRMapping
+ ID id-not-proposedRelaxation
+}
+
+appliedRelaxation ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-not-appliedRelaxation
+}
+
+-- Matching rules
+caseIgnoreMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreMatch
+}
+
+caseIgnoreOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseIgnoreOrderingMatch
+}
+
+caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreSubstringsMatch
+}
+
+SubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] DirectoryString{ub-match},
+ any [1] DirectoryString{ub-match},
+ final [2] DirectoryString{ub-match},
+ control Attribute
+ } -- Used to specify interpretation of the following items
+
+-- at most one initial and one final component
+caseExactMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactMatch
+}
+
+caseExactOrderingMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-caseExactOrderingMatch
+}
+
+caseExactSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion -- only the PrintableString choice
+ ID id-mr-caseExactSubstringsMatch
+}
+
+numericStringMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringMatch
+}
+
+numericStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX NumericString
+ ID id-mr-numericStringOrderingMatch
+}
+
+numericStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-numericStringSubstringsMatch
+}
+
+caseIgnoreListMatch MATCHING-RULE ::= {
+ SYNTAX CaseIgnoreListMatch
+ ID id-mr-caseIgnoreListMatch
+}
+
+CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+
+caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-caseIgnoreListSubstringsMatch
+}
+
+storedPrefixMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-storedPrefixMatch
+}
+
+booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+ ID id-mr-booleanMatch
+}
+
+integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+ ID id-mr-integerMatch
+}
+
+integerOrderingMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerOrderingMatch
+}
+
+bitStringMatch MATCHING-RULE ::= {
+ SYNTAX BIT STRING
+ ID id-mr-bitStringMatch
+}
+
+octetStringMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringMatch
+}
+
+octetStringOrderingMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-octetStringOrderingMatch
+}
+
+octetStringSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX OctetSubstringAssertion
+ ID id-mr-octetStringSubstringsMatch
+}
+
+OctetSubstringAssertion ::=
+ SEQUENCE OF
+ CHOICE {initial [0] OCTET STRING,
+ any [1] OCTET STRING,
+ final [2] OCTET STRING}
+
+-- at most one initial and one final component
+telephoneNumberMatch MATCHING-RULE ::= {
+ SYNTAX TelephoneNumber
+ ID id-mr-telephoneNumberMatch
+}
+
+telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-telephoneNumberSubstringsMatch
+}
+
+presentationAddressMatch MATCHING-RULE ::= {
+ SYNTAX PresentationAddress
+ ID id-mr-presentationAddressMatch
+}
+
+uniqueMemberMatch MATCHING-RULE ::= {
+ SYNTAX NameAndOptionalUID
+ ID id-mr-uniqueMemberMatch
+}
+
+protocolInformationMatch MATCHING-RULE ::= {
+ SYNTAX OCTET STRING
+ ID id-mr-protocolInformationMatch
+}
+
+uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+ ID id-mr-uTCTimeMatch
+}
+
+uTCTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX UTCTime
+ ID id-mr-uTCTimeOrderingMatch
+}
+
+generalizedTimeMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeMatch
+}
+
+generalizedTimeOrderingMatch MATCHING-RULE ::= {
+ SYNTAX GeneralizedTime
+ -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ ID id-mr-generalizedTimeOrderingMatch
+}
+
+integerFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX INTEGER
+ ID id-mr-integerFirstComponentMatch
+}
+
+objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierFirstComponentMatch
+}
+
+directoryStringFirstComponentMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-directory-string-first-component-match}
+ ID id-mr-directoryStringFirstComponentMatch
+}
+
+wordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-wordMatch
+}
+
+keywordMatch MATCHING-RULE ::= {
+ SYNTAX DirectoryString {ub-match}
+ ID id-mr-keywordMatch
+}
+
+systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+}
+
+generalWordMatch MATCHING-RULE ::= {
+ SYNTAX SubstringAssertion
+ ID id-mr-generalWordMatch
+}
+
+sequenceMatchType ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+ sequenceRestrictedDeletion(2), sequencePermutation(3),
+ sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+ SINGLE VALUE TRUE
+ ID id-cat-sequenceMatchType
+} -- defaulting to sequenceExact,
+
+wordMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+ wordProviderDefined(3)}
+ SINGLE VALUE TRUE
+ ID id-cat-wordMatchType
+} -- defaulting to wordExact
+
+characterMatchTypes ATTRIBUTE ::= {
+ WITH SYNTAX
+ ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+ SINGLE VALUE TRUE
+ ID id-cat-characterMatchTypes
+}
+
+selectedContexts ATTRIBUTE ::= {
+ WITH SYNTAX ContextAssertion
+ ID id-cat-selectedContexts
+}
+
+approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+}
+
+ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+}
+
+nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+}
+
+ZONAL-MATCHING ::=
+ MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+
+ZonalSelect ::= SEQUENCE OF AttributeType
+
+ZonalResult ::= ENUMERATED {
+ cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+
+zonalMatch MATCHING-RULE ::= {
+ UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+ ID id-mr-zonalMatch
+}
+
+-- Contexts
+languageContext CONTEXT ::= {
+ WITH SYNTAX LanguageContextSyntax
+ ID id-avc-language
+}
+
+LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only
+
+
+temporalContext CONTEXT ::= {
+ WITH SYNTAX TimeSpecification
+ ASSERTED AS TimeAssertion
+ ID id-avc-temporal
+}
+
+TimeSpecification ::= SEQUENCE {
+ time
+ CHOICE {absolute
+ SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+ endTime [1] GeneralizedTime OPTIONAL},
+ periodic SET OF Period},
+ notThisTime BOOLEAN DEFAULT FALSE,
+ timeZone TimeZone OPTIONAL
+}
+
+Period ::= SEQUENCE {
+ timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+ days
+ [1] CHOICE {intDay SET OF INTEGER,
+ bitDay
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+ thursday(4), friday(5), saturday(6)},
+ dayOf XDayOf} OPTIONAL,
+ weeks
+ [2] CHOICE {allWeeks NULL,
+ intWeek SET OF INTEGER,
+ bitWeek
+ BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+ } OPTIONAL,
+ months
+ [3] CHOICE {allMonths NULL,
+ intMonth SET OF INTEGER,
+ bitMonth
+ BIT STRING {january(0), february(1), march(2), april(3),
+ may(4), june(5), july(6), august(7),
+ september(8), october(9), november(10),
+ december(11)}} OPTIONAL,
+ years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+}
+
+XDayOf ::= CHOICE {
+ first [1] NamedDay,
+ second [2] NamedDay,
+ third [3] NamedDay,
+ fourth [4] NamedDay,
+ fifth [5] NamedDay
+}
+
+NamedDay ::= CHOICE {
+ intNamedDays
+ ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+ friday(6), saturday(7)},
+ bitNamedDays
+ BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+ friday(5), saturday(6)}
+}
+
+DayTimeBand ::= SEQUENCE {
+ startDayTime [0] DayTime DEFAULT {hour 0},
+ endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+}
+
+DayTime ::= SEQUENCE {
+ hour [0] INTEGER(0..23),
+ minute [1] INTEGER(0..59) DEFAULT 0,
+ second [2] INTEGER(0..59) DEFAULT 0
+}
+
+TimeZone ::= INTEGER(-12..12)
+
+TimeAssertion ::= CHOICE {
+ now NULL,
+ at GeneralizedTime,
+ between
+ SEQUENCE {startTime [0] GeneralizedTime,
+ endTime [1] GeneralizedTime OPTIONAL,
+ entirely BOOLEAN DEFAULT FALSE}
+}
+
+localeContext CONTEXT ::= {
+ WITH SYNTAX LocaleContextSyntax
+ ID id-avc-locale
+}
+
+LocaleContextSyntax ::= CHOICE {
+ localeID1 OBJECT IDENTIFIER,
+ localeID2 DirectoryString{ub-localeContextSyntax}
+}
+
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+ {id-at 1 2}
+
+id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+
+id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+
+id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+
+id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+
+id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+
+id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+
+id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+
+id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+
+id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+
+id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+
+id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+
+id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+
+id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+
+id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+
+id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+
+id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+
+id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+ {id-at 8 1 2}
+
+id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+
+id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+
+id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+
+id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+
+id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+
+id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+
+id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+
+id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+
+id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+
+id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+
+id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+
+id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+ {id-at 11 1 2}
+
+id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+
+id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+
+id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+
+id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+
+id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+
+id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+
+id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+
+id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+
+id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+
+id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+
+id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+
+id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+
+id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+
+id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+
+id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+
+id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+
+id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+
+id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+
+id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+
+id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+
+id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+
+id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+
+id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+
+id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+ {id-at 19 1 2}
+
+id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+
+id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+
+id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+
+id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+
+id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+
+id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+
+id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+
+id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23}
+
+id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+
+id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+
+id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+ {id-at 23 1 2}
+
+id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+
+id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+
+id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+
+id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+
+id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+
+id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+ {id-at 25 1 2}
+
+id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+
+id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+
+id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+
+id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+
+id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+
+id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+
+id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+
+id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+
+id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+
+id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+
+id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+
+id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+
+id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+
+id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+
+id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+
+id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+
+id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+
+id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+ {id-at 35 2}
+
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+ {id-at 36 2}
+
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+ {id-at 37 2}
+
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+ {id-at 38 2}
+
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 39 2}
+
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+ {id-at 40 2}
+
+id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+
+id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+
+id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+
+id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+
+id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+
+id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+
+id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+
+id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+
+id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+
+id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+
+id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+
+id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+
+id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+
+id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+
+id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+
+id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+
+id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+
+id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+
+id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+
+id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+
+id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+
+--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+ {id-at 52 2}
+
+--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+ {id-at 53 2}
+
+id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+
+id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+id-at-encryptedClearance OBJECT IDENTIFIER ::=
+ {id-at 55 2}
+
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+ {id-at 56 2}
+
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+ {id-at 57 2}
+
+--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+ {id-at 58 2}
+
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+ {id-at 59 2}
+
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+ {id-at 60 2}
+
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+id-at-pseudonym OBJECT IDENTIFIER ::=
+ {id-at 65}
+
+id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+
+id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+ {id-mr 2}
+
+id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+
+id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+
+id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+
+id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+
+id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+
+id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+
+id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+
+id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+
+id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+
+id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+
+id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+
+id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+
+id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+
+id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+
+id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+
+id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+
+id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+
+id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+
+id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+
+id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+
+id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+
+id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+
+id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+
+id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+
+id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+
+id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+
+id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+
+id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+
+id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+
+id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+
+id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+ {id-mr 41}
+
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+ {id-mr 47}
+
+id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+
+id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+
+id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+
+id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+
+id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+
+id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+
+id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+
+-- contexts
+id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+
+id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+
+id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+
+--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+ {id-pr 1}
+
+id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+
+id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+
+id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+
+id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+
+id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+
+id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+
+id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+
+id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+
+id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+
+id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+
+id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+
+id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+
+id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+
+id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+
+id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+
+id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+
+id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+
+id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+
+id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+
+id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+
+id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+
+id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+
+id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+
+id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+
+id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+
+id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+
+id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+
+id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+
+id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+
+id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+
+id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+
+-- Notification attributes
+id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+
+id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+
+id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+
+id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+
+id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+
+id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+
+id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+
+id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+
+id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+
+id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+
+id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+
+id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+
+id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+
+id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+
+id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+
+id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+
+id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+
+-- Control attributes
+id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+ {id-cat 1}
+
+id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+
+id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+
+id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SeseAPDUs.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SeseAPDUs.asn
new file mode 100644
index 0000000000..2917122e94
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SeseAPDUs.asn
@@ -0,0 +1,116 @@
+-- Module SeseAPDUs (X.832:04/1995)
+
+SeseAPDUs {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ notation
+ FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
+ objectIdentifiers(0)}
+ dirAuthenticationTwoWay
+ FROM GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
+ gulsSecurityExchanges(2)}
+ SECURITY-EXCHANGE, SE-ERROR
+ FROM Notation notation;
+
+SESEapdus{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ CHOICE {
+ se-transfer SETransfer{{ValidSEs}, {InvocationIdSet}},
+ se-u-abort SEUAbort{{ValidSEs}, {InvocationIdSet}},
+ se-p-abort SEPAbort{{ValidSEs}, {InvocationIdSet}}
+}
+
+SETransfer{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ seIdentifier SECURITY-EXCHANGE.&sE-Identifier({ValidSEs}),
+ -- This identifies one of the security-
+ -- exchanges supported by the particular SESE
+ -- abstract syntax
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs}{@seIdentifier}),
+ -- This identifies one of the security-
+ -- exchange-items of the security exchange
+ -- indicated by "seIdentifier"
+ seItem
+ SECURITY-EXCHANGE.&SE-Items.&ItemType
+ ({ValidSEs}{@seIdentifier, @itemIdentifier}),
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active security exchange--
+
+ -- if start flag is not true -- }) DEFAULT noInvocationId,
+ startFlag BOOLEAN DEFAULT FALSE,
+ -- This field is set only as the first security-
+ -- exchange-item of a security-exchange is
+ -- transferred.
+ endFlag BOOLEAN DEFAULT FALSE-- This field is set as the last security-exchange-
+-- item of a security-exchange is transferred. It is
+-- needed to accommodate those mechanisms requiring
+-- n exchanges, where n is not known a priori
+}
+
+SEUAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId
+ InvocationId(InvocationIdSet)
+ (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active or just-completed--
+
+ -- security exchange -- }) DEFAULT noInvocationId,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ errors SEQUENCE OF SEerror{{ValidSEs}} OPTIONAL
+ -- needed to handle multiple error codes
+}
+
+SEPAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
+ SEQUENCE {
+ invocationId InvocationId(InvocationIdSet) OPTIONAL,
+ itemIdentifier
+ SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
+ -- This component will only be present
+ -- when the Abort is generated subsequent
+ -- to receipt of a SETransfer APDU.
+ problemCode ProblemCode
+}
+
+InvocationId ::= CHOICE {present INTEGER,
+ absent NULL
+}
+
+noInvocationId InvocationId ::= absent:NULL
+
+NoInvocationId InvocationId ::= {noInvocationId}
+
+SEerror{SECURITY-EXCHANGE:ValidSEs} ::= SEQUENCE {
+ errorCode SE-ERROR.&errorCode({Errors{{ValidSEs}}}) OPTIONAL,
+ errorParameter
+ SE-ERROR.&ParameterType({Errors{{ValidSEs}}}) OPTIONAL
+}
+
+Errors{SECURITY-EXCHANGE:ValidSEs} SE-ERROR ::= {ValidSEs.&SE-Items.&Errors}
+
+ProblemCode ::= CHOICE {
+ general GeneralProblem,
+ transfer TransferProblem,
+ abort AbortProblem
+}
+
+GeneralProblem ::= ENUMERATED {invalidAPDU(0)}
+
+TransferProblem ::= ENUMERATED {
+ duplicateInvocationId(0), unrecognizedSecurityExchange(1), mistypedItem(2),
+ inappropriateInvocationId(3), alternatingSequenceError(4)}
+
+AbortProblem ::= ENUMERATED {
+ unrecognizedInvocationId(0), abortUnexpected(1), unrecognizedError(2),
+ unexpectedError(3), mistypedErrorParameter(4)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SpkmGssTokens.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SpkmGssTokens.asn
new file mode 100644
index 0000000000..02205bd64c
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/SpkmGssTokens.asn
@@ -0,0 +1,257 @@
+-- Module SpkmGssTokens (RFC 2025:10/1996)
+SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkmGssTokens(10)}
+--
+-- Copyright (C) The Internet Society (1996). This version of
+-- this ASN.1 module is part of RFC 2025;
+-- see the RFC itself for full legal notices.
+--
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- EXPORTS ALL
+IMPORTS
+ Name
+ FROM InformationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ informationFramework(1) 3}
+ Certificate, CertificateList, CertificatePair, AlgorithmIdentifier, Validity
+ FROM AuthenticationFramework {joint-iso-itu-t(2) ds(5) module(1)
+ authenticationFramework(7) 3};
+
+-- types
+SPKM-REQ ::= SEQUENCE {
+ requestToken REQ-TOKEN,
+ certif-data [0] CertificationData OPTIONAL,
+ auth-data [1] AuthorizationData OPTIONAL
+}
+
+CertificationData ::= SEQUENCE {
+ certificationPath [0] CertificationPath OPTIONAL,
+ certificateRevocationList [1] CertificateList OPTIONAL
+} -- at least one of the above shall be present
+
+CertificationPath ::= SEQUENCE {
+ userKeyId [0] OCTET STRING OPTIONAL,
+ userCertif [1] Certificate OPTIONAL,
+ verifKeyId [2] OCTET STRING OPTIONAL,
+ userVerifCertif [3] Certificate OPTIONAL,
+ theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL
+} -- Presence of [2] or [3] implies that [0] or [1] must also be
+
+-- present. Presence of [4] implies that at least one of [0], [1],
+-- [2], and [3] must also be present.
+REQ-TOKEN ::= SEQUENCE {
+ req-contents Req-contents,
+ algId AlgorithmIdentifier,
+ req-integrity Integrity -- "token" is Req-contents
+}
+
+Integrity ::= BIT STRING
+
+-- If corresponding algId specifies a signing algorithm,
+-- "Integrity" holds the result of applying the signing procedure
+-- specified in algId to the BER-encoded octet string which results
+-- from applying the hashing procedure (also specified in algId) to
+-- the DER-encoded octets of "token".
+-- Alternatively, if corresponding algId specifies a MACing
+-- algorithm, "Integrity" holds the result of applying the MACing
+-- procedure specified in algId to the DER-encoded octets of
+-- "token"
+Req-contents ::= SEQUENCE {
+ tok-id INTEGER(256), -- shall contain 0100 (hex)
+ context-id Random-Integer,
+ pvno BIT STRING,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randSrc Random-Integer,
+ targ-name Name,
+ src-name [0] Name OPTIONAL,
+ req-data Context-Data,
+ validity [1] Validity OPTIONAL,
+ key-estb-set Key-Estb-Algs,
+ key-estb-req BIT STRING OPTIONAL,
+ key-src-bind OCTET STRING OPTIONAL
+ -- This field must be present for the case of SPKM-2
+ -- unilateral authen. if the K-ALG in use does not provide
+ -- such a binding (but is optional for all other cases).
+ -- The octet string holds the result of applying the
+ -- mandatory hashing procedure (in MANDATORY I-ALG;
+ -- see Section 2.1) as follows: MD5(src || context_key),
+ -- where "src" is the DER-encoded octets of src-name,
+ -- "context-key" is the symmetric key (i.e., the
+ -- unprotected version of what is transmitted in
+ -- key-estb-req), and "||" is the concatenation operation.
+}
+
+Random-Integer ::= BIT STRING
+
+Context-Data ::= SEQUENCE {
+ channelId ChannelId OPTIONAL,
+ seq-number INTEGER OPTIONAL,
+ options Options,
+ conf-alg Conf-Algs,
+ intg-alg Intg-Algs,
+ owf-alg OWF-Algs
+}
+
+ChannelId ::= OCTET STRING
+
+Options ::= BIT STRING {
+ delegation-state(0), mutual-state(1), replay-det-state(2), sequence-state(3),
+ conf-avail(4), integ-avail(5), target-certif-data-required(6)}
+
+Conf-Algs ::= CHOICE {
+ algs [0] SEQUENCE OF AlgorithmIdentifier,
+ null [1] NULL
+}
+
+Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier
+
+SPKM-REP-TI ::= SEQUENCE {
+ responseToken REP-TI-TOKEN,
+ certif-data CertificationData OPTIONAL
+ -- present if target-certif-data-required option was
+} -- set to TRUE in SPKM-REQ
+
+REP-TI-TOKEN ::= SEQUENCE {
+ rep-ti-contents Rep-ti-contents,
+ algId AlgorithmIdentifier,
+ rep-ti-integ Integrity -- "token" is Rep-ti-contents
+}
+
+Rep-ti-contents ::= SEQUENCE {
+ tok-id INTEGER(512), -- shall contain 0200 (hex)
+ context-id Random-Integer,
+ pvno [0] BIT STRING OPTIONAL,
+ timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
+ randTarg Random-Integer,
+ src-name [1] Name OPTIONAL,
+ targ-name Name,
+ randSrc Random-Integer,
+ rep-data Context-Data,
+ validity [2] Validity OPTIONAL,
+ key-estb-id AlgorithmIdentifier OPTIONAL,
+ key-estb-str BIT STRING OPTIONAL
+}
+
+SPKM-REP-IT ::= SEQUENCE {
+ responseToken REP-IT-TOKEN,
+ algId AlgorithmIdentifier,
+ rep-it-integ Integrity -- "token" is REP-IT-TOKEN
+}
+
+REP-IT-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(768), -- shall contain 0300 (hex)
+ context-id Random-Integer,
+ randSrc Random-Integer,
+ randTarg Random-Integer,
+ targ-name Name,
+ src-name Name OPTIONAL,
+ key-estb-rep BIT STRING OPTIONAL
+}
+
+SPKM-ERROR ::= SEQUENCE {
+ errorToken ERROR-TOKEN,
+ algId AlgorithmIdentifier,
+ integrity Integrity -- "token" is ERROR-TOKEN
+}
+
+ERROR-TOKEN ::= SEQUENCE {
+ tok-id INTEGER(1024), -- shall contain 0400 (hex)
+ context-id Random-Integer
+}
+
+SPKM-MIC ::= SEQUENCE {mic-header Mic-Header,
+ int-cksum BIT STRING
+}
+
+Mic-Header ::= SEQUENCE {
+ tok-id INTEGER(257), -- shall contain 0101 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+SeqNum ::= SEQUENCE {num INTEGER,
+ dir-ind BOOLEAN
+}
+
+SPKM-WRAP ::= SEQUENCE {wrap-header Wrap-Header,
+ wrap-body Wrap-Body
+}
+
+Wrap-Header ::= SEQUENCE {
+ tok-id INTEGER(513), -- shall contain 0201 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ conf-alg [1] Conf-Alg OPTIONAL,
+ snd-seq [2] SeqNum OPTIONAL
+}
+
+Wrap-Body ::= SEQUENCE {int-cksum BIT STRING,
+ data BIT STRING
+}
+
+Conf-Alg ::= CHOICE {algId [0] AlgorithmIdentifier,
+ null [1] NULL
+}
+
+SPKM-DEL ::= SEQUENCE {del-header Del-Header,
+ int-cksum BIT STRING
+}
+
+Del-Header ::= SEQUENCE {
+ tok-id INTEGER(769), -- shall contain 0301 (hex)
+ context-id Random-Integer,
+ int-alg [0] AlgorithmIdentifier OPTIONAL,
+ snd-seq [1] SeqNum OPTIONAL
+}
+
+-- other types
+-- from [RFC-1508]
+MechType ::= OBJECT IDENTIFIER
+
+InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ thisMech MechType,
+ innerContextToken SPKMInnerContextToken
+} -- when thisMech is SPKM-1 or SPKM-2
+
+SPKMInnerContextToken ::= CHOICE {
+ req [0] SPKM-REQ,
+ rep-ti [1] SPKM-REP-TI,
+ rep-it [2] SPKM-REP-IT,
+ error [3] SPKM-ERROR,
+ mic [4] SPKM-MIC,
+ wrap [5] SPKM-WRAP,
+ del [6] SPKM-DEL
+}
+
+-- from [RFC-1510]
+AuthorizationData ::=
+ SEQUENCE OF SEQUENCE {ad-type INTEGER,
+ ad-data OCTET STRING}
+
+-- object identifier assignments
+md5-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) md5-DES-CBC(1)}
+
+sum64-DES-CBC OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ integrity(3) sum64-DES-CBC(2)}
+
+spkm-1 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-1(1)}
+
+spkm-2 OBJECT IDENTIFIER ::=
+ {iso(1) identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) spkm(1) spkm-2(2)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Style-Descriptors.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Style-Descriptors.asn
new file mode 100644
index 0000000000..8f033eab6f
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Style-Descriptors.asn
@@ -0,0 +1,190 @@
+-- Module Style-Descriptors (T.415:03/1993)
+
+Style-Descriptors {2 8 1 5 10} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Presentation-Style-Descriptor, Presentation-Attributes, Content-Type,
+ Content-Architecture-Class, Layout-Style-Descriptor, Fill-Order,
+ Block-Alignment;
+
+IMPORTS
+ Object-or-Class-Identifier, Style-Identifier, Category-Name,
+ Object-Id-Expression
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Comment-String, Transparency, Colour, Border, Layout-Object-Type,
+ Content-Background-Colour, Content-Foreground-Colour, Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes -- see 7.14
+
+ Character-Attributes
+ FROM Character-Presentation-Attributes {2 8 1 6 2
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Graphics-Attributes
+ FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geometric-Graphics-Attributes
+ FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+
+Presentation-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ transparency [2] IMPLICIT Transparency OPTIONAL,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes OPTIONAL,
+ colour [4] IMPLICIT Colour OPTIONAL,
+ colour-of-layout-object [29] Colour-Expression OPTIONAL,
+ object-colour-table [30] IMPLICIT Colour-Table OPTIONAL,
+ content-background-colour [31] Content-Background-Colour OPTIONAL,
+ content-foreground-colour [32] Content-Foreground-Colour OPTIONAL,
+ content-colour-table [33] IMPLICIT Colour-Table OPTIONAL,
+ border [5] IMPLICIT Border OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Presentation-Attributes ::= SET {
+ content-architecture-class
+ CHOICE {a Content-Architecture-Class,
+ b Content-Type} OPTIONAL,
+ character-attributes [0] IMPLICIT Character-Attributes OPTIONAL,
+ raster-graphics-attributes
+ [1] IMPLICIT Raster-Graphics-Attributes OPTIONAL,
+ geometric-graphics-attributes
+ [2] IMPLICIT Geometric-Graphics-Attributes OPTIONAL,
+ -- the following tags are reserved for additional types
+ -- of presentation attributes:
+ -- [3] videotex, for use in conjunction with CCITT Recommendations
+ -- [4] audio
+ -- [5] dynamic-graphics
+ ext-cont-arch-pres-attributes [6] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+Content-Type ::= [APPLICATION 2] IMPLICIT INTEGER {formatted-raster-graphics(1)
+}
+
+-- The integer representation for content architecture class,
+-- Content-Type, is only to be used if the value of the document
+-- profile attribute "document application profile" is an integer.
+-- The value 'formatted-raster-graphics' represents the formatted raster
+-- graphics content architecture as defined in ITU-T Rec. T.417 | ISO/IEC 8613-7.
+Content-Architecture-Class ::= OBJECT IDENTIFIER
+
+Layout-Style-Descriptor ::= SET {
+ style-identifier Style-Identifier,
+ user-readable-comments [0] IMPLICIT Comment-String OPTIONAL,
+ user-visible-name [1] IMPLICIT Comment-String OPTIONAL,
+ application-comments [25] IMPLICIT OCTET STRING OPTIONAL,
+ layout-directives [4] IMPLICIT Layout-Directives OPTIONAL,
+ sealed [6] IMPLICIT Sealed OPTIONAL,
+ derived-from [7] IMPLICIT Style-Identifier OPTIONAL
+}
+
+Layout-Directives ::= SET {
+ indivisibility
+ CHOICE {to-layout-object-class [0] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [1] IMPLICIT Category-Name,
+ to-layout-object-type [2] IMPLICIT Layout-Object-Type,
+ null [15] IMPLICIT NULL} OPTIONAL,
+ separation [3] IMPLICIT Separation OPTIONAL,
+ offset [4] IMPLICIT Offset OPTIONAL,
+ fill-order [5] IMPLICIT Fill-Order OPTIONAL,
+ concatenation [6] IMPLICIT Concatenation OPTIONAL,
+ new-layout-object
+ CHOICE {to-layout-object-class [7] IMPLICIT Object-or-Class-Identifier,
+ to-layout-category [8] IMPLICIT Category-Name,
+ to-layout-object-type [9] IMPLICIT Layout-Object-Type,
+ null [16] IMPLICIT NULL} OPTIONAL,
+ same-layout-object [10] IMPLICIT Same-Layout-Object OPTIONAL,
+ layout-object-class
+ [11] IMPLICIT Object-or-Class-Identifier OPTIONAL,
+ logical-stream-category [19] IMPLICIT Category-Name OPTIONAL,
+ logical-stream-sub-category [20] IMPLICIT Category-Name OPTIONAL,
+ layout-category [12] IMPLICIT Category-Name OPTIONAL,
+ synchronization
+ CHOICE {a [13] IMPLICIT Object-or-Class-Identifier,
+ b [17] Object-Id-Expression,
+ c [18] IMPLICIT NULL} OPTIONAL,
+ block-alignment [14] IMPLICIT Block-Alignment OPTIONAL,
+ floatability-range [24] IMPLICIT Floatability-Range OPTIONAL
+}
+
+Separation ::= SET {
+ leading [0] IMPLICIT INTEGER OPTIONAL,
+ trailing [1] IMPLICIT INTEGER OPTIONAL,
+ centre [2] IMPLICIT INTEGER OPTIONAL
+}
+
+Offset ::= SET {
+ leading [3] IMPLICIT INTEGER OPTIONAL,
+ trailing [2] IMPLICIT INTEGER OPTIONAL,
+ left-hand [1] IMPLICIT INTEGER OPTIONAL,
+ right-hand [0] IMPLICIT INTEGER OPTIONAL
+}
+
+Fill-Order ::= INTEGER {normal(0), reverse(1)}
+
+Concatenation ::= INTEGER {non-concatenated(0), concatenated(1)}
+
+Same-Layout-Object ::= SET {
+ logical-object
+ CHOICE {a [0] IMPLICIT Object-or-Class-Identifier,
+ b [4] Object-Id-Expression,
+ c [5] IMPLICIT NULL},
+ layout-object
+ CHOICE {d [1] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category [6] IMPLICIT Category-Name,
+ to-stream-sub-category [7] IMPLICIT Category-Name,
+ to-layout-category [2] IMPLICIT Category-Name,
+ e [3] IMPLICIT Layout-Object-Type} OPTIONAL
+}
+
+Floatability-Range ::= SET {
+ forward-limit
+ [0] SEQUENCE {logical-object
+ CHOICE {a [2] IMPLICIT Object-or-Class-Identifier,
+ b [3] Object-Id-Expression,
+ c [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ d [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL,
+ backward-limit
+ [1] SEQUENCE {logical-object
+ CHOICE {e [2] IMPLICIT Object-or-Class-Identifier,
+ f [3] Object-Id-Expression,
+ g [4] IMPLICIT NULL},
+ layout-object
+ CHOICE {to-layout-object-class
+ [5] IMPLICIT Object-or-Class-Identifier,
+ to-stream-root-category
+ [6] IMPLICIT Category-Name,
+ to-stream-sub-category
+ [7] IMPLICIT Category-Name,
+ to-layout-category
+ [8] IMPLICIT Category-Name,
+ to-layout-object-type
+ [9] IMPLICIT Layout-Object-Type,
+ h [10] IMPLICIT NULL
+ } OPTIONAL} OPTIONAL
+}
+
+Block-Alignment ::= INTEGER {right-hand(0), left-hand(1), centred(2), null(3)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Subprofiles.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Subprofiles.asn
new file mode 100644
index 0000000000..bfcd0b5dbc
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Subprofiles.asn
@@ -0,0 +1,96 @@
+-- Module Subprofiles (T.422:08/1995)
+
+Subprofiles {2 8 1 12 2} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+EXPORTS Subprofile-Descriptor, Subprofile-Identifier;
+
+IMPORTS
+ Character-Data, Date-and-Time, Document-Reference, Personal-Name,
+ Originators, Other-User-Information, Local-File-References,
+ Security-Information
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+ Location-Expression
+ FROM Location-Expressions {2 8 1 12 0};
+
+Subprofile-Descriptor ::= SET {
+ subprofile-identifier [0] Subprofile-Identifier,
+ subprofile-reference [1] Subprofile-Reference OPTIONAL,
+ subprofile-precedence [2] INTEGER OPTIONAL,
+ document-fragment-reference [3] Location-Expression,
+ content-architecture-classes
+ [4] SET OF OBJECT IDENTIFIER OPTIONAL, -- shall always
+
+ -- be present, except when used in a location expression
+ document-fragment-management-attributes
+ [5] Document-Fragment-Management-Attributes OPTIONAL
+}
+
+Subprofile-Identifier ::= [APPLICATION 8] PrintableString
+
+-- only digits and spaces are used in the present version of this Specification;
+-- other characters are reserved for extensions
+Subprofile-Reference ::= CHOICE {
+ unique-reference [0] OBJECT IDENTIFIER,
+ descriptive-reference [1] Character-Data
+}
+
+Document-Fragment-Management-Attributes ::= SET {
+ document-fragment-description [0] Document-Fragment-Description OPTIONAL,
+ dates-and-times [1] Dates-and-Times OPTIONAL,
+ originators [2] Originators OPTIONAL,
+ other-user-information [3] Other-User-Information OPTIONAL,
+ external-references [4] External-References2 OPTIONAL,
+ local-file-references [5] Local-File-References OPTIONAL,
+ languages [6] SET OF Character-Data OPTIONAL,
+ security-information [7] Security-Information OPTIONAL
+}
+
+Document-Fragment-Description ::= SET {
+ title [0] Character-Data OPTIONAL,
+ subject [1] Character-Data OPTIONAL,
+ document-fragment-type [2] Character-Data OPTIONAL,
+ abstract [3] Character-Data OPTIONAL,
+ keywords [4] SET OF Character-Data OPTIONAL
+}
+
+Dates-and-Times ::= SET {
+ document-fragment-date-and-time [0] Date-and-Time OPTIONAL,
+ creation-date-and-time [1] Date-and-Time OPTIONAL,
+ local-filing-date-and-time [2] SEQUENCE OF Date-and-Time OPTIONAL,
+ expiry-date-and-time [3] Date-and-Time OPTIONAL,
+ start-date-and-time [4] Date-and-Time OPTIONAL,
+ purge-date-and-time [5] Date-and-Time OPTIONAL,
+ release-date-and-time [6] Date-and-Time OPTIONAL,
+ revision-history
+ [7] SEQUENCE OF
+ SET {revision-date-and-time [0] Date-and-Time OPTIONAL,
+ version-identifier [1] Character-Data OPTIONAL,
+ revisers
+ [2] SET OF
+ SET {names [0] SET OF Personal-Name OPTIONAL,
+ position [1] Character-Data OPTIONAL,
+ organization [2] Character-Data OPTIONAL
+ } OPTIONAL,
+ version-reference
+ [3] Document-or-Document-Fragment-Reference OPTIONAL,
+ user-comments [4] Character-Data OPTIONAL} OPTIONAL
+}
+
+External-References2 ::= SET {
+ references-to-other-documents-or-document-fragments
+ [0] SET OF Document-or-Document-Fragment-Reference OPTIONAL,
+ superseded-documents-or-document-fragments
+ [1] SET OF Document-or-Document-Fragment-Reference OPTIONAL
+}
+
+Document-or-Document-Fragment-Reference ::= CHOICE {
+ document [0] Document-Reference,
+ document-fragment [1] Subprofile-Reference
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Temporal-Relationships.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Temporal-Relationships.asn
new file mode 100644
index 0000000000..9633995e3b
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Temporal-Relationships.asn
@@ -0,0 +1,92 @@
+-- Module Temporal-Relationships (T.424:07/1996)
+
+Temporal-Relationships {2 8 1 14 0} DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ Temporal-Relations, Presentation-Time, Document-Presentation-Time,
+ Time-Scaling;
+
+IMPORTS
+ Date-and-Time
+ FROM Document-Profile-Descriptor {2 8 1 5 6}
+ -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 and C.4
+ Object-or-Class-Identifier
+ FROM Identifiers-and-Expressions {2 8 1 5 7};
+
+-- see ITU-T Rec. T.415 | ISO/IEC 8613-5
+Temporal-Relations ::= SET {
+ synchronization-type [0] IMPLICIT Synchronization-Type,
+ subordinate-nodes
+ [1] SEQUENCE OF
+ SET {node-identifier [0] IMPLICIT Node-Identifier,
+ start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ duration [2] Indefinite-or-Time-Delay OPTIONAL,
+ cyclic [3] IMPLICIT Cyclic OPTIONAL,
+ end-time [4] IMPLICIT Time-Delay OPTIONAL,
+ application-comments [5] IMPLICIT OCTET STRING OPTIONAL
+ }
+}
+
+-- The value 'null' is represented by an empty set
+Synchronization-Type ::= INTEGER {
+ parallel-last(0), parallel-first(1), parallel-selective(2), sequential(3)
+}
+
+Node-Identifier ::= PrintableString
+
+-- only digits and spaces are used
+-- the first digit is either 2 for a logical object class or 3 for a logical object
+Cyclic ::= SET {
+ number-of-cycles [0] CHOICE {indefinite Indefinite,
+ a INTEGER},
+ cycle-start-time [1] IMPLICIT Time-Delay OPTIONAL,
+ cycle-duration [2] Indefinite-or-Time-Delay OPTIONAL
+}
+
+Indefinite ::= NULL
+
+Time-Delay ::= INTEGER {indefinite(-1)}
+
+Presentation-Time ::= SET {
+ timing
+ CHOICE {fixed-timing [0] IMPLICIT INTEGER,
+ variable-timing [1] IMPLICIT Time-Spec} OPTIONAL,
+ duration
+ CHOICE {fixed-duration
+ [2] CHOICE {indefinite-or-time-delay Indefinite-or-Time-Delay,
+ object-or-class-identifier
+ Object-or-Class-Identifier},
+ rule-A [3] IMPLICIT Rule-Spec,
+ rule-B [4] IMPLICIT Rule-Spec} OPTIONAL,
+ cyclic [5] Cyclic OPTIONAL
+}
+
+-- The value 'null' is represented by an empty set
+Time-Spec ::= SET {
+ start-offset [0] IMPLICIT INTEGER OPTIONAL,
+ end-offset [1] IMPLICIT INTEGER OPTIONAL,
+ start-separation [2] IMPLICIT INTEGER OPTIONAL,
+ end-separation [3] IMPLICIT INTEGER OPTIONAL
+}
+
+Rule-Spec ::= SET {
+ minimum-duration [0] IMPLICIT INTEGER OPTIONAL,
+ maximum-duration [1] IMPLICIT INTEGER OPTIONAL
+}
+
+Indefinite-or-Time-Delay ::= CHOICE {
+ indefinite [0] IMPLICIT NULL,
+ fixed [1] Time-Delay
+}
+
+Document-Presentation-Time ::= Date-and-Time
+
+Time-Scaling ::= [0] IMPLICIT SEQUENCE {a INTEGER,
+ b INTEGER
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Text-Units.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Text-Units.asn
new file mode 100644
index 0000000000..ccc64a52f5
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Text-Units.asn
@@ -0,0 +1,72 @@
+-- Module Text-Units (T.415:03/1993)
+
+Text-Units {2 8 1 5 12} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Text-Unit, Type-Of-Coding;
+
+IMPORTS
+ Content-Portion-Identifier
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Character-Coding-Attributes
+ FROM Character-Coding-Attributes {2 8 1 6 3
+ } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6
+ Raster-Gr-Coding-Attributes
+ FROM Raster-Gr-Coding-Attributes {2 8 1 7 3
+ } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7
+ Geo-Gr-Coding-Attributes
+ FROM Geo-Gr-Coding-Attributes {2 8 1 8 3
+ } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8
+ Videotex-Coding-Attributes
+ FROM Videotex-Coding-Attributes ;
+
+Text-Unit ::= SEQUENCE {
+ content-portion-attributes Content-Portion-Attributes OPTIONAL,
+ content-information Content-Information OPTIONAL
+}
+
+Content-Portion-Attributes ::= SET {
+ content-identifier-layout Content-Portion-Identifier OPTIONAL,
+ content-identifier-logical [4] IMPLICIT Content-Portion-Identifier OPTIONAL,
+ type-of-coding Type-Of-Coding OPTIONAL,
+ coding-attributes
+ CHOICE {character-coding-attributes
+ [1] IMPLICIT Character-Coding-Attributes,
+ raster-gr-coding-attributes
+ [2] IMPLICIT Raster-Gr-Coding-Attributes,
+ geo-gr-coding-attributes
+ [7] IMPLICIT Geo-Gr-Coding-Attributes,
+ videotex-coding-attributes
+ [8] IMPLICIT Videotex-Coding-Attributes,
+ -- the use of the data item "videotex-coding-attributes" is applicable to
+ -- ITU-T Rec. T.410 Series only
+ -- the following tags are reserved for additional types
+ -- of coding attributes:
+ -- [9] audio
+ -- [10] dynamic-graphics
+ ext-cont-arch-coding-attributes [11] IMPLICIT EXTERNAL} OPTIONAL,
+ alternative-representation [3] IMPLICIT Alternative-Representation OPTIONAL
+}
+
+Content-Information ::= CHOICE {
+ content OCTET STRING,
+ tiled-content Tiled-Content
+}
+
+Tiled-Content ::= SEQUENCE OF OCTET STRING
+
+Type-Of-Coding ::= CHOICE {
+ a [0] IMPLICIT INTEGER {t6(1)},
+ b [6] IMPLICIT OBJECT IDENTIFIER
+}
+
+Alternative-Representation ::= OCTET STRING
+
+-- string of characters from the sets designated by the document
+-- profile attribute "alternative representation character sets",
+-- plus carriage return and line feed
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UpperBounds.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UpperBounds.asn
new file mode 100644
index 0000000000..c97c83a569
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UpperBounds.asn
@@ -0,0 +1,89 @@
+-- Module UpperBounds (X.520:08/1997)
+
+UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3} DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ub-answerback INTEGER ::=
+8
+
+ub-business-category INTEGER ::= 128
+
+ub-common-name INTEGER ::= 64
+
+ub-country-code INTEGER ::= 4
+
+ub-description INTEGER ::= 1024
+
+ub-destination-indicator INTEGER ::= 128
+
+ub-directory-string-first-component-match INTEGER ::= 32768
+
+ub-international-isdn-number INTEGER ::= 16
+
+ub-knowledge-information INTEGER ::= 32768
+
+ub-locality-name INTEGER ::= 128
+
+ub-match INTEGER ::= 128
+
+ub-name INTEGER ::= 64
+
+ub-organization-name INTEGER ::= 64
+
+ub-organizational-unit-name INTEGER ::= 64
+
+ub-physical-office-name INTEGER ::= 128
+
+ub-post-office-box INTEGER ::= 40
+
+ub-postal-code INTEGER ::= 40
+
+ub-postal-line INTEGER ::= 6
+
+ub-postal-string INTEGER ::= 30
+
+ub-privacy-mark-length INTEGER ::= 128
+
+ub-schema INTEGER ::= 1024
+
+ub-search INTEGER ::= 17 --This definition is missing; to be provided --
+
+ub-serial-number INTEGER ::= 64
+
+ub-state-name INTEGER ::= 128
+
+ub-street-address INTEGER ::= 128
+
+ub-surname INTEGER ::= 64
+
+ub-tag INTEGER ::= 64
+
+ub-telephone-number INTEGER ::= 32
+
+ub-teletex-terminal-id INTEGER ::= 1024
+
+ub-telex-number INTEGER ::= 14
+
+ub-title INTEGER ::= 64
+
+ub-user-password INTEGER ::= 128
+
+ub-x121-address INTEGER ::= 15
+
+ub-localeContextSyntax INTEGER ::= 128
+
+ub-locale-context-syntax INTEGER ::= 64
+
+ub-pseudonym INTEGER ::= 128
+
+ub-content INTEGER ::= 32768
+
+END -- UpperBounds
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UsefulDefinitions.asn
new file mode 100644
index 0000000000..d9601bb7d0
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/UsefulDefinitions.asn
@@ -0,0 +1,238 @@
+-- Module UsefulDefinitions (X.501:08/1997)
+UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3}
+DEFINITIONS ::=
+BEGIN
+
+-- EXPORTS All -
+-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
+-- within the Directory Specifications, and for the use of other applications which will use them to access
+-- Directory services. Other applications may use them for their own purposes, but this will not constrain
+-- extensions and modifications needed to maintain or improve the Directory service.
+ID ::= OBJECT IDENTIFIER
+
+ds ID ::= {joint-iso-itu-t ds(5)}
+
+-- categories of information object
+module ID ::= {ds 1}
+
+serviceElement ID ::= {ds 2}
+
+applicationContext ID ::= {ds 3}
+
+attributeType ID ::= {ds 4}
+
+attributeSyntax ID ::= {ds 5}
+
+objectClass ID ::= {ds 6}
+
+-- attributeSet ID ::= {ds 7}
+algorithm ID ::= {ds 8}
+
+abstractSyntax ID ::= {ds 9}
+
+-- object ID ::= {ds 10}
+-- port ID ::= {ds 11}
+dsaOperationalAttribute ID ::=
+ {ds 12}
+
+matchingRule ID ::= {ds 13}
+
+knowledgeMatchingRule ID ::= {ds 14}
+
+nameForm ID ::= {ds 15}
+
+group ID ::= {ds 16}
+
+subentry ID ::= {ds 17}
+
+operationalAttributeType ID ::= {ds 18}
+
+operationalBinding ID ::= {ds 19}
+
+schemaObjectClass ID ::= {ds 20}
+
+schemaOperationalAttribute ID ::= {ds 21}
+
+administrativeRoles ID ::= {ds 23}
+
+accessControlAttribute ID ::= {ds 24}
+
+rosObject ID ::= {ds 25}
+
+contract ID ::= {ds 26}
+
+package ID ::= {ds 27}
+
+accessControlSchemes ID ::= {ds 28}
+
+certificateExtension ID ::= {ds 29}
+
+managementObject ID ::= {ds 30}
+
+attributeValueContext ID ::= {ds 31}
+
+-- securityExchange ID ::= {ds 32}
+idmProtocol ID ::= {ds 33}
+
+problem ID ::= {ds 34}
+
+notification ID ::= {ds 35}
+
+matchingRestriction ID ::=
+ {ds 36} -- None are currently defined by this specification
+
+controlAttributeType ID ::= {ds 37}
+
+-- modules
+usefulDefinitions ID ::= {module usefulDefinitions(0) 3}
+
+informationFramework ID ::= {module informationFramework(1) 3}
+
+directoryAbstractService ID ::= {module directoryAbstractService(2) 3}
+
+distributedOperations ID ::= {module distributedOperations(3) 3}
+
+protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3}
+
+selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3}
+
+selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3}
+
+authenticationFramework ID ::= {module authenticationFramework(7) 3}
+
+algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3}
+
+directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3}
+
+upperBounds ID ::= {module upperBounds(10) 3}
+
+dap ID ::= {module dap(11) 3}
+
+dsp ID ::= {module dsp(12) 3}
+
+distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3}
+
+directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3}
+
+directoryShadowAbstractService ID ::=
+ {module directoryShadowAbstractService(15) 3}
+
+disp ID ::= {module disp(16) 3}
+
+dop ID ::= {module dop(17) 3}
+
+opBindingManagement ID ::= {module opBindingManagement(18) 3}
+
+opBindingOIDs ID ::= {module opBindingOIDs(19) 3}
+
+hierarchicalOperationalBindings ID ::=
+ {module hierarchicalOperationalBindings(20) 3}
+
+dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3}
+
+schemaAdministration ID ::= {module schemaAdministration(23) 3}
+
+basicAccessControl ID ::= {module basicAccessControl(24) 3}
+
+directoryOperationalBindingTypes ID ::=
+ {module directoryOperationalBindingTypes(25) 3}
+
+certificateExtensions ID ::= {module certificateExtensions(26) 0}
+
+directoryManagement ID ::= {module directoryManagement(27) 1}
+
+enhancedSecurity ID ::= {module enhancedSecurity(28) 1}
+
+iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4}
+
+directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4}
+
+-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1}
+-- synonyms
+id-oc ID ::=
+ objectClass
+
+id-at ID ::= attributeType
+
+id-as ID ::= abstractSyntax
+
+id-mr ID ::= matchingRule
+
+id-nf ID ::= nameForm
+
+id-sc ID ::= subentry
+
+id-oa ID ::= operationalAttributeType
+
+id-ob ID ::= operationalBinding
+
+id-doa ID ::= dsaOperationalAttribute
+
+id-kmr ID ::= knowledgeMatchingRule
+
+id-soc ID ::= schemaObjectClass
+
+id-soa ID ::= schemaOperationalAttribute
+
+id-ar ID ::= administrativeRoles
+
+id-aca ID ::= accessControlAttribute
+
+id-ac ID ::= applicationContext
+
+id-rosObject ID ::= rosObject
+
+id-contract ID ::= contract
+
+id-package ID ::= package
+
+id-acScheme ID ::= accessControlSchemes
+
+id-ce ID ::= certificateExtension
+
+id-mgt ID ::= managementObject
+
+id-idm ID ::= idmProtocol
+
+id-avc ID ::= attributeValueContext
+
+-- id-se ID ::= securityExchange
+id-pr ID ::= problem
+
+id-not ID ::= notification
+
+id-mre ID ::= matchingRestriction
+
+id-cat ID ::= controlAttributeType
+
+-- obsolete module identifiers
+-- usefulDefinition ID ::= {module 0}
+-- informationFramework ID ::= {module 1}
+-- directoryAbstractService ID ::= {module 2}
+-- distributedOperations ID ::= {module 3}
+-- protocolObjectIdentifiers ID ::= {module 4}
+-- selectedAttributeTypes ID ::= {module 5}
+-- selectedObjectClasses ID ::= {module 6}
+-- authenticationFramework ID ::= {module 7}
+-- algorithmObjectIdentifiers ID ::= {module 8}
+-- directoryObjectIdentifiers ID ::= {module 9}
+-- upperBounds ID ::= {module 10}
+-- dap ID ::= {module 11}
+-- dsp ID ::= {module 12}
+-- distributedDirectoryObjectIdentifiers ID ::= {module 13}
+-- unused module identifiers
+-- directoryShadowOIDs ID ::= {module 14}
+-- directoryShadowAbstractService ID ::= {module 15}
+-- disp ID ::= {module 16}
+-- dop ID ::= {module 17}
+-- opBindingManagement ID ::= {module 18}
+-- opBindingOIDs ID ::= {module 19}
+-- hierarchicalOperationalBindings ID ::= {module 20}
+-- dsaOperationalAttributeTypes ID ::= {module 22}
+-- schemaAdministration ID ::= {module 23}
+-- basicAccessControl ID ::= {module 24}
+-- operationalBindingOIDs ID ::= {module 25}
+END -- UsefulDefinitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Videotex-Coding-Attributes.asn b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Videotex-Coding-Attributes.asn
new file mode 100644
index 0000000000..18e51cbc0d
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_SUITE_data/x420/Videotex-Coding-Attributes.asn
@@ -0,0 +1,30 @@
+-- Module Videotex-Coding-Attributes (T.101:11/1994)
+Videotex-Coding-Attributes DEFINITIONS ::=
+BEGIN
+
+EXPORTS Videotex-Coding-Attributes;
+
+Videotex-Coding-Attributes ::= SET {
+ subset [0] IMPLICIT Subset OPTIONAL,
+ rank [1] IMPLICIT Rank OPTIONAL,
+ profile [2] IMPLICIT Profile OPTIONAL
+}
+
+Subset ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5), profile1(81),
+ profile2(82), profile3(83), profile4(84), profileX1-1(85), profileX1-2(86),
+ profileX1-3(87), profileX1-4(88), profileX2-1(89), profileX2-2(90),
+ profileX2-3(91), profileX2-4(92)}
+
+Rank ::= INTEGER {
+ undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5)}
+
+Profile ::= INTEGER {
+ undefined(0), profile1(81), profile2(82), profile3(83), profile4(84),
+ profileX1-1(85), profileX1-2(86), profileX1-3(87), profileX1-4(88),
+ profileX2-1(89), profileX2-2(90), profileX2-3(91), profileX2-4(92)}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_bin_v2_particular_SUITE.erl.src b/lib/asn1/test/asn1_bin_v2_particular_SUITE.erl.src
new file mode 100644
index 0000000000..abd21b0d78
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_v2_particular_SUITE.erl.src
@@ -0,0 +1,95 @@
+
+particular() -> [smp, ticket7904].
+
+
+smp(suite) -> [];
+smp(Config) ->
+ case erlang:system_info(smp_support) of
+ true ->
+ NumOfProcs = erlang:system_info(schedulers),
+ io:format("smp starting ~p workers\n",[NumOfProcs]),
+
+ ?line Msg = {initiatingMessage, testNBAPsystem:cell_setup_req_msg()},
+ ?line ok = testNBAPsystem:compile(Config,per_bin,[optimize]),
+
+ Parent = self(),
+
+ ?line ok = asn1rt:load_driver(),
+
+ smp2(Parent,NumOfProcs,Msg,2),
+
+ N = 10000,
+
+ ?line {Time1,ok} = timer:tc(?MODULE,smp2,[Parent,NumOfProcs,Msg, N]),
+ ?line {Time1S,ok} = timer:tc(?MODULE,sequential,[NumOfProcs * N,Msg]),
+
+ ?line ok = testNBAPsystem:compile(Config,ber_bin,[optimize,driver]),
+ ?line {Time2,ok} = timer:tc(?MODULE,smp2,[Parent,NumOfProcs,Msg, N]),
+
+ ?line {Time2S,ok} = timer:tc(?MODULE,sequential,[NumOfProcs * N,Msg]),
+
+ {comment,lists:flatten(io_lib:format("Encode/decode time parallell with ~p cores: ~p [microsecs]~nEncode/decode time sequential: ~p [microsecs]",[NumOfProcs,Time1+Time2,Time1S+Time2S]))};
+ false ->
+ {skipped,"No smp support"}
+ end.
+
+smp2(Parent,NumOfProcs,Msg, N) ->
+ Pids = [spawn_link(fun() -> worker(Msg,Parent, N) end)
+ || _ <- lists:seq(1,NumOfProcs)],
+ ?line ok = wait_pids(Pids).
+
+worker(Msg, Parent, N) ->
+ %% io:format("smp worker ~p with ~p worker loops.~n",[self(), N]),
+ worker_loop(N, Msg),
+ Parent ! self().
+
+worker_loop(0, _Msg) ->
+ ok;
+worker_loop(N, Msg) ->
+ ?line {ok,B}=asn1_wrapper:encode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ Msg),
+ ?line {ok,_Msg}=asn1_wrapper:decode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ B),
+ worker_loop(N - 1, Msg).
+
+
+wait_pids([]) ->
+ ok;
+wait_pids(Pids) ->
+ receive
+ Pid when is_pid(Pid) ->
+ ?line true = lists:member(Pid,Pids),
+ Others = lists:delete(Pid,Pids),
+ io:format("wait_pid got ~p, still waiting for ~p\n",[Pid,Others]),
+ wait_pids(Others);
+ Err ->
+ io:format("Err: ~p~n",[Err]),
+ ?line exit(Err)
+ end.
+
+sequential(N,Msg) ->
+ %%io:format("sequential encode/decode with N = ~p~n",[N]),
+ worker_loop(N,Msg).
+
+-record('InitiatingMessage',{procedureCode,criticality,value}).
+-record('Iu-ReleaseCommand',{first,second}).
+
+ticket7904(suite) -> [];
+ticket7904(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "RANAPextract1",[per_bin,optimize,{outdir,OutDir}]),
+
+ Val1 = #'InitiatingMessage'{procedureCode=1,
+ criticality=ignore,
+ value=#'Iu-ReleaseCommand'{
+ first=13,
+ second=true}},
+
+ ?line {ok,_} = 'RANAPextract1':encode('InitiatingMessage', Val1),
+ asn1rt:unload_driver(),
+ ?line {ok,_} = 'RANAPextract1':encode('InitiatingMessage', Val1).
diff --git a/lib/asn1/test/asn1_common_SUITE.erl.src b/lib/asn1/test/asn1_common_SUITE.erl.src
new file mode 100644
index 0000000000..99a4f90738
--- /dev/null
+++ b/lib/asn1/test/asn1_common_SUITE.erl.src
@@ -0,0 +1,98 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+common() -> [app_test, appup_test,testTimer_ber,testTimer_ber_bin,
+ testTimer_ber_bin_opt, testTimer_ber_bin_opt_driver, testTimer_per,
+ testTimer_per_bin, testTimer_per_bin_opt, testTimer_uper_bin,
+ testComment,testName2Number].
+
+
+app_test(suite) -> [{asn1_app_test,all}].
+appup_test(suite) -> [{asn1_appup_test,all}].
+
+testTimer_ber(suite) -> [];
+testTimer_ber(Config) ->
+ ?line testTimer:compile(Config,ber,[]),
+ ?line testTimer:go(Config,ber).
+
+testTimer_ber_bin(suite) -> [];
+testTimer_ber_bin(Config) ->
+ ?line testTimer:compile(Config,ber_bin,[]),
+ ?line testTimer:go(Config,ber_bin).
+
+testTimer_ber_bin_opt(suite) -> [];
+testTimer_ber_bin_opt(Config) ->
+ ?line testTimer:compile(Config,ber_bin,[optimize]),
+ ?line testTimer:go(Config,ber_bin).
+
+testTimer_ber_bin_opt_driver(suite) -> [];
+testTimer_ber_bin_opt_driver(Config) ->
+ ?line testTimer:compile(Config,ber_bin,[optimize,driver]),
+ ?line testTimer:go(Config,ber_bin).
+
+testTimer_per(suite) -> [];
+testTimer_per(Config) ->
+ ?line testTimer:compile(Config,per,[]),
+ ?line testTimer:go(Config,per).
+
+testTimer_per_bin(suite) -> [];
+testTimer_per_bin(Config) ->
+ ?line testTimer:compile(Config,per_bin,[]),
+ ?line testTimer:go(Config,per_bin).
+
+testTimer_per_bin_opt(suite) -> [];
+testTimer_per_bin_opt(Config) ->
+ ?line testTimer:compile(Config,per_bin,[optimize]),
+ ?line testTimer:go(Config,per_bin).
+
+
+testTimer_uper_bin(suite) -> [];
+testTimer_uper_bin(Config) ->
+ ?line ok=testTimer:compile(Config,uper_bin,[]),
+ ?line {comment,_} = testTimer:go(Config,uper_bin).
+
+%% Test of multiple-line comment, OTP-8043
+testComment(suite) -> [];
+testComment(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "Comment",[{outdir,OutDir}]),
+
+ ?line {ok,Enc} = asn1_wrapper:encode('Comment','Seq',{'Seq',12,true}),
+ ?line {ok,{'Seq',12,true}} = asn1_wrapper:decode('Comment','Seq',Enc),
+ ok.
+
+testName2Number(suite) -> [];
+testName2Number(Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ N2NOptions = [{n2n,Type}|| Type <-
+ ['CauseMisc','CauseProtocol',
+ %% 'CauseNetwork',
+ 'CauseRadioNetwork',
+ 'CauseTransport','CauseNas']],
+ ?line ok = asn1ct:compile(DataDir ++ "S1AP-IEs",[{outdir,OutDir}]++N2NOptions),
+ ?line true = code:add_patha(OutDir),
+
+ ?line 0 = 'S1AP-IEs':name2num_CauseMisc('control-processing-overload'),
+ ?line 'unknown-PLMN' = 'S1AP-IEs':num2name_CauseMisc(5),
+ ok.
+
diff --git a/lib/asn1/test/asn1_particular_SUITE.erl.src b/lib/asn1/test/asn1_particular_SUITE.erl.src
new file mode 100644
index 0000000000..df76de914d
--- /dev/null
+++ b/lib/asn1/test/asn1_particular_SUITE.erl.src
@@ -0,0 +1,10 @@
+
+particular() -> [ticket_7407].
+
+ticket_7407(suite) -> [];
+ticket_7407(Config) ->
+ ?line ok = asn1_test_lib:ticket_7407_compile(Config,[]),
+ ?line ok = asn1_test_lib:ticket_7407_code(true),
+
+ ?line ok = asn1_test_lib:ticket_7407_compile(Config,[no_final_padding]),
+ ?line ok = asn1_test_lib:ticket_7407_code(false). \ No newline at end of file
diff --git a/lib/asn1/test/asn1_test_lib.erl b/lib/asn1/test/asn1_test_lib.erl
new file mode 100644
index 0000000000..2884c79216
--- /dev/null
+++ b/lib/asn1/test/asn1_test_lib.erl
@@ -0,0 +1,151 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(asn1_test_lib).
+
+-export([ticket_7407_compile/2,ticket_7407_code/1, ticket_7678/2,
+ ticket_7708/2, ticket_7763/1, ticket_7876/3]).
+
+-include("test_server.hrl").
+
+
+ticket_7407_compile(Config,Option) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "EUTRA-extract-7407",
+ [uper_bin, {outdir,OutDir}]++Option).
+
+ticket_7708(Config,Option) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "EUTRA-extract-55",
+ [uper_bin, {outdir,OutDir}]++Option).
+
+
+ticket_7407_code(FinalPadding) ->
+ Msg1 = {Type1,_} = eutra1(msg),
+ ?line {ok,B1} = 'EUTRA-extract-7407':encode(Type1,Msg1),
+ ?line B1 = eutra1(result,FinalPadding),
+
+ Msg2 = {Type2,_} = eutra2(msg),
+ ?line {ok,B2} = 'EUTRA-extract-7407':encode(Type2,Msg2),
+ ?line B2 = eutra2(result,FinalPadding),
+ ok.
+
+eutra1(msg) ->
+ {'BCCH-BCH-Message',{'MasterInformationBlock',[0,1,0,1],[1,0,1,0],{'PHICH-Configuration',short,ffs},[1,0,1,0,0,0,0,0]}}.
+eutra1(result,true) ->
+ <<90,80,0>>;
+eutra1(result,false) ->
+ <<90,80,0:1>>.
+
+eutra2(msg) ->
+ {'BCCH-DL-SCH-Message',
+ {c1,
+ {systemInformation1,
+ {'SystemInformationBlockType1',
+ {'SystemInformationBlockType1_cellAccessRelatedInformation',
+ [{'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},true},
+ {'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},false},
+ {'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},true}],
+ {'TrackingAreaCode'},
+ {'CellIdentity'},
+ false,
+ true,
+ true,
+ true
+ },
+ {'SystemInformationBlockType1_cellSelectionInfo',-50},
+ 24,
+ [{'SystemInformationBlockType1_schedulinInformation_SEQOF',
+ {'SystemInformationBlockType1_schedulinInformation_SEQOF_si-MessageType'},
+ ms320,
+ {'SystemInformationBlockType1_schedulinInformation_SEQOF_sib-MappingInfo'}}],
+ 0
+ }
+ }
+ }
+ }.
+eutra2(result,true) ->
+%% 55 5C A5 E0
+ <<85,92,165,224>>;
+eutra2(result,false) ->
+ <<85,92,165,14:4>>.
+
+
+
+ticket_7678(Config, Option) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "UPERDefault",
+ [uper_bin, {outdir,OutDir}]++Option),
+
+ ?line Val = 'UPERDefault':seq(),
+ ?line {ok,<<0,6,0>>} = 'UPERDefault':encode('Seq',Val),
+ ?line {ok,Val} = 'UPERDefault':decode('Seq',<<0,6,0>>),
+ ok.
+
+
+ticket_7763(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "EUTRA-extract-55",
+ [uper_bin, {outdir,OutDir}]),
+ Val = {'Seq',15,lists:duplicate(8,0),[0],lists:duplicate(28,0),15,true},
+ ?line {ok,Bin} = 'EUTRA-extract-55':encode('Seq',Val),
+
+ ?line ok = asn1ct:compile(DataDir ++ "EUTRA-extract-55",
+ [uper_bin,compact_bit_string,{outdir,OutDir}]),
+ CompactVal = {'Seq',15,{0,<<0>>},{7,<<0>>},{4,<<0,0,0,0>>},15,true},
+ {ok,CompactBin} = 'EUTRA-extract-55':encode('Seq',CompactVal),
+
+ ?line Bin = CompactBin,
+
+ io:format("CompactBin:~n~p~nBin:~n~p~nCompactBin == Bin is ~p~n",[CompactBin,Bin,CompactBin == Bin]).
+
+
+ticket_7876(Config,Erule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok = asn1ct:compile(DataDir ++ "S1AP-CommonDataTypes",
+ [Erule,{outdir,OutDir}|Options]),
+ ?line ok = asn1ct:compile(DataDir ++ "S1AP-Constants",
+ [Erule,{outdir,OutDir}|Options]),
+?line ok = asn1ct:compile(DataDir ++ "S1AP-Containers",
+ [Erule,{outdir,OutDir}|Options]),
+?line ok = asn1ct:compile(DataDir ++ "S1AP-IEs",
+ [Erule,{outdir,OutDir}|Options]),
+?line ok = asn1ct:compile(DataDir ++ "S1AP-PDU-Contents",
+ [Erule,{outdir,OutDir}|Options]),
+?line ok = asn1ct:compile(DataDir ++ "S1AP-PDU-Descriptions",
+ [Erule,{outdir,OutDir}|Options]),
+
+ ticket_7876_encdec(Erule),
+ ok.
+
+ticket_7876_encdec(per) ->
+ ?line {ok,{initiatingMessage,_}} = 'S1AP-PDU-Descriptions':decode('S1AP-PDU', [0,2,64,49,0,0,5,0,0,0,4,128,106,56,197,0,8,0,3,64,2,134,0,100,64,8,0,66,240,153,0,7,192,16,0,67,64,6,0,66,240,153,70,1,0,107,64,5,0,0,0,0,0]);
+ticket_7876_encdec(_) ->
+ ?line {ok,{initiatingMessage,_}} = 'S1AP-PDU-Descriptions':decode('S1AP-PDU', <<0,2,64,49,0,0,5,0,0,0,4,128,106,56,197,0,8,0,3,64,2,134,0,100,64,8,0,66,240,153,0,7,192,16,0,67,64,6,0,66,240,153,70,1,0,107,64,5,0,0,0,0,0>>).
diff --git a/lib/asn1/test/asn1_wrapper.erl b/lib/asn1/test/asn1_wrapper.erl
new file mode 100644
index 0000000000..553f0b062c
--- /dev/null
+++ b/lib/asn1/test/asn1_wrapper.erl
@@ -0,0 +1,74 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(asn1_wrapper).
+-author('kenneth@bilbo').
+
+-compile(export_all).
+%%-export([Function/Arity, ...]).
+
+
+encode(Module,Type,Value) ->
+ case asn1rt:encode(Module,Type,Value) of
+ {ok,X} when binary(X) ->
+ {ok, binary_to_list(X)};
+ {ok,X} ->
+ {ok, binary_to_list(list_to_binary(X))};
+ Error ->
+ Error
+ end.
+
+decode(Module,Type,Bytes) ->
+ case Module:encoding_rule() of
+ ber ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ ber_bin_v2 when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ ber_bin_v2 ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ per ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ per_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes));
+ uper_bin when binary(Bytes) ->
+ asn1rt:decode(Module,Type,Bytes);
+ uper_bin ->
+ asn1rt:decode(Module,Type,list_to_binary(Bytes))
+ end.
+
+erule(ber) ->
+ ber;
+erule(ber_bin) ->
+ ber;
+erule(ber_bin_v2) ->
+ ber;
+erule(per) ->
+ per;
+erule(per_bin) ->
+ per;
+erule(uper_bin) ->
+ per.
+
+
diff --git a/lib/asn1/test/bench/README b/lib/asn1/test/bench/README
new file mode 100644
index 0000000000..2aa9e4cd70
--- /dev/null
+++ b/lib/asn1/test/bench/README
@@ -0,0 +1,109 @@
+Benchmark framework
+-------------------
+
+This benchmark framework consists of the files:
+bench.erl - see bench module below
+bench.hrl - Defines some useful macros
+all.erl - see all module below
+
+bench module
+-----------
+
+The module bench is a generic module that measures execution time
+of functions in callback modules and writes an html-report on the outcome.
+
+When you execute the function bench:run/0 it will compile and run all
+benchmark modules in the current directory.
+
+all module
+-----------
+
+In the all module there is a function called releases/0 that you can
+edit to contain all your erlang installations and then you can
+run your benchmarks on several erlang versions using only one command i.e.
+all:run().
+
+Requirements on callback modules
+---------------------------------
+
+* A callback module must be named <callbackModuleName>_bm.erl
+
+* The module must export the function benchmarks/0 that must return:
+ {Iterations, [Name1,Name2...]} where Iterations is the number of
+ times each benchmark should be run. Name1, Name2 and so one are the
+ name of exported functions in the module.
+
+* The exported functions Name1 etc. must take one argument i.e. the number
+ of iterations and should return the atom ok.
+
+* The functions in a benchmark module should represent different
+ ways/different sequential algorithms for doing something. And the
+ result will be how fast they are compared to each other.
+
+Files created
+--------------
+
+Files that are created in the current directory are *.bmres and
+index.html. The file(s) with the extension "bmres" are an intermediate
+representation of the benchmark results and is only meant to be read
+by the reporting mechanism defined in bench.erl. The index.html file
+is the report telling you how good the benchmarks are in comparison to
+each other. If you run your test on several erlang releases the
+html-file will include the result for all versions.
+
+
+Pitfalls
+---------
+To get meaningful measurements, you should make sure that:
+
+* The total execution time is at least several seconds.
+
+* That any time spent in setup before entering the measurement loop is very
+ small compared to the total time.
+
+* That time spent by the loop itself is small compared to the total execution
+ time
+
+Consider the following example of a benchmark function that does
+a local function call.
+
+local_call(0) -> ok;
+local_call(Iter) ->
+ foo(), % Local function call
+ local_call(Iter-1).
+
+The problem is that both "foo()" and "local_call(Iter-1)" takes about
+the same amount of time. To get meaningful figures you'll need to make
+sure that the loop overhead will not be visible. In this case we can
+take help of a macro in bench.hrl to repeat the local function call
+many times, making sure that time spent calling the local function is
+relatively much longer than the time spent iterating. Of course, all
+benchmarks in the same module must be repeated the same number of
+times; thus external_call will look like
+
+external_call(0) -> ok;
+external_call(Iter) ->
+ ?rep20(?MODULE:foo()),
+ external_call(Iter-1).
+
+This technique is only necessary if the operation we are testing executes
+really fast.
+
+If you for instance want to test a sort routine we can keep it simple:
+
+sorted(Iter) ->
+ do_sort(Iter, lists:seq(0, 63)).
+
+do_sort(0, List) -> ok;
+do_sort(Iter, List) ->
+ lists:sort(List),
+ do_sort(Iter-1, List).
+
+The call to lists:seq/2 is only done once. The loop overhead in the
+do_sort/2 function is small compared to the execution time of lists:sort/1.
+
+Error handling
+---------------
+
+Any error enforced by a callback module will result in exit of the benchmark
+program and an errormessage that should give a good idea of what is wrong.
diff --git a/lib/asn1/test/bench/RanapASN1.asn b/lib/asn1/test/bench/RanapASN1.asn
new file mode 100644
index 0000000000..b848aadc84
--- /dev/null
+++ b/lib/asn1/test/bench/RanapASN1.asn
@@ -0,0 +1,3146 @@
+RanapASN1 {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &Outcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ [OUTCOME &Outcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+RANAP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ outcome Outcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+Outcome ::= SEQUENCE {
+ procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
+ criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
+ RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
+ ...
+}
+
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
+ iu-Release |
+ relocationPreparation |
+ relocationResourceAllocation |
+ relocationCancel |
+ sRNS-ContextTransfer |
+ securityModeControl |
+ dataVolumeReport |
+ reset |
+ resetResource ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-ReleaseRequest |
+ iu-ReleaseRequest |
+ relocationDetect |
+ relocationComplete |
+ paging |
+ commonID |
+ cN-InvokeTrace |
+ cN-DeactivateTrace |
+ locationReportingControl |
+ locationReport |
+ initialUE-Message |
+ directTransfer |
+ overloadControl |
+ errorIndication |
+ sRNS-DataForward |
+ forwardSRNS-Context |
+ privateMessage |
+ rANAP-Relocation ,
+ ...
+}
+
+RANAP-ELEMENTARY-PROCEDURES-CLASS-3 RANAP-ELEMENTARY-PROCEDURE ::= {
+ rAB-Assignment ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+iu-Release RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseCommand
+ SUCCESSFUL OUTCOME Iu-ReleaseComplete
+ PROCEDURE CODE id-Iu-Release
+ CRITICALITY reject
+}
+
+relocationPreparation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequired
+ SUCCESSFUL OUTCOME RelocationCommand
+ UNSUCCESSFUL OUTCOME RelocationPreparationFailure
+ PROCEDURE CODE id-RelocationPreparation
+ CRITICALITY reject
+}
+
+relocationResourceAllocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationRequest
+ SUCCESSFUL OUTCOME RelocationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME RelocationFailure
+ PROCEDURE CODE id-RelocationResourceAllocation
+ CRITICALITY reject
+}
+
+relocationCancel RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationCancel
+ SUCCESSFUL OUTCOME RelocationCancelAcknowledge
+ PROCEDURE CODE id-RelocationCancel
+ CRITICALITY reject
+}
+
+sRNS-ContextTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-ContextRequest
+ SUCCESSFUL OUTCOME SRNS-ContextResponse
+ PROCEDURE CODE id-SRNS-ContextTransfer
+ CRITICALITY reject
+}
+
+securityModeControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecurityModeCommand
+ SUCCESSFUL OUTCOME SecurityModeComplete
+ UNSUCCESSFUL OUTCOME SecurityModeReject
+ PROCEDURE CODE id-SecurityModeControl
+ CRITICALITY reject
+}
+
+dataVolumeReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataVolumeReportRequest
+ SUCCESSFUL OUTCOME DataVolumeReport
+ PROCEDURE CODE id-DataVolumeReport
+ CRITICALITY reject
+}
+
+
+reset RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-ReleaseRequest
+ PROCEDURE CODE id-RAB-ReleaseRequest
+ CRITICALITY ignore
+}
+
+iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Iu-ReleaseRequest
+ PROCEDURE CODE id-Iu-ReleaseRequest
+ CRITICALITY ignore
+}
+
+relocationDetect RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationDetect
+ PROCEDURE CODE id-RelocationDetect
+ CRITICALITY ignore
+}
+
+relocationComplete RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RelocationComplete
+ PROCEDURE CODE id-RelocationComplete
+ CRITICALITY ignore
+}
+
+paging RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+commonID RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CommonID
+ PROCEDURE CODE id-CommonID
+ CRITICALITY ignore
+}
+
+cN-InvokeTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-InvokeTrace
+ PROCEDURE CODE id-CN-InvokeTrace
+ CRITICALITY ignore
+}
+
+cN-DeactivateTrace RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CN-DeactivateTrace
+ PROCEDURE CODE id-CN-DeactivateTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReport RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+initialUE-Message RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUE-Message
+ PROCEDURE CODE id-InitialUE-Message
+ CRITICALITY ignore
+}
+
+directTransfer RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DirectTransfer
+ PROCEDURE CODE id-DirectTransfer
+ CRITICALITY ignore
+}
+
+overloadControl RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Overload
+ PROCEDURE CODE id-OverloadControl
+ CRITICALITY ignore
+}
+
+errorIndication RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+sRNS-DataForward RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRNS-DataForwardCommand
+ PROCEDURE CODE id-SRNS-DataForward
+ CRITICALITY ignore
+}
+
+forwardSRNS-Context RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ForwardSRNS-Context
+ PROCEDURE CODE id-ForwardSRNS-Context
+ CRITICALITY ignore
+}
+
+rAB-Assignment RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RAB-AssignmentRequest
+ OUTCOME RAB-AssignmentResponse
+ PROCEDURE CODE id-RAB-Assignment
+ CRITICALITY reject
+}
+
+privateMessage RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetResource
+ SUCCESSFUL OUTCOME ResetResourceAcknowledge
+ PROCEDURE CODE id-ResetResource
+ CRITICALITY reject
+}
+
+rANAP-Relocation RANAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANAP-RelocationInformation
+ PROCEDURE CODE id-RANAP-Relocation
+ CRITICALITY ignore
+}
+
+
+
+-- **************************************************************
+--
+-- PDU definitions for RANAP.
+--
+-- **************************************************************
+
+
+--BEGIN_2
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+RAB-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+RAB-IE-ContainerPairList { RANAP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfRABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+IuSigConId-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfIuSigConIds, {IEsSetParam} }
+DirectTransfer-IE-ContainerList { RANAP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfDTs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- Iu RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Command
+--
+-- **************************************************************
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCommandExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu Release Complete
+--
+-- **************************************************************
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group is only present if data volume reporting for PS domain is required -- } |
+ { ID id-RAB-ReleasedList-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedList-IuRelComp PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain when sequence numbers are available and when the release was initiated by UTRAN -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-DataVolumeReportList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportItemIEs} }
+
+RAB-DataVolumeReportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportItem CRITICALITY ignore TYPE RAB-DataVolumeReportItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-UnsuccessfullyTransmittedDataVolume DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList-IuRelComp ::= RAB-IE-ContainerList { {RAB-ReleasedItem-IuRelComp-IEs} }
+
+RAB-ReleasedItem-IuRelComp-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem-IuRelComp CRITICALITY ignore TYPE RAB-ReleasedItem-IuRelComp PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-IuRelComp-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-IuRelComp-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Iu-ReleaseCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Required
+--
+-- **************************************************************
+
+RelocationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequiredIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequiredExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequiredIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RelocationType CRITICALITY reject TYPE RelocationType 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-ClassmarkInformation2 CRITICALITY reject TYPE ClassmarkInformation2 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-ClassmarkInformation3 CRITICALITY ignore TYPE ClassmarkInformation3 PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be present when initiating relocation of SRNS -- } |
+ { ID id-OldBSS-ToNewBSS-Information CRITICALITY ignore TYPE OldBSS-ToNewBSS-Information PRESENCE conditional
+ -- This is only present when initiating an inter system handover towards GSM BSC -- } ,
+ ...
+}
+
+RelocationRequiredExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Command
+--
+-- **************************************************************
+
+RelocationCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCommandExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY reject TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-L3-Information CRITICALITY ignore TYPE L3-Information PRESENCE conditional
+ -- This IE shall be included if it is received by the CN from the relocation target. -- } |
+ { ID id-RAB-RelocationReleaseList CRITICALITY ignore TYPE RAB-RelocationReleaseList PRESENCE optional } |
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group if applicable is only present for RABs towards the PS domain -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-RelocationReleaseList ::= RAB-IE-ContainerList { {RAB-RelocationReleaseItemIEs} }
+
+RAB-RelocationReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-RelocationReleaseItem CRITICALITY ignore TYPE RAB-RelocationReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-RelocationReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-RelocationReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-RelocationReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-DataForwardingList ::= RAB-IE-ContainerList { {RAB-DataForwardingItemIEs} }
+
+RAB-DataForwardingItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem CRITICALITY ignore TYPE RAB-DataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Preparation Failure
+--
+-- **************************************************************
+
+RelocationPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationPreparationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationPreparationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationPreparationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationPreparationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Request
+--
+-- **************************************************************
+
+RelocationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-SourceRNC-ToTargetRNC-TransparentContainer
+ CRITICALITY reject TYPE SourceRNC-ToTargetRNC-TransparentContainer PRESENCE mandatory } |
+ { ID id-RAB-SetupList-RelocReq CRITICALITY reject TYPE RAB-SetupList-RelocReq PRESENCE optional } |
+ { ID id-IntegrityProtectionInformation CRITICALITY ignore TYPE IntegrityProtectionInformation PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupList-RelocReq ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReq-IEs} }
+
+RAB-SetupItem-RelocReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReq CRITICALITY reject TYPE RAB-SetupItem-RelocReq PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain --,
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ userPlaneInformation UserPlaneInformation,
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneInformation ::= SEQUENCE {
+ userPlaneMode UserPlaneMode,
+ uP-ModeVersions UP-ModeVersions,
+ iE-Extensions ProtocolExtensionContainer { {UserPlaneInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Request Acknowledge
+--
+-- **************************************************************
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationRequestAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationRequestAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationRequestAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TargetRNC-ToSourceRNC-TransparentContainer
+ CRITICALITY ignore TYPE TargetRNC-ToSourceRNC-TransparentContainer PRESENCE conditional
+ -- Must be included if applicapble and if not sent via the other CN -- } |
+ { ID id-RAB-SetupList-RelocReqAck CRITICALITY ignore TYPE RAB-SetupList-RelocReqAck PRESENCE optional} |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE optional }|
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY ignore TYPE ChosenIntegrityProtectionAlgorithm PRESENCE conditional
+ -- This IE is only present if available at the sending side -- } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupList-RelocReqAck ::= RAB-IE-ContainerList { {RAB-SetupItem-RelocReqAck-IEs} }
+
+RAB-SetupItem-RelocReqAck-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupItem-RelocReqAck CRITICALITY reject TYPE RAB-SetupItem-RelocReqAck PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupItem-RelocReqAck ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iuTransportAssociation IuTransportAssociation OPTIONAL,
+ --This IE is only present for RABS towards the PS Domain
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupItem-RelocReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupItem-RelocReqAck-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedList ::= RAB-IE-ContainerList { {RAB-FailedItemIEs} }
+
+RAB-FailedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedItem CRITICALITY ignore TYPE RAB-FailedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-FailedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-FailedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-FailedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelocationRequestAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Failure
+--
+-- **************************************************************
+
+RelocationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationFailureIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationFailureExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationFailureIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationFailureExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Cancel
+--
+-- **************************************************************
+
+RelocationCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+RelocationCancelExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Relocation Cancel Acknowledge
+--
+-- **************************************************************
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCancelAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCancelAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCancelAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RelocationCancelAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS CONTEXT TRANSFER OPEARATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Context Request
+--
+-- **************************************************************
+
+SRNS-ContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextRequestExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList-SRNS-CtxReq CRITICALITY ignore TYPE RAB-DataForwardingList-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingList-SRNS-CtxReq ::= RAB-IE-ContainerList { {RAB-DataForwardingItem-SRNS-CtxReq-IEs} }
+
+RAB-DataForwardingItem-SRNS-CtxReq-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingItem-SRNS-CtxReq CRITICALITY reject TYPE RAB-DataForwardingItem-SRNS-CtxReq PRESENCE mandatory },
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataForwardingItem-SRNS-CtxReq-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS Context Response
+--
+-- **************************************************************
+
+SRNS-ContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-ContextResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-ContextResponseExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-ContextResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ContextFailedtoTransferList CRITICALITY ignore TYPE RAB-ContextFailedtoTransferList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-ContextList ::= RAB-IE-ContainerList { {RAB-ContextItemIEs} }
+
+RAB-ContextItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem CRITICALITY ignore TYPE RAB-ContextItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextFailedtoTransferList ::= RAB-IE-ContainerList { {RABs-ContextFailedtoTransferItemIEs} }
+
+RABs-ContextFailedtoTransferItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextFailedtoTransferItem CRITICALITY ignore TYPE RABs-ContextFailedtoTransferItem PRESENCE mandatory },
+ ...
+}
+
+RABs-ContextFailedtoTransferItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-ContextFailedtoTransferItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-ContextFailedtoTransferItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRNS-ContextResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SECURITY MODE CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Security Mode Command
+--
+-- **************************************************************
+
+SecurityModeCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IntegrityProtectionInformation CRITICALITY reject TYPE IntegrityProtectionInformation PRESENCE mandatory } |
+ { ID id-EncryptionInformation CRITICALITY ignore TYPE EncryptionInformation PRESENCE optional } |
+ { ID id-KeyStatus CRITICALITY reject TYPE KeyStatus PRESENCE mandatory},
+ ...
+}
+
+SecurityModeCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Complete
+--
+-- **************************************************************
+
+SecurityModeComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeCompleteIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-ChosenIntegrityProtectionAlgorithm CRITICALITY reject TYPE ChosenIntegrityProtectionAlgorithm PRESENCE mandatory } |
+ { ID id-ChosenEncryptionAlgorithm CRITICALITY ignore TYPE ChosenEncryptionAlgorithm PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Security Mode Reject
+--
+-- **************************************************************
+
+SecurityModeReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SecurityModeRejectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SecurityModeRejectExtensions} } OPTIONAL,
+ ...
+}
+
+SecurityModeRejectIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SecurityModeRejectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA VOLUME REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Volume Report Request
+--
+-- **************************************************************
+
+DataVolumeReportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportRequestExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestList CRITICALITY ignore TYPE RAB-DataVolumeReportRequestList PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestList ::= RAB-IE-ContainerList { {RAB-DataVolumeReportRequestItemIEs} }
+
+RAB-DataVolumeReportRequestItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportRequestItem CRITICALITY reject TYPE RAB-DataVolumeReportRequestItem PRESENCE mandatory },
+ ...
+}
+
+RAB-DataVolumeReportRequestItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-DataVolumeReportRequestItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-DataVolumeReportRequestItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeReportRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Data Volume Report
+--
+-- **************************************************************
+
+DataVolumeReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DataVolumeReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DataVolumeReportExtensions} } OPTIONAL,
+ ...
+}
+
+DataVolumeReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataVolumeReportList CRITICALITY ignore TYPE RAB-DataVolumeReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedtoReportList CRITICALITY ignore TYPE RAB-FailedtoReportList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DataVolumeReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-FailedtoReportList ::= RAB-IE-ContainerList { {RABs-failed-to-reportItemIEs} }
+
+RABs-failed-to-reportItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-FailedtoReportItem CRITICALITY ignore TYPE RABs-failed-to-reportItem PRESENCE mandatory },
+ ...
+}
+
+RABs-failed-to-reportItem::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { RABs-failed-to-reportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RABs-failed-to-reportItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetExtensions} } OPTIONAL,
+ ...
+}
+
+ResetIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- **************************************************************
+--
+-- RESET RESOURCE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Reset Resource
+--
+-- **************************************************************
+
+ResetResource ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+ResetResourceList ::= IuSigConId-IE-ContainerList{ {ResetResourceItemIEs} }
+
+ResetResourceItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Resource Acknowledge
+--
+-- **************************************************************
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetResourceAcknowledgeIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ResetResourceAcknowledgeExtensions} } OPTIONAL,
+ ...
+}
+
+ResetResourceAcknowledgeIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-IuSigConIdList CRITICALITY ignore TYPE ResetResourceAckList PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+ResetResourceAckList ::= IuSigConId-IE-ContainerList{ {ResetResourceAckItemIEs} }
+
+ResetResourceAckItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-IuSigConIdItem CRITICALITY reject TYPE ResetResourceAckItem PRESENCE mandatory },
+ ...
+}
+
+ResetResourceAckItem ::= SEQUENCE {
+ iuSigConId IuSignallingConnectionIdentifier,
+ iE-Extensions ProtocolExtensionContainer { { ResetResourceAckItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResetResourceAckItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResetResourceAcknowledgeExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Release Request
+--
+-- **************************************************************
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseList ::= RAB-IE-ContainerList { {RAB-ReleaseItemIEs} }
+
+RAB-ReleaseItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleaseItem CRITICALITY ignore TYPE RAB-ReleaseItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleaseItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleaseItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleaseItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Iu RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Iu Release Request
+--
+-- **************************************************************
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Iu-ReleaseRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {Iu-ReleaseRequestExtensions} } OPTIONAL,
+ ...
+}
+
+Iu-ReleaseRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+Iu-ReleaseRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION DETECT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Detect
+--
+-- **************************************************************
+
+RelocationDetect ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationDetectIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationDetectExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationDetectIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationDetectExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Relocation Complete
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RelocationCompleteIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RelocationCompleteExtensions} } OPTIONAL,
+ ...
+}
+
+RelocationCompleteIEs RANAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RelocationCompleteExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PagingIEs} },
+ protocolExtensions ProtocolExtensionContainer { {PagingExtensions} } OPTIONAL,
+ ...
+}
+
+PagingIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory } |
+ { ID id-TemporaryUE-ID CRITICALITY ignore TYPE TemporaryUE-ID PRESENCE optional } |
+ { ID id-PagingAreaID CRITICALITY ignore TYPE PagingAreaID PRESENCE optional } |
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional } |
+ { ID id-NonSearchingIndication CRITICALITY ignore TYPE NonSearchingIndication PRESENCE optional } |
+ { ID id-DRX-CycleLengthCoefficient CRITICALITY ignore TYPE DRX-CycleLengthCoefficient PRESENCE conditional
+ -- This IE shall be included whenever available for that UE -- } ,
+ ...
+}
+
+PagingExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- COMMON ID ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Common ID
+--
+-- **************************************************************
+
+CommonID ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CommonID-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {CommonIDExtensions} } OPTIONAL,
+ ...
+}
+
+CommonID-IEs RANAP-PROTOCOL-IES ::= {
+ { ID id-PermanentNAS-UE-ID CRITICALITY ignore TYPE PermanentNAS-UE-ID PRESENCE mandatory },
+ ...
+}
+
+CommonIDExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN INVOKE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Invoke Trace
+--
+-- **************************************************************
+
+CN-InvokeTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-InvokeTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-InvokeTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-InvokeTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceType CRITICALITY ignore TYPE TraceType PRESENCE mandatory } |
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional } |
+ { ID id-UE-ID CRITICALITY ignore TYPE UE-ID PRESENCE optional } |
+ { ID id-OMC-ID CRITICALITY ignore TYPE OMC-ID PRESENCE optional },
+ ...
+}
+
+CN-InvokeTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- CN DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CN Deactivate Trace
+--
+-- **************************************************************
+
+CN-DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {CN-DeactivateTraceIEs} },
+ protocolExtensions ProtocolExtensionContainer { {CN-DeactivateTraceExtensions} } OPTIONAL,
+ ...
+}
+
+CN-DeactivateTraceIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory } |
+ { ID id-TriggerID CRITICALITY ignore TYPE TriggerID PRESENCE optional },
+ ...
+}
+
+CN-DeactivateTraceExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportingControlIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportingControlExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportingControlIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+LocationReportingControlExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {LocationReportIEs} },
+ protocolExtensions ProtocolExtensionContainer { {LocationReportExtensions} } OPTIONAL,
+ ...
+}
+
+LocationReportIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-AreaIdentity CRITICALITY ignore TYPE AreaIdentity PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE conditional
+ -- This IE shall be present when Cause IE is present and has value "Requested Report Type not supported" --} ,
+ ...
+}
+
+LocationReportExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial UE Message
+--
+-- **************************************************************
+
+InitialUE-Message ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialUE-MessageIEs} },
+ protocolExtensions ProtocolExtensionContainer { {InitialUE-MessageExtensions} } OPTIONAL,
+ ...
+}
+
+InitialUE-MessageIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE mandatory } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present for RABs towards the PS domain -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE mandatory } |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-IuSigConId CRITICALITY ignore TYPE IuSignallingConnectionIdentifier PRESENCE mandatory } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE mandatory },
+
+ ...
+}
+
+InitialUE-MessageExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DIRECT TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Direct Transfer
+--
+-- **************************************************************
+
+DirectTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
+ protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
+ ...
+}
+
+DirectTransferIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory } |
+ { ID id-LAI CRITICALITY ignore TYPE LAI PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-RAC CRITICALITY ignore TYPE RAC PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-SAI CRITICALITY ignore TYPE SAI PRESENCE conditional
+ -- This IE is only present if the message is directed to the PS domain -- } |
+ { ID id-SAPI CRITICALITY ignore TYPE SAPI PRESENCE conditional
+ -- This IE is always used in downlink direction-- },
+ ...
+}
+
+DirectTransferExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload
+--
+-- **************************************************************
+
+Overload ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadIEs} },
+ protocolExtensions ProtocolExtensionContainer { {OverloadExtensions} } OPTIONAL,
+ ...
+}
+
+OverloadIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-NumberOfSteps CRITICALITY ignore TYPE NumberOfSteps PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction -- },
+ ...
+}
+
+OverloadExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
+ ...
+}
+
+ErrorIndicationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE conditional
+ -- At least either of Cause IE or Criticality IE shall be present -- } |
+ { ID id-CN-DomainIndicator CRITICALITY ignore TYPE CN-DomainIndicator PRESENCE optional } |
+ { ID id-GlobalRNC-ID CRITICALITY ignore TYPE GlobalRNC-ID PRESENCE conditional
+ -- This IE is always used in the uplink direction when message is sent connectionless -- },
+ ...
+}
+
+ErrorIndicationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SRNS DATA FORWARD ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SRNS Data Forward Command
+--
+-- **************************************************************
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SRNS-DataForwardCommandIEs} },
+ protocolExtensions ProtocolExtensionContainer { {SRNS-DataForwardCommandExtensions} } OPTIONAL,
+ ...
+}
+
+SRNS-DataForwardCommandIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-DataForwardingList CRITICALITY ignore TYPE RAB-DataForwardingList PRESENCE conditional
+ -- This group is only present for RABs towards the PS domain -- },
+ ...
+}
+
+SRNS-DataForwardCommandExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- FORWARD SRNS CONTEXT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Forward SRNS Context
+--
+-- **************************************************************
+
+ForwardSRNS-Context ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ForwardSRNS-ContextIEs} },
+ protocolExtensions ProtocolExtensionContainer { {ForwardSRNS-ContextExtensions} } OPTIONAL,
+ ...
+}
+
+ForwardSRNS-ContextIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextList CRITICALITY ignore TYPE RAB-ContextList PRESENCE mandatory },
+ ...
+}
+
+ForwardSRNS-ContextExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB ASSIGNMENT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAB Assignment Request
+--
+-- **************************************************************
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentRequestIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentRequestExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentRequestIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifyList CRITICALITY ignore TYPE RAB-SetupOrModifyList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseList CRITICALITY ignore TYPE RAB-ReleaseList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- },
+ ...
+}
+
+RAB-SetupOrModifyList ::= RAB-IE-ContainerPairList { {RAB-SetupOrModifyItem-IEs} }
+
+RAB-SetupOrModifyItem-IEs RANAP-PROTOCOL-IES-PAIR ::= {
+ { ID id-RAB-SetupOrModifyItem FIRST CRITICALITY reject FIRST TYPE RAB-SetupOrModifyItemFirst
+ SECOND CRITICALITY ignore SECOND TYPE RAB-SetupOrModifyItemSecond
+ PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifyItemFirst ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ nAS-SynchronisationIndicator NAS-SynchronisationIndicator OPTIONAL
+ -- This IE is present at a RAB modification if the relevant NAS information is provided by the CN --,
+ rAB-Parameters RAB-Parameters OPTIONAL
+ -- This IE is present at a RAB establishment or when any previously set value shall be modified at a RAB modification --,
+ userPlaneInformation UserPlaneInformation OPTIONAL
+ -- This IE is present at a RAB establishment or when any previously set value shall be modified at a RAB modification --,
+ transportLayerInformation TransportLayerInformation OPTIONAL
+ -- This IE is present at a RAB establishment, and may be present at a RAB modification if at least one more IE than the RAB ID IE and the NAS Syncronisation Indicator IE is also included --,
+ service-Handover Service-Handover OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemFirst-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ iuTransportAssociation IuTransportAssociation,
+ iE-Extensions ProtocolExtensionContainer { {TransportLayerInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TransportLayerInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemFirst-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SetupOrModifyItemSecond ::= SEQUENCE {
+ pDP-TypeInformation PDP-TypeInformation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain at RAB establishment --,
+ dataVolumeReportingIndication DataVolumeReportingIndication OPTIONAL
+ -- This IE, if applicable, is only present for RABs towards the PS domain at RAB establishment --,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if available, is only present for RABs towards the PS domain at RAB establishment --,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE, if available, is only present for RABs towards the PS domain at RAB establishment --,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if available, is only present for RABs towards the PS domain at RAB establishment --,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ -- This IE, if available, is only present for RABs towards the PS domain at RAB establishment --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifyItemSecond-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifyItemSecond-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-AssignmentRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RAB Assignment Response
+--
+-- **************************************************************
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RAB-AssignmentResponseIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RAB-AssignmentResponseExtensions} } OPTIONAL,
+ ...
+}
+
+RAB-AssignmentResponseIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedList CRITICALITY ignore TYPE RAB-SetupOrModifiedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleasedList CRITICALITY ignore TYPE RAB-ReleasedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+
+ { ID id-RAB-QueuedList CRITICALITY ignore TYPE RAB-QueuedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-FailedList CRITICALITY ignore TYPE RAB-FailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-RAB-ReleaseFailedList CRITICALITY ignore TYPE RAB-ReleaseFailedList PRESENCE conditional
+ -- This group must be present at least when no other group is present, ie. at least one group must be present -- } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+RAB-SetupOrModifiedList ::= RAB-IE-ContainerList { {RAB-SetupOrModifiedItemIEs} }
+
+RAB-SetupOrModifiedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-SetupOrModifiedItem CRITICALITY ignore TYPE RAB-SetupOrModifiedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-SetupOrModifiedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ transportLayerAddress TransportLayerAddress OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ iuTransportAssociation IuTransportAssociation OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if the RAB has been modified and --
+ -- RAB data volume reporting for PS domain is required --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-SetupOrModifiedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-SetupOrModifiedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleasedList ::= RAB-IE-ContainerList { {RAB-ReleasedItemIEs} }
+
+RAB-ReleasedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ReleasedItem CRITICALITY ignore TYPE RAB-ReleasedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-ReleasedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-dataVolumes DataVolumeList OPTIONAL
+ -- This IE is only present if data volume reporting for PS domain is required --,
+ dL-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when available and when the release is UTRAN initiated -- ,
+ uL-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ -- This IE is only present for RABs towards the PS domain when available and when the release is UTRAN initiated -- ,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ReleasedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-ReleasedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
+ SEQUENCE {
+ dl-UnsuccessfullyTransmittedDataVolume UnsuccessfullyTransmittedDataVolume,
+ dataVolumeReference DataVolumeReference OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataVolumeList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+DataVolumeList-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-QueuedList ::= RAB-IE-ContainerList { {RAB-QueuedItemIEs} }
+
+RAB-QueuedItemIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-QueuedItem CRITICALITY ignore TYPE RAB-QueuedItem PRESENCE mandatory },
+ ...
+}
+
+RAB-QueuedItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {RAB-QueuedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-QueuedItem-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ReleaseFailedList ::= RAB-FailedList
+
+RAB-AssignmentResponseExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container { {PrivateMessage-IEs } },
+ ...
+}
+
+PrivateMessage-IEs RANAP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RANAP RELOCATION INFORMATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {RANAP-RelocationInformationIEs} },
+ protocolExtensions ProtocolExtensionContainer { {RANAP-RelocationInformationExtensions} } OPTIONAL,
+ ...
+}
+
+RANAP-RelocationInformationIEs RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationList-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationList-RANAP-RelocInf
+ PRESENCE optional } |
+ { ID id-RAB-ContextList-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextList-RANAP-RelocInf PRESENCE optional },
+ ...
+}
+
+DirectTransferInformationList-RANAP-RelocInf ::= DirectTransfer-IE-ContainerList { {DirectTransferInformationItemIEs-RANAP-RelocInf} }
+
+DirectTransferInformationItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-DirectTransferInformationItem-RANAP-RelocInf
+ CRITICALITY ignore TYPE DirectTransferInformationItem-RANAP-RelocInf
+ PRESENCE mandatory },
+ ...
+}
+
+DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
+ nAS-PDU NAS-PDU,
+ sAPI SAPI,
+ cN-DomainIndicator CN-DomainIndicator,
+ iE-Extensions ProtocolExtensionContainer { {RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RANAP-DirectTransferInformationItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-ContextList-RANAP-RelocInf ::= RAB-IE-ContainerList { {RAB-ContextItemIEs-RANAP-RelocInf} }
+
+RAB-ContextItemIEs-RANAP-RelocInf RANAP-PROTOCOL-IES ::= {
+ { ID id-RAB-ContextItem-RANAP-RelocInf CRITICALITY ignore TYPE RAB-ContextItem-RANAP-RelocInf PRESENCE mandatory },
+ ...
+}
+
+RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ dl-GTP-PDU-SequenceNumber DL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ ul-GTP-PDU-SequenceNumber UL-GTP-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ dl-N-PDU-SequenceNumber DL-N-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ ul-N-PDU-SequenceNumber UL-N-PDU-SequenceNumber OPTIONAL
+ --This IE is only present when available--,
+ iE-Extensions ProtocolExtensionContainer { {RAB-ContextItem-ExtIEs-RANAP-RelocInf} } OPTIONAL,
+ ...
+}
+
+RAB-ContextItem-ExtIEs-RANAP-RelocInf RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANAP-RelocationInformationExtensions RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+--BEGIN_3
+
+
+-- A
+
+AllocationOrRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ queuingAllowed QueuingAllowed,
+ iE-Extensions ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaIdentity ::= CHOICE {
+ sAI SAI,
+ geographicalArea GeographicalArea,
+ ...
+}
+
+-- B
+
+BindingID ::= OCTET STRING (SIZE (4))
+
+-- C
+
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transmissionNetwork CauseTransmissionNetwork,
+ nAS CauseNAS,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ non-Standard CauseNon-Standard,
+ ...
+}
+
+CauseMisc ::= INTEGER {
+ om-intervention (113),
+ no-resource-available (114),
+ unspecified-failure (115),
+ network-optimisation (116)
+} (113..128)
+
+CauseNAS ::= INTEGER {
+ user-restriction-start-indication (81),
+ user-restriction-end-indication (82),
+ normal-release (83)
+} (81..96)
+
+CauseProtocol ::= INTEGER {
+ transfer-syntax-error (97),
+ semantic-error (98),
+ message-not-compatible-with-receiver-state (99),
+ abstract-syntax-error-reject (100),
+ abstract-syntax-error-ignore-and-notify (101),
+ abstract-syntax-error-falsely-constructed-message (102)
+
+} (97..112)
+
+CauseRadioNetwork ::= INTEGER {
+ rab-pre-empted (1),
+ trelocoverall-expiry (2),
+ trelocprep-expiry (3),
+ treloccomplete-expiry (4),
+ tqueing-expiry (5),
+ relocation-triggered (6),
+ trellocalloc-expiry(7),
+ unable-to-establish-during-relocation (8),
+ unknown-target-rnc (9),
+ relocation-cancelled (10),
+ successful-relocation (11),
+ requested-ciphering-and-or-integrity-protection-algorithms-not-supported (12),
+ change-of-ciphering-and-or-integrity-protection-is-not-supported (13),
+ failure-in-the-radio-interface-procedure (14),
+ release-due-to-utran-generated-reason (15),
+ user-inactivity (16),
+ time-critical-relocation (17),
+ requested-traffic-class-not-available (18),
+ invalid-rab-parameters-value (19),
+ requested-maximum-bit-rate-not-available (20),
+ requested-guaranteed-bit-rate-not-available (21),
+ requested-transfer-delay-not-achievable (22),
+ invalid-rab-parameters-combination (23),
+ condition-violation-for-sdu-parameters (24),
+ condition-violation-for-traffic-handling-priority (25),
+ condition-violation-for-guaranteed-bit-rate (26),
+ user-plane-versions-not-supported (27),
+ iu-up-failure (28),
+ relocation-failure-in-target-CN-RNC-or-target-system(29),
+ invalid-RAB-ID (30),
+ no-remaining-rab (31),
+ interaction-with-other-procedure (32),
+ requested-maximum-bit-rate-for-dl-not-available (33),
+ requested-maximum-bit-rate-for-ul-not-available (34),
+ requested-guaranteed-bit-rate-for-dl-not-available (35),
+ requested-guaranteed-bit-rate-for-ul-not-available (36),
+ repeated-integrity-checking-failure (37),
+ requested-report-type-not-supported (38),
+ request-superseded (39),
+ release-due-to-UE-generated-signalling-connection-release (40),
+ resource-optimisation-relocation (41),
+ requested-information-not-available (42),
+ relocation-desirable-for-radio-reasons (43),
+ relocation-not-supported-in-target-RNC-or-target-system (44),
+ directed-retry (45),
+ radio-connection-with-UE-Lost (46)
+} (1..64)
+
+CauseNon-Standard ::= INTEGER (129..256)
+
+CauseTransmissionNetwork ::= INTEGER {
+ signalling-transport-resource-failure (65),
+ iu-transport-connection-failed-to-establish (66)
+} (65..80)
+
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional },
+ ...
+}
+
+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
+ SEQUENCE {
+ iE-ID ProtocolIE-ID,
+ repetitionNumber RepetitionNumber OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+MessageStructure-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ChosenEncryptionAlgorithm ::= EncryptionAlgorithm
+
+ChosenIntegrityProtectionAlgorithm ::= IntegrityProtectionAlgorithm
+
+CI ::= OCTET STRING (SIZE (2))
+
+ClassmarkInformation2 ::= OCTET STRING
+
+ClassmarkInformation3 ::= OCTET STRING
+
+CN-DomainIndicator ::= ENUMERATED {
+ cs-domain,
+ ps-domain
+}
+
+
+
+-- D
+
+DataVolumeReference ::= INTEGER (0..255)
+
+DataVolumeReportingIndication ::= ENUMERATED {
+ do-report,
+ do-not-report
+}
+
+DCH-ID ::= INTEGER (0..255)
+
+DeliveryOfErroneousSDU ::= ENUMERATED {
+ yes,
+ no,
+ no-error-detection-consideration
+}
+
+DeliveryOrder::= ENUMERATED {
+ delivery-order-requested,
+ delivery-order-not-requested
+}
+
+DL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+DL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+-- Reference: xx.xxx
+
+D-RNTI ::= INTEGER (0..1048575)
+
+DRX-CycleLengthCoefficient ::= INTEGER (6..9)
+
+DSCH-ID ::= INTEGER (0..255)
+
+-- E
+
+EncryptionAlgorithm ::= INTEGER { no-encryption (0), standard-UMTS-encryption-algorith-UEA1 (1) } (0..15)
+
+EncryptionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedEncryptionAlgorithms,
+ key EncryptionKey,
+ iE-Extensions ProtocolExtensionContainer { {EncryptionInformation-ExtIEs} } OPTIONAL
+}
+
+EncryptionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EncryptionKey ::= BIT STRING (SIZE (128))
+-- Reference: 33.102
+
+Event ::= ENUMERATED {
+ stop,
+ direct,
+ change-of-servicearea,
+ ...
+}
+
+-- F
+-- G
+
+GeographicalArea ::= CHOICE {
+ point GA-Point,
+ pointWithUnCertainty GA-PointWithUnCertainty,
+ polygon GA-Polygon,
+ ...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+ latitudeSign ENUMERATED { north, south },
+ latitude INTEGER (0..8388607),
+ longitude INTEGER (-8388608..8388607),
+ iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GeographicalCoordinates-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Point ::= SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Point-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GA-Point-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-PointWithUnCertainty ::=SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-PointWithUnCertainty-ExtIEs} } OPTIONAL,
+ uncertaintyCode INTEGER (0..127)
+}
+
+GA-PointWithUnCertainty-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF
+ SEQUENCE {
+ geographicalCoordinates GeographicalCoordinates,
+ iE-Extensions ProtocolExtensionContainer { {GA-Polygon-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+GA-Polygon-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+-- Reference: xx.xxx
+
+GuaranteedBitrate ::= INTEGER (0..16000000)
+-- Unit is bits per sec
+
+-- H
+
+-- I
+
+
+IMEI ::= OCTET STRING (SIZE (8))
+-- Reference: 23.003
+
+IMSI ::= TBCD-STRING (SIZE (3..8))
+-- Reference: 23.003
+
+IntegrityProtectionAlgorithm ::= INTEGER { standard-UMTS-integrity-algorithm-UIA1 (0) } (0..15)
+
+IntegrityProtectionInformation ::= SEQUENCE {
+ permittedAlgorithms PermittedIntegrityProtectionAlgorithms,
+ key IntegrityProtectionKey,
+ iE-Extensions ProtocolExtensionContainer { {IntegrityProtectionInformation-ExtIEs} } OPTIONAL
+}
+
+IntegrityProtectionInformation-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionKey ::= BIT STRING (SIZE (128))
+
+IuSignallingConnectionIdentifier ::= BIT STRING (SIZE (24))
+
+IuTransportAssociation ::= CHOICE {
+ gTP-TEI GTP-TEI,
+ bindingID BindingID,
+ ...
+}
+
+-- J
+-- K
+
+KeyStatus ::= ENUMERATED {
+ old,
+ new,
+ ...
+}
+-- L
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+L3-Information ::= OCTET STRING
+
+-- M
+
+MaxBitrate ::= INTEGER (1..16000000)
+-- Unit is bits per sec
+
+MaxSDU-Size ::= INTEGER (0..32768)
+-- MaxSDU-Size
+-- Unit is bit
+
+MCC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+MNC ::= TBCD-STRING (SIZE (2))
+-- Reference: 24.008
+
+-- N
+
+
+NAS-PDU ::= OCTET STRING
+
+NAS-SynchronisationIndicator ::= BIT STRING (SIZE (4))
+
+NonSearchingIndication ::= ENUMERATED {
+ non-searching,
+ searching
+}
+
+NumberOfIuInstances ::= INTEGER (1..2)
+
+NumberOfSteps ::= INTEGER (1..16)
+
+-- O
+
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+
+OMC-ID ::= OCTET STRING (SIZE (3..22))
+-- Reference: GSM TS 12.20
+
+-- P
+
+PagingAreaID ::= CHOICE {
+ lAI LAI,
+ rAI RAI,
+ ...
+}
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling
+}
+
+PDP-TypeInformation ::= SEQUENCE (SIZE (1..maxNrOfPDPDirections)) OF
+ PDP-Type
+
+PDP-Type ::= ENUMERATED {
+ empty,
+ ppp,
+ osp-ihoss -- this value shall not be used -- ,
+ ipv4,
+ ipv6,
+ ...
+}
+
+PermanentNAS-UE-ID ::= CHOICE {
+ iMSI IMSI,
+ ...
+}
+
+PermittedEncryptionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ EncryptionAlgorithm
+
+PermittedIntegrityProtectionAlgorithms ::= SEQUENCE (SIZE (1..16)) OF
+ IntegrityProtectionAlgorithm
+
+PLMN-ID ::= TBCD-STRING (SIZE (3))
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+P-TMSI ::= OCTET STRING (SIZE (4))
+
+-- Q
+
+QueuingAllowed ::= ENUMERATED {
+ queueing-not-allowed,
+ queueing-allowed
+}
+
+-- R
+RAB-AsymmetryIndicator::= ENUMERATED {
+ symmetric-bidirectional,
+ asymmetric-unidirectional-downlink,
+ asymmetric-unidirectional-uplink,
+ asymmetric-bidirectional,
+ ...
+}
+
+RAB-ID ::= BIT STRING (SIZE (8))
+
+RAB-Parameter-GuaranteedBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF GuaranteedBitrate
+
+RAB-Parameter-MaxBitrateList ::= SEQUENCE (SIZE (1..maxNrOfSeparateTrafficDirections)) OF MaxBitrate
+
+RAB-Parameters ::= SEQUENCE {
+ trafficClass TrafficClass,
+ rAB-AsymmetryIndicator RAB-AsymmetryIndicator,
+ maxBitrate RAB-Parameter-MaxBitrateList,
+ guaranteedBitRate RAB-Parameter-GuaranteedBitrateList OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ deliveryOrder DeliveryOrder,
+ maxSDU-Size MaxSDU-Size,
+ sDU-Parameters SDU-Parameters,
+ transferDelay TransferDelay OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ trafficHandlingPriority TrafficHandlingPriority OPTIONAL
+ -- This IE is only present when traffic class indicates Interactiv --,
+ allocationOrRetentionPriority AllocationOrRetentionPriority OPTIONAL,
+ sourceStatisticsDescriptor SourceStatisticsDescriptor OPTIONAL
+ -- This IE is only present when traffic class indicates Conversational or Streaming --,
+ relocationRequirement RelocationRequirement OPTIONAL
+ -- This IE is only present for RABs towards the PS domain --,
+ iE-Extensions ProtocolExtensionContainer { {RAB-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAB-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAB-SubflowCombinationBitRate ::= INTEGER (0..16000000)
+
+RAB-TrCH-Mapping ::= SEQUENCE ( SIZE (1..maxNrOfRABs)) OF
+ RAB-TrCH-MappingItem
+
+RAB-TrCH-MappingItem ::= SEQUENCE {
+ rAB-ID RAB-ID,
+ trCH-ID-List TrCH-ID-List,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAI ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ iE-Extensions ProtocolExtensionContainer { {RAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RateControlAllowed ::= ENUMERATED {
+ not-allowed,
+ allowed
+}
+
+RelocationRequirement ::= ENUMERATED {
+ lossless,
+ none,
+ ...
+}
+
+RelocationType ::= ENUMERATED {
+ ue-not-involved,
+ ue-involved,
+ ...
+}
+
+RepetitionNumber ::= INTEGER (1..256)
+
+ReportArea ::= ENUMERATED {
+ service-area,
+ geographical-coordinates,
+ ...
+}
+
+RequestType ::= SEQUENCE {
+ event Event,
+ reportArea ReportArea,
+ accuracyCode INTEGER (0..127) OPTIONAL,
+ -- To be used if Geographical Coordinates shall be reported with a requested accuracy. --
+ ...
+}
+
+ResidualBitErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { {ResidualBitErrorRatio-ExtIEs} } OPTIONAL
+}
+-- ResidualBitErrorRatio = mantissa * 10^-exponent
+
+ResidualBitErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+-- RNC-ID ::= BIT STRING (SIZE (12))
+-- Harmonized with RNSAP and NBAP definitions
+
+RRC-Container ::= OCTET STRING
+
+-- S
+
+SAC ::= OCTET STRING (SIZE (2))
+
+SAI ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ lAC LAC,
+ sAC SAC,
+ iE-Extensions ProtocolExtensionContainer { {SAI-ExtIEs} } OPTIONAL
+}
+
+SAI-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAPI ::= ENUMERATED {
+ sapi-0,
+ sapi-3,
+ ...
+}
+
+SDU-ErrorRatio ::= SEQUENCE {
+ mantissa INTEGER (1..9),
+ exponent INTEGER (1..6),
+ iE-Extensions ProtocolExtensionContainer { {SDU-ErrorRatio-ExtIEs} } OPTIONAL
+}
+-- SDU-ErrorRatio = mantissa * 10^-exponent
+
+SDU-ErrorRatio-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+SDU-FormatInformationParameters ::= SEQUENCE (SIZE (1..maxRAB-SubflowCombination)) OF
+ SEQUENCE {
+ subflowSDU-Size SubflowSDU-Size OPTIONAL
+ -- This IE is only present for RABs that have predefined SDU size(s) --,
+ rAB-SubflowCombinationBitRate RAB-SubflowCombinationBitRate OPTIONAL
+ -- At least either of subflowSDU-Size or rABsubflowCombinationBitRate --
+ -- shall be present when SDUformatInformationParameter is present --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-FormatInformationParameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-FormatInformationParameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDU-Parameters ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ SEQUENCE {
+ sDU-ErrorRatio SDU-ErrorRatio OPTIONAL
+ -- This IE is not present when DeliveryOfErroneousSDU is set to no-error-detection-consideration --,
+ residualBitErrorRatio ResidualBitErrorRatio,
+ deliveryOfErroneousSDU DeliveryOfErroneousSDU,
+ sDU-FormatInformationParameters SDU-FormatInformationParameters OPTIONAL
+ -- This IE shall be present for RABs with predefined SDU sizes --,
+ iE-Extensions ProtocolExtensionContainer { {SDU-Parameters-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+SDU-Parameters-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Service-Handover ::= ENUMERATED {
+ handover-to-GSM-should-be-performed,
+ handover-to-GSM-should-not-be-performed,
+ handover-to-GSM-shall-not-be-performed,
+ ...
+}
+
+SourceID ::= CHOICE {
+ sourceRNC-ID SourceRNC-ID, -- If UMTS target
+ sAI SAI, -- if GSM target
+ ...
+}
+
+
+SourceRNC-ID ::= SEQUENCE {
+ pLMN-ID PLMN-ID,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ID-ExtIEs} } OPTIONAL
+}
+
+SourceRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ numberOfIuInstances NumberOfIuInstances,
+ relocationType RelocationType,
+ chosenIntegrityProtectionAlgorithm ChosenIntegrityProtectionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if available --,
+ chosenEncryptionAlgorithForSignalling ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ cipheringKey EncryptionKey OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForCS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ chosenEncryptionAlgorithForPS ChosenEncryptionAlgorithm OPTIONAL
+ -- Must be present for intra UMTS Handovers if ciphering is active --,
+ d-RNTI D-RNTI OPTIONAL
+ -- Included for SRNS Relocation without UE involvement --,
+ targetCellId TargetCellId OPTIONAL
+ -- Included for SRNS Relocation with UE involvement --,
+ rAB-TrCH-Mapping RAB-TrCH-Mapping OPTIONAL
+ -- Included for SRNS Relocation without UE involvement and --
+ -- if RABs are carried on DCH, USCH or DSCH transport channels --,
+ iE-Extensions ProtocolExtensionContainer { {SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceRNC-ToTargetRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceStatisticsDescriptor ::= ENUMERATED {
+ speech,
+ unknown,
+ ...
+}
+
+SubflowSDU-Size ::= INTEGER (0..4095)
+-- Unit is bit
+
+
+-- T
+
+TargetCellId ::= INTEGER (0..268435455)
+
+TargetID ::= CHOICE {
+ targetRNC-ID TargetRNC-ID, -- If UMTS target
+ cGI CGI, -- If GSM target
+ ...
+}
+
+
+
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL
+ -- Must always be present towards the PS domain and never towards the CS domain --,
+ rNC-ID RNC-ID,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL
+}
+
+TargetRNC-ID-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ d-RNTI D-RNTI OPTIONAL
+ -- May be included to allow the triggering of the Relocation Detect procedure from the Iur Interface --,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetRNC-ToSourceRNC-TransparentContainer-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING
+
+TemporaryUE-ID ::= CHOICE {
+ tMSI TMSI,
+ p-TMSI P-TMSI,
+ ...
+}
+
+TMSI ::= OCTET STRING (SIZE (4))
+
+TraceReference ::= OCTET STRING (SIZE (2..3))
+
+TraceType ::= OCTET STRING (SIZE (1))
+-- Reference: GSM TS 12.08
+
+TrafficClass ::= ENUMERATED {
+ conversational,
+ streaming,
+ interactive,
+ background,
+ ...
+}
+
+TrafficHandlingPriority ::= INTEGER { spare (0), highest (1), lowest (14), no-priority-used (15) } (0..15)
+
+TransferDelay ::= INTEGER (0..65535)
+-- Unit is millisecond
+
+UnsuccessfullyTransmittedDataVolume ::= INTEGER (0..4294967295)
+
+TransportLayerAddress ::= BIT STRING (SIZE (1..160, ...))
+
+TrCH-ID ::= SEQUENCE {
+ dCH-ID DCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ dSCH-ID DSCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ uSCH-ID USCH-ID OPTIONAL
+ -- At least one of these IEs shall be included --,
+ ...
+}
+
+TrCH-ID-List ::= SEQUENCE (SIZE (1..maxRAB-Subflows)) OF
+ TrCH-ID
+
+TriggerID ::= OCTET STRING (SIZE (3..22))
+
+-- U
+
+UE-ID ::= CHOICE {
+ imsi IMSI,
+ imei IMEI,
+ ...
+}
+
+UL-GTP-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UL-N-PDU-SequenceNumber ::= INTEGER (0..65535)
+
+UP-ModeVersions ::= BIT STRING (SIZE (16))
+
+USCH-ID ::= INTEGER (0..255)
+
+UserPlaneMode ::= ENUMERATED {
+ transparent-mode,
+ support-mode-for-predefined-SDU-sizes,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+--BEGIN_4
+
+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, outcome }
+
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+--BEGIN_5
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-RAB-Assignment INTEGER ::= 0
+id-Iu-Release INTEGER ::= 1
+id-RelocationPreparation INTEGER ::= 2
+id-RelocationResourceAllocation INTEGER ::= 3
+id-RelocationCancel INTEGER ::= 4
+id-SRNS-ContextTransfer INTEGER ::= 5
+id-SecurityModeControl INTEGER ::= 6
+id-DataVolumeReport INTEGER ::= 7
+id-Reset INTEGER ::= 9
+id-RAB-ReleaseRequest INTEGER ::= 10
+id-Iu-ReleaseRequest INTEGER ::= 11
+id-RelocationDetect INTEGER ::= 12
+id-RelocationComplete INTEGER ::= 13
+id-Paging INTEGER ::= 14
+id-CommonID INTEGER ::= 15
+id-CN-InvokeTrace INTEGER ::= 16
+id-LocationReportingControl INTEGER ::= 17
+id-LocationReport INTEGER ::= 18
+id-InitialUE-Message INTEGER ::= 19
+id-DirectTransfer INTEGER ::= 20
+id-OverloadControl INTEGER ::= 21
+id-ErrorIndication INTEGER ::= 22
+id-SRNS-DataForward INTEGER ::= 23
+id-ForwardSRNS-Context INTEGER ::= 24
+id-privateMessage INTEGER ::= 25
+id-CN-DeactivateTrace INTEGER ::= 26
+id-ResetResource INTEGER ::= 27
+id-RANAP-Relocation INTEGER ::= 28
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfDTs INTEGER ::= 15
+maxNrOfErrors INTEGER ::= 256
+maxNrOfIuSigConIds INTEGER ::= 250
+maxNrOfPDPDirections INTEGER ::= 2
+maxNrOfPoints INTEGER ::= 15
+maxNrOfRABs INTEGER ::= 256
+maxNrOfSeparateTrafficDirections INTEGER ::= 2
+maxNrOfVol INTEGER ::= 2
+maxNrOfLevels INTEGER ::= 256
+
+maxRAB-Subflows INTEGER ::= 7
+maxRAB-SubflowCombination INTEGER ::= 64
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-AreaIdentity INTEGER ::= 0
+id-CN-DomainIndicator INTEGER ::= 3
+id-Cause INTEGER ::= 4
+id-ChosenEncryptionAlgorithm INTEGER ::= 5
+id-ChosenIntegrityProtectionAlgorithm INTEGER ::= 6
+id-ClassmarkInformation2 INTEGER ::= 7
+id-ClassmarkInformation3 INTEGER ::= 8
+id-CriticalityDiagnostics INTEGER ::= 9
+id-DL-GTP-PDU-SequenceNumber INTEGER ::= 10
+id-EncryptionInformation INTEGER ::= 11
+id-IntegrityProtectionInformation INTEGER ::= 12
+id-IuTransportAssociation INTEGER ::= 13
+id-L3-Information INTEGER ::= 14
+id-LAI INTEGER ::= 15
+id-NAS-PDU INTEGER ::= 16
+id-NonSearchingIndication INTEGER ::= 17
+id-NumberOfSteps INTEGER ::= 18
+id-OMC-ID INTEGER ::= 19
+id-OldBSS-ToNewBSS-Information INTEGER ::= 20
+id-PagingAreaID INTEGER ::= 21
+id-PagingCause INTEGER ::= 22
+id-PermanentNAS-UE-ID INTEGER ::= 23
+id-RAB-ContextItem INTEGER ::= 24
+id-RAB-ContextList INTEGER ::= 25
+id-RAB-DataForwardingItem INTEGER ::= 26
+id-RAB-DataForwardingItem-SRNS-CtxReq INTEGER ::= 27
+id-RAB-DataForwardingList INTEGER ::= 28
+id-RAB-DataForwardingList-SRNS-CtxReq INTEGER ::= 29
+id-RAB-DataVolumeReportItem INTEGER ::= 30
+id-RAB-DataVolumeReportList INTEGER ::= 31
+id-RAB-DataVolumeReportRequestItem INTEGER ::= 32
+id-RAB-DataVolumeReportRequestList INTEGER ::= 33
+id-RAB-FailedItem INTEGER ::= 34
+id-RAB-FailedList INTEGER ::= 35
+id-RAB-ID INTEGER ::= 36
+id-RAB-QueuedItem INTEGER ::= 37
+id-RAB-QueuedList INTEGER ::= 38
+id-RAB-ReleaseFailedList INTEGER ::= 39
+id-RAB-ReleaseItem INTEGER ::= 40
+id-RAB-ReleaseList INTEGER ::= 41
+id-RAB-ReleasedItem INTEGER ::= 42
+id-RAB-ReleasedList INTEGER ::= 43
+id-RAB-ReleasedList-IuRelComp INTEGER ::= 44
+id-RAB-RelocationReleaseItem INTEGER ::= 45
+id-RAB-RelocationReleaseList INTEGER ::= 46
+id-RAB-SetupItem-RelocReq INTEGER ::= 47
+id-RAB-SetupItem-RelocReqAck INTEGER ::= 48
+id-RAB-SetupList-RelocReq INTEGER ::= 49
+id-RAB-SetupList-RelocReqAck INTEGER ::= 50
+id-RAB-SetupOrModifiedItem INTEGER ::= 51
+id-RAB-SetupOrModifiedList INTEGER ::= 52
+id-RAB-SetupOrModifyItem INTEGER ::= 53
+id-RAB-SetupOrModifyList INTEGER ::= 54
+id-RAC INTEGER ::= 55
+id-RelocationType INTEGER ::= 56
+id-RequestType INTEGER ::= 57
+id-SAI INTEGER ::= 58
+id-SAPI INTEGER ::= 59
+id-SourceID INTEGER ::= 60
+id-SourceRNC-ToTargetRNC-TransparentContainer INTEGER ::= 61
+id-TargetID INTEGER ::= 62
+id-TargetRNC-ToSourceRNC-TransparentContainer INTEGER ::= 63
+id-TemporaryUE-ID INTEGER ::= 64
+id-TraceReference INTEGER ::= 65
+id-TraceType INTEGER ::= 66
+id-TransportLayerAddress INTEGER ::= 67
+id-TriggerID INTEGER ::= 68
+id-UE-ID INTEGER ::= 69
+id-UL-GTP-PDU-SequenceNumber INTEGER ::= 70
+id-RAB-FailedtoReportItem INTEGER ::= 71
+id-RAB-FailedtoReportList INTEGER ::= 72
+id-KeyStatus INTEGER ::= 75
+id-DRX-CycleLengthCoefficient INTEGER ::= 76
+id-IuSigConIdList INTEGER ::= 77
+id-IuSigConIdItem INTEGER ::= 78
+id-IuSigConId INTEGER ::= 79
+id-DirectTransferInformationItem-RANAP-RelocInf INTEGER ::= 80
+id-DirectTransferInformationList-RANAP-RelocInf INTEGER ::= 81
+id-RAB-ContextItem-RANAP-RelocInf INTEGER ::= 82
+id-RAB-ContextList-RANAP-RelocInf INTEGER ::= 83
+id-RAB-ContextFailedtoTransferItem INTEGER ::= 84
+id-RAB-ContextFailedtoTransferList INTEGER ::= 85
+id-GlobalRNC-ID INTEGER ::= 86
+id-RAB-ReleasedItem-IuRelComp INTEGER ::= 87
+id-MessageStructure INTEGER ::= 88
+
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+--BEGIN_6
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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
+--
+-- **************************************************************
+
+RANAP-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 {RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {RANAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality RANAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality RANAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue RANAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality RANAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue RANAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, RANAP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id RANAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {RANAP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {RANAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id RANAP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality RANAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value RANAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/lib/asn1/test/bench/all.erl b/lib/asn1/test/bench/all.erl
new file mode 100644
index 0000000000..0841201e85
--- /dev/null
+++ b/lib/asn1/test/bench/all.erl
@@ -0,0 +1,98 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(all).
+
+%% User interface
+-export([run/0]).
+
+%% Interna constants
+-define(NORMAL, 0).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Interface
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% run() -> _
+%%
+%% Runs all benchmark modules in the current directory on all erlang
+%% installations specified by releases/0
+run() ->
+ %% Delete previous intermediate test result files.
+ lists:foreach(fun(F) -> file:delete(F) end, filelib:wildcard("*.bmres")),
+ lists:foreach(fun run/1, releases()).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Internal functions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% run(Release) -> _
+%% Release = string() - Erlang release
+%% Help functions to run/0
+run({Release,Comment}) ->
+ command(Release ++ " -noshell -compile bench -s erlang halt"),
+ command(Release ++ " -noshell -s bench run " ++ Comment ++" -s erlang halt").
+
+%% command(Command) -> _
+%% Command = string() - is the name and arguments of the external
+%% program which will be run
+command(Command) ->
+ io:format("~s\n", [Command]), % Progress info to user
+ Port = open_port({spawn,Command}, [exit_status, in]),
+ print_output(Port).
+
+%% print_output(Port) -> _
+%% Port = port()
+%% Print data from the port i.e. output from external program,
+%% on standard out.
+print_output(Port) ->
+ receive
+ {Port, {data,Bytes}} ->
+ io:put_chars(Bytes),
+ print_output(Port);
+ {Port, {exit_status, ?NORMAL}} ->
+ ok
+ end.
+
+%% run() -> Releases
+%% Releases = [Release |_]
+%% Release = string() - Erlang release
+%% Defines which erlang releases to run on
+%% --- Change this function to reflect your own erlang installations ---
+releases() ->
+ [
+ {"/usr/local/otp/releases/otp_beam_sunos5_r8b_patched/bin/erl","standardr8"},
+ {"/usr/local/otp/releases/otp_beam_sunos5_r8b_patched/bin/erl -pa /clearcase/otp/erts/lib/asn1/ebin", "asn1r9"}
+].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/bench/bench.erl b/lib/asn1/test/bench/bench.erl
new file mode 100644
index 0000000000..bae7d792a4
--- /dev/null
+++ b/lib/asn1/test/bench/bench.erl
@@ -0,0 +1,454 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(bench).
+
+%% User interface
+-export([run/1]).
+
+%% Exported to be used in spawn
+-export([measure/4]).
+
+%% Internal constants
+-define(MAX, 999999999999999).
+-define(RANGE_MAX, 16#7ffffff).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Interface
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% run() -> _
+%%
+%% Compiles and runs all benchmarks in the current directory,
+%% and creates a report
+run([Comment]) ->
+ run(atom_to_list(Comment),compiler_options()).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Generic Benchmark functions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% compiler_options() -> OptionsList
+%% OptionsList = list() - See Erlang/OTP module compile
+compiler_options() ->
+ [report_errors, report_warnings].
+
+%% run(OptionsList) ->
+%% OptionsList = list() - See Erlang/OTP module compile
+%%
+%% Help function to run/0.
+run(Comment,OptionsList) ->
+ Bms = compile_benchmarks(OptionsList),
+ run_benchmarks(Comment,Bms),
+ report().
+
+%% compile_benchmarks(OptionsList) -> [BmInfo| _]
+%% OptionsList = list() - See Erlang/OTP module compile
+%% BmInfo = {Module, Iterations, [BmFunctionName| _]}
+%% Module = atom()
+%% Iterations = integer()
+%% BmFunctionName = atom()
+%%
+%% Compiles all benchmark modules in the current directory and
+%% returns info about the benchmarks.
+compile_benchmarks(OptionsList) ->
+ {ok, FilesInCurrentDir} = file:list_dir("."),
+ BmFiles = [BmFile || BmFile <- lists:sort(FilesInCurrentDir),
+ lists:suffix("_bm.erl", BmFile)],
+
+ lists:foldr(fun(Module, BmInfoAcc) ->
+ BmInfo = bm_compile(Module, OptionsList),
+ [BmInfo | BmInfoAcc]
+ end, [], BmFiles).
+
+
+%% bm_compile(FileName, OptionsList) -> BmInfo
+%% FileName = string()
+%% OptionsList = list() - See Erlang/OTP module compile
+%% BmInfo = {Module, Iterations, [BmFunctionName| _]}
+%% Iterations = integer()
+%% Module = atom()
+%% BmFunctionName = atom()
+%%
+%% Compiles the benchmark module implemented in <FileName> and returns
+%% information about the benchmark tests.
+bm_compile(FileName, OptionsList) ->
+ io:format("Compiling ~s...\n", [FileName]), % Progress info to user
+ case c:c(FileName, OptionsList) of
+ {ok, Mod} ->
+ bm_init(Mod),
+ bm_cases(Mod);
+ %% If compilation fails there is no point in trying to continue
+ error ->
+ Reason =
+ lists:flatten(
+ io_lib:format("Could not compile file ~s", [FileName])),
+ exit(self(), Reason)
+ end.
+
+%% bm_init(Module) -> ok
+%%
+%% calls the Module:init/0 function to let each benchmark make initialisation if
+%% there is need for that.
+%%
+bm_init(Module) ->
+ case catch Module:init() of
+ ok ->
+ ok;
+ Other ->
+ ok % the init function is not mandatory yet
+ end.
+
+
+%% bm_cases(Module) -> {Module, Iter, [BmFunctionName |_]}
+%% Module = atom()
+%% Iter = integer()
+%% BmFunctionName = atom()
+%%
+%% Fetches the number of iterations and the names of the benchmark
+%% functions for the module <Module>.
+bm_cases(Module) ->
+ case catch Module:benchmarks() of
+ {Iter, BmList} when integer(Iter), list(BmList) ->
+ {Module, Iter, BmList};
+ %% The benchmark is incorrect implemented there is no point in
+ %% trying to continue
+ Other ->
+ Reason =
+ lists:flatten(
+ io_lib:format("Incorrect return value: ~p "
+ "from ~p:benchmarks()",
+ [Other, Module])),
+ exit(self(), Reason)
+ end.
+
+%% run_benchmarks(Bms) ->
+%% Bms = [{Module, Iter, [BmFunctionName |_]} | _]
+%% Module = atom()
+%% Iter = integer()
+%% BmFunctionName = atom()
+%%
+%% Runs all the benchmark tests described in <Bms>.
+run_benchmarks(Comment,Bms) ->
+ Ver = erlang:system_info(version),
+ Machine = erlang:system_info(machine),
+ SysInfo = {Ver,Machine,Comment},
+
+ Res = [bms_run(Mod, Tests, Iter, SysInfo) || {Mod,Iter,Tests} <- Bms],
+
+ %% Create an intermediate file that is later used to generate a bench
+ %% mark report.
+ Name = Ver ++ [$.|Machine] ++ Comment ++ ".bmres",
+ {ok, IntermediatFile} = file:open(Name, [write]),
+
+ %% Create mark that identifies version of the benchmark modules
+ io:format(IntermediatFile, "~p.\n", [erlang:phash(Bms, ?RANGE_MAX)]),
+
+ io:format(IntermediatFile, "~p.\n", [Res]),
+ file:close(IntermediatFile).
+
+
+%% bms_run(Module, BmTests, Iter, Info) ->
+%% Module = atom(),
+%% BmTests = [BmFunctionName|_],
+%% BmFunctionName = atom()
+%% Iter = integer(),
+%% SysInfo = {Ver, Machine}
+%% Ver = string()
+%% Machine = string()
+%%
+%% Runs all benchmark tests in module <Module>.
+bms_run(Module, BmTests, Iter, SysInfo) ->
+ io:format("Running ~s:", [Module]), % Progress info to user
+ Res =
+ {Module,{SysInfo,[{Bm, bm_run(Module, Bm, Iter)} || Bm <- BmTests]}},
+ io:nl(),
+ Res.
+
+%% bm_run(Module, BmTest, Iter) -> Elapsed
+%% Module = atom(),
+%% BmTest = atom(),
+%% Iter = integer()
+%% Elapsed = integer() - elapsed time in milliseconds.
+%%
+%% Runs the benchmark Module:BmTest(Iter)
+bm_run(Module, BmTest, Iter) ->
+ io:format(" ~s", [BmTest]), % Progress info to user
+ spawn_link(?MODULE, measure, [self(), Module, BmTest, Iter]),
+ receive
+ {Elapsed, ok} ->
+ Elapsed;
+ {_Elapsed, Fault} ->
+ io:nl(),
+ Reason =
+ lists:flatten(
+ io_lib:format("~w", [Fault])),
+ exit(self(), Reason)
+ end.
+
+%% measure(Parent, Module, BmTest, Iter) -> _
+%% Parent = pid(),
+%% Module = atom(),
+%% BmTest = atom(),
+%% Iter = integer()
+%%
+%% Measures the time it take to execute Module:Bm(Iter)
+%% and send the result to <Parent>.
+measure(Parent, Module, BmTest, Iter) ->
+ statistics(runtime),
+ Res = (catch apply(Module, BmTest, [Iter])),
+ {_TotalRunTime, TimeSinceLastCall} = statistics(runtime),
+ Parent ! {TimeSinceLastCall, Res}.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Report functions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% report() -> _
+%%
+%% Creates a report of the bench marking test that appeals to a human.
+%% Currently this means creating a html-file. (Other formats could be added)
+report() ->
+ {ok, AllFiles} = file:list_dir("."),
+ BmResultFiles = [File || File <- AllFiles, lists:suffix(".bmres", File)],
+
+ Results = fetch_bmres_data(BmResultFiles),
+ create_report(Results).
+
+%% fetch_bmres_data(BmResultFiles) -> Results
+%% BmResultFiles = [FileName | _]
+%% FileName = string()
+%% Results = [[{Bm, Res} | _]]
+%% Bm = atom() - Name of benchmark module
+%% Res = [{VersionInfo, [{Test, Time} | _]}]
+%% VersionInfo = {Ver, Machine}
+%% Ver = string()
+%% Machine = string()
+%% Test = atom()
+%% Time = integer()
+%%
+%% Reads result data from intermediate files
+fetch_bmres_data(BmResultFiles) ->
+ fetch_bmres_data(BmResultFiles, [], undefined).
+
+%% fetch_bmres_data(BmResultFiles, AccResData, Check) -> Results
+%% BmResultFiles = [FileName | _]
+%% FileName = string()
+%% AccResData = see Results fetch_bmres_data/1
+%% Check = integer() | undefined (first time)
+%%
+%% Help function to fetch_bmres_data/1
+fetch_bmres_data([], AccResData, _Check) ->
+ AccResData;
+
+fetch_bmres_data([Name | BmResultFiles], AccResData, Check) ->
+ {DataList, NewCheck} = read_bmres_file(Name, Check),
+ fetch_bmres_data(BmResultFiles, [DataList| AccResData], NewCheck).
+
+
+%% read_bmres_file(Name, Check) ->
+%% Name = string()
+%% Check = integer() | undefined
+%%
+%% Reads the data from the result files. Checks that all result
+%% files where created with the same set of tests.
+read_bmres_file(Name, Check) ->
+ case file:consult(Name) of
+ {ok, [Check1, List]} when Check =:= undefined, integer(Check1) ->
+ {List, Check1};
+ {ok, [Check, List]} when integer(Check) ->
+ {List, Check};
+ {ok, [Check1, List]} when integer(Check1) ->
+ Reason =
+ lists:flatten(
+ io_lib:format("Different test setup, remove old setup "
+ "result by removing *.bmres files and "
+ "try again", [])),
+ exit(self(), Reason);
+ {error, Reason} when atom(Reason) ->
+ exit(self(), Reason);
+ {error, Reason} ->
+ exit(self(), file:format(Reason))
+ end.
+
+%% create_report(Results) ->
+%% Results = see Results fetch_bmres_data/1
+%%
+%% Organizes <Result> so it will be right for create_html_report/1
+%% i.e. group results for the same benchmark test, run on different versions
+%% of erlang.
+create_report(Results) ->
+ Dictionary =
+ lists:foldl(fun(BmResultList, Dict0) ->
+ lists:foldl(fun({Bm, VerResult}, Dict1) ->
+ dict:append(Bm, VerResult,
+ Dict1)
+ end,Dict0, BmResultList)
+ end,
+ dict:new(), Results),
+
+ create_html_report(dict:dict_to_list(Dictionary)).
+
+%% create_html_report(ResultList) -> _
+%% ResultList = [{Bm, Res} | _]
+%% Bm = atom() - Name of benchmark module
+%% Res = [{VersionInfo, [{Test, Time} | _]} | _]
+%% VersionInfo = {Ver, Machine}
+%% Ver = string()
+%% Machine = string()
+%% Test = atom()
+%% Time = integer()
+%%
+%% Writes the result to an html-file
+create_html_report(ResultList) ->
+
+ {ok, OutputFile} = file:open("index.html", [write]),
+
+ %% Create the begining of the result html-file.
+ Head = Title = "Benchmark Results",
+ io:put_chars(OutputFile, "<html>\n"),
+ io:put_chars(OutputFile, "<head>\n"),
+ io:format(OutputFile, "<title>~s</title>\n", [Title]),
+ io:put_chars(OutputFile, "</head>\n"),
+ io:put_chars(OutputFile, "<body bgcolor=\"#FFFFFF\" text=\"#000000\"" ++
+ " link=\"#0000FF\" vlink=\"#800080\" alink=\"#FF0000\">\n"),
+ io:format(OutputFile, "<h1>~s</h1>\n", [Head]),
+
+ %% Add the result tables
+ lists:foreach(fun(Element) ->
+ create_html_table(OutputFile, Element) end,
+ ResultList),
+
+ %% Put in the end-html tags
+ io:put_chars(OutputFile, "</body>\n"),
+ io:put_chars(OutputFile, "</html>\n"),
+
+ file:close(OutputFile).
+
+%% create_html_table(File, {Bm, Res}) -> _
+%% File = file() - html file to write data to.
+%% Bm = atom() - Name of benchmark module
+%% Res = [{VersionInfo, [{Test, Time} | _]}]
+%% VersionInfo = {Ver, Machine}
+%% Ver = string()
+%% Machine = string()
+%% Test = atom()
+%% Time = integer()
+%%
+%% Creates a html table that displays the result of the benchmark <Bm>.
+create_html_table(File, {Bm, Res}) ->
+
+ {MinTime, Order} = min_time_and_sort(Res),
+
+ io:format(File, "<h2>~s</h2>\n" , [Bm]),
+
+ %% Fun that calculates relative measure values and puts them in
+ %% a dictionary
+ RelativeMesureFun = fun({TestName, Time}, Dict1) ->
+ dict:append(TestName, Time/MinTime, Dict1)
+ end,
+
+ %% For all erlang versions that the benchmark tests has been run,
+ %% calculate the relative measure values and put them in a dictionary.
+ ResultDict =
+ lists:foldl(fun({_VerInfo, Bms}, Dict0) ->
+ lists:foldl(RelativeMesureFun, Dict0, Bms) end,
+ dict:new(), Res),
+
+ %% Create the table and its headings
+ io:put_chars(File, "<table border=0 cellpadding=1><tr>"
+ "<td bgcolor=\"#000000\">\n"),
+ io:put_chars(File, "<table cellpadding=3 border=0 cellspacing=1>\n"),
+ io:put_chars(File, "<tr bgcolor=white>"),
+ io:put_chars(File, "<td>Test</td>"),
+ Heads = table_headers(Res),
+ lists:foreach(fun({Ver,Machine,Comment}) ->
+ io:format(File, "<td>~s<br>~s<br>~s</td>",
+ [Ver,Machine,Comment]) end, Heads),
+ io:put_chars(File, "</tr>\n"),
+
+ %% Create table rows
+ lists:foreach(fun(Name) ->
+ create_html_row(File, Name, ResultDict)
+ end, Order),
+
+ %% Tabel end-tags
+ io:put_chars(File, "</table></td></tr></table>\n"),
+
+ %% Create link to benchmark source code
+ io:format(File, "<p><a href=\"~s.erl\">Source for ~s.erl</a>\n",
+ [Bm,Bm]).
+
+%% create_html_row(File, Name, Dict) -> _
+%% File = file() - html file to write data to.
+%% Name = atom() - Name of benchmark test
+%% Dict = dict() - Dictonary where the relative time measures for
+%% the test can be found.
+%%
+%% Creates an actual html table-row.
+create_html_row(File, Name, Dict) ->
+ ReletiveTimes = dict:fetch(Name, Dict),
+ io:put_chars(File, "<tr bgcolor=white>\n"),
+ io:format(File, "<td>~s</td>", [Name]),
+ lists:foreach(fun(Time) ->
+ io:format(File, "<td>~-8.2f</td>", [Time]) end,
+ ReletiveTimes),
+ io:put_chars(File, "</tr>\n").
+
+%% min_time_and_sort(ResultList) -> {MinTime, Order}
+%% ResultList = [{VersionInfo, [{Test, Time} | _]}]
+%% MinTime = integer() - The execution time of the fastes test
+%% Order = [BmFunctionName|_] - the order of the testcases in
+%% increasing execution time.
+%% BmFunctionName = atom()
+min_time_and_sort(ResultList) ->
+
+ %% Use the results from the run on the highest version
+ %% of Erlang as norm.
+ {_, TestRes} =
+ lists:foldl(fun ({Ver, ResList},
+ CurrentVer) when Ver > CurrentVer ->
+ {Ver, ResList};
+ (_, VerAndRes) ->
+ VerAndRes
+ end, {"0", []}, ResultList),
+
+ {lists:foldl(fun ({_, Time0}, Min1) when Time0 < Min1 ->
+ Time0;
+ (_, Min1) ->
+ Min1
+ end, ?MAX, TestRes),
+ [Name || {Name, _} <- lists:keysort(2, TestRes)]}.
+
+
+%% table_headers(VerResultList) -> SysInfo
+%% VerResultList = [{{Ver, Machine},[{BmFunctionName, Time}]} | _]
+%% Ver = string()
+%% Machine = string()
+%% BmFunctionName = atom()
+%% Time = integer()
+%% SysInfo = {Ver, Machine}
+table_headers(VerResultList) ->
+ [SysInfo || {SysInfo, _} <- VerResultList].
+
+
+
diff --git a/lib/asn1/test/bench/bench.hrl b/lib/asn1/test/bench/bench.hrl
new file mode 100644
index 0000000000..7c99447439
--- /dev/null
+++ b/lib/asn1/test/bench/bench.hrl
@@ -0,0 +1,24 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-define(rep5(X), X, X, X, X, X).
+-define(rep10(X), ?rep5(X), ?rep5(X)).
+-define(rep20(X), ?rep10(X), ?rep10(X)).
+-define(rep40(X), ?rep20(X), ?rep20(X)).
+-define(rep80(X), ?rep40(X), ?rep40(X)).
diff --git a/lib/asn1/test/bench/per_bm.erl b/lib/asn1/test/bench/per_bm.erl
new file mode 100644
index 0000000000..23f8a8f010
--- /dev/null
+++ b/lib/asn1/test/bench/per_bm.erl
@@ -0,0 +1,650 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(per_bm).
+
+-define(DATADIR,"/clearcase/otp/erts/lib/asn1/test/asn1_SUITE_data/").
+-include("bench.hrl").
+
+-export([init/0,benchmarks/0]).
+-export([encode/1,decode/1,ranap_enc/1,ranap_dec/1]).
+
+
+init() ->
+ ok = asn1ct:compile(?DATADIR++"H235-SECURITY-MESSAGES",[per_bin]),
+ ok = asn1ct:compile(?DATADIR++"H323-MESSAGES",[per_bin]),
+ ok = asn1ct:compile("RanapASN1",[per_bin]),
+ ok.
+
+
+benchmarks() ->
+ {5000,[encode,decode,ranap_enc,ranap_dec]}.
+
+ranap_dec(N) ->
+ V = ranap_v2(),
+ {ok,Bl} = asn1rt:encode('RanapASN1','RANAP-PDU',V),
+ B = list_to_binary(Bl),
+ ranap_n_dec(N,B),
+ ok.
+
+ranap_n_dec(0,_) ->
+ ok;
+ranap_n_dec(N,B) ->
+ {ok,V}=asn1rt:decode('RanapASN1','RANAP-PDU',B),
+ ranap_n_dec(N-1,B).
+
+ranap_enc(N) ->
+ V = ranap_v2(),
+ ranap_n_enc(N,V),
+ ok.
+
+ranap_n_enc(0,V) ->
+ ok;
+ranap_n_enc(N,V) ->
+ {ok,B} = asn1rt:encode('RanapASN1','RANAP-PDU',V),
+ ranap_n_enc(N-1,V).
+
+
+decode(N) ->
+ V = v1(),
+ {ok,Bl} = asn1rt:encode('H323-MESSAGES','H323-UserInformation',V),
+ B = list_to_binary(Bl),
+ n_decode(N,B),
+ ok.
+
+n_decode(0,_) ->
+ ok;
+n_decode(N,B) ->
+ {ok,V}=asn1rt:decode('H323-MESSAGES','H323-UserInformation',B),
+ n_decode(N-1,B).
+
+
+v1() ->
+ V =
+ {'H323-UserInformation',
+ {'H323-UU-PDU',
+ {callProceeding,
+ {'CallProceeding-UUIE',
+ {0,
+ 7,
+ 180},
+ {'EndpointType',
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 8,
+ 202}},
+ "O"},
+ {'VendorIdentifier',
+ {'H221NonStandard',
+ 55,
+ 55,
+ 14277},
+ "OC",
+ "OC"},
+ {'GatekeeperInfo',
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 9,
+ 232}},
+ "O"}},
+ {'GatewayInfo',
+ [{h320,
+ {'H320Caps',
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 10,
+ 268}},
+ "O"},
+ [{'DataRate',
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 11,
+ 284}},
+ "O"},
+ 1244176737,
+ 75}],
+ [{'SupportedPrefix',
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 12,
+ 304}},
+ "O"},
+ {'h323-ID',
+ "BM"}}]}}],
+ {'NonStandardParameter',
+ {object,
+ {0,
+ 13,
+ 324}},
+ "O"}},
+ {'McuInfo',
+ {'NonStandardParameter',
+ {object,
+ {1,
+ 13,
+ 346,
+ 347}},
+ "OC"}},
+ {'TerminalInfo',
+ {'NonStandardParameter',
+ {object,
+ {1,
+ 14,
+ 363,
+ 363}},
+ "OC"}},
+ true,
+ true},
+ {ipxAddress,
+ {'TransportAddress_ipxAddress',
+ "OCTET ",
+ "OCTE",
+ "OC"}},
+ {'CallIdentifier',
+ "OCTET STRINGOCTE"},
+ {noSecurity,
+ 'NULL'},
+ [
+% {'ClearToken',
+% 1703375497,
+% "BM",
+% {'DHset',
+% [1],
+% [1],
+% [1]},
+% "OCTET STRI",
+% -21825559,
+% {'TypedCertificate',
+% {1,
+% 17,
+% 424,
+% 424},
+% "OC"},
+% "BMP",
+% {'NonStandardParameter',
+% {1,
+% 17,
+% 435,
+% 436},
+% "OC"}},
+ {'ClearToken',
+ 1929575502,
+ "BMP",
+ {'DHset',
+ [1],
+ [1],
+ [1]},
+ "OCTET STRI",
+ -9591354,
+ {'TypedCertificate',
+ {1,
+ 18,
+ 471,
+ 471},
+ "OC"},
+ "BMP",
+ {'NonStandardParameter',
+ {1,
+ 19,
+ 482,
+ 483},
+ "OC"}}],
+ [
+% {cryptoEPCert,
+% {'CryptoH323Token_cryptoEPCert',
+% {'ClearToken',
+% 2227304001,
+% "BMP",
+% {'DHset',
+% [1],
+% [1],
+% [1]},
+% "OCTET STRI",
+% 9574387,
+% {'TypedCertificate',
+% {1,
+% 21,
+% 541,
+% 542},
+% "OCT"},
+% "BMP",
+% {'NonStandardParameter',
+% {1,
+% 22,
+% 552,
+% 553},
+% "OCT"}},
+% {1,
+% 22,
+% 559,
+% 560},
+% {'Params',
+% 18993485,
+% "OCTET ST"},
+% [1,
+% 0,
+% 1]}},
+ {cryptoEPCert,
+ {'CryptoH323Token_cryptoEPCert',
+ {'ClearToken',
+ 2581405450,
+ "BMPS",
+ {'DHset',
+ [1,
+ 0,
+ 1],
+ [1,
+ 0,
+ 1],
+ [1,
+ 0,
+ 1]},
+ "OCTET STRIN",
+ 32050976,
+ {'TypedCertificate',
+ {1,
+ 25,
+ 625,
+ 625},
+ "OCT"},
+ "BMPS",
+ {'NonStandardParameter',
+ {1,
+ 25,
+ 636,
+ 637},
+ "OCT"}},
+ {1,
+ 25,
+ 644,
+ 645},
+ {'Params',
+ 40708757,
+ "OCTET ST"},
+ [1,
+ 0,
+ 1]}}],
+ ["OCT",
+ "OCT",
+ "OCT"]}},
+ {'NonStandardParameter',
+ {h221NonStandard,
+ {'H221NonStandard',
+ 173,
+ 173,
+ 44666}},
+ "OCTE"},
+ ["OCTE",
+ "OCTE",
+ "OCTE",
+ "OCTE"],
+ true,
+ ["OCTE",
+ "OCTE",
+ "OCTE",
+ "OCTE"],
+ [
+% {'NonStandardParameter',
+% {h221NonStandard,
+% {'H221NonStandard',
+% 182,
+% 183,
+% 46981}},
+% "OCTE"},
+% {'NonStandardParameter',
+% {h221NonStandard,
+% {'H221NonStandard',
+% 186,
+% 187,
+% 48016}},
+% "OCTE"},
+% {'NonStandardParameter',
+% {h221NonStandard,
+% {'H221NonStandard',
+% 190,
+% 191,
+% 49026}},
+% "OCTE"},
+ {'NonStandardParameter',
+ {h221NonStandard,
+ {'H221NonStandard',
+ 195,
+ 196,
+ 50303}},
+ "OCTE"}]},
+ {'H323-UserInformation_user-data',
+ 197,
+ "OCTE"}}.
+
+encode(N) ->
+ V = v1(),
+ n_encode(N,V),
+ ok.
+
+n_encode(0,V) ->
+ ok;
+n_encode(N,V) ->
+ {ok,B} = asn1rt:encode('H323-MESSAGES','H323-UserInformation',V),
+ n_encode(N-1,V).
+
+
+ranap_v1() ->
+ {successfulOutcome,
+ {'SuccessfulOutcome',
+ 9,
+ ignore,
+ {'ResetAcknowledge',
+ [{'ProtocolIE-Field',3,ignore,'ps-domain'},
+ {'ProtocolIE-Field',
+ 86,
+ ignore,
+ {'GlobalRNC-ID',"!Ce",2}}],
+ asn1_NOVALUE}}}.
+
+ranap_v2() ->
+ {initiatingMessage,{'InitiatingMessage',
+ 6,
+ {'Criticality',reject},
+ {'SecurityModeCommand',
+ [{'ProtocolIE-Field',
+ 12,
+ {'Criticality',reject},
+ {'IntegrityProtectionInformation',
+ ['standard-UMTS-integrity-algorithm-UIA1'],
+ [0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0],
+ asn1_NOVALUE}},
+ {'ProtocolIE-Field',
+ 11,
+ {'Criticality',ignore},
+ {'EncryptionInformation',
+ ['no-encryption',
+ 'standard-UMTS-encryption-algorith-UEA1'],
+ [0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1],
+ asn1_NOVALUE}},
+ {'ProtocolIE-Field',
+ 75,
+ {'Criticality',reject},
+ new}],
+ asn1_NOVALUE}}}.
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/ber_decode_error.erl b/lib/asn1/test/ber_decode_error.erl
new file mode 100644
index 0000000000..aa3b0122fd
--- /dev/null
+++ b/lib/asn1/test/ber_decode_error.erl
@@ -0,0 +1,56 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(ber_decode_error).
+
+-export([run/1, compile/3]).
+
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Constructed",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+run([]) ->
+ ?line {ok,B} = asn1_wrapper:encode('Constructed','S3',{'S3',17}),
+ ?line [T,L|V] = lists:flatten(B),
+ ?line Bytes = [T,L+3|V] ++ [2,1,3],
+ ?line case asn1_wrapper:decode('Constructed','S3',Bytes) of
+ {error,{asn1,{unexpected,_}}} -> ok
+ end,
+ %% Unexpected bytes must be accepted if there is an extensionmark
+ ?line {ok,{'S3ext',17}} = asn1_wrapper:decode('Constructed','S3ext',Bytes),
+ ok;
+run([driver]) ->
+ %% test of OTP-4797, bad indata to driver does not cause an EXIT
+ ?line {error,_Reason} = asn1rt:decode('Constructed','S3',[3,5]),
+ ok.
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/choice_extension.erl b/lib/asn1/test/choice_extension.erl
new file mode 100644
index 0000000000..843704ee9e
--- /dev/null
+++ b/lib/asn1/test/choice_extension.erl
@@ -0,0 +1,37 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(choice_extension).
+
+-export([run/0, compile/3]).
+
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoExtension",[Rules,{outdir,OutDir}]++Options).
+
+run() ->
+ Val = {str,"abc"},
+ ?line {ok,B} = asn1_wrapper:encode('ChoExtension','ChoExt4',Val),
+ ?line {ok,Val} = asn1_wrapper:decode('ChoExtension','ChoExt4',lists:flatten(B)),
+ ok.
diff --git a/lib/asn1/test/h323test.erl b/lib/asn1/test/h323test.erl
new file mode 100644
index 0000000000..60d2c39be0
--- /dev/null
+++ b/lib/asn1/test/h323test.erl
@@ -0,0 +1,172 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(h323test).
+
+-compile(export_all).
+-export([compile/3,run/1]).
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "H235-SECURITY-MESSAGES",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "H323-MESSAGES",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "MULTIMEDIA-SYSTEM-CONTROL",[Rules,{outdir,OutDir}]++Options).
+
+run(per_bin) ->
+ run();
+run(per) ->
+ run();
+run(_Rules) ->
+ ok.
+
+run() ->
+ ?line alerting(),
+ ?line connect(),
+ ok.
+
+arq() ->
+ _AdmissionRequest = "27900007086000340036003300320038003700370101805337010180533600AC1F38C60693000D000445367AE75C5740120300AC1F38C6415004E0200100110000D7D22EA88D511C0200AC1F38C6C0580100".
+
+
+t0() ->
+ Setup = "00B8060008914A0001010180533622C000000000074572696373736F6E0356302E3100010180533700AC1F38C206B80045367AE75C5740120300AC1F38C6415000411C110000D7D22EA88D511C0200AC1F3806C0583802150000080E1403001E80800A04000100AC1F38C661A820400000060401004E1403001E80801114000100AC1F38C72EE000AC1F38C72EE00100010063AA34AB"
+,
+ ByteList = hexstr2bytes(Setup),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+t1() ->
+ AdmissionRequest = "27900007086000340036003300320038003700370101805337010180533600AC1F38C60693000D000445367AE75C5740120300AC1F38C6415004E0200100110000D7D22EA88D511C0200AC1F38C6C0580100",
+ ByteList = hexstr2bytes(AdmissionRequest),
+ asn1_wrapper:decode('H323-MESSAGES','RasMessage',ByteList).
+
+t2() ->
+ Cs = "080200040504038090A56C059132303033700591323030347E00930500B8060008914A0001010180533622C000000000074572696373736F6E0356302E3100010180533700AC1F38C206B80045367AE75C5740120300AC1F38C6415000411C110000D7D22EA88D511C0200AC1F3806C0583802150000080E1403001E80800A04000100AC1F38C661A820400000060401004E1403001E80801114000100AC1F38C72EE000AC1F38C72EE00100010063AA34AB",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+t3() ->
+ Cs = "10b8060008914a0002044003004d0067006f006e018085cc22c0b500534c164d6963726f736f6674ae204e65744d656574696e67ae0003332e3000000101808c990088e1293a06b8001689edc5bf23d3118c2d00c04f4b1cd0000c07000a00000204dc40b500534c3c0200000028000000000000001b0000008138427484ccd211b4e300a0c90d0660100000001289edc5bf23d3118c2d00c04f4b1cd00000000000000000a615d9ee",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UU-PDU',ByteList).
+
+dec_alerting() ->
+ Cs = "0380060008914a0002020120110000000000000000000000000000000000",
+ _Slask="E83AE983",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+enc_alerting(V) ->
+ asn1_wrapper:encode('H323-MESSAGES','H323-UserInformation',V).
+
+alerting() ->
+ ?line {ok,V} = dec_alerting(),
+ ?line {ok,B} = enc_alerting(V),
+ ?line ByteList = lists:flatten(B),
+ ?line {ok,V} = asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+
+dec_connect() ->
+ Cs = "02c0060008914a00020088e1293a04a322c0b500534c164d6963726f736f6674ae204e65744d656474696e67ae0003332e3000001689edc5bf23d3118c2d00c04f4b1cd00900110000000000000000000000000000000000",
+ _Slask="2f530a3f",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+enc_connect(V) ->
+ asn1_wrapper:encode('H323-MESSAGES','H323-UserInformation',V).
+
+connect() ->
+ ?line {ok,V} = dec_connect(),
+ ?line {ok,B} = enc_connect(V),
+ ?line ByteList = lists:flatten(B),
+ ?line {ok,V} = asn1_wrapper:decode('H323-MESSAGES','H323-UserInformation',ByteList).
+
+dec_h245_TCS() ->
+ Cs ="02700106000881750003"
+ "800d00003c000100000100000100000e"
+ "807fff04b5428080010180000e483060"
+ "0100800c96a88000002020b500534c48"
+ "020000000000f4010000f40101000400"
+ "0000000002000100401f000000100000"
+ "000104002000f4010700000100000002"
+ "00ff00000000c0004000f0000000cc01"
+ "30ff880118ff00008000012040b38000"
+ "0220c0b38000032020b500534c280200"
+ "00000000a0000000a000040010000000"
+ "000070000100401f0000580200000c00"
+ "1000000000008000042020b500534c28"
+ "020000000000a0000000a00004001000"
+ "0000000071000100401f00003a070000"
+ "25001000000000008000052020b50053"
+ "4c280200000000008000000080000500"
+ "14000000000072000100401f00000809"
+ "000025001000000000008000062020b5"
+ "00534c28020000000000800000008000"
+ "050014000000000073000100401f0000"
+ "7f0a00002b0010000000000080000722"
+ "000b40000909a00120390c000a099001"
+ "20390c000b09880120390c000c08a220"
+ "3940000d089220390004800602070007"
+ "00060004000500020001000000030000"
+ "0a00000e800702070007000600040005"
+ "000200010000000300000900000e8008"
+ "02070007000600040005000200010000"
+ "000300000c00000e8009020700070006"
+ "00040005000200010000000300000b00"
+ "000e800a020700070006000400050002"
+ "00010000000300000d00000e0300000b"
+ "01003280299d93369631bc",
+ ByteList = hexstr2bytes(Cs),
+ asn1_wrapper:decode('MULTIMEDIA-SYSTEM-CONTROL',
+ 'MultimediaSystemControlMessage',ByteList).
+
+ hexstr2bytes([D1,D2|T]) ->
+ [dig2num(D1)*16+dig2num(D2)|hexstr2bytes(T)];
+hexstr2bytes([]) ->
+ [].
+
+dig2num(D) when D >= $0, D =< $9 ->
+ D - $0;
+dig2num(D) when D >= $a, D =< $f ->
+ 10 + D - $a;
+dig2num(D) when D >= $A, D =< $F ->
+ 10 + D - $A.
+
+bytes2hexstr(Bytes) ->
+ bytes2hexstr(Bytes,[]).
+
+bytes2hexstr([B|Bytes],Acc) ->
+ D1 = num2dig(B bsr 4),
+ D2 = num2dig(B band 15),
+ bytes2hexstr(Bytes,[D2,D1|Acc]);
+bytes2hexstr([],Acc) ->
+ lists:reverse(Acc).
+
+num2dig(Num) when Num =< 9 ->
+ $0 + Num;
+num2dig(Num) ->
+ $a + Num - 10.
+
+
+
+
+
+
diff --git a/lib/asn1/test/testChoExtension.erl b/lib/asn1/test/testChoExtension.erl
new file mode 100644
index 0000000000..125dfaa3bd
--- /dev/null
+++ b/lib/asn1/test/testChoExtension.erl
@@ -0,0 +1,76 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoExtension).
+
+-export([compile/3]).
+-export([extension/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoExtension",[Rules,{outdir,OutDir}] ++ Options).
+
+
+
+extension(_Rules) ->
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('ChoExtension','ChoExt1',{'ChoExt1',{bool,true}}),
+ ?line {ok,{bool,true}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('ChoExtension','ChoExt1',{'ChoExt1',{int,33}}),
+ ?line {ok,{int,33}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes2)),
+
+ %% A trick to encode with another compatible CHOICE type to test reception
+ %% extension alternative
+
+ ?line {ok,Bytes2x} = asn1_wrapper:encode('ChoExtension','ChoExt1x',{str,"abc"}),
+ ?line {ok,Val2x} =
+ asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes2x)),
+ io:format("Choice extension alternative = ~p~n",[Val2x]),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('ChoExtension','ChoExt2',{'ChoExt2',{bool,true}}),
+ ?line {ok,{bool,true}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt2',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('ChoExtension','ChoExt2',{'ChoExt2',{int,33}}),
+ ?line {ok,{int,33}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt2',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('ChoExtension','ChoExt3',{'ChoExt3',{bool,true}}),
+ ?line {ok,{bool,true}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt3',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} = asn1_wrapper:encode('ChoExtension','ChoExt3',{'ChoExt3',{int,33}}),
+ ?line {ok,{int,33}} =
+ asn1_wrapper:decode('ChoExtension','ChoExt3',lists:flatten(Bytes6)),
+
+ Val7 = {str,"abc"},
+ ?line {ok,Bytes7} = asn1_wrapper:encode('ChoExtension','ChoExt4',Val7),
+ ?line {ok,Val7} = asn1_wrapper:decode('ChoExtension','ChoExt4',lists:flatten(Bytes7)),
+
+
+ ok.
diff --git a/lib/asn1/test/testChoExternal.erl b/lib/asn1/test/testChoExternal.erl
new file mode 100644
index 0000000000..5f804d9d7f
--- /dev/null
+++ b/lib/asn1/test/testChoExternal.erl
@@ -0,0 +1,99 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoExternal).
+
+
+-export([compile/3]).
+-export([external/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+
+
+compile(Config,Rules,Optimize) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoExternal",[Rules,{outdir,OutDir}]++Optimize).
+
+
+
+external(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoExternal','ChoXCho',{'ChoXCho',{boolCho,true}}),
+ ?line {ok,{boolCho,true}} = asn1_wrapper:decode('ChoExternal','ChoXCho',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoExternal','ChoXCho',{'ChoXCho',{intCho,77}}),
+ ?line {ok,{intCho,77}} = asn1_wrapper:decode('ChoExternal','ChoXCho',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoExternal','ChoXBool',{'ChoXBool',{xbool,true}}),
+ ?line {ok,{xbool,true}} = asn1_wrapper:decode('ChoExternal','ChoXBool',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoExternal','ChoXBool',{'ChoXBool',{xboolImp,true}}),
+ ?line {ok,{xboolImp,true}} = asn1_wrapper:decode('ChoExternal','ChoXBool',lists:flatten(Bytes22)),
+
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoExternal','ChoXBool',{'ChoXBool',{xboolExp,true}}),
+ ?line {ok,{xboolExp,true}} = asn1_wrapper:decode('ChoExternal','ChoXBool',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('ChoExternal','NT',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','NT',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('ChoExternal','Exp',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','Exp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('ChoExternal','NTNT',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','NTNT',lists:flatten(Bytes33)),
+
+ ?line {ok,Bytes34} = asn1_wrapper:encode('ChoExternal','NTExp',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','NTExp',lists:flatten(Bytes34)),
+
+ ?line {ok,Bytes35} = asn1_wrapper:encode('ChoExternal','ExpNT',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','ExpNT',lists:flatten(Bytes35)),
+
+ ?line {ok,Bytes36} = asn1_wrapper:encode('ChoExternal','ExpExp',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','ExpExp',lists:flatten(Bytes36)),
+
+
+
+
+
+ ?line {ok,Bytes41} = asn1_wrapper:encode('ChoExternal','XNTNT',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','XNTNT',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('ChoExternal','XNTExp',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','XNTExp',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} = asn1_wrapper:encode('ChoExternal','XExpNT',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','XExpNT',lists:flatten(Bytes43)),
+
+ ?line {ok,Bytes44} = asn1_wrapper:encode('ChoExternal','XExpExp',{os,"kalle"}),
+ ?line {ok,{os,"kalle"}} = asn1_wrapper:decode('ChoExternal','XExpExp',lists:flatten(Bytes44)),
+
+ ok.
+
diff --git a/lib/asn1/test/testChoOptional.erl b/lib/asn1/test/testChoOptional.erl
new file mode 100644
index 0000000000..2d969391d0
--- /dev/null
+++ b/lib/asn1/test/testChoOptional.erl
@@ -0,0 +1,113 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoOptional).
+
+
+-export([compile/3]).
+-export([optional/1]).
+
+%-include("ChoOptional.hrl").
+-include("test_server.hrl").
+-include("External.hrl").
+
+
+-record('Seq1',{bool, int = asn1_NOVALUE, cho = asn1_NOVALUE}).
+-record('Seq2',{int = asn1_NOVALUE, cho = asn1_NOVALUE, bool}).
+-record('Seq3',{cho = asn1_NOVALUE, int = asn1_NOVALUE, bool}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoOptional",[Rules,{outdir,OutDir}]++Options).
+
+
+
+optional(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoOptional','Seq1',#'Seq1'{bool = true}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,asn1_NOVALUE}} =
+ asn1_wrapper:decode('ChoOptional','Seq1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoOptional','Seq1',#'Seq1'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq1',true,233,asn1_NOVALUE}} =
+ asn1_wrapper:decode('ChoOptional','Seq1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('ChoOptional','Seq1',#'Seq1'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,{vsCho,"Vs Str"}}} =
+ asn1_wrapper:decode('ChoOptional','Seq1',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('ChoOptional','Seq1',#'Seq1'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,{ocStrCho,"Oct Str"}}} =
+ asn1_wrapper:decode('ChoOptional','Seq1',lists:flatten(Bytes14)),
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoOptional','Seq2',#'Seq2'{bool = true}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoOptional','Seq2',#'Seq2'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq2',233,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoOptional','Seq2',#'Seq2'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,{vsCho,"Vs Str"},true}} =
+ asn1_wrapper:decode('ChoOptional','Seq2',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} =
+ asn1_wrapper:encode('ChoOptional','Seq2',#'Seq2'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,{ocStrCho,"Oct Str"},true}} =
+ asn1_wrapper:decode('ChoOptional','Seq2',lists:flatten(Bytes24)),
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('ChoOptional','Seq3',#'Seq3'{bool = true}),
+ ?line {ok,{'Seq3',asn1_NOVALUE,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('ChoOptional','Seq3',#'Seq3'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq3',asn1_NOVALUE,233,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('ChoOptional','Seq3',#'Seq3'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq3',{vsCho,"Vs Str"},asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq3',lists:flatten(Bytes33)),
+
+ ?line {ok,Bytes34} =
+ asn1_wrapper:encode('ChoOptional','Seq3',#'Seq3'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq3',{ocStrCho,"Oct Str"},asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptional','Seq3',lists:flatten(Bytes34)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testChoOptionalImplicitTag.erl b/lib/asn1/test/testChoOptionalImplicitTag.erl
new file mode 100644
index 0000000000..30addf2e20
--- /dev/null
+++ b/lib/asn1/test/testChoOptionalImplicitTag.erl
@@ -0,0 +1,113 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoOptionalImplicitTag).
+
+
+-export([compile/2]).
+-export([optional/1]).
+
+%-include("ChoOptional.hrl").
+-include("test_server.hrl").
+-include("External.hrl").
+
+
+-record('Seq1',{bool, int = asn1_NOVALUE, cho = asn1_NOVALUE}).
+-record('Seq2',{int = asn1_NOVALUE, cho = asn1_NOVALUE, bool}).
+-record('Seq3',{cho = asn1_NOVALUE, int = asn1_NOVALUE, bool}).
+
+
+compile(Config,Rules) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoOptionalImplicitTag",[Rules,{outdir,OutDir}]).
+
+
+
+optional(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq1',#'Seq1'{bool = true}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,asn1_NOVALUE}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq1',#'Seq1'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq1',true,233,asn1_NOVALUE}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq1',#'Seq1'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,{vsCho,"Vs Str"}}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq1',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('ChoOptionalImplicitTag','Seq1',#'Seq1'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq1',true,asn1_NOVALUE,{ocStrCho,"Oct Str"}}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq1',lists:flatten(Bytes14)),
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq2',#'Seq2'{bool = true}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq2',#'Seq2'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq2',233,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq2',#'Seq2'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,{vsCho,"Vs Str"},true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq2',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} =
+ asn1_wrapper:encode('ChoOptionalImplicitTag','Seq2',#'Seq2'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq2',asn1_NOVALUE,{ocStrCho,"Oct Str"},true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq2',lists:flatten(Bytes24)),
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq3',#'Seq3'{bool = true}),
+ ?line {ok,{'Seq3',asn1_NOVALUE,asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq3',#'Seq3'{bool = true,
+ int = 233}),
+ ?line {ok,{'Seq3',asn1_NOVALUE,233,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('ChoOptionalImplicitTag','Seq3',#'Seq3'{bool = true,
+ cho = {vsCho,"Vs Str"}}),
+ ?line {ok,{'Seq3',{vsCho,"Vs Str"},asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq3',lists:flatten(Bytes33)),
+
+ ?line {ok,Bytes34} =
+ asn1_wrapper:encode('ChoOptionalImplicitTag','Seq3',#'Seq3'{bool = true,
+ cho = {ocStrCho,"Oct Str"}}),
+ ?line {ok,{'Seq3',{ocStrCho,"Oct Str"},asn1_NOVALUE,true}} =
+ asn1_wrapper:decode('ChoOptionalImplicitTag','Seq3',lists:flatten(Bytes34)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testChoPrim.erl b/lib/asn1/test/testChoPrim.erl
new file mode 100644
index 0000000000..7fa6164b5a
--- /dev/null
+++ b/lib/asn1/test/testChoPrim.erl
@@ -0,0 +1,115 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoPrim).
+
+-export([compile/3]).
+-export([bool/1]).
+-export([int/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+bool(Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoPrim','ChoCon',{bool0,true}),
+ ?line {ok,{bool0,true}} = asn1_wrapper:decode('ChoPrim','ChoCon',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoPrim','ChoCon',{bool1,true}),
+ ?line {ok,{bool1,true}} = asn1_wrapper:decode('ChoPrim','ChoCon',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('ChoPrim','ChoCon',{int2,233}),
+ ?line {ok,{int2,233}} = asn1_wrapper:decode('ChoPrim','ChoCon',lists:flatten(Bytes13)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{invalid_choice_type,wrong}}} =
+ case catch asn1_wrapper:encode('ChoPrim','ChoCon',{wrong,233}) of
+ X1 -> X1 end,
+ ?line {error,{asn1,{invalid_choice_tag,_WrongTag}}} =
+ case catch asn1_wrapper:decode('ChoPrim','ChoCon',[131,2,0,233]) of
+ X2 -> X2 end,
+ ok;
+
+ per ->
+ ok
+ end,
+
+ ok.
+
+
+
+int(Rules) ->
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoPrim','ChoExp',{int10,1}),
+ ?line {ok,{int10,first}} = asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoPrim','ChoExp',{int10,first}),
+ ?line {ok,{int10,first}} = asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoPrim','ChoExp',{int10,last}),
+ ?line {ok,{int10,last}} = asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} = asn1_wrapper:encode('ChoPrim','ChoExp',{bool11,true}),
+ ?line {ok,{bool11,true}} = asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes24)),
+
+
+ ?line {ok,Bytes26} = asn1_wrapper:encode('ChoPrim','ChoExp',{enum12,one}),
+ ?line {ok,{enum12,one}} = asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes26)),
+
+ ?line {ok,Bytes25} = asn1_wrapper:encode('ChoPrim','ChoExp',{bool11,true}),
+ ?line {ok,{bool11,true}} =
+ asn1_wrapper:decode('ChoPrim','ChoExp',lists:flatten(Bytes25)),
+
+ ?line {error,{asn1,_}} =
+ case catch asn1_wrapper:encode('ChoPrim','ChoExp',{enum12,four}) of
+ X3 -> X3 end,
+
+ ?line {error,{asn1,_}} =
+ case catch asn1_wrapper:encode('ChoPrim','ChoExp',{wrong,233}) of
+ X4 -> io:format("error reason = ~p~n",[X4]), X4 end,
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,_}} =
+ case catch asn1_wrapper:decode('ChoPrim','ChoExp',[107,3,2,1,1]) of
+ X5 -> X5 end,
+ ok;
+
+ per ->
+ ok
+ end,
+ ok.
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/testChoRecursive.erl b/lib/asn1/test/testChoRecursive.erl
new file mode 100644
index 0000000000..f8c5e60f55
--- /dev/null
+++ b/lib/asn1/test/testChoRecursive.erl
@@ -0,0 +1,76 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoRecursive).
+
+
+-export([compile/3]).
+-export([recursive/1]).
+
+-include("test_server.hrl").
+
+-record('ChoRec_something',{a, b, c}).
+-record('ChoRec2_something',{a, b, c}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoRecursive",[Rules,{outdir,OutDir}]++Options).
+
+
+
+recursive(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoRecursive','ChoRec',{'ChoRec',{something,
+ #'ChoRec_something'{a = 77,
+ b = "some octets here",
+ c = {'ChoRec',{nothing,'NULL'}}}}}),
+ ?line {ok,{something,{'ChoRec_something',77,"some octets here",{nothing,'NULL'}}}} =
+ asn1_wrapper:decode('ChoRecursive','ChoRec',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoRecursive','ChoRec',{'ChoRec',{nothing,'NULL'}}),
+ ?line {ok,{nothing,'NULL'}} =
+ asn1_wrapper:decode('ChoRecursive','ChoRec',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('ChoRecursive','ChoRec2',{'ChoRec2',
+ {something,
+ #'ChoRec2_something'{a = 77,
+ b = "some octets here",
+ c = {'ChoRec2',
+ {nothing,'NULL'}}}}}),
+ ?line {ok,{something,{'ChoRec2_something',77,"some octets here",{nothing,'NULL'}}}} =
+ asn1_wrapper:decode('ChoRecursive','ChoRec2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('ChoRecursive','ChoRec2',{'ChoRec2',{nothing,'NULL'}}),
+ ?line {ok,{nothing,'NULL'}} =
+ asn1_wrapper:decode('ChoRecursive','ChoRec2',lists:flatten(Bytes22)),
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testChoTypeRefCho.erl b/lib/asn1/test/testChoTypeRefCho.erl
new file mode 100644
index 0000000000..341a77c21b
--- /dev/null
+++ b/lib/asn1/test/testChoTypeRefCho.erl
@@ -0,0 +1,78 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoTypeRefCho).
+
+-export([compile/3]).
+-export([choice/1]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoTypeRefCho",[Rules,{outdir,OutDir}]++Options).
+
+
+
+choice(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoTypeRefCho','ChoTRcho',{choCho,{choInt,88}}),
+ ?line {ok,{choCho,{choInt,88}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoTRcho',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('ChoTypeRefCho','ChoTRcho',{choChoE,{choInt,88}}),
+ ?line {ok,{choChoE,{choInt,88}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoTRcho',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('ChoTypeRefCho','ChoTRcho',{'choCho-E',{choInt,88}}),
+ ?line {ok,{'choCho-E',{choInt,88}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoTRcho',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('ChoTypeRefCho','ChoTRcho',{'choChoE-E',{choInt,88}}),
+ ?line {ok,{'choChoE-E',{choInt,88}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoTRcho',lists:flatten(Bytes14)),
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoTypeRefCho','ChoChoInline',{bool1,true}),
+ ?line {ok,{bool1,true}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoChoInline',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoTypeRefCho','ChoChoInline',{'choCho',{bool,true}}),
+ ?line {ok,{'choCho',{bool,true}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoChoInline',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoTypeRefCho','ChoChoInline',{'choCho',{octStr,"kk"}}),
+ ?line {ok,{'choCho',{octStr,"kk"}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoChoInline',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} = asn1_wrapper:encode('ChoTypeRefCho','ChoChoInline',{'choCho',{int,55}}),
+ ?line {ok,{'choCho',{int,55}}} =
+ asn1_wrapper:decode('ChoTypeRefCho','ChoChoInline',lists:flatten(Bytes24)),
+
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testChoTypeRefPrim.erl b/lib/asn1/test/testChoTypeRefPrim.erl
new file mode 100644
index 0000000000..1ef221819c
--- /dev/null
+++ b/lib/asn1/test/testChoTypeRefPrim.erl
@@ -0,0 +1,95 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoTypeRefPrim).
+
+-export([compile/3]).
+-export([prim/1]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoTypeRefPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+prim(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR',{bool,true}),
+ ?line {ok,{bool,true}} = asn1_wrapper:decode('ChoTypeRefPrim','ChoTR',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('ChoTypeRefPrim','ChoTR',{octStr,[11,12,13,14,15,16,17]}),
+ ?line {ok,{octStr,[11,12,13,14,15,16,17]}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR',{int,233}),
+ ?line {ok,{int,233}} = asn1_wrapper:decode('ChoTypeRefPrim','ChoTR',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('ChoTypeRefPrim','ChoTR',{octStr,"Stringing in the rain"}),
+ ?line {ok,{octStr,"Stringing in the rain"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR',lists:flatten(Bytes14)),
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStr',"A string"}),
+ ?line {ok,{'octStr',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrI',"A string"}),
+ ?line {ok,{'octStrI',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrE',"A string"}),
+ ?line {ok,{'octStrE',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStr-I',"A string"}),
+ ?line {ok,{'octStr-I',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes24)),
+
+ ?line {ok,Bytes25} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrI-I',"A string"}),
+ ?line {ok,{'octStrI-I',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes25)),
+
+ ?line {ok,Bytes26} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrE-I',"A string"}),
+ ?line {ok,{'octStrE-I',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes26)),
+
+ ?line {ok,Bytes27} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStr-E',"A string"}),
+ ?line {ok,{'octStr-E',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes27)),
+
+ ?line {ok,Bytes28} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrI-E',"A string"}),
+ ?line {ok,{'octStrI-E',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes28)),
+
+ ?line {ok,Bytes29} = asn1_wrapper:encode('ChoTypeRefPrim','ChoTR2',{'octStrE-E',"A string"}),
+ ?line {ok,{'octStrE-E',"A string"}} =
+ asn1_wrapper:decode('ChoTypeRefPrim','ChoTR2',lists:flatten(Bytes29)),
+
+
+ ok.
diff --git a/lib/asn1/test/testChoTypeRefSeq.erl b/lib/asn1/test/testChoTypeRefSeq.erl
new file mode 100644
index 0000000000..2e9aa7c411
--- /dev/null
+++ b/lib/asn1/test/testChoTypeRefSeq.erl
@@ -0,0 +1,115 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoTypeRefSeq).
+
+-export([compile/3]).
+-export([seq/1]).
+
+-include("test_server.hrl").
+
+-record('ChoSeq',{seqInt, seqOs}).
+-record('ChoSeqImp',{seqInt, seqOs}).
+-record('ChoSeqExp',{seqInt, seqOs}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoTypeRefSeq",[Rules,{outdir,OutDir}]++Options).
+
+
+
+seq(_Rules) ->
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {choSeq,#'ChoSeq'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{choSeq,{'ChoSeq',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes1)),
+
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {choSeqI,#'ChoSeq'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{choSeqI,{'ChoSeq',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes2)),
+
+
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {choSeqE,#'ChoSeq'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{choSeqE,{'ChoSeq',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes3)),
+
+
+ ?line {ok,Bytes4} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeq-I',#'ChoSeqImp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeq-I',{'ChoSeqImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes4)),
+
+
+ ?line {ok,Bytes5} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeqI-I',#'ChoSeqImp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeqI-I',{'ChoSeqImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes5)),
+
+
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeqE-I',#'ChoSeqImp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeqE-I',{'ChoSeqImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes6)),
+
+
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeq-E',#'ChoSeqExp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeq-E',{'ChoSeqExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes7)),
+
+
+ ?line {ok,Bytes8} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeqI-E',#'ChoSeqExp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeqI-E',{'ChoSeqExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes8)),
+
+
+ ?line {ok,Bytes9} =
+ asn1_wrapper:encode('ChoTypeRefSeq','ChoTRseq',
+ {'choSeqE-E',#'ChoSeqExp'{seqInt = 88,
+ seqOs = "A string"}}),
+ ?line {ok,{'choSeqE-E',{'ChoSeqExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSeq','ChoTRseq',lists:flatten(Bytes9)),
+
+
+ ok.
diff --git a/lib/asn1/test/testChoTypeRefSet.erl b/lib/asn1/test/testChoTypeRefSet.erl
new file mode 100644
index 0000000000..e4db73c1e3
--- /dev/null
+++ b/lib/asn1/test/testChoTypeRefSet.erl
@@ -0,0 +1,116 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoTypeRefSet).
+
+-export([compile/3]).
+-export([set/1]).
+
+-include("test_server.hrl").
+
+-record('ChoSet',{setInt, setOs}).
+-record('ChoSetImp',{setInt, setOs}).
+-record('ChoSetExp',{setInt, setOs}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoTypeRefSet",[Rules,{outdir,OutDir}]++Options).
+
+
+
+set(_Rules) ->
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {choSet,#'ChoSet'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{choSet,{'ChoSet',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes1)),
+
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {choSetI,#'ChoSet'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{choSetI,{'ChoSet',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes2)),
+
+
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {choSetE,#'ChoSet'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{choSetE,{'ChoSet',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes3)),
+
+
+ ?line {ok,Bytes4} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSet-I',#'ChoSetImp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSet-I',{'ChoSetImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes4)),
+
+
+ ?line {ok,Bytes5} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSetI-I',#'ChoSetImp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSetI-I',{'ChoSetImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes5)),
+
+
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSetE-I',#'ChoSetImp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSetE-I',{'ChoSetImp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes6)),
+
+
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSet-E',#'ChoSetExp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSet-E',{'ChoSetExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes7)),
+
+
+ ?line {ok,Bytes8} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSetI-E',#'ChoSetExp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSetI-E',{'ChoSetExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes8)),
+
+
+ ?line {ok,Bytes9} =
+ asn1_wrapper:encode('ChoTypeRefSet','ChoTRset',
+ {'choSetE-E',#'ChoSetExp'{setInt = 88,
+ setOs = "A string"}}),
+ ?line {ok,{'choSetE-E',{'ChoSetExp',88,"A string"}}} =
+ asn1_wrapper:decode('ChoTypeRefSet','ChoTRset',lists:flatten(Bytes9)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testChoiceIndefinite.erl b/lib/asn1/test/testChoiceIndefinite.erl
new file mode 100644
index 0000000000..5eff4ce5d4
--- /dev/null
+++ b/lib/asn1/test/testChoiceIndefinite.erl
@@ -0,0 +1,55 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testChoiceIndefinite).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ChoiceIndef",
+ [Rules,{outdir,OutDir}]++Options).
+
+main(per_bin) -> ok;
+main(per) -> ok;
+main(ber_bin_v2) ->
+ main(ber);
+main(ber_bin) ->
+ main(ber);
+main(ber) ->
+ %% Test case related to OTP-4358
+ %% normal encoding
+ B = [48,8,160,3,128,1,11,129,1,12],
+ %% indefinite length encoding
+ Bi = [48,128,160,128,128,1,11,0,0,129,1,12,0,0],
+ %% the value which is encoded
+ V = {'Seq',{ca,11},12},
+ ?line {ok,V} = asn1_wrapper:decode('ChoiceIndef','Seq',B),
+ ?line {ok,V} = asn1_wrapper:decode('ChoiceIndef','Seq',Bi),
+ ok.
+
+
+
diff --git a/lib/asn1/test/testCompactBitString.erl b/lib/asn1/test/testCompactBitString.erl
new file mode 100644
index 0000000000..12aae260ea
--- /dev/null
+++ b/lib/asn1/test/testCompactBitString.erl
@@ -0,0 +1,279 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testCompactBitString).
+
+-export([compile/3]).
+-export([compact_bit_string/1, bit_string_unnamed/1,otp_4869/1,
+ ticket_7734/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Option) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "PrimStrings",
+ [Rules,{outdir,OutDir}]++Option),
+ case Rules of
+ per_bin ->
+ ?line ok = asn1ct:compile(DataDir ++ "Constraints",
+ [Rules,{outdir,OutDir}]++Option);
+ _ -> ok
+ end.
+
+
+
+compact_bit_string(Rules) ->
+
+ %%==========================================================
+ %% Bs1 ::= BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('PrimStrings','Bs1',0),
+ ?line {ok,{0,<<>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PrimStrings','Bs1',4),
+ ?line {ok,{5,<<32>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','Bs1',15),
+ ?line {ok,{4,<<240>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PrimStrings','Bs1',255),
+ ?line {ok,{0,<<255>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PrimStrings','Bs1',256),
+ ?line {ok,{7,<<0,128>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} = asn1_wrapper:encode('PrimStrings','Bs1',257),
+ ?line {ok,{7,<<128,128>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes6)),
+
+ ?line {ok,Bytes7} = asn1_wrapper:encode('PrimStrings','Bs1',444),
+ ?line {ok,{7,<<61,128>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes7)),
+
+ ?line {ok,Bytes8} = asn1_wrapper:encode('PrimStrings','Bs1',
+ 12345678901234567890),
+ ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes8)),
+
+%% Removed due to beam cannot handle this big integers
+%% Bs1_1 = 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
+%% ?line {ok,Bytes9} = asn1_wrapper:encode('PrimStrings','Bs1',Bs1_1),
+%% ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes9)),
+
+%% Bs1_2 = 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
+%% ?line {ok,Bytes10} = asn1_wrapper:encode('PrimStrings','Bs1',Bs1_2),
+%% ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes10)),
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('PrimStrings','Bs1',
+ [1,1,1,1,1,1,1,1]),
+ ?line {ok,{0,<<255>>}} = asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimStrings',
+ 'Bs1',
+ [0,1,0,0,1,0]),
+ ?line {ok,{2,<<72>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('PrimStrings', 'Bs1',
+ [1,0,0,0,0,0,0,0,0]),
+ ?line {ok,{7,<<128,0>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes13)),
+
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('PrimStrings','Bs1',
+ [0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]),
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes14)),
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line Bytes15 = [35,8,3,2,0,73,3,2,4,32],
+ ?line {ok,{4,<<73,32>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes15)),
+
+ ?line Bytes16 = [35,9,3,2,0,234,3,3,7,156,0],
+ ?line {ok,{7,<<234,156,0>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes16)),
+
+ ?line Bytes17 = [35,128,3,2,0,73,3,2,4,32,0,0],
+ ?line {ok,{4,<<73,32>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes17)),
+
+ ?line Bytes18 = [35,128,3,2,0,234,3,3,7,156,0,0,0],
+ ?line {ok,{7,<<234,156,0>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',
+ lists:flatten(Bytes18)),
+ ok;
+
+ per ->
+ ok
+ end,
+
+ %% The following case to test OTP-4200
+ ?line {ok,Bytes19} =
+ asn1_wrapper:encode('PrimStrings','Bs1',{0,<<0,0,1,1>>}),
+ ?line {ok,{0,<<0,0,1,1>>}} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes19)),
+
+ %%==========================================================
+ %% Bs2 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (7))
+ %%==========================================================
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('PrimStrings','Bs2',[mo,tu,fr]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('PrimStrings','Bs2',[0,1,1,0,0,1,0]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs2',lists:flatten(Bytes22)),
+
+ % ?line case asn1_wrapper:erule(Rules) of
+% ber ->
+% ?line {ok,[mo,tu,fr,su,mo,th]} =
+% asn1_wrapper:decode('PrimStrings','Bs2',[35,8,3,2,1,100,3,2,2,200]),
+
+% ?line {ok,[mo,tu,fr,su,mo,th]} =
+% asn1_wrapper:decode('PrimStrings','Bs2',[35,128,3,2,1,100,3,2,2,200,0,0]),
+% ok;
+
+% per ->
+% ok
+% end,
+
+
+
+ %%==========================================================
+ %% Bs3 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..7))
+ %%==========================================================
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('PrimStrings','Bs3',[mo,tu,fr]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('PrimStrings','Bs3',[0,1,1,0,0,1,0]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs3',lists:flatten(Bytes32)),
+
+
+
+ %%==========================================================
+ %% BsPri ::= [PRIVATE 61] BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes41} = asn1_wrapper:encode('PrimStrings','BsPri',45),
+ ?line {ok,{2,<<180>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('PrimStrings','BsPri',211),
+ ?line {ok,{0,<<203>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',lists:flatten(Bytes42)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',
+ [223,61,4,5,75,226,96]),
+
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',
+ [255,61,128,3,4,5,75,226,96,0,0]),
+
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',
+ [255,61,9,3,2,0,75,3,3,5,226,96]),
+
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','BsPri',
+ [255,61,128,3,2,0,75,3,3,5,226,96,0,0]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+
+
+ %%==========================================================
+ %% BsExpPri ::= [PRIVATE 61] EXPLICIT BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes51} = asn1_wrapper:encode('PrimStrings','BsExpPri',45),
+ ?line {ok,{2,<<180>>}} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',lists:flatten(Bytes51)),
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('PrimStrings','BsExpPri',211),
+ ?line {ok,{0,<<203>>}} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',lists:flatten(Bytes52)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,{5,<<75,226,96>>}} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',[255,61,6,3,4,5,75,226,96]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+ ok.
+
+ticket_7734(per_bin) ->
+ ?line BS = {0,list_to_binary(lists:duplicate(128,0))},
+ ?line {ok,BSEnc} = asn1_wrapper:encode('PrimStrings','BS1024',BS),
+ ?line {ok,BS} = asn1_wrapper:decode('PrimStrings','BS1024',BSEnc).
+
+bit_string_unnamed(Rules) ->
+ case asn1_wrapper:erule(Rules) of
+ ber ->
+ ok;
+ per ->
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('PrimStrings','TransportLayerAddress',
+ [0,1,1,0]),
+ ?line {ok,{4,<<96>>}} =
+ asn1_wrapper:decode('PrimStrings','TransportLayerAddress',
+ lists:flatten(Bytes1))
+ end.
+
+otp_4869(per_bin) ->
+ ?line Val1={'IP',[0],{0,<<62,235,90,50,0,0,0,0,0,0,0,0,0,0,0,0>>},asn1_NOVALUE},
+ ?line Val2 = {'IP',[0],[0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,0,1,0] ++ lists:duplicate(128 - 32,0),asn1_NOVALUE},
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Constraints','IP',Val1),
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Constraints','IP',Val2);
+otp_4869(_) ->
+ ok.
diff --git a/lib/asn1/test/testConstraints.erl b/lib/asn1/test/testConstraints.erl
new file mode 100644
index 0000000000..f70089fe82
--- /dev/null
+++ b/lib/asn1/test/testConstraints.erl
@@ -0,0 +1,159 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testConstraints).
+
+-export([compile/3]).
+-export([int_constraints/1,refed_NNL_name/1]).
+
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Constraints",[Rules,{outdir,OutDir}]++Options).
+
+
+
+
+int_constraints(Rules) ->
+
+ %%==========================================================
+ %% SingleValue ::= INTEGER (1)
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Constraints','SingleValue',1),
+ ?line {ok,1} = asn1_wrapper:decode('Constraints','SingleValue',
+ lists:flatten(Bytes1)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('Constraints','SingleValue',0),
+ ?line {error,{asn1,{integer_range,_,0}}} =
+ asn1_wrapper:decode('Constraints','SingleValue',
+ lists:flatten(Bytes2)),
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('Constraints','SingleValue',1000),
+ ?line {error,{asn1,{integer_range,_,1000}}} =
+ asn1_wrapper:decode('Constraints','SingleValue',
+ lists:flatten(Bytes3));
+ per ->
+ ?line {error,_Reason1} =
+ asn1_wrapper:encode('Constraints','SingleValue',0),
+ ?line {error,_Reason2} =
+ asn1_wrapper:encode('Constraints','SingleValue',1000)
+ end,
+
+
+
+ %%==========================================================
+ %% SingleValue2 ::= INTEGER (1..20)
+ %%==========================================================
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('Constraints','SingleValue2',1),
+ ?line {ok,1} = asn1_wrapper:decode('Constraints','SingleValue2',
+ lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Constraints','SingleValue2',20),
+ ?line {ok,20} = asn1_wrapper:decode('Constraints','SingleValue2',
+ lists:flatten(Bytes5)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('Constraints','SingleValue2',0),
+ ?line {error,{asn1,{integer_range,{1,20},0}}} =
+ asn1_wrapper:decode('Constraints','SingleValue2',
+ lists:flatten(Bytes6)),
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('Constraints','SingleValue2',21),
+ ?line {error,{asn1,{integer_range,{1,20},21}}} =
+ asn1_wrapper:decode('Constraints','SingleValue2',
+ lists:flatten(Bytes7));
+ per ->
+ ?line {error,_Reason3} =
+ asn1_wrapper:encode('Constraints','SingleValue',0),
+ ?line {error,_Reason4} =
+ asn1_wrapper:encode('Constraints','SingleValue',1000)
+ end,
+
+
+
+ %%==========================================================
+ %% Range2to19 ::= INTEGER (1<..<20)
+ %%==========================================================
+
+ ?line {ok,Bytes8} = asn1_wrapper:encode('Constraints','Range2to19',2),
+ ?line {ok,2} = asn1_wrapper:decode('Constraints','Range2to19',lists:flatten(Bytes8)),
+
+ ?line {ok,Bytes9} = asn1_wrapper:encode('Constraints','Range2to19',19),
+ ?line {ok,19} = asn1_wrapper:decode('Constraints','Range2to19',lists:flatten(Bytes9)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,Bytes10} =
+ asn1_wrapper:encode('Constraints','Range2to19',1),
+ ?line {error,{asn1,{integer_range,{2,19},1}}} =
+ asn1_wrapper:decode('Constraints','Range2to19',
+ lists:flatten(Bytes10)),
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('Constraints','Range2to19',20),
+ ?line {error,{asn1,{integer_range,{2,19},20}}} =
+ asn1_wrapper:decode('Constraints','Range2to19',
+ lists:flatten(Bytes11));
+ per ->
+ ?line {error,_Reason5} =
+ asn1_wrapper:encode('Constraints','Range2to19',1),
+ ?line {error,_Reason6} =
+ asn1_wrapper:encode('Constraints','Range2to19',20)
+ end,
+
+
+ %%==========================================================
+ %% Constraint Combinations (Duboisson p. 285)
+ %% I ::= INTEGER (0|15..269)
+ %%==========================================================
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('Constraints','I',0),
+ ?line {ok,0} = asn1_wrapper:decode('Constraints','I',Bytes12),
+ ?line {ok,Bytes13} = asn1_wrapper:encode('Constraints','I',20),
+ ?line {ok,20} = asn1_wrapper:decode('Constraints','I',Bytes13),
+
+ %%==========================================================
+ %% SIZE Constraint (Duboisson p. 268)
+ %% T ::= IA5String (SIZE (1|2, ..., SIZE (1|2|3)))
+ %% T2 ::= IA5String (SIZE (1|2, ..., 3))
+ %%==========================================================
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('Constraints','T',"IA"),
+ ?line {ok,"IA"} = asn1_wrapper:decode('Constraints','T',Bytes14),
+ ?line {ok,Bytes15} = asn1_wrapper:encode('Constraints','T2',"IA"),
+ ?line {ok,"IA"} = asn1_wrapper:decode('Constraints','T2',Bytes15).
+
+
+refed_NNL_name(_Erule) ->
+ ?line {ok,_} = asn1_wrapper:encode('Constraints','AnotherThing',fred),
+ ?line {error,_Reason} =
+ asn1_wrapper:encode('Constraints','AnotherThing',fred3).
diff --git a/lib/asn1/test/testContextSwitchingTypes.erl b/lib/asn1/test/testContextSwitchingTypes.erl
new file mode 100644
index 0000000000..ef14397d1e
--- /dev/null
+++ b/lib/asn1/test/testContextSwitchingTypes.erl
@@ -0,0 +1,83 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testContextSwitchingTypes).
+
+-export([compile/3]).
+-export([test/0]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ContextSwitchingTypes",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+test() ->
+ ?line ValT = 'ContextSwitchingTypes':'val1-T'(),
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('ContextSwitchingTypes','T',ValT),
+ ?line {ok,Result1} =
+ asn1_wrapper:decode('ContextSwitchingTypes','T',Bytes1),
+ ?line ok = check_EXTERNAL(Result1),
+ ?line {ok,ValT2} = asn1ct:value('ContextSwitchingTypes','T'),
+ ?line {ok,Bytes1_2} =
+ asn1_wrapper:encode('ContextSwitchingTypes','T',ValT2),
+ ?line {ok,Result1_2} =
+ asn1_wrapper:decode('ContextSwitchingTypes','T',Bytes1_2),
+ ?line ok = check_EXTERNAL(Result1_2),
+
+ ?line ValEP = 'ContextSwitchingTypes':'val1-EP'(),
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('ContextSwitchingTypes','EP',ValEP),
+ ?line {ok,_Result2} =
+ asn1_wrapper:decode('ContextSwitchingTypes','EP',Bytes2),
+
+ ?line ValCS = 'ContextSwitchingTypes':'val1-CS'(),
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('ContextSwitchingTypes','CS',ValCS),
+ ?line {ok,_Result3} =
+ asn1_wrapper:decode('ContextSwitchingTypes','CS',Bytes3).
+
+
+check_EXTERNAL({'EXTERNAL',Identif,DVD,DV})->
+ ?line ok=check_EXTERNAL_Idef(Identif),
+ ?line ok = check_EXTERNAL_DVD(DVD),
+ ?line ok = check_EXTERNAL_DV(DV).
+check_EXTERNAL_Idef({Alt,_}) when Alt=='context-negotiation';
+ Alt=='presentation-context-id';
+ Alt==syntax ->
+ ok;
+check_EXTERNAL_Idef(I) ->
+ {error,"failed on identification alternative",I}.
+check_EXTERNAL_DVD(DVD) when list(DVD) ->
+ ok;
+check_EXTERNAL_DVD(asn1_NOVALUE) ->
+ ok;
+check_EXTERNAL_DVD(DVD) ->
+ {error,"failed on data-value-descriptor alternative",DVD}.
+check_EXTERNAL_DV(DV) when list(DV) ->
+ ok;
+check_EXTERNAL_DV(DV) ->
+ {error,"failed on data-value alternative",DV}.
diff --git a/lib/asn1/test/testDER.erl b/lib/asn1/test/testDER.erl
new file mode 100644
index 0000000000..970e8dadd4
--- /dev/null
+++ b/lib/asn1/test/testDER.erl
@@ -0,0 +1,59 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testDER).
+
+-export([compile/3]).
+-export([test/0]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "DERSpec",
+ [Rule,der,{outdir,OutDir}]++Options).
+
+test() ->
+ Val = {'Set',12,{version,214},true},
+ ?line {ok,Bin}=asn1_wrapper:encode('DERSpec','Set',Val),
+ ?line ok = match_value('Set',Bin),
+ ?line {ok,{'Set',12,{version,214},true}} =
+ asn1_wrapper:decode('DERSpec','Set',Bin),
+
+ ValSof = [{version,12},{message,"PrintableString"},{message,"Print"},{version,11}],
+ ?line {ok,BSof} = asn1_wrapper:encode('DERSpec','SetOf',ValSof),
+ ?line ok = match_value('SetOf',BSof),
+ ?line {ok,[{version,11},{version,12},{message,"Print"},{message,"PrintableString"}]} = asn1_wrapper:decode('DERSpec','SetOf',BSof),
+
+ ValSO = [{'Seq2',1,true},{'Seq2',120000,false},{'Seq2',3,true}],
+ ?line {ok,SOB} = asn1_wrapper:encode('DERSpec','SO',ValSO),
+ ?line {ok,ValSO} = asn1_wrapper:decode('DERSpec','SO',SOB).
+
+
+match_value('Set',<<49,12,1,1,255,2,2,0,214,161,3,2,1,12>>) ->
+ ok;
+match_value('Set',[49,12,1,1,255,2,2,0,214,161,3,2,1,12]) ->
+ ok;
+match_value('SetOf',<<49,30,2,1,11,2,1,12,19,5,80,114,105,110,116,19,15,80,114,105,110,116,97,98,108,101,83,116,114,105,110,103>>) -> ok;
+match_value('SetOf',[49,30,2,1,11,2,1,12,19,5,80,114,105,110,116,19,15,80,114,105,110,116,97,98,108,101,83,116,114,105,110,103]) -> ok;
+match_value(_,B) ->
+ {error,B}.
diff --git a/lib/asn1/test/testDeepTConstr.erl b/lib/asn1/test/testDeepTConstr.erl
new file mode 100644
index 0000000000..a185a127e5
--- /dev/null
+++ b/lib/asn1/test/testDeepTConstr.erl
@@ -0,0 +1,107 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+
+-module(testDeepTConstr).
+
+-export([compile/3,main/1]).
+
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "TConstrChoice",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++
+ "TConstr",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Erule) ->
+ Val1 = {'FilterItem',
+ {substrings,
+ {'FilterItem_substrings',
+ {2,6},
+ [{initial,"SE"},
+ {any,"DK"},
+ {final,"N"}]}}},
+
+ Val2 = {'FilterItem',
+ {substrings,
+ {'FilterItem_substrings',
+ {2,6},
+ [{initial,"SE"},
+ {any,"DK"},
+ {final,"NO"}]}}},
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('TConstrChoice','FilterItem',Val1),
+
+ ?line {error,Reason} = asn1_wrapper:decode('TConstrChoice','FilterItem',Bytes1),
+
+ io:format("Reason: ~p~n~n",[Reason]),
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('TConstrChoice','FilterItem',Val2),
+
+ ?line {ok,Res} = asn1_wrapper:decode('TConstrChoice','FilterItem',Bytes2),
+
+
+
+ %% test of OTP-4248.
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('TConstrChoice','Seq',{'Seq',3,Bytes2}),
+
+ ?line {ok,{'Seq',3,Bytes4}} =
+ asn1_wrapper:decode('TConstrChoice','Seq',Bytes3),
+
+ ?line {ok,Res} = asn1_wrapper:decode('TConstrChoice','FilterItem',Bytes4),
+
+ %% test of TConstr
+
+ Seq1Val = {'Seq1',{'Seq1_a',12,{2,4}},{'Seq1_b',13,{'Type-object1',14,true}}},
+ ?line {ok,Bytes5} =
+ asn1_wrapper:encode('TConstr','Seq1',Seq1Val),
+
+ ?line {ok,Seq1Val} =
+ asn1_wrapper:decode('TConstr','Seq1',Bytes5),
+
+
+ Seq2Val = {'Seq2',123,{'Seq2_content',{2,6,7},
+ {first,{'Type-object3_first',false,47}},
+ false}},
+
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('TConstr','Seq2',Seq2Val),
+
+ ?line {ok,Seq2Val} =
+ asn1_wrapper:decode('TConstr','Seq2',Bytes6),
+
+ InfoVal = {'Info',{'Info_xyz',{1,2}},1234},
+
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('TConstr','Info',InfoVal),
+
+ ?line {ok,InfoVal} =
+ asn1_wrapper:decode('TConstr','Info',Bytes7).
diff --git a/lib/asn1/test/testDef.erl b/lib/asn1/test/testDef.erl
new file mode 100644
index 0000000000..aa41f7b678
--- /dev/null
+++ b/lib/asn1/test/testDef.erl
@@ -0,0 +1,128 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testDef).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Def1',{bool0,
+ bool1 = asn1_DEFAULT,
+ bool2 = asn1_DEFAULT,
+ bool3 = asn1_DEFAULT}).
+-record('Def2',{bool10,
+ bool11 = asn1_DEFAULT,
+ bool12 = asn1_DEFAULT,
+ bool13}).
+-record('Def3',{bool30 = asn1_DEFAULT,
+ bool31 = asn1_DEFAULT,
+ bool32 = asn1_DEFAULT,
+ bool33 = asn1_DEFAULT}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Def",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true,
+ bool1 = true,
+ bool2 = true,
+ bool3 = true}),
+ ?line {ok,{'Def1',true,true,true,true}} =
+ asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true}),
+ ?line {ok,{'Def1',true,false,false,false}} =
+ asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = true,
+ bool2 = false}),
+ ?line {ok,{'Def1',true,false,false,false}} =
+ asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('Def','Def1',#'Def1'{bool0 = false,
+ bool3 = false}),
+ ?line {ok,{'Def1',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def1',lists:flatten(Bytes14)),
+
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('Def','Def2',#'Def2'{bool10 = false,
+ bool11 = false,
+ bool12 = false,
+ bool13 = false}),
+ ?line {ok,{'Def2',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('Def','Def2',#'Def2'{bool10 = true,
+ bool13 = false}),
+ ?line {ok,{'Def2',true,false,false,false}} =
+ asn1_wrapper:decode('Def','Def2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('Def','Def2',#'Def2'{bool10 = true,
+ bool11 = false,
+ bool13 = false}),
+ ?line {ok,{'Def2',true,false,false,false}} =
+ asn1_wrapper:decode('Def','Def2',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} = asn1_wrapper:encode('Def','Def2',#'Def2'{bool10 = false,
+ bool12 = false,
+ bool13 = false}),
+ ?line {ok,{'Def2',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def2',lists:flatten(Bytes24)),
+
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('Def','Def3',#'Def3'{bool30 = false,
+ bool31 = false,
+ bool32 = false,
+ bool33 = false}),
+ ?line {ok,{'Def3',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('Def','Def3',#'Def3'{}),
+ ?line {ok,{'Def3',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('Def','Def3',#'Def3'{bool30 = true}),
+ ?line {ok,{'Def3',true,false,false,false}} =
+ asn1_wrapper:decode('Def','Def3',lists:flatten(Bytes33)),
+
+ ?line {ok,Bytes34} = asn1_wrapper:encode('Def','Def3',#'Def3'{bool32 = false}),
+ ?line {ok,{'Def3',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def3',lists:flatten(Bytes34)),
+
+ ?line {ok,Bytes35} = asn1_wrapper:encode('Def','Def3',#'Def3'{bool33 = false}),
+ ?line {ok,{'Def3',false,false,false,false}} =
+ asn1_wrapper:decode('Def','Def3',lists:flatten(Bytes35)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testDoubleEllipses.erl b/lib/asn1/test/testDoubleEllipses.erl
new file mode 100644
index 0000000000..444b06995f
--- /dev/null
+++ b/lib/asn1/test/testDoubleEllipses.erl
@@ -0,0 +1,112 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testDoubleEllipses).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Seq',{a, c}).
+-record('SeqV2',{a, b ,c}).
+-record('SeqAlt',{a,d,b,e,c,f,g}).
+-record('SeqAltV2',{a,d,b,e,h,i,c,f,g}).
+
+-record('Set',{a, c}).
+-record('SetV2',{a, b ,c}).
+-record('SetAlt',{a,d,b,e,c,f,g}).
+-record('SetAltV2',{a,d,b,e,h,i,c,f,g}).
+
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "DoubleEllipses",[Rules,{outdir,OutDir}]++Options).
+
+
+main(_Rules) ->
+ %% SEQUENCE
+ ?line {ok,Bytes} =
+ asn1_wrapper:encode('DoubleEllipses','Seq',#'Seq'{a = 10,c = true}),
+ ?line {ok,#'SeqV2'{a=10,b = asn1_NOVALUE, c = true}} =
+ asn1_wrapper:decode('DoubleEllipses','SeqV2',Bytes),
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('DoubleEllipses','SeqV2',
+ #'SeqV2'{a=10,b = false, c = true}),
+ ?line {ok,#'Seq'{a = 10, c = true}} =
+ asn1_wrapper:decode('DoubleEllipses','Seq',Bytes2),
+
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('DoubleEllipses','SeqAlt',
+ #'SeqAlt'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ c = false, f = 14, g = 16}),
+ ?line {ok,#'SeqAltV2'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ h = asn1_NOVALUE, i = asn1_NOVALUE,
+ c = false, f = 14, g = 16}} =
+ asn1_wrapper:decode('DoubleEllipses','SeqAltV2',Bytes3),
+ ?line {ok,Bytes4} =
+ asn1_wrapper:encode('DoubleEllipses','SeqAltV2',
+ #'SeqAltV2'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ h = "PS", i = 13,
+ c = false, f = 14, g = 16}),
+ ?line {ok,#'SeqAlt'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ c = false, f = 14, g = 16}} =
+ asn1_wrapper:decode('DoubleEllipses','SeqAlt',Bytes4),
+
+ %% SET
+ ?line {ok,Bytes5} =
+ asn1_wrapper:encode('DoubleEllipses','Set',#'Set'{a = 10,c = true}),
+ ?line {ok,#'SetV2'{a=10,b = asn1_NOVALUE, c = true}} =
+ asn1_wrapper:decode('DoubleEllipses','SetV2',Bytes5),
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('DoubleEllipses','SetV2',
+ #'SetV2'{a=10,b = false, c = true}),
+ ?line {ok,#'Set'{a = 10, c = true}} =
+ asn1_wrapper:decode('DoubleEllipses','Set',Bytes6),
+
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('DoubleEllipses','SetAlt',
+ #'SetAlt'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ c = false, f = 14, g = 16}),
+ ?line {ok,#'SetAltV2'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ h = asn1_NOVALUE, i = asn1_NOVALUE,
+ c = false, f = 14, g = 16}} =
+ asn1_wrapper:decode('DoubleEllipses','SetAltV2',Bytes7),
+ ?line {ok,Bytes8} =
+ asn1_wrapper:encode('DoubleEllipses','SetAltV2',
+ #'SetAltV2'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ h = "PS", i = 13,
+ c = false, f = 14, g = 16}),
+ ?line {ok,#'SetAlt'{a = 10, d = 12,
+ b = [1,0,1,0], e = true,
+ c = false, f = 14, g = 16}} =
+ asn1_wrapper:decode('DoubleEllipses','SetAlt',Bytes8),
+ ok.
diff --git a/lib/asn1/test/testEnumExt.erl b/lib/asn1/test/testEnumExt.erl
new file mode 100644
index 0000000000..7e25aa9b4e
--- /dev/null
+++ b/lib/asn1/test/testEnumExt.erl
@@ -0,0 +1,95 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1998-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testEnumExt).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "EnumExt",[Rules,{outdir,OutDir}]++Options).
+
+
+main(Rules) when Rules == per; Rules == per_bin; Rules == uper_bin ->
+ io:format("main(~p)~n",[Rules]),
+ B32=[32],B64=[64],
+ %% ENUMERATED with extensionmark (value is in root set)
+ ?line {ok,B32} = asn1_wrapper:encode('EnumExt','Ext',red),
+ ?line {ok,red} = asn1_wrapper:decode('EnumExt','Ext',B32),
+
+ %% ENUMERATED with extensionmark (value is an extensionvalue)
+ ?line {ok,Or} = asn1_wrapper:encode('EnumExt','Ext1',orange),
+ ?line {ok,orange} = asn1_wrapper:decode('EnumExt','Ext1',Or),
+ %% unknown extensionvalue
+ ?line {ok,{asn1_enum,0}} = asn1_wrapper:decode('EnumExt','Ext',Or),
+
+
+ %% ENUMERATED no extensionmark
+ ?line {ok,B64} = asn1_wrapper:encode('EnumExt','Noext',red),
+ ?line {ok,red} = asn1_wrapper:decode('EnumExt','Noext',B64),
+ ok;
+
+main(ber_bin_v2) ->
+ main(ber);
+main(ber_bin) ->
+ main(ber);
+main(ber) ->
+ io:format("main(ber)~n",[]),
+ %% ENUMERATED with extensionmark (value is in root set)
+ ?line {ok,Bytes1} = asn1_wrapper:encode('EnumExt','Ext',red),
+ ?line {ok,red} = asn1_wrapper:decode('EnumExt','Ext',lists:flatten(Bytes1)),
+
+ %% value is an extensionvalue
+ ?line {ok,Bytes1_1} = asn1_wrapper:encode('EnumExt','Ext1',orange),
+ ?line {ok,{asn1_enum,7}} = asn1_wrapper:decode('EnumExt','Ext',lists:flatten(Bytes1_1)),
+%% ?line {ok,Bytes1_1} = asn1_wrapper:encode('EnumExt','Ext',{asn1_enum,7}),
+
+ %% ENUMERATED no extensionmark
+ ?line {ok,Bytes2} = asn1_wrapper:encode('EnumExt','Noext',red),
+ ?line {ok,red} = asn1_wrapper:decode('EnumExt','Noext',lists:flatten(Bytes2)),
+ ?line {error,{asn1,_}} = (catch asn1_wrapper:encode('EnumExt','Noext',orange)),
+%% ?line {error,{asn1,_}} = (catch asn1_wrapper:encode('EnumExt','Noext',{asn1_enum,7})),
+ ok,
+
+ %% ENUMERATED with atom 'com'
+ ?line {ok,Bytes3} = asn1_wrapper:encode('EnumExt','Globalstate',{'Globalstate',preop}),
+ ?line {ok,preop} = asn1_wrapper:decode('EnumExt','Globalstate',
+ lists:flatten(Bytes3)),
+ ?line {ok,Bytes4} = asn1_wrapper:encode('EnumExt','Globalstate',{'Globalstate',com}),
+ ?line {ok,com} = asn1_wrapper:decode('EnumExt','Globalstate',
+ lists:flatten(Bytes4)).
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/asn1/test/testExternal.erl b/lib/asn1/test/testExternal.erl
new file mode 100644
index 0000000000..3c3dc2ea29
--- /dev/null
+++ b/lib/asn1/test/testExternal.erl
@@ -0,0 +1,35 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testExternal).
+
+-export([compile/3]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line test_server:format("Rules ~p~n",[Rules]),
+ ?line ok = asn1ct:compile(DataDir ++ "External",[Rules,{outdir,OutDir}]++Options).
+
+
diff --git a/lib/asn1/test/testINSTANCE_OF.erl b/lib/asn1/test/testINSTANCE_OF.erl
new file mode 100644
index 0000000000..2a3a5c333b
--- /dev/null
+++ b/lib/asn1/test/testINSTANCE_OF.erl
@@ -0,0 +1,89 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testINSTANCE_OF).
+
+-export([compile/3,main/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "INSTANCEOF.asn1",
+ [Rules,{outdir,OutDir}]++Opt).
+
+
+main(Erule) ->
+
+ ?line {ok,Integer} = asn1_wrapper:encode('INSTANCEOF','Int',3),
+ Int = wrap(Erule,Integer),
+ ValotherName = {otherName,{'INSTANCE OF',{2,4},Int}},
+ VallastName1 = {lastName,{'GeneralName_lastName',{2,4},12}},
+ VallastName2 = {lastName,{'GeneralName_lastName',{2,3,4},
+ {'Seq',12,true}}},
+ ?line {ok,BytesoN}=
+ asn1_wrapper:encode('INSTANCEOF','GeneralName',ValotherName),
+ ?line {ok,Res1={otherName,_}} =
+ asn1_wrapper:decode('INSTANCEOF','GeneralName',BytesoN),
+ ?line ok = test_encdec(Erule,Int,Res1),
+
+ ?line {ok,ByteslN1}=
+ asn1_wrapper:encode('INSTANCEOF','GeneralName',VallastName1),
+ ?line {ok,Res2={lastName,_}} =
+ asn1_wrapper:decode('INSTANCEOF','GeneralName',ByteslN1),
+ ?line test_encdec(Erule,Res2),
+
+ ?line {ok,ByteslN2}=
+ asn1_wrapper:encode('INSTANCEOF','GeneralName',VallastName2),
+ ?line {ok,Res3={lastName,_}} =
+ asn1_wrapper:decode('INSTANCEOF','GeneralName',ByteslN2),
+ ?line test_encdec(Erule,Res3).
+
+test_encdec(_Erule,Int,{otherName,{'INSTANCE OF',{2,4},Int}}) ->
+ ok;
+test_encdec(Erule,Int,R={otherName,{'INSTANCE OF',{2,4},_Int2}}) ->
+ {error,{Erule,Int,R}}.
+
+test_encdec(_Erule,{lastName,{'GeneralName_lastName',{2,4},12}}) ->
+ ok;
+test_encdec(_Erule,{lastName,{'GeneralName_lastName',{2,3,4},
+ {'Seq',12,true}}}) ->
+ ok;
+test_encdec(Erule,Res) ->
+ {error,{Erule,Res}}.
+
+wrap(ber,Int) when list(Int) ->
+ binary_to_list(list_to_binary(Int));
+wrap(per,Int) when list(Int) ->
+ binary_to_list(list_to_binary(Int));
+wrap(ber_bin,Int) when list(Int) ->
+ list_to_binary(Int);
+wrap(ber_bin_v2,Int) when list(Int) ->
+ list_to_binary(Int);
+wrap(per_bin,Int) when list(Int) ->
+ list_to_binary(Int);
+wrap(uper_bin,Int) when list(Int) ->
+ list_to_binary(Int);
+wrap(_,Int) ->
+ Int.
diff --git a/lib/asn1/test/testInfObj.erl b/lib/asn1/test/testInfObj.erl
new file mode 100644
index 0000000000..317cd75e4b
--- /dev/null
+++ b/lib/asn1/test/testInfObj.erl
@@ -0,0 +1,104 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testInfObj).
+
+-export([compile/3,main/1,compile_RANAPfiles/3]).
+
+-include("test_server.hrl").
+
+-record('InitiatingMessage',{procedureCode,criticality,value}).
+-record('InitiatingMessage2',{procedureCode,criticality,value}).
+-record('Iu-ReleaseCommand',{first,second}).
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "RANAPextract1",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "InfObj",[Rules,{outdir,OutDir}]++Options),
+ %% test case for OTP-4792 optional open type
+ ?line ok = asn1ct:compile(DataDir ++ "MAP-ExtensionDataTypes",[Rules,{outdir,OutDir}]++Options),
+ %% OTP-6707
+ ?line ok = asn1ct:compile(DataDir ++ "Objects",[Rules,{outdir,OutDir}]++Options),
+ %% OTP-6717
+ ?line ok = asn1ct:compile(DataDir ++ "INAPv2extract",[Rules,{outdir,OutDir}]++Options).
+
+
+compile_RANAPfiles(Config,Rules,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-CommonDataTypes",
+ [Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-Constants",
+ [Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-Containers",
+ [Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-IEs",
+ [Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-PDU-Contents",
+ [Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "RANAP-PDU-Descriptions",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+main(_Erule) ->
+ Val1 = #'InitiatingMessage'{procedureCode=1,
+ criticality=ignore,
+ value=#'Iu-ReleaseCommand'{
+ first=13,
+ second=true}},
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('RANAPextract1','InitiatingMessage',Val1),
+
+ ?line {ok,{'InitiatingMessage',1,ignore,{'Iu-ReleaseCommand',13,true}}}=
+ asn1_wrapper:decode('RANAPextract1','InitiatingMessage',Bytes1),
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('InfObj','InitiatingMessage',Val1),
+
+ ?line {ok,Val1} =
+ asn1_wrapper:decode('InfObj','InitiatingMessage',Bytes2),
+
+ Val2 = Val1#'InitiatingMessage'{procedureCode=2},
+
+ ?line {error,_R1} =
+ asn1_wrapper:encode('InfObj','InitiatingMessage',Val2),
+
+
+ %% Test case for OTP-4275
+ Val3 = #'InitiatingMessage2'{procedureCode=3,
+ criticality=reject,
+ value=#'Iu-ReleaseCommand'{
+ first=13,
+ second=true}},
+
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('RANAPextract1','InitiatingMessage2',Val3),
+
+
+ ?line {ok,{'InitiatingMessage2',3,reject,{'Iu-ReleaseCommand',13,true}}}=
+ asn1_wrapper:decode('RANAPextract1','InitiatingMessage2',Bytes3).
+
diff --git a/lib/asn1/test/testInfObjectClass.erl b/lib/asn1/test/testInfObjectClass.erl
new file mode 100644
index 0000000000..63b332ad0a
--- /dev/null
+++ b/lib/asn1/test/testInfObjectClass.erl
@@ -0,0 +1,67 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testInfObjectClass).
+
+
+-export([compile/3,main/1]).
+
+-include("test_server.hrl").
+
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ErrorClass",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "InfClass",[Rules,{outdir,OutDir}]++Options).
+
+
+main(Rule) ->
+ %% this test is added for OTP-4591, to test that elements in decoded
+ %% value has terms in right order.
+ Val = {'Seq',12,13,2},
+ ?line {ok,Bytes}= asn1_wrapper:encode('InfClass','Seq',Val),
+ ?line {ok,Val} = asn1_wrapper:decode('InfClass','Seq',Bytes),
+
+ %% OTP-5783
+ ?line {error,{asn1,{'Type not compatible with table constraint',
+ {component,'ArgumentType'},
+ {value,_},_}}} = asn1_wrapper:encode('InfClass','Seq',
+ {'Seq',12,13,1}),
+ Bytes2 =
+ if
+ Rule==per;Rule==per_bin ->
+ [1,12,1,11,1,1];
+ Rule == uper_bin ->
+ <<1,12,1,11,1,1>>;
+ true ->
+ [48,9,2,1,12,2,1,11,2,1,1]
+ end,
+ ?line {error,{asn1,{'Type not compatible with table constraint',
+ {{component,_},
+ {value,_B},_}}}} =
+ asn1_wrapper:decode('InfClass','Seq',Bytes2).
+
+
+
diff --git a/lib/asn1/test/testMegaco.erl b/lib/asn1/test/testMegaco.erl
new file mode 100644
index 0000000000..8c0565eec7
--- /dev/null
+++ b/lib/asn1/test/testMegaco.erl
@@ -0,0 +1,191 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testMegaco).
+
+-export([compile/3,main/2,msg11/0]).
+
+-include("test_server.hrl").
+-define(MID, {ip4Address, #'IP4Address'{address = [124, 124, 124, 222],
+ portNumber = 55555}}).
+-define(A4444, ["11111111"]).
+
+-record('MegacoMessage',
+ {
+ authHeader = asn1_NOVALUE,
+ mess
+ }).
+
+-record('Message',
+ {
+ version,
+ mId,
+ messageBody
+ }). % with extension mark
+
+-record('IP4Address',
+ {
+ address,
+ portNumber = asn1_NOVALUE
+ }).
+
+-record('TransactionRequest',
+ {
+ transactionId,
+ actions = []
+ }). % with extension mark
+
+-record('ActionRequest',
+ {
+ contextId,
+ contextRequest = asn1_NOVALUE,
+ contextAttrAuditReq = asn1_NOVALUE,
+ commandRequests = []
+ }).
+
+-record('CommandRequest',
+ {
+ command,
+ optional = asn1_NOVALUE,
+ wildcardReturn = asn1_NOVALUE
+ }). % with extension mark
+
+-record('NotifyRequest',
+ {
+ terminationID,
+ observedEventsDescriptor,
+ errorDescriptor = asn1_NOVALUE
+ }). % with extension mark
+
+-record('ObservedEventsDescriptor',
+ {
+ requestId,
+ observedEventLst = []
+ }).
+
+-record('ObservedEvent',
+ {
+ eventName,
+ streamID = asn1_NOVALUE,
+ eventParList = [],
+ timeNotation = asn1_NOVALUE
+ }). % with extension mark
+
+-record('EventParameter',
+ {
+ eventParameterName,
+ value
+ }).
+
+-record('TimeNotation',
+ {
+ date,
+ time
+ }).
+
+-record(megaco_term_id, {contains_wildcards = ["f"], id}).
+
+
+compile(_Config,ber,[optimize]) ->
+ {ok,no_module,no_module};
+compile(_Config,per,[optimize]) ->
+ {ok,no_module,no_module};
+compile(Config,Erule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "MEDIA-GATEWAY-CONTROL.asn",
+ [Erule,{outdir,OutDir}]++Options),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "OLD-MEDIA-GATEWAY-CONTROL.asn",
+ [Erule,{outdir,OutDir}]++Options),
+ {ok,'OLD-MEDIA-GATEWAY-CONTROL','MEDIA-GATEWAY-CONTROL'}.
+
+
+main(no_module,_) -> ok;
+main('OLD-MEDIA-GATEWAY-CONTROL',_) ->
+% Msg = msg11(),
+ {ok,Msg} = asn1ct:value('OLD-MEDIA-GATEWAY-CONTROL','MegacoMessage'),
+ ?line {ok,Bytes} = asn1_wrapper:encode('OLD-MEDIA-GATEWAY-CONTROL',
+ 'MegacoMessage',Msg),
+ ?line {ok,Msg} = asn1_wrapper:decode('OLD-MEDIA-GATEWAY-CONTROL',
+ 'MegacoMessage',
+ Bytes),
+ ok;
+main(Mod='MEDIA-GATEWAY-CONTROL',Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ io:format("DataDir:~p~n",[DataDir]),
+ ?line {ok,FilenameList} = file:list_dir(filename:join([DataDir,
+ megacomessages])),
+ %% remove any junk files that may be in the megacomessage directory
+ Pred = fun(X) ->
+ case lists:reverse(X) of
+ [$l,$a,$v,$.|_R] ->true;
+ _ -> false
+ end
+ end,
+ MegacoMsgFilenameList = lists:filter(Pred,FilenameList),
+
+ Fun = fun(F) ->
+ M = read_msg(filename:join([DataDir,megacomessages,F])),
+ {ok,B} = asn1_wrapper:encode(Mod,element(1,M),M),
+ {ok,M} = asn1_wrapper:decode(Mod,element(1,M),B)
+ end,
+ ?line lists:foreach(Fun,MegacoMsgFilenameList),
+ ok.
+
+read_msg(File) ->
+ case file:read_file(File) of
+ {ok,Bin} ->
+ binary_to_term(Bin);
+ _ ->
+ io:format("couldn't read file ~p~n",[File])
+ end.
+
+
+request(Mid, TransId, ContextId, CmdReq) when list(CmdReq) ->
+ Actions = [#'ActionRequest'{contextId = ContextId,
+ commandRequests = CmdReq}],
+ Req = {transactions,
+ [{transactionRequest,
+ #'TransactionRequest'{transactionId = TransId,
+ actions = Actions}}]},
+ #'MegacoMessage'{mess = #'Message'{version = 1,
+ mId = Mid,
+ messageBody = Req}}.
+
+msg11() ->
+ TimeStamp = #'TimeNotation'{date = "19990729",
+ time = "22010001"},
+ Parm = #'EventParameter'{eventParameterName = "ds",
+ value = "916135551212"},
+
+ Event = #'ObservedEvent'{eventName = "ddce",
+ timeNotation = TimeStamp,
+ eventParList = [Parm]},
+ Desc = #'ObservedEventsDescriptor'{requestId = 2223,
+ observedEventLst = [Event]},
+ NotifyReq = #'NotifyRequest'{terminationID = [#megaco_term_id{id = ?A4444}],
+ observedEventsDescriptor = Desc},
+ CmdReq = #'CommandRequest'{command = {notifyReq, NotifyReq}},
+ request(?MID, 10002, 0, [CmdReq]).
diff --git a/lib/asn1/test/testMergeCompile.erl b/lib/asn1/test/testMergeCompile.erl
new file mode 100644
index 0000000000..e70ca16b77
--- /dev/null
+++ b/lib/asn1/test/testMergeCompile.erl
@@ -0,0 +1,184 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testMergeCompile).
+
+-export([compile/3,main/1,mvrasn/1]).
+
+-include("test_server.hrl").
+
+-record('InitiatingMessage',{procedureCode,criticality,value}).
+-record('Iu-ReleaseCommand',{protocolIEs,protocolExtensions}).
+
+compile(Config,Erule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "MS.set.asn",[Erule,{outdir,OutDir}]++Options),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "RANAPSET.set.asn1",[Erule,{outdir,OutDir}]++Options),
+
+ ?line ok = asn1ct:compile(filename:join([DataDir,"Mvrasn4.set.asn"]),
+ [Erule,{outdir,OutDir}]++Options),
+
+ ?line ok = asn1ct:compile(filename:join([DataDir,"Mvrasn6.set.asn"]),
+ [Erule,{outdir,OutDir}]++Options).
+
+
+main(Erule) ->
+ %% test of module MS.set.asn that tests OTP-4492: different tagdefault in
+ %% modules and types with same name in modules
+ ?line MSVal = {'Type4M2',8,true,three,"OCTET STRING"},
+ ?line {ok,MSBytes} = asn1_wrapper:encode('MS','Type4M2',MSVal),
+ ?line {ok,MSVal} = asn1_wrapper:decode('MS','Type4M2',MSBytes),
+
+
+ %% test of RANAP.set.asn1
+ ?line _PIEVal = [{'ProtocolIE-Field',4,ignore,{'Cause',{radioNetwork,{'CauseRadioNetwork','rab-pre-empted'}}}}],
+ ?line PIEVal2 = [{'ProtocolIE-Field',4,ignore,{'Cause',{radioNetwork,'rab-pre-empted'}}}],
+ ?line _PEVal = [{'ProtocolExtensionField',[0]}],
+%% ?line EncVal = asn1rt_per_v1:encode_integer([],100),
+ ?line EncVal =
+ case Erule of
+ per ->
+ [1,100];
+ per_bin ->
+ <<1,100>>;
+ uper_bin ->
+ <<1,100>>;
+ ber ->
+ [2,1,1];
+ ber_bin ->
+ <<2,1,1>>;
+ ber_bin_v2 ->
+ <<2,1,1>>
+ end,
+ ?line PEVal2 = [{dummy,1,ignore,EncVal},{dummy,2,reject,EncVal}],
+ ?line Val2 =
+ #'InitiatingMessage'{procedureCode=1,
+ criticality=ignore,
+ value=#'Iu-ReleaseCommand'{protocolIEs=PIEVal2,
+ protocolExtensions=asn1_NOVALUE}},
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('RANAPSET','InitiatingMessage',Val2),
+ ?line {ok,_Ret2} = asn1_wrapper:decode('RANAPSET','InitiatingMessage',Bytes2),
+
+ ?line Val3 =
+ #'InitiatingMessage'{procedureCode=1,
+ criticality=ignore,
+ value=#'Iu-ReleaseCommand'{protocolIEs=PIEVal2,
+ protocolExtensions=PEVal2}},
+ ?line {ok,Bytes3} = asn1_wrapper:encode('RANAPSET','InitiatingMessage',Val3),
+ ?line {ok,_Ret3} = asn1_wrapper:decode('RANAPSET','InitiatingMessage',Bytes3).
+
+
+mvrasn(Erule) ->
+ case Erule of
+ Ber when Ber == ber;Ber == ber_bin ->
+ ?line ok = test(isd),
+ ?line ok = test(isd2),
+ ?line ok = test(dsd),
+ ?line ok = test(ul_res),
+ ?line ok = test(seqofseq),
+ ?line ok = test('InsertSubscriberDataArg');
+ _ ->
+ ok
+ end,
+ ?line ok = test(mvrasn6,'InsertSubscriberDataArg').
+
+test(isd)->
+ EncPdu = [48,128,129,7,145,148,113,50,1,0,241,131,1,0,176,128,5,0,161,128,48,22,2,1,1,144,2,241,33,145,4,0,1,2,3,146,3,36,131,16,148,2,1,42,48,35,2,1,2,144,2,241,33,145,4,255,255,255,255,146,3,37,147,18,147,0,148,13,7,67,79,77,80,65,78,89,4,67,79,77,53,48,28,2,1,3,144,2,241,33,146,3,26,98,31,148,14,9,67,79,77,80,65,78,89,49,50,3,67,79,77,0,0,0,0,152,1,2,0,0],
+
+ ?line {ok,_} = asn1_wrapper:decode('Mvrasn4',
+ 'InsertSubscriberDataArg',
+ EncPdu),
+ ok;
+
+%
+% Problems with indefinite length encoding !!!
+%
+test(isd2)->
+ EncPdu = [48, 128, 128, 8, 98, 2, 50, 1, 0, 0, 0, 241, 176, 128, 161, 128, 48, 128, 2, 1, 1, 144, 2, 241, 33, 145, 4, 255, 23, 12, 1, 146, 3, 9, 17, 1, 147, 0, 148, 13, 7, 67, 79, 77, 80, 65, 78, 89, 4, 67, 79, 77, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn4',
+ 'InsertSubscriberDataArg',
+ EncPdu),
+
+ ok;
+
+%
+% Is doing fine, although there is indefinite encoding used... !!!
+%
+test(dsd)->
+ EncPdu = [48, 128, 128, 8, 98, 2, 50, 1, 0, 0, 0, 241, 170, 2, 5, 0, 0, 0, 0, 0],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn4',
+ 'DeleteSubscriberDataArg',
+ EncPdu),
+
+ ok;
+
+%
+% Is doing fine !!!
+%
+test(ul_res)->
+ EncPdu = [48, 9, 4, 7, 145, 148, 113, 66, 16, 17, 241],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn4',
+ 'UpdateGprsLocationRes',
+ EncPdu),
+
+ ok;
+
+test(seqofseq) ->
+ {ok,_V} = asn1_wrapper:decode('Mvrasn4',
+ 'SentParameters',
+ [48,129,190,161,128,4,16,176,197,182,68,41,243,188,205,123,13,9,145,206,200,144,102,4,4,176,197,182,68,4,8,41,243,188,205,123,13,9,145,0,0,161,128,4,16,39,0,3,117,35,189,130,21,42,104,49,194,212,24,151,234,4,4,39,0,3,117,4,8,35,189,130,21,42,104,49,194,0,0,161,128,4,16,62,207,166,59,71,29,37,97,120,25,132,80,144,251,161,123,4,4,62,207,166,59,4,8,71,29,37,97,120,25,132,80,0,0,161,128,4,16,95,183,173,151,17,76,148,146,248,102,127,215,102,224,39,60,4,4,95,183,173,151,4,8,17,76,148,146,248,102,127,215,0,0,161,128,4,16,41,198,247,157,117,190,203,170,91,146,88,91,223,220,188,16,4,4,41,198,247,157,4,8,117,190,203,170,91,146,88,91,0,0]),
+ ok;
+
+test('InsertSubscriberDataArg') ->
+ {ok,_V} =
+ asn1_wrapper:decode('Mvrasn4','InsertSubscriberDataArg',
+ [16#30,16#80,16#81,16#07,16#91,16#94,
+ 16#71,16#92,16#00,16#35,16#80,16#83,
+ 16#01,16#00,16#A6,16#06,16#04,16#01,
+ 16#21,16#04,16#01,16#22,16#B0,16#80,
+ 16#05,16#00,16#A1,16#80,16#30,16#1A,
+ 16#02,16#01,16#01,16#90,16#02,16#F1,
+ 16#21,16#92,16#03,16#0D,16#92,16#1F,
+ 16#94,16#0C,16#03,16#53,16#49,16#4D,
+ 16#03,16#47,16#53,16#4E,16#03,16#4C,
+ 16#4B,16#50,16#00,16#00,16#00,16#00,
+ 16#98,16#01,16#00,16#00,16#00]),
+ ok.
+
+test(mvrasn6,'InsertSubscriberDataArg') ->
+ Val = {'InsertSubscriberDataArg',"IMSI","Address","C",serviceGranted,["abc","cde"],["tele","serv","ice"],asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,{'NAEA-PreferredCI',"NCC",asn1_NOVALUE},{'GPRSSubscriptionData','NULL',[{'PDP-Context',49,"PT","PDP-Address","QoS",'NULL',"APN",asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE}],asn1_NOVALUE},'NULL',onlyMSC,{'LSAInformation','NULL',accessOutsideLSAsAllowed,[{'LSAData',"LSA","L",'NULL',asn1_NOVALUE},{'LSAData',"LSA","L",'NULL',asn1_NOVALUE}],asn1_NOVALUE},'NULL',{'LCSInformation',["Addr","ess","string"],[{'LCS-PrivacyClass',"S","ExtSS",notifyLocationAllowed,[{'ExternalClient',{'LCSClientExternalID',"Addr",asn1_NOVALUE},asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE}],[broadcastService,anonymousLocation,targetMSsubscribedService],asn1_NOVALUE}],asn1_NOVALUE},100,"age",{'MC-SS-Info',"S","ExtSS",5,4,asn1_NOVALUE},"C",{'SGSN-CAMEL-SubscriptionInfo',{'GPRS-CSI',[{'GPRS-CamelTDPData',attach,13,"Addr",continueTransaction,asn1_NOVALUE}],11,asn1_NOVALUE,'NULL','NULL'},{'SMS-CSI',[{'SMS-CAMEL-TDP-DataList','sms-CollectedInfo',13,"Addr",continueTransaction,asn1_NOVALUE}],11,asn1_NOVALUE,'NULL','NULL'},asn1_NOVALUE},"ON"},
+
+ {ok,Bytes}=
+ asn1_wrapper:encode('Mvrasn6','InsertSubscriberDataArg',Val),
+
+ {ok,_Res} =
+ asn1_wrapper:decode('Mvrasn6','InsertSubscriberDataArg',Bytes),
+
+ ok.
diff --git a/lib/asn1/test/testMvrasn6.erl b/lib/asn1/test/testMvrasn6.erl
new file mode 100644
index 0000000000..65668f3ed4
--- /dev/null
+++ b/lib/asn1/test/testMvrasn6.erl
@@ -0,0 +1,44 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testMvrasn6).
+
+-export([compile/2]).
+-export([main/0]).
+
+-include("test_server.hrl").
+
+compile(Config,Rules) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line Options = [Rules,{outdir,OutDir}],
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-21-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-20-6",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-19-6",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-15-6",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-18-6",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-14-6",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-11-6",Options).
+
+
+main() ->
+ ok.
+
diff --git a/lib/asn1/test/testNBAPsystem.erl b/lib/asn1/test/testNBAPsystem.erl
new file mode 100644
index 0000000000..402f16ab5d
--- /dev/null
+++ b/lib/asn1/test/testNBAPsystem.erl
@@ -0,0 +1,357 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testNBAPsystem).
+
+-export([compile/3,test/2,cell_setup_req_msg/0]).
+
+-include("test_server.hrl").
+
+-record('InitiatingMessage',{
+procedureID, criticality, messageDiscriminator, transactionID, value}).
+-record('AuditRequest',{
+protocolIEs, protocolExtensions = asn1_NOVALUE}).
+-record('ProtocolIE-Field',{
+id, criticality, value}).
+-record('ProcedureID',{
+procedureCode ,ddMode}).
+-record('CellSetupRequestFDD',{
+protocolIEs,protocolExtensions=asn1_NOVALUE}).
+-record('CellSetupRequestFDD_protocolIEs_SEQOF',{
+id, criticality, value}).
+-record('Synchronisation-Configuration-Cell-SetupRqst',{
+'n-INSYNC-IND', 'n-OUTSYNC-IND', 't-RLFAILURE', 'iE-Extensions' = asn1_NOVALUE}).
+-record('PrimarySCH-Information-Cell-SetupRqstFDD',{
+commonPhysicalChannelID, 'primarySCH-Power', 'tSTD-Indicator', 'iE-Extensions' = asn1_NOVALUE}).
+-record('SecondarySCH-Information-Cell-SetupRqstFDD',{
+commonPhysicalChannelID, 'secondarySCH-Power', 'tSTD-Indicator', 'iE-Extensions' = asn1_NOVALUE}).
+-record('PrimaryCCPCH-Information-Cell-SetupRqstFDD',{
+commonPhysicalChannelID, 'bCH-information', 'sTTD-Indicator', 'iE-Extensions' = asn1_NOVALUE}).
+-record('PrimaryCPICH-Information-Cell-SetupRqstFDD',{
+commonPhysicalChannelID, 'primaryCPICH-Power', transmitDiversityIndicator, 'iE-Extensions' = asn1_NOVALUE}).
+-record('BCH-Information-Cell-SetupRqstFDD',{
+commonTransportChannelID, 'bCH-Power', 'iE-Extensions' = asn1_NOVALUE}).
+-record('Limited-power-increase-information-Cell-SetupRqstFDD',{
+powerRaiseLimit, dLPowerAveragingWindowSize, 'iE-Extensions' = asn1_NOVALUE}).
+
+-record('ResourceStatusIndication',{
+ protocolIEs, protocolExtensions = asn1_NOVALUE}).
+%-record('ResourceStatusIndication_protocolIEs_SEQOF',{
+% id, criticality, value}).
+-record('No-Failure-ResourceStatusInd',{
+'local-Cell-InformationList', 'local-Cell-Group-InformationList' = asn1_NOVALUE, 'iE-Extensions' = asn1_NOVALUE}). % with extension mark
+%-record('Local-Cell-InformationList-ResourceStatusInd_SEQOF',{
+% id, criticality, value}).
+-record('Local-Cell-InformationItem-ResourceStatusInd',{
+ 'local-CellID', addorDeleteIndicator,
+ 'dl-or-global-capacityCredit' = asn1_NOVALUE,
+ 'ul-capacityCredit' = asn1_NOVALUE,
+ commonChannelsCapacityConsumptionLaw = asn1_NOVALUE,
+ dedicatedChannelsCapacityConsumptionLaw = asn1_NOVALUE,
+ 'maximumDL-PowerCapability' = asn1_NOVALUE,
+ minSpreadingFactor = asn1_NOVALUE,
+ 'minimumDL-PowerCapability' = asn1_NOVALUE,
+ 'local-Cell-Group-ID' = asn1_NOVALUE,
+ 'iE-Extensions' = asn1_NOVALUE}). % with extension mark
+-record('CommonChannelsCapacityConsumptionLaw_SEQOF',{
+ 'dl-Cost', 'ul-Cost', 'iE-Extensions' = asn1_NOVALUE}). % with extension mark
+-record('DedicatedChannelsCapacityConsumptionLaw_SEQOF',{
+ 'dl-Cost-1', 'dl-Cost-2', 'ul-Cost-1', 'ul-Cost-2',
+ 'iE-Extensions' = asn1_NOVALUE}). % with extension mark
+-record('Local-Cell-InformationItem-ResourceStatusInd_iE-Extensions_SEQOF',{
+ id, criticality, extensionValue}).
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line DataDir2 = filename:join([DataDir,nbapsystem]),
+
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-CommonDataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-IEs.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-PDU-Contents.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-PDU-Discriptions.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-Constants.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"NBAP-Containers.asn"]),[Rules,{outdir,OutDir}]++Opt).
+
+
+test(_Erule,Config) ->
+ ?line ok = enc_audit_req_msg(),
+ ?line ok = cell_setup_req_msg_test(),
+ ticket_5812(Config).
+
+ticket_5812(Config) ->
+ ?line Msg = v_5812(),
+ ?line {ok,B2} = asn1_wrapper:encode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ Msg),
+ V = <<0,28,74,0,3,48,0,0,1,0,123,64,41,0,0,0,126,64,35,95,208,2,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,145,0,1,205,0,0,0,0,2,98,64,1,128>>,
+ ?line ok = compare(V,B2),
+ ?line {ok,Msg2} = asn1_wrapper:decode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',B2),
+ ?line ok = check_record_names(Msg2,Config).
+
+enc_audit_req_msg() ->
+ Msg = {initiatingMessage, audit_req_msg()},
+ ?line {ok,B}=asn1_wrapper:encode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ Msg),
+ ?line {ok,_Msg}=asn1_wrapper:decode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ B),
+ ?line {initiatingMessage,
+ #'InitiatingMessage'{value=#'AuditRequest'{protocolIEs=[{_,114,ignore,_}],
+ protocolExtensions = asn1_NOVALUE}}} = _Msg,
+ io:format("Msg: ~n~P~n~n_Msg:~n~P~n",[Msg,15,_Msg,15]),
+ ok.
+
+cell_setup_req_msg_test() ->
+ Msg = {initiatingMessage, cell_setup_req_msg()},
+ ?line {ok,B}=asn1_wrapper:encode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ Msg),
+ ?line {ok,_Msg}=asn1_wrapper:decode('NBAP-PDU-Discriptions',
+ 'NBAP-PDU',
+ B),
+ io:format("Msg: ~P~n~n_Msg: ~P~n",[Msg,15,_Msg,15]),
+ ok.
+
+audit_req_msg() ->
+ #'InitiatingMessage'{procedureID={'ProcedureID',0,common},
+ criticality=reject,
+ messageDiscriminator=common,
+ transactionID={'longTransActionId',0},
+ value=audit_req()}.
+
+audit_req() ->
+ #'AuditRequest'{
+ protocolIEs =
+ [#'ProtocolIE-Field'{id=114,
+ criticality=ignore,
+ value={'Start-Of-Audit-Sequence-Indicator',
+ 'start-of-audit-sequence' }
+ }
+ ]
+ }.
+
+cell_setup_req_msg() ->
+ #'InitiatingMessage'{
+ procedureID = procedureID(),
+ criticality = reject,
+ messageDiscriminator = common,
+ transactionID = {longTransActionId,0},
+ value = 'CellSetupRequestFDD'()}.
+
+
+
+procedureID() ->
+ #'ProcedureID'{procedureCode = 5,ddMode = fdd}.
+
+'CellSetupRequestFDD'() ->
+ #'CellSetupRequestFDD'{
+ protocolIEs =
+ ['CellSetupRequestFDD_protocolIEs_SEQOF'(124,reject,601),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(25,reject,601),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(43,reject,10),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(276,reject,v1),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(282,reject,9750),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(281,reject,10700),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(131,reject,380),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(181,reject,0),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(394,reject,
+ 'Synchronisation-Configuration-Cell-SetupRqst'(100,100,100)),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(358,reject,5),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(180,reject,
+ 'PrimarySCH-Information-Cell-SetupRqstFDD'(11,-18,inactive)),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(265,reject,
+ 'SecondarySCH-Information-Cell-SetupRqstFDD'(12,-35,inactive)),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(178,reject,
+ 'PrimaryCPICH-Information-Cell-SetupRqstFDD'(13,330,inactive)),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(176,reject,'PrimaryCCPCH-Information-Cell-SetupRqstFDD'(15,'BCH-Information-Cell-SetupRqstFDD'(5,-31),inactive)),
+ 'CellSetupRequestFDD_protocolIEs_SEQOF'(369,reject,'Limited-power-increase-information-Cell-SetupRqstFDD'())]}.
+
+
+'CellSetupRequestFDD_protocolIEs_SEQOF'(Id,Criticality,Value) ->
+ #'CellSetupRequestFDD_protocolIEs_SEQOF'{
+ id = Id,
+ criticality = Criticality,
+ value = Value}.
+
+'Limited-power-increase-information-Cell-SetupRqstFDD'() ->
+ #'Limited-power-increase-information-Cell-SetupRqstFDD'{
+ powerRaiseLimit = 5,
+ dLPowerAveragingWindowSize = 30}.
+
+'PrimaryCPICH-Information-Cell-SetupRqstFDD'(Common,Primary,Transmit) ->
+#'PrimaryCPICH-Information-Cell-SetupRqstFDD'{
+ commonPhysicalChannelID = Common,
+ 'primaryCPICH-Power' = Primary,
+ transmitDiversityIndicator = Transmit}.
+
+'BCH-Information-Cell-SetupRqstFDD'(CommonTCID,BCHPower) ->
+ #'BCH-Information-Cell-SetupRqstFDD'{
+ commonTransportChannelID = CommonTCID,
+ 'bCH-Power' = BCHPower}.
+
+'PrimaryCCPCH-Information-Cell-SetupRqstFDD'(CommonPCID,BCHInfo,
+ STTDInd) ->
+ #'PrimaryCCPCH-Information-Cell-SetupRqstFDD'{
+ commonPhysicalChannelID = CommonPCID,
+ 'bCH-information' = BCHInfo,
+ 'sTTD-Indicator' = STTDInd}.
+
+'SecondarySCH-Information-Cell-SetupRqstFDD'(Common,Secondary,TSTDInd) ->
+ #'SecondarySCH-Information-Cell-SetupRqstFDD'{
+ commonPhysicalChannelID = Common,
+ 'secondarySCH-Power' = Secondary,
+ 'tSTD-Indicator' = TSTDInd}.
+
+'PrimarySCH-Information-Cell-SetupRqstFDD'(Common,Primary,TSTDInd) ->
+ #'PrimarySCH-Information-Cell-SetupRqstFDD'{
+ commonPhysicalChannelID = Common,
+ 'primarySCH-Power' = Primary,
+ 'tSTD-Indicator' = TSTDInd}.
+
+'Synchronisation-Configuration-Cell-SetupRqst'(INSYNC,OUTSYNC,RLFAILURE) ->
+ #'Synchronisation-Configuration-Cell-SetupRqst'{
+ 'n-INSYNC-IND' = INSYNC,
+ 'n-OUTSYNC-IND' = OUTSYNC,
+ 't-RLFAILURE' = RLFAILURE}.
+
+v_5812() ->
+ {initiatingMessage,initiatingMessage_051107()}.
+initiatingMessage_051107() ->
+ #'InitiatingMessage'{procedureID = procedureID_051107(),
+ criticality = criticality_051107(),
+ messageDiscriminator = messageDiscriminator_051107(),
+ transactionID = transactionID_051107(),
+ value = value_051107()}.
+procedureID_051107() ->
+ #'ProcedureID'{procedureCode=28,
+ ddMode=common}.
+criticality_051107() -> ignore.
+messageDiscriminator_051107() -> common.
+transactionID_051107() -> {longTransActionId,3}.
+value_051107() ->
+ #'ResourceStatusIndication'{protocolIEs = protocolIEs_051107()}.
+protocolIEs_051107() ->
+ [#'ProtocolIE-Field'{id = 123,
+ criticality = ignore,
+ value = 'IndicationType-ResourceStatusInd_051107'('no-Failure')}].
+
+'IndicationType-ResourceStatusInd_051107'('no-Failure') ->
+ {'no-Failure',#'No-Failure-ResourceStatusInd'{'local-Cell-InformationList' =[#'ProtocolIE-Field'{id = 126,
+ criticality = ignore,
+ value = 'Local-Cell-InformationItem-ResourceStatusInd'()}]}}.
+'Local-Cell-InformationItem-ResourceStatusInd'() ->
+ #'Local-Cell-InformationItem-ResourceStatusInd'{
+ 'local-CellID' = 601,
+ addorDeleteIndicator = add,
+ 'dl-or-global-capacityCredit' = 0,
+ commonChannelsCapacityConsumptionLaw = ['CommonChannelsCapacityConsumptionLaw_051107'()],
+ dedicatedChannelsCapacityConsumptionLaw = ['DedicatedChannelsCapacityConsumptionLaw_SEQOF'()],
+ 'maximumDL-PowerCapability' = 401,
+ minSpreadingFactor = v4,
+ 'minimumDL-PowerCapability' = 461,
+ 'local-Cell-Group-ID' = 0,
+ 'iE-Extensions' = ['Local-Cell-InformationItem-ResourceStatusInd_iE-Extensions_SEQOF'()]}.
+
+'CommonChannelsCapacityConsumptionLaw_051107'() ->
+ #'CommonChannelsCapacityConsumptionLaw_SEQOF'{
+ 'dl-Cost' = 0,
+ 'ul-Cost' = 0}.
+'DedicatedChannelsCapacityConsumptionLaw_SEQOF'() ->
+ #'DedicatedChannelsCapacityConsumptionLaw_SEQOF'{
+ 'dl-Cost-1' = 0,
+ 'dl-Cost-2' = 0,
+ 'ul-Cost-1' = 0,
+ 'ul-Cost-2' = 0}.
+
+'Local-Cell-InformationItem-ResourceStatusInd_iE-Extensions_SEQOF'() ->
+ #'Local-Cell-InformationItem-ResourceStatusInd_iE-Extensions_SEQOF'{
+ id = 610,
+ criticality = ignore,
+ extensionValue = 'hsdpa-non-capable'}.
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+compare(V,V) ->
+ ok;
+compare(V,L) when list(L) ->
+ compare(V,list_to_binary(L));
+compare(_,_) ->
+ false.
+
+check_record_names(Msg,Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ io:format("check_record_names: compiling ~p~ninclude directory: ~p~n",
+ [filename:join([DataDir,"test_records"]),OutDir]),
+ ?line {ok,test_records} = compile:file(filename:join([DataDir,"test_records"]),
+ [{i,OutDir}]),
+ io:format("check_record_names: calling test_records:'check_record_names_OTP-5812'/1~n",[]),
+ ?line ok = test_records:'check_record_names_OTP-5812'(Msg).
+
+% check_record_names({initiatingMessage,
+% #'InitiatingMessage'{procedureID = ProcedureID,
+% criticality = _Criticality,
+% messageDiscriminator = _MessageDisc,
+% transactionID = _TransactionID,
+% value = Value}}) ->
+
+% ?line ok = check_record_ProcedureID(ProcedureID),
+% ?line ok = check_record_Value(Value).
+
+% check_record_ProcedureID(#'ProcedureID'{}) ->
+% ok;
+% check_record_ProcedureID(_) -> false.
+
+% check_record_Value(#'ResourceStatusIndication'{protocolIEs = ProtocolIEs}) ->
+% ?line ok = check_record_ProtocolIEs(ProtocolIEs);
+% check_record_Value(_) -> false.
+
+% check_record_ProtocolIEs(#'ProtocolIE-Field'{value =IndicationType}) ->
+% ?line ok = check_record_NFResourceStatusInd(IndicationType);
+% check_record_ProtocolIEs(_) -> false.
+
+% check_record_NFResourceStatusInd({'no-Failure',#'No-Failure-ResourceStatusInd'{'local-Cell-InformationList'=[LCI]}}) ->
+% ?line ok = check_record_LCInfoResourceStatusInd(LCI);
+% check_record_NFResourceStatusInd(_) -> false.
+
+% check_record_LCInfoResourceStatusInd(#'Local-Cell-InformationItem-ResourceStatusInd'{commonChannelsCapacityConsumptionLaw=[CCCCL],dedicatedChannelsCapacityConsumptionLaw=[DCCCL],'iE-Extensions' = [LCIRE]}) ->
+% ?line ok = check_record_CCCCL(CCCCL),
+% ?line ok = check_record_DCCCL(DCCCL),
+% ?line ok = check_record_LCIRE(LCIRE).
+
+% check_record_CCCCL(#'CommonChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+% ok;
+% check_record_CCCCL(_) -> false.
+
+% check_record_DCCCL(#'DedicatedChannelsCapacityConsumptionLaw_SEQOF'{}) ->
+% ok;
+% check_record_DCCCL(_) -> false.
+% check_record_LCIRE(#'ProtocolExtensionField'{}) ->
+% ok;
+% check_record_LCIRE(_) -> false.
diff --git a/lib/asn1/test/testOpenTypeImplicitTag.erl b/lib/asn1/test/testOpenTypeImplicitTag.erl
new file mode 100644
index 0000000000..4300509e07
--- /dev/null
+++ b/lib/asn1/test/testOpenTypeImplicitTag.erl
@@ -0,0 +1,52 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testOpenTypeImplicitTag).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "OpenTypeImplicitTag",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('OpenTypeImplicitTag','Seq',
+ {'Seq',[1,1,255],[1,1,255],12,[1,1,255]}),
+ ?line {ok,{'Seq',_,_,12,_}} =
+ asn1_wrapper:decode('OpenTypeImplicitTag','Seq',
+ lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('OpenTypeImplicitTag','Seq',
+ {'Seq',[1,1,255],asn1_NOVALUE,12,[1,1,255]}),
+ ?line {ok,{'Seq',_,asn1_NOVALUE,12,_}} =
+ asn1_wrapper:decode('OpenTypeImplicitTag','Seq',
+ lists:flatten(Bytes2)),
+ ok.
diff --git a/lib/asn1/test/testOpt.erl b/lib/asn1/test/testOpt.erl
new file mode 100644
index 0000000000..2967595fd2
--- /dev/null
+++ b/lib/asn1/test/testOpt.erl
@@ -0,0 +1,130 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testOpt).
+
+-export([compile/2]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Opt1',{bool0,
+ bool1 = asn1_NOVALUE,
+ bool2 = asn1_NOVALUE,
+ bool3 = asn1_NOVALUE}).
+
+-record('Opt2',{bool10,
+ bool11 = asn1_NOVALUE,
+ bool12 = asn1_NOVALUE,
+ bool13}).
+
+-record('Opt3',{bool30 = asn1_NOVALUE,
+ bool31 = asn1_NOVALUE,
+ bool32 = asn1_NOVALUE,
+ bool33 = asn1_NOVALUE}).
+
+
+compile(Config,Rules) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Opt",[Rules,{outdir,OutDir}]).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('Opt','Opt1',#'Opt1'{bool0 = true,
+ bool1 = true,
+ bool2 = true,
+ bool3 = true}),
+ ?line {ok,{'Opt1',true,true,true,true}} =
+ asn1_wrapper:decode('Opt','Opt1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('Opt','Opt1',#'Opt1'{bool0 = true}),
+ ?line {ok,{'Opt1',true,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE}} =
+ asn1_wrapper:decode('Opt','Opt1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('Opt','Opt1',#'Opt1'{bool0 = true,
+ bool2 = false}),
+ ?line {ok,{'Opt1',true,asn1_NOVALUE,false,asn1_NOVALUE}} =
+ asn1_wrapper:decode('Opt','Opt1',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('Opt','Opt1',#'Opt1'{bool0 = false,
+ bool3 = false}),
+ ?line {ok,{'Opt1',false,asn1_NOVALUE,asn1_NOVALUE,false}} =
+ asn1_wrapper:decode('Opt','Opt1',lists:flatten(Bytes14)),
+
+
+
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('Opt','Opt2',#'Opt2'{bool10 = false,
+ bool11 = false,
+ bool12 = false,
+ bool13 = false}),
+ ?line {ok,{'Opt2',false,false,false,false}} =
+ asn1_wrapper:decode('Opt','Opt2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('Opt','Opt2',#'Opt2'{bool10 = true,
+ bool13 = false}),
+ ?line {ok,{'Opt2',true,asn1_NOVALUE,asn1_NOVALUE,false}} =
+ asn1_wrapper:decode('Opt','Opt2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} = asn1_wrapper:encode('Opt','Opt2',#'Opt2'{bool10 = true,
+ bool11 = false,
+ bool13 = false}),
+ ?line {ok,{'Opt2',true,false,asn1_NOVALUE,false}} =
+ asn1_wrapper:decode('Opt','Opt2',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} = asn1_wrapper:encode('Opt','Opt2',#'Opt2'{bool10 = false,
+ bool12 = false,
+ bool13 = false}),
+ ?line {ok,{'Opt2',false,asn1_NOVALUE,false,false}} =
+ asn1_wrapper:decode('Opt','Opt2',lists:flatten(Bytes24)),
+
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('Opt','Opt3',#'Opt3'{bool30 = false,
+ bool31 = false,
+ bool32 = false,
+ bool33 = false}),
+ ?line {ok,{'Opt3',false,false,false,false}} =
+ asn1_wrapper:decode('Opt','Opt3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('Opt','Opt3',#'Opt3'{}),
+ ?line {ok,{'Opt3',asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE}} =
+ asn1_wrapper:decode('Opt','Opt3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('Opt','Opt3',#'Opt3'{bool30 = true}),
+ ?line {ok,{'Opt3',true,asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE}} =
+ asn1_wrapper:decode('Opt','Opt3',lists:flatten(Bytes33)),
+
+ ?line {ok,Bytes34} = asn1_wrapper:encode('Opt','Opt3',#'Opt3'{bool32 = false}),
+ ?line {ok,{'Opt3',asn1_NOVALUE,asn1_NOVALUE,false,asn1_NOVALUE}} =
+ asn1_wrapper:decode('Opt','Opt3',lists:flatten(Bytes34)),
+
+ ?line {ok,Bytes35} = asn1_wrapper:encode('Opt','Opt3',#'Opt3'{bool33 = false}),
+ ?line {ok,{'Opt3',asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE,false}} =
+ asn1_wrapper:decode('Opt','Opt3',lists:flatten(Bytes35)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testParamBasic.erl b/lib/asn1/test/testParamBasic.erl
new file mode 100644
index 0000000000..172a2881cd
--- /dev/null
+++ b/lib/asn1/test/testParamBasic.erl
@@ -0,0 +1,99 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testParamBasic).
+
+-export([compile/3]).
+-export([compile_der/2]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('T11',{number, string=asn1_DEFAULT}).
+-record('T12',{number, string=asn1_DEFAULT}).
+-record('T21',{number, string}).
+-record('T22',{number, string}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ParamBasic",
+ [Rules,{outdir,OutDir}]++Options).
+
+compile_der(Config,Rules) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "ParamBasic",
+ [der,Rules,{outdir,OutDir}]).
+
+main(Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('ParamBasic','T11',
+ #'T11'{number = 11,
+ string = "hello"}),
+ ?line {ok,{'T11',11,"hello"}} =
+ asn1_wrapper:decode('ParamBasic','T11',Bytes11),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('ParamBasic','T12',
+ #'T12'{number = 11,
+ string = [1,0,1,0,1]}),
+ ?line {ok,{'T12',11,[1,0,1,0,1]}} =
+ asn1_wrapper:decode('ParamBasic','T12',Bytes12),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('ParamBasic','T21',
+ #'T21'{number = 11,
+ string = "hello"}),
+ ?line {ok,{'T21',11,"hello"}} =
+ asn1_wrapper:decode('ParamBasic','T21',Bytes13),
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('ParamBasic','T22',
+ #'T22'{number = 11,
+ string = [1,0,1,0,1]}),
+ ?line {ok,{'T22',11,[1,0,1,0,1]}} =
+ asn1_wrapper:decode('ParamBasic','T22',Bytes14),
+
+ case Rules of
+ der ->
+
+ ?line {ok,[48,3,128,1,11]} =
+ asn1_wrapper:encode('ParamBasic','T11',
+ #'T11'{number = 11,
+ string = "hej"}),
+ ?line {ok,{'T11',11,"hej"}} =
+ asn1_wrapper:decode('ParamBasic','T11',[48,3,128,1,11]),
+
+ ?line {ok,[48,3,128,1,11]} =
+ asn1_wrapper:encode('ParamBasic','T12',
+ #'T12'{number = 11,
+ string = [1,0,1,0]}),
+
+ ?line {ok,{'T12',11,[1,0,1,0]}} =
+ asn1_wrapper:decode('ParamBasic','T12',[48,3,128,1,11]);
+ _ -> ok
+ end,
+
+ ok.
diff --git a/lib/asn1/test/testParameterizedInfObj.erl b/lib/asn1/test/testParameterizedInfObj.erl
new file mode 100644
index 0000000000..91d160f335
--- /dev/null
+++ b/lib/asn1/test/testParameterizedInfObj.erl
@@ -0,0 +1,114 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testParameterizedInfObj).
+
+-export([compile/3,main/1,ranap/1]).
+
+-include("test_server.hrl").
+
+-record('AllocationOrRetentionPriority',{priorityLevel,iE_Extensions}).
+-record('ProtocolExtensionField',{id,criticality,extensionValue}).
+
+-record('InitiatingMessage',{procedureCode,criticality,value}).
+-record('Iu-ReleaseCommand',{protocolIEs,protocolExtensions}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "Param",[Rules,{outdir,OutDir}]++Options).
+% ?line ok = asn1ct:compile(DataDir ++ "RANAP-CommonDataTypes",[Rules,{outdir,OutDir}]++Options).
+
+
+main(Erule) ->
+ PERVal = #'AllocationOrRetentionPriority'
+ {priorityLevel = true,
+ iE_Extensions =
+ [#'ProtocolExtensionField'{id=14,
+ criticality=reject,
+ extensionValue=open_type(Erule,[0])},
+ #'ProtocolExtensionField'{id=2,
+ criticality=ignore,
+ extensionValue=open_type(Erule,[1])}]},
+ BERVal = #'AllocationOrRetentionPriority'
+ {priorityLevel = true,
+ iE_Extensions =
+ [#'ProtocolExtensionField'{id=14,
+ criticality=reject,
+ extensionValue=[2,1,0]},
+ #'ProtocolExtensionField'{id=2,
+ criticality=ignore,
+ extensionValue=[2,1,1]}]},
+ ?line {ok,Bytes1} =
+ case asn1_wrapper:erule(Erule) of
+ per ->
+ asn1_wrapper:encode('Param','AllocationOrRetentionPriority',
+ PERVal);
+ _ ->
+ asn1_wrapper:encode('Param','AllocationOrRetentionPriority',
+ BERVal)
+ end,
+
+ ?line {ok,{'AllocationOrRetentionPriority',true,[_R1,_R2]}} =
+ asn1_wrapper:decode('Param','AllocationOrRetentionPriority',Bytes1),
+
+ %% test code for OTP-4242, ValueFromObject
+
+ case asn1_wrapper:erule(Erule) of
+ ber ->
+ ?line {ok,_Val3} = asn1_wrapper:decode('Param','OS1',[4,2,1,2]),
+ ?line {error,_Reason1} =
+ asn1_wrapper:decode('Param','OS1',[4,4,1,2,3,4]),
+ ?line {error,_Reason2} =
+ asn1_wrapper:decode('Param','OS2',[4,4,1,2,3,4]),
+ ?line {ok,_Val4} = asn1_wrapper:decode('Param','OS1',[4,2,1,2]);
+ per ->
+ ?line {ok,Bytes3} =
+ asn1_wrapper:encode('Param','OS1',[1,2]),
+ ?line {ok,[1,2]} =
+ asn1_wrapper:decode('Param','OS1',Bytes3),
+ ?line {error,_Reason3} =
+ asn1_wrapper:encode('Param','OS1',[1,2,3,4])
+ end,
+
+ ok.
+
+
+ranap(_Erule) ->
+ ?line PIEVal2 = [{'ProtocolIE-Field',4,ignore,{'Cause',{radioNetwork,'rab-pre-empted'}}}],
+ ?line Val2 =
+ #'InitiatingMessage'{procedureCode=1,
+ criticality=ignore,
+ value=#'Iu-ReleaseCommand'{protocolIEs=PIEVal2,
+ protocolExtensions=asn1_NOVALUE}},
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('RANAP','InitiatingMessage',Val2),
+ ?line {ok,_Ret2} = asn1_wrapper:decode('RANAP','InitiatingMessage',Bytes2),
+
+ ok.
+
+open_type(uper_bin,Val) when is_list(Val) ->
+ list_to_binary(Val);
+open_type(_,Val) ->
+ Val.
diff --git a/lib/asn1/test/testPrim.erl b/lib/asn1/test/testPrim.erl
new file mode 100644
index 0000000000..4ccdd82c13
--- /dev/null
+++ b/lib/asn1/test/testPrim.erl
@@ -0,0 +1,695 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testPrim).
+
+-export([compile/3]).
+-export([bool/1]).
+-export([int/1]).
+-export([enum/1]).
+-export([obj_id/1]).
+-export([rel_oid/1]).
+-export([null/1]).
+-export([real/1]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ case Opt of
+ [optimize] ->
+ ?line ok = asn1ct:compile(DataDir ++ "Prim",
+ [Rules,optimize,{outdir,OutDir}]),
+ ?line ok = asn1ct:compile(DataDir ++ "Real",
+ [Rules,optimize,{outdir,OutDir}]);
+ __ ->
+ ?line ok = asn1ct:compile(DataDir ++ "Prim",
+ [Rules,{outdir,OutDir}]),
+ ?line ok = asn1ct:compile(DataDir ++ "Real",
+ [Rules,{outdir,OutDir}])
+ end.
+
+
+
+
+bool(Rules) ->
+
+ %%==========================================================
+ %% Bool ::= BOOLEAN
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Prim','Bool',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','Bool',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Prim','Bool',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','Bool',lists:flatten(Bytes2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','Bool',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+
+
+
+ %%==========================================================
+ %% BoolCon ::= [20] BOOLEAN
+ %%==========================================================
+
+
+ ?line {ok,BytesCon1} = asn1_wrapper:encode('Prim','BoolCon',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolCon',lists:flatten(BytesCon1)),
+
+ ?line {ok,BytesCon2} = asn1_wrapper:encode('Prim','BoolCon',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolCon',lists:flatten(BytesCon2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolCon',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+
+
+
+ %%==========================================================
+ %% BoolPri ::= [PRIVATE 21] BOOLEAN
+ %%==========================================================
+
+ ?line {ok,BytesPri1} = asn1_wrapper:encode('Prim','BoolPri',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolPri',lists:flatten(BytesPri1)),
+
+ ?line {ok,BytesPri2} = asn1_wrapper:encode('Prim','BoolPri',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolPri',lists:flatten(BytesPri2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolPri',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+ %%==========================================================
+ %% BoolApp ::= [APPLICATION 22] BOOLEAN
+ %%==========================================================
+
+ ?line {ok,BytesApp1} = asn1_wrapper:encode('Prim','BoolApp',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolApp',lists:flatten(BytesApp1)),
+
+ ?line {ok,BytesApp2} = asn1_wrapper:encode('Prim','BoolApp',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolApp',lists:flatten(BytesApp2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolApp',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+ %%==========================================================
+ %% BoolExpCon ::= [30] EXPLICIT BOOLEAN
+ %%==========================================================
+
+ ?line {ok,BytesExpCon1} = asn1_wrapper:encode('Prim','BoolExpCon',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolExpCon',lists:flatten(BytesExpCon1)),
+
+ ?line {ok,BytesExpCon2} = asn1_wrapper:encode('Prim','BoolExpCon',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolExpCon',lists:flatten(BytesExpCon2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolExpCon',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+
+ %%==========================================================
+ %% BoolExpPri ::= [PRIVATE 31] EXPLICIT BOOLEAN
+ %%==========================================================
+
+ ?line {ok,BytesExpPri1} = asn1_wrapper:encode('Prim','BoolExpPri',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolExpPri',lists:flatten(BytesExpPri1)),
+
+ ?line {ok,BytesExpPri2} = asn1_wrapper:encode('Prim','BoolExpPri',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolExpPri',lists:flatten(BytesExpPri2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolExpPri',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+
+ %%==========================================================
+ %% BoolExpApp ::= [APPLICATION 32] EXPLICIT BOOLEAN
+ %%==========================================================
+
+ ?line {ok,BytesExpApp1} = asn1_wrapper:encode('Prim','BoolExpApp',true),
+ ?line {ok,true} = asn1_wrapper:decode('Prim','BoolExpApp',lists:flatten(BytesExpApp1)),
+
+ ?line {ok,BytesExpApp2} = asn1_wrapper:encode('Prim','BoolExpApp',false),
+ ?line {ok,false} = asn1_wrapper:decode('Prim','BoolExpApp',lists:flatten(BytesExpApp2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{encode_boolean,517}}} =
+ (catch asn1_wrapper:encode('Prim','BoolExpApp',517)),
+ ok;
+ per ->
+ ok
+ end,
+
+ ok.
+
+
+int(Rules) ->
+
+
+ %%==========================================================
+ %% Int ::= INTEGER
+ %%==========================================================
+
+ %% test of OTP-2666 encoding should use minimum number of octets x.690 8.3.2
+ ?line {ok,Bytes0} = asn1_wrapper:encode('Prim','Int',-128),
+ ?line L0 = lists:flatten(Bytes0),
+ ?line {ok,-128} = asn1_wrapper:decode('Prim','Int',lists:flatten(L0)),
+ case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line [_,1,128] = L0;
+ per -> ok
+ end,
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Prim','Int',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Prim','Int',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('Prim','Int',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('Prim','Int',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Prim','Int',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} = asn1_wrapper:encode('Prim','Int',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes6)),
+
+ ?line {ok,Bytes7} = asn1_wrapper:encode('Prim','Int',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes7)),
+
+ ?line {ok,Bytes8} = asn1_wrapper:encode('Prim','Int',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes8)),
+
+ ?line {ok,Bytes9} = asn1_wrapper:encode('Prim','Int',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes9)),
+
+ ?line {ok,Bytes10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(Bytes10)),
+
+
+
+
+
+ %%==========================================================
+ %% IntCon ::= [40] INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesCon1} = asn1_wrapper:encode('Prim','IntCon',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon1)),
+
+ ?line {ok,BytesCon2} = asn1_wrapper:encode('Prim','IntCon',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon2)),
+
+ ?line {ok,BytesCon3} = asn1_wrapper:encode('Prim','IntCon',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon3)),
+
+ ?line {ok,BytesCon4} = asn1_wrapper:encode('Prim','IntCon',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon4)),
+
+ ?line {ok,BytesCon5} = asn1_wrapper:encode('Prim','IntCon',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon5)),
+
+ ?line {ok,BytesCon6} = asn1_wrapper:encode('Prim','IntCon',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon6)),
+
+ ?line {ok,BytesCon7} = asn1_wrapper:encode('Prim','IntCon',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon7)),
+
+ ?line {ok,BytesCon8} = asn1_wrapper:encode('Prim','IntCon',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon8)),
+
+ ?line {ok,BytesCon9} = asn1_wrapper:encode('Prim','IntCon',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntCon',lists:flatten(BytesCon9)),
+
+ ?line {ok,BytesCon10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesCon10)),
+
+
+
+ %%==========================================================
+ %% IntPri ::= [PRIVATE 41] INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesPri1} = asn1_wrapper:encode('Prim','IntPri',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri1)),
+
+ ?line {ok,BytesPri2} = asn1_wrapper:encode('Prim','IntPri',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri2)),
+
+ ?line {ok,BytesPri3} = asn1_wrapper:encode('Prim','IntPri',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri3)),
+
+ ?line {ok,BytesPri4} = asn1_wrapper:encode('Prim','IntPri',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri4)),
+
+ ?line {ok,BytesPri5} = asn1_wrapper:encode('Prim','IntPri',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri5)),
+
+ ?line {ok,BytesPri6} = asn1_wrapper:encode('Prim','IntPri',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri6)),
+
+ ?line {ok,BytesPri7} = asn1_wrapper:encode('Prim','IntPri',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri7)),
+
+ ?line {ok,BytesPri8} = asn1_wrapper:encode('Prim','IntPri',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri8)),
+
+ ?line {ok,BytesPri9} = asn1_wrapper:encode('Prim','IntPri',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntPri',lists:flatten(BytesPri9)),
+
+ ?line {ok,BytesPri10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesPri10)),
+
+
+
+ %%==========================================================
+ %% IntApp ::= [APPLICATION 42] INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesApp1} = asn1_wrapper:encode('Prim','IntApp',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp1)),
+
+ ?line {ok,BytesApp2} = asn1_wrapper:encode('Prim','IntApp',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp2)),
+
+ ?line {ok,BytesApp3} = asn1_wrapper:encode('Prim','IntApp',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp3)),
+
+ ?line {ok,BytesApp4} = asn1_wrapper:encode('Prim','IntApp',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp4)),
+
+ ?line {ok,BytesApp5} = asn1_wrapper:encode('Prim','IntApp',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp5)),
+
+ ?line {ok,BytesApp6} = asn1_wrapper:encode('Prim','IntApp',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp6)),
+
+ ?line {ok,BytesApp7} = asn1_wrapper:encode('Prim','IntApp',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp7)),
+
+ ?line {ok,BytesApp8} = asn1_wrapper:encode('Prim','IntApp',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp8)),
+
+ ?line {ok,BytesApp9} = asn1_wrapper:encode('Prim','IntApp',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntApp',lists:flatten(BytesApp9)),
+
+ ?line {ok,BytesApp10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesApp10)),
+
+
+ %%==========================================================
+ %% IntExpCon ::= [50] EXPLICIT INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesExpCon1} = asn1_wrapper:encode('Prim','IntExpCon',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon1)),
+
+ ?line {ok,BytesExpCon2} = asn1_wrapper:encode('Prim','IntExpCon',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon2)),
+
+ ?line {ok,BytesExpCon3} = asn1_wrapper:encode('Prim','IntExpCon',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon3)),
+
+ ?line {ok,BytesExpCon4} = asn1_wrapper:encode('Prim','IntExpCon',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon4)),
+
+ ?line {ok,BytesExpCon5} = asn1_wrapper:encode('Prim','IntExpCon',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon5)),
+
+ ?line {ok,BytesExpCon6} = asn1_wrapper:encode('Prim','IntExpCon',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon6)),
+
+ ?line {ok,BytesExpCon7} = asn1_wrapper:encode('Prim','IntExpCon',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon7)),
+
+ ?line {ok,BytesExpCon8} = asn1_wrapper:encode('Prim','IntExpCon',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon8)),
+
+ ?line {ok,BytesExpCon9} = asn1_wrapper:encode('Prim','IntExpCon',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntExpCon',lists:flatten(BytesExpCon9)),
+
+ ?line {ok,BytesExpCon10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesExpCon10)),
+
+ %%==========================================================
+ %% IntExpPri ::= [PRIVATE 51] EXPLICIT INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesExpPri1} = asn1_wrapper:encode('Prim','IntExpPri',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri1)),
+
+ ?line {ok,BytesExpPri2} = asn1_wrapper:encode('Prim','IntExpPri',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri2)),
+
+ ?line {ok,BytesExpPri3} = asn1_wrapper:encode('Prim','IntExpPri',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri3)),
+
+ ?line {ok,BytesExpPri4} = asn1_wrapper:encode('Prim','IntExpPri',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri4)),
+
+ ?line {ok,BytesExpPri5} = asn1_wrapper:encode('Prim','IntExpPri',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri5)),
+
+ ?line {ok,BytesExpPri6} = asn1_wrapper:encode('Prim','IntExpPri',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri6)),
+
+ ?line {ok,BytesExpPri7} = asn1_wrapper:encode('Prim','IntExpPri',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri7)),
+
+ ?line {ok,BytesExpPri8} = asn1_wrapper:encode('Prim','IntExpPri',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri8)),
+
+ ?line {ok,BytesExpPri9} = asn1_wrapper:encode('Prim','IntExpPri',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntExpPri',lists:flatten(BytesExpPri9)),
+
+ ?line {ok,BytesExpPri10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesExpPri10)),
+
+ %%==========================================================
+ %% IntExpApp ::= [APPLICATION 52] EXPLICIT INTEGER
+ %%==========================================================
+
+ ?line {ok,BytesExpApp1} = asn1_wrapper:encode('Prim','IntExpApp',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp1)),
+
+ ?line {ok,BytesExpApp2} = asn1_wrapper:encode('Prim','IntExpApp',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp2)),
+
+ ?line {ok,BytesExpApp3} = asn1_wrapper:encode('Prim','IntExpApp',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp3)),
+
+ ?line {ok,BytesExpApp4} = asn1_wrapper:encode('Prim','IntExpApp',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp4)),
+
+ ?line {ok,BytesExpApp5} = asn1_wrapper:encode('Prim','IntExpApp',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp5)),
+
+ ?line {ok,BytesExpApp6} = asn1_wrapper:encode('Prim','IntExpApp',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp6)),
+
+ ?line {ok,BytesExpApp7} = asn1_wrapper:encode('Prim','IntExpApp',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp7)),
+
+ ?line {ok,BytesExpApp8} = asn1_wrapper:encode('Prim','IntExpApp',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp8)),
+
+ ?line {ok,BytesExpApp9} = asn1_wrapper:encode('Prim','IntExpApp',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntExpApp',lists:flatten(BytesExpApp9)),
+
+ ?line {ok,BytesExpApp10} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesExpApp10)),
+
+
+ %%==========================================================
+ %% IntEnum ::= INTEGER {first(1),last(31)}
+ %%==========================================================
+
+ ?line {ok,BytesEnum1} = asn1_wrapper:encode('Prim','IntEnum',4),
+ ?line {ok,4} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum1)),
+
+ ?line {ok,BytesEnum2} = asn1_wrapper:encode('Prim','IntEnum',444),
+ ?line {ok,444} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum2)),
+
+ ?line {ok,BytesEnum3} = asn1_wrapper:encode('Prim','IntEnum',123456789),
+ ?line {ok,123456789} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum3)),
+
+ ?line {ok,BytesEnum4} = asn1_wrapper:encode('Prim','IntEnum',12345678901234567890),
+ ?line {ok,12345678901234567890} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum4)),
+
+ ?line {ok,BytesEnum5} = asn1_wrapper:encode('Prim','IntEnum',-100),
+ ?line {ok,-100} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum5)),
+
+ ?line {ok,BytesEnum6} = asn1_wrapper:encode('Prim','IntEnum',-255),
+ ?line {ok,-255} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum6)),
+
+ ?line {ok,BytesEnum7} = asn1_wrapper:encode('Prim','IntEnum',-256),
+ ?line {ok,-256} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum7)),
+
+ ?line {ok,BytesEnum8} = asn1_wrapper:encode('Prim','IntEnum',-257),
+ ?line {ok,-257} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum8)),
+
+ ?line {ok,BytesEnum9} = asn1_wrapper:encode('Prim','IntEnum',-1234567890),
+ ?line {ok,-1234567890} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum9)),
+
+ ?line {ok,BytesEnum910} = asn1_wrapper:encode('Prim','Int',-2147483648),
+ ?line {ok,-2147483648} = asn1_wrapper:decode('Prim','Int',lists:flatten(BytesEnum910)),
+
+
+ ?line {ok,BytesEnum10} = asn1_wrapper:encode('Prim','IntEnum',first),
+ ?line {ok,first} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum10)),
+
+ ?line {ok,BytesEnum11} = asn1_wrapper:encode('Prim','IntEnum',last),
+ ?line {ok,last} = asn1_wrapper:decode('Prim','IntEnum',lists:flatten(BytesEnum11)),
+
+
+
+ ok.
+
+
+
+enum(Rules) ->
+
+ %%==========================================================
+ %% Enum ::= ENUMERATED {monday(1),tuesday(2),wednesday(3),thursday(4),
+ %% friday(5),saturday(6),sunday(7)}
+ %%==========================================================
+
+ ?line {ok,BytesEnum1} = asn1_wrapper:encode('Prim','Enum',monday),
+ ?line {ok,monday} = asn1_wrapper:decode('Prim','Enum',lists:flatten(BytesEnum1)),
+
+ ?line {ok,BytesEnum2} = asn1_wrapper:encode('Prim','Enum',thursday),
+ ?line {ok,thursday} = asn1_wrapper:decode('Prim','Enum',lists:flatten(BytesEnum2)),
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,{asn1,{_,4}}} =
+ case catch asn1_wrapper:encode('Prim','Enum',4) of Enum -> Enum end,
+ ok;
+ per ->
+ ?line {error,{asn1,{_,4}}} =
+ case catch asn1_wrapper:encode('Prim','Enum',4) of Enum -> Enum end,
+ ok
+ end,
+ ok.
+
+
+
+obj_id(Rules) ->
+
+ %%==========================================================
+ %% ObjId ::= OBJECT IDENTIFIER
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Prim','ObjId',{0,22,3}),
+ ?line {ok,{0,22,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Prim','ObjId',{1,39,3}),
+ ?line {ok,{1,39,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('Prim','ObjId',{2,100,3}),
+ ?line {ok,{2,100,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('Prim','ObjId',{2,16303,3}),
+ ?line {ok,{2,16303,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes4)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Prim','ObjId',{2,16304,3}),
+ ?line {ok,{2,16304,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes5)),
+ ok;
+ per ->
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Prim','ObjId',{2,16304,3}),
+ ?line {ok,{2,16304,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes5)),
+%% ?line test_server:format("~p~n",[Kurt]),
+% ?line {ok,{2,16304,3}} = asn1_wrapper:decode('Prim','ObjId',lists:flatten(Bytes5)),
+ ok
+ end,
+
+
+
+ ok.
+
+rel_oid(_Rules) ->
+
+ %%==========================================================
+ %% RelOid ::= RELATIVE-OID
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Prim','RelOid',{0,22,3}),
+ ?line {ok,{0,22,3}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Prim','RelOid',{1,39,3}),
+ ?line {ok,{1,39,3}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('Prim','RelOid',{2,100,3}),
+ ?line {ok,{2,100,3}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('Prim','RelOid',{2,16303,3}),
+ ?line {ok,{2,16303,3}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Prim','RelOid',{2,16304,3}),
+ ?line {ok,{2,16304,3}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} = asn1_wrapper:encode('Prim','RelOid',{8,16304,16#ffff}),
+ ?line {ok,{8,16304,16#ffff}} = asn1_wrapper:decode('Prim','RelOid',lists:flatten(Bytes6)),
+
+
+
+ ok.
+
+
+
+
+
+null(_Rules) ->
+
+ %%==========================================================
+ %% Null ::= NULL
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Prim','Null',monday),
+ ?line {ok,'NULL'} = asn1_wrapper:decode('Prim','Null',lists:flatten(Bytes1)),
+
+
+
+ok.
+
+
+
+real(_Rules) ->
+ %%==========================================================
+ %% AngleInRadians ::= REAL
+ %%==========================================================
+
+ %% Base 2
+ ?line {ok,Bytes1} = asn1_wrapper:encode('Real','AngleInRadians',{1,2,1}),
+ ?line {ok,{1,2,1}} = asn1_wrapper:decode('Real','AngleInRadians',Bytes1),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('Real','AngleInRadians',{129,2,1}),
+ ?line {ok,{129,2,1}} = asn1_wrapper:decode('Real','AngleInRadians',Bytes2),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('Real','AngleInRadians',{128,2,1}),
+ ?line {ok,{1,2,8}} = asn1_wrapper:decode('Real','AngleInRadians',Bytes3),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('Real','AngleInRadians',{128,2,-7}),
+ ?line {ok,{1,2,0}} = asn1_wrapper:decode('Real','AngleInRadians',Bytes4),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('Real','AngleInRadians',{16#f1f1f1,2,128}),
+ ?line {ok,{16#f1f1f1,2,128}} = asn1_wrapper:decode('Real','AngleInRadians',Bytes5),
+
+ %% Base 10, tuple format
+ ?line {ok,Bytes6} = asn1_wrapper:encode('Real','AngleInRadians',{1,10,1}),
+ ?line {ok,"1.E1"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes6),
+
+ ?line {ok,Bytes7} = asn1_wrapper:encode('Real','AngleInRadians',{100,10,1}),
+ ?line {ok,"1.E3"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes7),
+
+ ?line {ok,Bytes8} = asn1_wrapper:encode('Real','AngleInRadians',{-100,10,1}),
+ ?line {ok,"-1.E3"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes8),
+
+ ?line {ok,Bytes9} = asn1_wrapper:encode('Real','AngleInRadians',{00002,10,1}),
+ ?line {ok,"2.E1"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes9),
+
+ ?line {ok,Bytes10} = asn1_wrapper:encode('Real','AngleInRadians',{123000,10,0}),
+ ?line {ok,"123.E3"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes10),
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('Real','AngleInRadians',{123456789,10,123456789}),
+ ?line {ok,"123456789.E123456789"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes11),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('Real','AngleInRadians',{-12345,10,-12345}),
+ ?line {ok,"-12345.E-12345"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes12),
+
+ %% Base 10, string format NR3
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('Real','AngleInRadians',"123.123E123"),
+ ?line {ok,"123123.E120"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes13),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('Real','AngleInRadians',"0.0E0"),
+ ?line {ok,"0.E+0"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes14),
+
+ ?line {ok,Bytes15} = asn1_wrapper:encode('Real','AngleInRadians',"0.0123"),
+ ?line {ok,"123.E-4"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes15),
+
+ ?line {ok,Bytes16} = asn1_wrapper:encode('Real','AngleInRadians',"0"),
+ ?line {ok,"0.E+0"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes16),
+
+ ?line {ok,Bytes17} = asn1_wrapper:encode('Real','AngleInRadians',"-123.45"),
+ ?line {ok,"-12345.E-2"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes17),
+
+ ?line {ok,Bytes18} =
+ asn1_wrapper:encode('Real','AngleInRadians',"123456789E123456789"),
+ ?line {ok,"123456789.E123456789"} =
+ asn1_wrapper:decode('Real','AngleInRadians',Bytes18),
+
+ ?line {ok,Bytes19} = asn1_wrapper:encode('Real','AngleInRadians',"01.000E1"),
+ ?line {ok,"1.E1"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes19),
+
+ ?line {ok,Bytes20} = asn1_wrapper:encode('Real','AngleInRadians',"120.0001"),
+ ?line {ok,"1200001.E-4"} = asn1_wrapper:decode('Real','AngleInRadians',Bytes20).
diff --git a/lib/asn1/test/testPrimExternal.erl b/lib/asn1/test/testPrimExternal.erl
new file mode 100644
index 0000000000..2a6384009a
--- /dev/null
+++ b/lib/asn1/test/testPrimExternal.erl
@@ -0,0 +1,118 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testPrimExternal).
+
+-export([compile/3]).
+-export([external/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "PrimExternal",[Rules,{outdir,OutDir}]++Options).
+
+
+
+external(_Rules) ->
+
+
+ ?line {ok,Bytes10} = asn1_wrapper:encode('PrimExternal','NT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','NT',lists:flatten(Bytes10)),
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('PrimExternal','Imp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','Imp',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimExternal','Exp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','Exp',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('PrimExternal','NTNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','NTNT',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('PrimExternal','NTImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','NTImp',lists:flatten(Bytes14)),
+
+ ?line {ok,Bytes15} = asn1_wrapper:encode('PrimExternal','NTExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','NTExp',lists:flatten(Bytes15)),
+
+
+ ?line {ok,Bytes16} = asn1_wrapper:encode('PrimExternal','ImpNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ImpNT',lists:flatten(Bytes16)),
+
+ ?line {ok,Bytes17} = asn1_wrapper:encode('PrimExternal','ImpImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ImpImp',lists:flatten(Bytes17)),
+
+ ?line {ok,Bytes18} = asn1_wrapper:encode('PrimExternal','ImpExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ImpExp',lists:flatten(Bytes18)),
+
+
+ ?line {ok,Bytes19} = asn1_wrapper:encode('PrimExternal','ExpNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ExpNT',lists:flatten(Bytes19)),
+
+ ?line {ok,Bytes20} = asn1_wrapper:encode('PrimExternal','ExpImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ExpImp',lists:flatten(Bytes20)),
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('PrimExternal','ExpExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','ExpExp',lists:flatten(Bytes21)),
+
+
+
+
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('PrimExternal','XNTNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XNTNT',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('PrimExternal','XNTImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XNTImp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('PrimExternal','XNTExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XNTExp',lists:flatten(Bytes33)),
+
+
+ ?line {ok,Bytes34} = asn1_wrapper:encode('PrimExternal','XImpNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XImpNT',lists:flatten(Bytes34)),
+
+ ?line {ok,Bytes35} = asn1_wrapper:encode('PrimExternal','XImpImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XImpImp',lists:flatten(Bytes35)),
+
+ ?line {ok,Bytes36} = asn1_wrapper:encode('PrimExternal','XImpExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XImpExp',lists:flatten(Bytes36)),
+
+
+ ?line {ok,Bytes37} = asn1_wrapper:encode('PrimExternal','XExpNT',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XExpNT',lists:flatten(Bytes37)),
+
+ ?line {ok,Bytes38} = asn1_wrapper:encode('PrimExternal','XExpImp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XExpImp',lists:flatten(Bytes38)),
+
+ ?line {ok,Bytes39} = asn1_wrapper:encode('PrimExternal','XExpExp',"kalle"),
+ ?line {ok,"kalle"} = asn1_wrapper:decode('PrimExternal','XExpExp',lists:flatten(Bytes39)),
+
+
+
+
+
+
+
+ok.
diff --git a/lib/asn1/test/testPrimStrings.erl b/lib/asn1/test/testPrimStrings.erl
new file mode 100644
index 0000000000..707ee375c1
--- /dev/null
+++ b/lib/asn1/test/testPrimStrings.erl
@@ -0,0 +1,936 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testPrimStrings).
+
+-export([compile/3]).
+-export([bit_string/1]).
+-export([bit_string_unnamed/1]).
+-export([octet_string/1]).
+-export([numeric_string/1]).
+-export([other_strings/1]).
+-export([more_strings/1]).
+-export([universal_string/1]).
+-export([bmp_string/1]).
+-export([times/1]).
+-export([utf8_string/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Option) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "PrimStrings",
+ [Rules,{outdir,OutDir}]++Option),
+ ?line {ok,IO} = file:open(test_config,write),
+ io:format(IO,"~p.~n",[Config]),
+ file:close(IO),
+ ?line ok = asn1ct:compile(DataDir ++ "BitStr",
+ [Rules, {outdir,OutDir}]++Option).
+
+
+
+bit_string(Rules) ->
+
+ %%==========================================================
+ %% Bs1 ::= BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('PrimStrings','Bs1',0),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PrimStrings','Bs1',4),
+ ?line {ok,[0,0,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','Bs1',15),
+ ?line {ok,[1,1,1,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PrimStrings','Bs1',255),
+ ?line {ok,[1,1,1,1,1,1,1,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PrimStrings','Bs1',256),
+ ?line {ok,[0,0,0,0,0,0,0,0,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} = asn1_wrapper:encode('PrimStrings','Bs1',257),
+ ?line {ok,[1,0,0,0,0,0,0,0,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes6)),
+
+ ?line {ok,Bytes7} = asn1_wrapper:encode('PrimStrings','Bs1',444),
+ ?line {ok,[0,0,1,1,1,1,0,1,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes7)),
+
+ ?line {ok,Bytes8} = asn1_wrapper:encode('PrimStrings','Bs1',12345678901234567890),
+ ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes8)),
+
+%% Removed due to beam cannot handle this big integers
+%% Bs1_1 = 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
+%% ?line {ok,Bytes9} = asn1_wrapper:encode('PrimStrings','Bs1',Bs1_1),
+%% ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes9)),
+
+%% Bs1_2 = 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
+%% ?line {ok,Bytes10} = asn1_wrapper:encode('PrimStrings','Bs1',Bs1_2),
+%% ?line {ok,_} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes10)),
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('PrimStrings','Bs1',[1,1,1,1,1,1,1,1]),
+ ?line {ok,[1,1,1,1,1,1,1,1]} = asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes11)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimStrings','Bs1',[0,1,0,0,1,0]),
+ ?line {ok,[0,1,0,0,1,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('PrimStrings','Bs1',[1,0,0,0,0,0,0,0,0]),
+ ?line {ok,[1,0,0,0,0,0,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes13)),
+ ok;
+ per ->
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimStrings','Bs1',[0,1,0,0,1,0]),
+ ?line {ok,[0,1,0,0,1,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('PrimStrings','Bs1',[1,0,0,0,0,0,0,0,0]),
+ ?line {ok,[1,0,0,0,0,0,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes13)),
+ ok
+ end,
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('PrimStrings','Bs1',[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]),
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes14)),
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line Bytes15 = [35,8,3,2,0,73,3,2,4,32],
+ ?line {ok,[0,1,0,0,1,0,0,1,0,0,1,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes15)),
+
+ ?line Bytes16 = [35,9,3,2,0,234,3,3,7,156,0],
+ ?line {ok,[1,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes16)),
+
+ ?line Bytes17 = [35,128,3,2,0,73,3,2,4,32,0,0],
+ ?line {ok,[0,1,0,0,1,0,0,1,0,0,1,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes17)),
+
+ ?line Bytes18 = [35,128,3,2,0,234,3,3,7,156,0,0,0],
+ ?line {ok,[1,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs1',lists:flatten(Bytes18)),
+ ok;
+
+ per ->
+ ok
+ end,
+
+
+
+ %%==========================================================
+ %% Bs2 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (7))
+ %%==========================================================
+
+ ?line {ok,Bytes21} = asn1_wrapper:encode('PrimStrings','Bs2',[mo,tu,fr]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('PrimStrings','Bs2',[0,1,1,0,0,1,0]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs2',lists:flatten(Bytes22)),
+ ok,
+%% skip this because it is wrong
+% ?line case asn1_wrapper:erule(Rules) of
+% ber ->
+% ?line {ok,[mo,tu,fr,su,mo,th]} =
+% asn1_wrapper:decode('PrimStrings','Bs2',[35,8,3,2,0,101,3,2,2,200]),
+
+% ?line {ok,[mo,tu,fr,su,mo,th]} =
+% asn1_wrapper:decode('PrimStrings','Bs2',[35,128,3,2,1,100,3,2,2,200,0,0]),
+% ok;
+
+% per ->
+% ok
+% end,
+
+
+
+ %%==========================================================
+ %% Bs3 ::= BIT STRING {su(0), mo(1), tu(2), we(3), th(4), fr(5), sa(6) } (SIZE (1..7))
+ %%==========================================================
+
+ ?line {ok,Bytes31} = asn1_wrapper:encode('PrimStrings','Bs3',[mo,tu,fr]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('PrimStrings','Bs3',[0,1,1,0,0,1,0]),
+ ?line {ok,[mo,tu,fr]} = asn1_wrapper:decode('PrimStrings','Bs3',lists:flatten(Bytes32)),
+
+
+ %%==========================================================
+ %% Bs7 ::= BIT STRING (SIZE (24))
+ %%==========================================================
+
+ ?line {ok,Bytes33} = asn1_wrapper:encode('PrimStrings','Bs7',53245),
+ ?line {ok,[1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs7',Bytes33),
+
+ ?line {ok,Bytes34} = asn1_wrapper:encode('PrimStrings','Bs7',[1,0,1,0]),
+ ?line {ok,[1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} =
+ asn1_wrapper:decode('PrimStrings','Bs7',Bytes34),
+
+ %%==========================================================
+ %% BsPri ::= [PRIVATE 61] BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes41} = asn1_wrapper:encode('PrimStrings','BsPri',45),
+ ?line {ok,[1,0,1,1,0,1]} = asn1_wrapper:decode('PrimStrings','BsPri',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('PrimStrings','BsPri',211),
+ ?line {ok,[1,1,0,0,1,0,1,1]} = asn1_wrapper:decode('PrimStrings','BsPri',lists:flatten(Bytes42)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsPri',[223,61,4,5,75,226,96]),
+
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsPri',[255,61,128,3,4,5,75,226,96,0,0]),
+
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsPri',[255,61,9,3,2,0,75,3,3,5,226,96]),
+
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsPri',[255,61,128,3,2,0,75,3,3,5,226,96,0,0]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+
+
+ %%==========================================================
+ %% BsExpPri ::= [PRIVATE 61] EXPLICIT BIT STRING
+ %%==========================================================
+
+ ?line {ok,Bytes51} = asn1_wrapper:encode('PrimStrings','BsExpPri',45),
+ ?line {ok,[1,0,1,1,0,1]} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',lists:flatten(Bytes51)),
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('PrimStrings','BsExpPri',211),
+ ?line {ok,[1,1,0,0,1,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',lists:flatten(Bytes52)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,[0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1]} =
+ asn1_wrapper:decode('PrimStrings','BsExpPri',[255,61,6,3,4,5,75,226,96]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+ %%==========================================================
+ %% TestS ::= BIT STRING {a(0),b(1)} (SIZE (3..8)), test case for OTP-4353
+ %%==========================================================
+
+ ?line {ok,Bytes53} = asn1_wrapper:encode('PrimStrings','TestS',[a]),
+ ?line {ok,[a]} =
+ asn1_wrapper:decode('PrimStrings','TestS',lists:flatten(Bytes53)),
+
+ %%==========================================================
+ %% PersonalStatus ::= BIT STRING {married(0),employed(1),
+ %% veteran(2), collegeGraduate(3)}, test case for OTP-5710
+ %%==========================================================
+
+ ?line {ok,Bytes54} = asn1_wrapper:encode('BitStr','PersonalStatus',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('BitStr','PersonalStatus',Bytes54),
+
+ %%==========================================================
+ %% BS5932 ::= BIT STRING (SIZE (5..MAX))
+ %% test case for OTP-5932
+ %%==========================================================
+ case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {error,_} = asn1_wrapper:encode('PrimStrings','BSMAX',
+ [1,0,1]),
+ ?line {ok,Bytes55} =
+ asn1_wrapper:encode('PrimStrings','BSMAX',[1,0,1,0,1]),
+ ?line {ok,[1,0,1,0,1]} =
+ asn1_wrapper:decode('PrimStrings','BSMAX',Bytes55);
+ _ ->
+ ok
+ end,
+
+ %%==========================================================
+ %% BS255 ::= BIT STRING (SIZE (255))
+ %% BS256 ::= BIT STRING (SIZE (256))
+ %% BS1024 ::= BIT STRING (SIZE (1024))
+ %% test case for OTP-7602
+ %%==========================================================
+ BSmaker =
+ fun(_F,S,S,_,Acc) ->
+ Acc;
+ (F,Ix,S,{A,B},Acc) ->
+ F(F,Ix+1,S,{B,A},[A|Acc])
+ end,
+
+ BSList255 = BSmaker(BSmaker,0,255,{1,0},[]),
+ BSList256 = BSmaker(BSmaker,0,256,{1,0},[]),
+ BSList1024 = BSmaker(BSmaker,0,1024,{1,0},[]),
+ ?line {ok,Bytes56} =
+ asn1_wrapper:encode('PrimStrings','BS255',BSList255),
+ ?line {ok,BSList255} =
+ asn1_wrapper:decode('PrimStrings','BS255',Bytes56),
+ ?line {ok,Bytes57} =
+ asn1_wrapper:encode('PrimStrings','BS256',BSList256),
+ ?line {ok,BSList256} =
+ asn1_wrapper:decode('PrimStrings','BS256',Bytes57),
+ ?line {ok,Bytes58} =
+ asn1_wrapper:encode('PrimStrings','BS1024',BSList1024),
+ ?line {ok,BSList1024} =
+ asn1_wrapper:decode('PrimStrings','BS1024',Bytes58).
+
+
+
+bit_string_unnamed(Rules) ->
+ case asn1_wrapper:erule(Rules) of
+ ber ->
+ ok;
+ per ->
+ ?line {ok,Bytes1} =
+ case catch asn1_wrapper:encode('PrimStrings','TransportLayerAddress',[0,1,1,0]) of
+ Ret = {ok,_} -> Ret;
+ Err ->
+ Config = file:consult(test_config),
+ ?line OutDir = ?config(priv_dir,Config),
+ MyOut = "/home/bertil/daily_build",
+ file:copy(filename:join([OutDir,"PrimStrings.erl"]),
+ filename:join([MyOut,"PrimStrings.erl"])),
+ file:copy(filename:join([OutDir,"PrimStrings.beam"]),
+ filename:join([MyOut,"PrimStrings.beam"])),
+ file:copy(code:which(asn1rt_per_v1),
+ filename:join([MyOut,"asn1rt_per_v1.beam"])),
+ file:copy(filename:join([code:lib_dir(asn1),src,"asn1rt_per_v1.erl"]),filename:join([MyOut,"asn1rt_per_v1.erl"])),
+ io:format("Err: ~p~n",[Err]),
+ Err
+ end,
+ ?line {ok,[0,1,1,0]} = asn1_wrapper:decode('PrimStrings','TransportLayerAddress',lists:flatten(Bytes1))
+ end.
+
+octet_string(Rules) ->
+
+ %%==========================================================
+ %% Os ::= OCTET STRING
+ %%==========================================================
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,"Jones"} =
+ asn1_wrapper:decode('PrimStrings','Os',[4,5,16#4A,16#6F,16#6E,16#65,16#73]),
+
+ ?line {ok,"Jones"} =
+ asn1_wrapper:decode('PrimStrings','Os',[36,9,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73]),
+
+ ?line {ok,"Jones"} =
+ asn1_wrapper:decode('PrimStrings','Os',[36,128,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73,0,0]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+
+
+ ?line {ok,Bytes4} =
+ asn1_wrapper:encode('PrimStrings','Os',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','Os',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} =
+ asn1_wrapper:encode('PrimStrings','OsCon',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsCon',lists:flatten(Bytes5)),
+
+ ?line {ok,Bytes6} =
+ asn1_wrapper:encode('PrimStrings','OsPri',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsPri',lists:flatten(Bytes6)),
+
+ ?line {ok,Bytes7} =
+ asn1_wrapper:encode('PrimStrings','OsApp',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsApp',lists:flatten(Bytes7)),
+
+ ?line {ok,Bytes8} =
+ asn1_wrapper:encode('PrimStrings','OsExpCon',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsExpCon',lists:flatten(Bytes8)),
+
+ ?line {ok,Bytes9} =
+ asn1_wrapper:encode('PrimStrings','OsExpPri',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsExpPri',lists:flatten(Bytes9)),
+
+ ?line {ok,Bytes10} =
+ asn1_wrapper:encode('PrimStrings','OsExpApp',[47,23,99,255,1]),
+ ?line {ok,[47,23,99,255,1]} = asn1_wrapper:decode('PrimStrings','OsExpApp',lists:flatten(Bytes10)),
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('PrimStrings','Os',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Os',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('PrimStrings','OsApp',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','OsApp',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('PrimStrings','OsExpApp',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','OsExpApp',lists:flatten(Bytes13)),
+
+
+
+
+
+
+
+ OsR = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('PrimStrings','Os',OsR),
+ ?line {ok,Os1} = asn1_wrapper:decode('PrimStrings','Os',lists:flatten(Bytes21)),
+ ?line Os1 = OsR,
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('PrimStrings','OsCon',OsR),
+ ?line {ok,Os2} = asn1_wrapper:decode('PrimStrings','OsCon',lists:flatten(Bytes22)),
+ ?line Os2 = OsR,
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('PrimStrings','OsExpApp',OsR),
+ ?line {ok,Os3} = asn1_wrapper:decode('PrimStrings','OsExpApp',lists:flatten(Bytes23)),
+ ?line Os3 = OsR,
+
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','OsExpApp',[127,62,7,4,5,16#4A,16#6F,16#6E,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','OsExpApp',[127,62,11,36,9,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','OsExpApp',[127,62,13,36,128,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73,0,0]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','OsExpApp',[127,62,128,36,128,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73,0,0,0,0]),
+ ?line {ok,"JonesJones"} = asn1_wrapper:decode('PrimStrings','OsExpApp',[127,62,128,36,128,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73,0,0,36,128,4,3,16#4A,16#6F,16#6E,4,2,16#65,16#73,0,0,0,0]),
+ ok;
+
+ per ->
+ ok
+ end,
+
+
+ ok.
+
+
+
+
+
+numeric_string(Rules) ->
+
+ %%==========================================================
+ %% Ns ::= NumericString
+ %%==========================================================
+
+ ?line {ok,BytesNs2} = asn1_wrapper:encode('PrimStrings','Ns',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Ns',lists:flatten(BytesNs2)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,BytesNs1} = asn1_wrapper:encode('PrimStrings','Ns',[48,49,32,51,52]),
+ ?line {ok,[48,49,32,51,52]} = asn1_wrapper:decode('PrimStrings','Ns',lists:flatten(BytesNs1)),
+
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','Ns',[16#12,5,16#4A,16#6F,16#6E,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','Ns',[16#32,9,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','Ns',[16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0]),
+ ok;
+
+ per ->
+ ?line {ok,BytesNs1} = asn1_wrapper:encode('PrimStrings','Ns',[48,49,32,51,52]),
+ ?line {ok,"01 34"} = asn1_wrapper:decode('PrimStrings','Ns',lists:flatten(BytesNs1)),
+ ok
+ end,
+
+
+
+
+ %%==========================================================
+ %% NsCon ::= [70] NumericString
+ %%==========================================================
+
+ ?line {ok,BytesNs12} = asn1_wrapper:encode('PrimStrings','NsCon',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','NsCon',lists:flatten(BytesNs12)),
+
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,BytesNs11} = asn1_wrapper:encode('PrimStrings','NsCon',[48,49,32,51,52]),
+ ?line {ok,[48,49,32,51,52]} = asn1_wrapper:decode('PrimStrings','NsCon',lists:flatten(BytesNs11)),
+
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsCon',[16#9F,16#46,5,16#4A,16#6F,16#6E,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsCon',[16#BF,16#46,9,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsCon',[16#BF,16#46,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0]),
+ ok;
+
+ per ->
+ ?line {ok,BytesNs11} = asn1_wrapper:encode('PrimStrings','NsCon',[48,49,32,51,52]),
+ ?line {ok,"01 34"} = asn1_wrapper:decode('PrimStrings','NsCon',lists:flatten(BytesNs11)),
+ ok
+ end,
+
+
+
+ %%==========================================================
+ %% NsExpCon ::= [71] EXPLICIT NumericString
+ %%==========================================================
+
+ ?line {ok,BytesNs22} = asn1_wrapper:encode('PrimStrings','NsExpCon',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','NsExpCon',lists:flatten(BytesNs22)),
+
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,BytesNs21} = asn1_wrapper:encode('PrimStrings','NsExpCon',[48,49,32,51,52]),
+ ?line {ok,[48,49,32,51,52]} = asn1_wrapper:decode('PrimStrings','NsExpCon',lists:flatten(BytesNs21)),
+
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsExpCon',[16#BF,16#47,16#07,16#12,16#05,16#4A,16#6F,16#6E,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsExpCon',[16#BF,16#47,11,16#32,9,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73]),
+ ?line {ok,"Jones"} = asn1_wrapper:decode('PrimStrings','NsExpCon',[16#BF,16#47,128,16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0,0,0]),
+ ?line {ok,"JonesJones"} = asn1_wrapper:decode('PrimStrings','NsExpCon',[16#BF,16#47,26,16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0,16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0]),
+ ?line {ok,"JonesJones"} = asn1_wrapper:decode('PrimStrings','NsExpCon',[16#BF,16#47,128,16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0,16#32,128,18,3,16#4A,16#6F,16#6E,18,2,16#65,16#73,0,0,0,0]),
+ ok;
+
+ per ->
+ ?line {ok,BytesNs21} = asn1_wrapper:encode('PrimStrings','NsExpCon',[48,49,32,51,52]),
+ ?line {ok,"01 34"} = asn1_wrapper:decode('PrimStrings','NsExpCon',lists:flatten(BytesNs21)),
+ ok
+ end,
+
+ ok.
+
+
+
+
+
+other_strings(_Rules) ->
+
+ %%==========================================================
+ %% Ps ::= PrintableString
+ %%==========================================================
+
+ ?line {ok,BytesPs1} = asn1_wrapper:encode('PrimStrings','Ps',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Ps',lists:flatten(BytesPs1)),
+
+ ?line {ok,BytesPs2} = asn1_wrapper:encode('PrimStrings','Ps',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Ps',lists:flatten(BytesPs2)),
+
+
+
+ %%==========================================================
+ %% Vis ::= VisibleString
+ %%==========================================================
+
+ ?line {ok,BytesVis1} = asn1_wrapper:encode('PrimStrings','Vis',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Vis',lists:flatten(BytesVis1)),
+
+ ?line {ok,BytesVis2} = asn1_wrapper:encode('PrimStrings','Vis',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Vis',lists:flatten(BytesVis2)),
+
+
+
+ %%==========================================================
+ %% IA5 ::= IA5String
+ %%==========================================================
+
+ ?line {ok,BytesIA51} = asn1_wrapper:encode('PrimStrings','IA5',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','IA5',lists:flatten(BytesIA51)),
+
+ ?line {ok,BytesIA52} = asn1_wrapper:encode('PrimStrings','IA5',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','IA5',lists:flatten(BytesIA52)),
+
+
+ IA5_1 = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
+
+ ?line {ok,BytesIA53} = asn1_wrapper:encode('PrimStrings','IA5',IA5_1),
+ ?line {ok,IA5_1r} = asn1_wrapper:decode('PrimStrings','IA5',lists:flatten(BytesIA53)),
+ ?line IA5_1 = IA5_1r,
+
+
+
+
+ ok.
+
+
+more_strings(_Rules) ->
+ %%==========================================================
+ %% Ts ::= TeletexString
+ %%==========================================================
+
+ ?line {ok,BytesTs1} = asn1_wrapper:encode('PrimStrings','Ts',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Ts',lists:flatten(BytesTs1)),
+
+ ?line {ok,BytesTs2} = asn1_wrapper:encode('PrimStrings','Ts',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Ts',lists:flatten(BytesTs2)),
+
+
+
+ %%==========================================================
+ %% Vxs ::= VideotexString
+ %%==========================================================
+
+ ?line {ok,BytesVxs1} = asn1_wrapper:encode('PrimStrings','Vxs',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Vxs',lists:flatten(BytesVxs1)),
+
+ ?line {ok,BytesVxs2} = asn1_wrapper:encode('PrimStrings','Vxs',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Vxs',lists:flatten(BytesVxs2)),
+
+
+
+ %%==========================================================
+ %% Grs ::= GraphicString
+ %%==========================================================
+
+ ?line {ok,BytesGrs1} = asn1_wrapper:encode('PrimStrings','Grs',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Grs',lists:flatten(BytesGrs1)),
+
+ ?line {ok,BytesGrs2} = asn1_wrapper:encode('PrimStrings','Grs',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Grs',lists:flatten(BytesGrs2)),
+
+
+ %%==========================================================
+ %% ODesc ::= ObjectDescriptor, test case for OTP-4161
+ %%==========================================================
+
+ ?line {ok,BytesODesc1} = asn1_wrapper:encode('PrimStrings','ODesc',[79,98,106,101,99,116,68,101,115,99,114,105,112,116,111,114]),
+ ?line {ok,[79,98,106,101,99,116,68,101,115,99,114,105,112,116,111,114]} =
+ asn1_wrapper:decode('PrimStrings','ODesc',lists:flatten(BytesODesc1)),
+
+ ?line {ok,BytesODesc2} = asn1_wrapper:encode('PrimStrings','ODesc',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','ODesc',lists:flatten(BytesODesc2)),
+
+ %%==========================================================
+ %% Ges ::= GeneralString
+ %%==========================================================
+
+ ?line {ok,BytesGes1} = asn1_wrapper:encode('PrimStrings','Ges',[47,23,99,75,47]),
+ ?line {ok,[47,23,99,75,47]} =
+ asn1_wrapper:decode('PrimStrings','Ges',lists:flatten(BytesGes1)),
+
+ ?line {ok,BytesGes2} = asn1_wrapper:encode('PrimStrings','Ges',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Ges',lists:flatten(BytesGes2)),
+
+ ok.
+
+
+
+universal_string(Rules) ->
+
+
+ %%==========================================================
+ %% Us ::= UniversalString
+ %%==========================================================
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('PrimStrings','Us',[{47,23,99,47},{0,0,55,66}]),
+ ?line {ok,[{47,23,99,47},{0,0,55,66}]} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('PrimStrings','Us',[{47,23,99,255},{0,0,0,201}]),
+ ?line {ok,[{47,23,99,255},201]} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','Us',"Universal String"),
+ ?line {ok,"Universal String"} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PrimStrings','Us',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','Us',lists:flatten(Bytes4)),
+
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PrimStrings','Us',[{47,23,99,47}]),
+ ?line {ok,[{47,23,99,47}]} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten(Bytes5)),
+
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten([16#3C,12,28,4,47,23,99,255,28,4,0,0,2,201])),
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','Us',lists:flatten([16#3C,16#80,28,4,47,23,99,255,28,4,0,0,2,201,0,0]));
+ _ ->
+ ok
+ end,
+
+
+ Us1 = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
+ ?line {ok,Bytes15} = asn1_wrapper:encode('PrimStrings','IA5',Us1),
+ ?line {ok,Us1r} = asn1_wrapper:decode('PrimStrings','IA5',lists:flatten(Bytes15)),
+ ?line Us1 = Us1r,
+
+
+
+%%==========================================================
+%% UsCon ::= [70] UniversalString
+%%==========================================================
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('PrimStrings','UsCon',[{47,23,99,255},{0,0,2,201}]),
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('PrimStrings','UsCon',[{47,23,99,255},{0,0,0,201}]),
+ ?line {ok,[{47,23,99,255},201]} =
+ asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} = asn1_wrapper:encode('PrimStrings','UsCon',"Universal String"),
+ ?line {ok,"Universal String"} =
+ asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten(Bytes13)),
+
+ ?line {ok,Bytes14} = asn1_wrapper:encode('PrimStrings','UsCon',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten(Bytes14)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten([16#BF,16#46,12,28,4,47,23,99,255,28,4,0,0,2,201])),
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsCon',lists:flatten([16#BF,16#46,16#80,28,4,47,23,99,255,28,4,0,0,2,201,0,0]));
+ _ -> ok
+ end,
+
+
+
+%%==========================================================
+%% UsExpCon ::= [71] EXPLICIT UniversalString
+%%==========================================================
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('PrimStrings','UsExpCon',[{47,23,99,255},{0,0,2,201}]),
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('PrimStrings','UsExpCon',[{47,23,99,255},{0,0,0,201}]),
+ ?line {ok,[{47,23,99,255},201]} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('PrimStrings','UsExpCon',"Universal String"),
+ ?line {ok,"Universal String"} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten(Bytes23)),
+
+ ?line {ok,Bytes24} =
+ asn1_wrapper:encode('PrimStrings','UsExpCon',[]),
+ ?line {ok,[]} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten(Bytes24)),
+
+ ?line case asn1_wrapper:erule(Rules) of
+ ber ->
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten([16#BF,16#47,14,60,12,28,4,47,23,99,255,28,4,0,0,2,201])),
+ ?line {ok,[{47,23,99,255},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','UsExpCon',lists:flatten([16#BF,16#47,16,60,16#80,28,4,47,23,99,255,28,4,0,0,2,201,0,0]));
+ _ -> ok
+ end,
+
+
+ok.
+
+
+
+
+
+bmp_string(_Rules) ->
+
+ %%==========================================================
+ %% BMP ::= BMPString
+ %%==========================================================
+
+ ?line {ok,Bytes1} =
+ asn1_wrapper:encode('PrimStrings','BMP',[{0,0,99,48},{0,0,2,201}]),
+ ?line {ok,[{0,0,99,48},{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','BMP',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} =
+ asn1_wrapper:encode('PrimStrings','BMP',[{0,0,0,48},{0,0,2,201}]),
+ ?line {ok,[48,{0,0,2,201}]} =
+ asn1_wrapper:decode('PrimStrings','BMP',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','BMP',"BMP String"),
+ ?line {ok,"BMP String"} =
+ asn1_wrapper:decode('PrimStrings','BMP',lists:flatten(Bytes3)),
+
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PrimStrings','BMP',[]),
+ ?line {ok,[]} = asn1_wrapper:decode('PrimStrings','BMP',lists:flatten(Bytes4)),
+
+
+ BMP1 = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PrimStrings','BMP',BMP1),
+ ?line {ok,BMP1r} = asn1_wrapper:decode('PrimStrings','BMP',lists:flatten(Bytes5)),
+ ?line BMP1 = BMP1r,
+
+
+ ok.
+
+
+
+
+
+times(_Rules) ->
+
+ %%==========================================================
+ %% Gt ::= GeneralizedTime
+ %%==========================================================
+
+ ?line {ok,Bytes1} = asn1_wrapper:encode('PrimStrings','Gt',"19970923110723.2"),
+ ?line {ok,"19970923110723.2"} =
+ asn1_wrapper:decode('PrimStrings','Gt',lists:flatten(Bytes1)),
+
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PrimStrings','Gt',"19970923110723.2Z"),
+ ?line {ok,"19970923110723.2Z"} =
+ asn1_wrapper:decode('PrimStrings','Gt',lists:flatten(Bytes2)),
+
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','Gt',"19970923110723.2-0500"),
+ ?line {ok,"19970923110723.2-0500"} =
+ asn1_wrapper:decode('PrimStrings','Gt',lists:flatten(Bytes3)),
+
+
+
+
+
+
+
+ %%==========================================================
+ %% UTC ::= UTCTime
+ %%==========================================================
+
+ ?line {ok,Bytes11} = asn1_wrapper:encode('PrimStrings','UTC',"9709211107Z"),
+ ?line {ok,"9709211107Z"} =
+ asn1_wrapper:decode('PrimStrings','UTC',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimStrings','UTC',"9709211107-0500"),
+ ?line {ok,"9709211107-0500"} =
+ asn1_wrapper:decode('PrimStrings','UTC',lists:flatten(Bytes12)),
+
+ ok.
+
+
+utf8_string(_Rules) ->
+
+ %%==========================================================
+ %% UTF ::= UTF8String
+ %%==========================================================
+
+ %% test values in all ranges
+
+ ValLbR1 = [16#00],
+ ValUbR1 = [16#7f],
+ ValLbR2 = [16#80],
+ ValUbR2 = [16#7ff],
+ ValLbR3 = [16#800],
+ ValUbR3 = [16#ffff],
+ ValLbR4 = [16#10000],
+ ValUbR4 = [16#1fffff],
+ ValLbR5 = [16#200000],
+ ValUbR5 = [16#3ffffff],
+ ValLbR6 = [16#4000000],
+ ValUbR6 = [16#7fffffff],
+
+ ?line {ok,UTF8L1} = asn1rt:utf8_list_to_binary(ValLbR1),
+ ?line {ok,Bytes1} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L1),
+ ?line {ok,Bin1} = asn1_wrapper:decode('PrimStrings','UTF',Bytes1),
+ ?line {ok,ValLbR1} = wrapper_utf8_binary_to_list(Bin1),
+
+ ?line {ok,UTF8L2} = asn1rt:utf8_list_to_binary(ValUbR1),
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L2),
+ ?line {ok,Bin2} = asn1_wrapper:decode('PrimStrings','UTF',Bytes2),
+ ?line {ok,ValUbR1} = wrapper_utf8_binary_to_list(Bin2),
+
+ ?line {ok,UTF8L3} = asn1rt:utf8_list_to_binary(ValLbR2),
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L3),
+ ?line {ok,Bin3} = asn1_wrapper:decode('PrimStrings','UTF',Bytes3),
+ ?line {ok,ValLbR2} = wrapper_utf8_binary_to_list(Bin3),
+
+ ?line {ok,UTF8L4} = asn1rt:utf8_list_to_binary(ValUbR2),
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L4),
+ ?line {ok,Bin4} = asn1_wrapper:decode('PrimStrings','UTF',Bytes4),
+ ?line {ok,ValUbR2} = wrapper_utf8_binary_to_list(Bin4),
+
+ ?line {ok,UTF8L5} = asn1rt:utf8_list_to_binary(ValLbR3),
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L5),
+ ?line {ok,Bin5} = asn1_wrapper:decode('PrimStrings','UTF',Bytes5),
+ ?line {ok,ValLbR3} = wrapper_utf8_binary_to_list(Bin5),
+
+ ?line {ok,UTF8L6} = asn1rt:utf8_list_to_binary(ValUbR3),
+ ?line {ok,Bytes6} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L6),
+ ?line {ok,Bin6} = asn1_wrapper:decode('PrimStrings','UTF',Bytes6),
+ ?line {ok,ValUbR3} = wrapper_utf8_binary_to_list(Bin6),
+
+ ?line {ok,UTF8L7} = asn1rt:utf8_list_to_binary(ValLbR4),
+ ?line {ok,Bytes7} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L7),
+ ?line {ok,Bin7} = asn1_wrapper:decode('PrimStrings','UTF',Bytes7),
+ ?line {ok,ValLbR4} = wrapper_utf8_binary_to_list(Bin7),
+
+ ?line {ok,UTF8L8} = asn1rt:utf8_list_to_binary(ValUbR4),
+ ?line {ok,Bytes8} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L8),
+ ?line {ok,Bin8} = asn1_wrapper:decode('PrimStrings','UTF',Bytes8),
+ ?line {ok,ValUbR4} = wrapper_utf8_binary_to_list(Bin8),
+
+ ?line {ok,UTF8L9} = asn1rt:utf8_list_to_binary(ValLbR5),
+ ?line {ok,Bytes9} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L9),
+ ?line {ok,Bin9} = asn1_wrapper:decode('PrimStrings','UTF',Bytes9),
+ ?line {ok,ValLbR5} = wrapper_utf8_binary_to_list(Bin9),
+
+ ?line {ok,UTF8L10} = asn1rt:utf8_list_to_binary(ValUbR5),
+ ?line {ok,Bytes10} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L10),
+ ?line {ok,Bin10} = asn1_wrapper:decode('PrimStrings','UTF',Bytes10),
+ ?line {ok,ValUbR5} = wrapper_utf8_binary_to_list(Bin10),
+
+ ?line {ok,UTF8L11} = asn1rt:utf8_list_to_binary(ValLbR6),
+ ?line {ok,Bytes11} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L11),
+ ?line {ok,Bin11} = asn1_wrapper:decode('PrimStrings','UTF',Bytes11),
+ ?line {ok,ValLbR6} = wrapper_utf8_binary_to_list(Bin11),
+
+ ?line {ok,UTF8L12} = asn1rt:utf8_list_to_binary(ValUbR6),
+ ?line {ok,Bytes12} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L12),
+ ?line {ok,Bin12} = asn1_wrapper:decode('PrimStrings','UTF',Bytes12),
+ ?line {ok,ValUbR6} = wrapper_utf8_binary_to_list(Bin12),
+
+ LVal = ValLbR1++ValUbR1++ValLbR2++ValUbR2++ValLbR3++ValUbR3++
+ ValLbR4++ValUbR4++ValLbR5++ValUbR5++ValLbR6++ValUbR6,
+ LongVal = LVal++LVal++LVal++LVal++LVal++LVal++LVal++"hello",
+
+ ?line {ok,UTF8L13} = asn1rt:utf8_list_to_binary(LongVal),
+ ?line {ok,Bytes13} = asn1_wrapper:encode('PrimStrings','UTF',UTF8L13),
+ ?line {ok,Bin13} = asn1_wrapper:decode('PrimStrings','UTF',Bytes13),
+ ?line {ok,LongVal} = wrapper_utf8_binary_to_list(Bin13).
+
+wrapper_utf8_binary_to_list(L) when list(L) ->
+ asn1rt:utf8_binary_to_list(list_to_binary(L));
+wrapper_utf8_binary_to_list(B) ->
+ asn1rt:utf8_binary_to_list(B).
diff --git a/lib/asn1/test/testRANAP.erl b/lib/asn1/test/testRANAP.erl
new file mode 100644
index 0000000000..7c35674d3a
--- /dev/null
+++ b/lib/asn1/test/testRANAP.erl
@@ -0,0 +1,52 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testRANAP).
+
+-export([compile/3,testobj/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Erule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(filename:join(DataDir,"RANAP"),[Erule,{outdir,OutDir}]++Options),
+ ?line {ok,testobj} = compile:file(filename:join(DataDir,"testobj"),[{i,OutDir},{outdir,OutDir}]++Options),
+ ok.
+
+testobj(_Erule) ->
+ ?line ok = testobj:run_com_id(),
+ ?line ok = testobj:run_dir_tsf_2cn(),
+ ?line ok = testobj:run_dir_tsf_2rnc(),
+ ?line ok = testobj:run_init_ue(),
+ ?line ok = testobj:run_iu_rel_cmd(),
+ ?line ok = testobj:run_iu_rel_cmp(),
+ ?line ok = testobj:run_rab_ass_rsp_delete(),
+ ?line ok = testobj:run_rab_ass_rsp_setup(),
+ ?line ok = testobj:run_rab_create(),
+ ?line ok = testobj:run_rab_rel(),
+ ?line ok = testobj:run_reset(),
+ ?line ok = testobj:run_reset_res(),
+ ?line ok = testobj:run_sm_cmd(),
+ ?line ok = testobj:run_sm_cmp(),
+ ?line ok = testobj:run_sm_rej().
diff --git a/lib/asn1/test/testROSE.erl b/lib/asn1/test/testROSE.erl
new file mode 100644
index 0000000000..65851e21fc
--- /dev/null
+++ b/lib/asn1/test/testROSE.erl
@@ -0,0 +1,36 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testROSE).
+
+-export([compile/3]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "Remote-Operations-Merged.set.asn1",
+ [Rules,{outdir,OutDir}]++Opt).
+
diff --git a/lib/asn1/test/testSSLspecs.erl b/lib/asn1/test/testSSLspecs.erl
new file mode 100644
index 0000000000..87e5e5fd02
--- /dev/null
+++ b/lib/asn1/test/testSSLspecs.erl
@@ -0,0 +1,179 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(testSSLspecs).
+
+-export([compile/3,run/1,compile_inline/2,run_inline/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++
+ "SSL-PKIX",[Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "PKIXAttributeCertificate",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ %% test case for OTP-4792 optional open type
+ ?line ok = asn1ct:compile(DataDir ++ "PKIX1Algorithms88",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "PKIX1Explicit88",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "PKIX1Implicit88",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ %% OTP-6698, OTP-6702
+ ?line ok = remove_db_files(OutDir),
+ ?line ok = asn1ct:compile(DataDir ++ "PKIX1Explicit93",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "PKIX1Implicit93",
+ [Rules,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options).
+
+compile_inline(Config,Rule) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ case Rule of
+ BER when BER==ber_bin;BER==ber_bin_v2 ->
+ Options = [der,compact_bit_string,optimize,
+ asn1config,inline],
+ ?line ok = remove_db_file_inline(OutDir),
+ ?line ok = asn1ct:compile(DataDir ++ "OTP-PKIX.set.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ {i,OutDir}]++Options);
+ _ ->
+ ok
+ end.
+
+remove_db_files(Dir) ->
+ ?line ok = remove_db_file(Dir ++ "PKIX1Explicit93.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "PKIX1Implicit93.asn1db").
+remove_db_file(File) ->
+ case file:delete(File) of
+ ok ->
+ ok;
+ {error,enoent} ->
+ ok;
+ Err ->
+ Err
+ end.
+
+remove_db_file_inline(Dir) ->
+ ?line ok = remove_db_file(Dir ++ "OTP-PKIX.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "SSL-PKIX.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "PKIXAttributeCertificate.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "PKIX1Algorithms88.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "PKIX1Explicit88.asn1db"),
+ ?line ok = remove_db_file(Dir ++ "PKIX1Implicit88.asn1db").
+
+run(BER) when BER==ber_bin;BER==ber_bin_v2 ->
+ run1(1);
+run(_) ->
+ ok.
+
+run1(6) ->
+ ?line f1(6),
+ ?line f2(6),
+%% ?line transform3(ex(7)),
+ ?line transform4(ex(7));
+run1(N) ->
+ ?line f1(N),
+ ?line f2(N),
+ run1(N+1).
+
+
+f1(N) ->
+ transform1(ex(N)).
+
+f2(N) ->
+ transform2(ex(N)).
+
+
+transform1(ATAV) ->
+ ?line {ok, ATAVEnc} = 'PKIX1Explicit88':encode('AttributeTypeAndValue',
+ATAV),
+ ?line {ok, _ATAVDec} = 'SSL-PKIX':decode('AttributeTypeAndValue',
+ list_to_binary(ATAVEnc)).
+
+transform2(ATAV) ->
+ ?line {ok, ATAVEnc} = 'PKIX1Explicit88':encode('AttributeTypeAndValue',
+ATAV),
+ ?line {ok, _ATAVDec} = 'PKIX1Explicit88':decode('AttributeTypeAndValue',
+ list_to_binary(ATAVEnc)).
+
+
+transform4(ATAV) ->
+ ?line {ok, ATAVEnc} = 'PKIX1Explicit88':encode('Attribute',
+ATAV),
+ ?line {ok, _ATAVDec} = 'PKIX1Explicit88':decode('Attribute',
+ list_to_binary(ATAVEnc)).
+
+
+ex(1) ->
+ {'AttributeTypeAndValue',
+ {2,5,4,3},
+ <<19,5,111,116,112,67,65>>};
+ex(2) ->
+ {'AttributeTypeAndValue',
+ {2,5,4,11},
+ <<19,10,69,114,108,97,110,103,32,79,84,80>>};
+ex(3) ->
+ {'AttributeTypeAndValue',
+ {2,5,4,10},
+ <<19,11,69,114,105,99,115,115,111,110,32,65,66>>};
+ex(4) ->
+ {'AttributeTypeAndValue',
+ {2,5,4,6},
+ <<19,2,83,69>>};
+ex(5) ->
+ {'AttributeTypeAndValue',
+ {2,5,4,7},
+ <<19,9,83,116,111,99,107,104,111,108,109>>};
+ex(6) ->
+ {'AttributeTypeAndValue',
+ {1,2,840,113549,1,9,1},
+ <<22,22,112,101,116,101,114,64,101,114,105,120,
+ 46,101,114,105,99,115,115,111,110,46,115,101>>};
+ex(7) ->
+ {'Attribute',
+ {1,2,840,113549,1,9,1},
+ [[19,5,111,116,112,67,65]]}.
+
+run_inline(Rule) when Rule==ber_bin;Rule==ber_bin_v2 ->
+ Cert = cert(),
+ ?line {ok,{'CertificatePKIX1Explicit88',{Type,UnDec},_,_}} = 'OTP-PKIX':decode_TBSCert_exclusive(Cert),
+ ?line {ok,_} = 'OTP-PKIX':decode_part(Type,UnDec),
+ ok;
+run_inline(_) ->
+ ok.
+
+cert() ->
+ <<48,130,3,200,48,130,3,49,160,3,2,1,2,2,1,1,48,13,6,9,42,134,72,134,247,13,1,1,5,5,0,48,129,134,49,17,48,15,6,3,85,4,3,19,8,101,114,108,97,110,103,67,65,49,19,48,17,6,3,85,4,11,19,10,69,114,108,97,110,103,32,79,84,80,49,20,48,18,6,3,85,4,10,19,11,69,114,105,99,115,115,111,110,32,65,66,49,18,48,16,6,3,85,4,7,19,9,83,116,111,99,107,104,111,108,109,49,11,48,9,6,3,85,4,6,19,2,83,69,49,37,48,35,6,9,42,134,72,134,247,13,1,9,1,22,22,112,101,116,101,114,64,101,114,105,120,46,101,114,105,99,115,115,111,110,46,115,101,48,30,23,13,48,55,48,53,48,57,49,50,51,52,48,57,90,23,13,49,55,48,51,49,55,49,50,51,52,48,57,90,48,129,131,49,14,48,12,6,3,85,4,3,19,5,111,116,112,67,65,49,19,48,17,6,3,85,4,11,19,10,69,114,108,97,110,103,32,79,84,80,49,20,48,18,6,3,85,4,10,19,11,69,114,105,99,115,115,111,110,32,65,66,49,11,48,9,6,3,85,4,6,19,2,83,69,49,18,48,16,6,3,85,4,7,19,9,83,116,111,99,107,104,111,108,109,49,37,48,35,6,9,42,134,72,134,247,13,1,9,1,22,22,112,101,116,101,114,64,101,114,105,120,46,101,114,105,99,115,115,111,110,46,115,101,48,129,159,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,129,141,0,48,129,137,2,129,129,0,157,223,214,78,61,218,253,253,143,253,54,171,133,60,170,135,118,35,37,238,208,160,209,6,115,228,99,139,202,32,226,243,181,251,216,20,154,56,18,225,158,17,46,210,88,80,0,60,121,125,159,116,98,206,192,243,95,213,5,117,140,217,211,69,105,70,208,53,132,33,120,233,97,86,136,39,245,36,220,204,187,171,125,193,169,250,123,3,63,220,240,216,136,151,176,255,7,53,55,204,234,104,24,222,232,46,29,88,7,239,183,95,210,202,244,125,106,169,225,181,128,13,22,216,15,150,203,147,2,3,1,0,1,163,130,1,69,48,130,1,65,48,15,6,3,85,29,19,1,1,255,4,5,48,3,1,1,255,48,11,6,3,85,29,15,4,4,3,2,1,6,48,29,6,3,85,29,14,4,22,4,20,59,42,225,69,198,245,160,224,205,23,100,154,109,139,92,188,255,177,162,7,48,129,187,6,3,85,29,35,4,129,179,48,129,176,128,20,138,222,66,214,242,39,254,232,217,84,224,143,206,167,0,167,118,166,219,135,161,129,140,164,129,137,48,129,134,49,17,48,15,6,3,85,4,3,19,8,101,114,108,97,110,103,67,65,49,19,48,17,6,3,85,4,11,19,10,69,114,108,97,110,103,32,79,84,80,49,20,48,18,6,3,85,4,10,19,11,69,114,105,99,115,115,111,110,32,65,66,49,18,48,16,6,3,85,4,7,19,9,83,116,111,99,107,104,111,108,109,49,11,48,9,6,3,85,4,6,19,2,83,69,49,37,48,35,6,9,42,134,72,134,247,13,1,9,1,22,22,112,101,116,101,114,64,101,114,105,120,46,101,114,105,99,115,115,111,110,46,115,101,130,9,0,217,241,90,207,3,129,188,250,48,33,6,3,85,29,17,4,26,48,24,129,22,112,101,116,101,114,64,101,114,105,120,46,101,114,105,99,115,115,111,110,46,115,101,48,33,6,3,85,29,18,4,26,48,24,129,22,112,101,116,101,114,64,101,114,105,120,46,101,114,105,99,115,115,111,110,46,115,101,48,13,6,9,42,134,72,134,247,13,1,1,5,5,0,3,129,129,0,0,193,166,44,175,85,39,236,34,138,64,208,1,244,50,147,73,0,236,172,244,6,127,14,70,113,79,176,212,170,65,159,232,153,234,253,158,17,92,249,196,102,83,116,186,67,168,95,132,65,228,190,78,11,64,75,215,73,156,223,193,46,166,11,227,106,39,133,232,175,223,75,14,232,178,210,122,70,245,18,164,65,151,44,129,3,10,20,92,251,69,230,208,30,203,65,238,140,95,48,130,202,173,28,84,253,42,18,56,47,248,152,156,171,214,37,41,155,205,230,251,98,118,164,239,246,216,66>>.
diff --git a/lib/asn1/test/testSelectionTypes.erl b/lib/asn1/test/testSelectionTypes.erl
new file mode 100644
index 0000000000..a3876c259e
--- /dev/null
+++ b/lib/asn1/test/testSelectionTypes.erl
@@ -0,0 +1,45 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSelectionTypes).
+
+-export([compile/3]).
+-export([test/0]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rule,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SelectionType",
+ [Rule,{outdir,OutDir}]++Options).
+
+test() ->
+ Val = ["PrintableString","PrintableString","PrintableString"],
+ ?line {ok,Bin}=asn1_wrapper:encode('SelectionType','MendeleyevTable',Val),
+ ?line {ok,Val} = asn1_wrapper:decode('SelectionType','MendeleyevTable',Bin),
+
+ ?line Val2 = ['SelectionType':einsteinium()],
+ ?line ["Es"] = Val2,
+
+ ?line {ok,Bin2}=asn1_wrapper:encode('SelectionType','MendeleyevTable',Val2),
+ ?line {ok,Val2} = asn1_wrapper:decode('SelectionType','MendeleyevTable',Bin2).
+
diff --git a/lib/asn1/test/testSeq2738.erl b/lib/asn1/test/testSeq2738.erl
new file mode 100644
index 0000000000..0f3c4b7bf7
--- /dev/null
+++ b/lib/asn1/test/testSeq2738.erl
@@ -0,0 +1,53 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeq2738).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+%-record('SeqOpt',{int, opt = asn1_NOVALUE}).
+-record('SeqOptFake',{int, opt = asn1_NOVALUE}).
+%-record('OptSeq',{int=17}).
+-record('OptSeqFake',{bool = false}).
+
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Seq2738",[Rules,{outdir,OutDir}]++Options).
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes} =
+ asn1_wrapper:encode('Seq2738','SeqOptFake',
+ #'SeqOptFake'{int = 10,
+ opt = #'OptSeqFake'{}}),
+ ?line {ok,#'SeqOptFake'{int=10,opt=#'OptSeqFake'{bool=false}}} =
+ asn1_wrapper:decode('Seq2738','SeqOptFake',lists:flatten(Bytes)),
+ ?line {error,_} =
+ asn1_wrapper:decode('Seq2738','SeqOpt',lists:flatten(Bytes)),
+ ok.
diff --git a/lib/asn1/test/testSeqDefault.erl b/lib/asn1/test/testSeqDefault.erl
new file mode 100644
index 0000000000..a626bfd645
--- /dev/null
+++ b/lib/asn1/test/testSeqDefault.erl
@@ -0,0 +1,190 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqDefault).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqDef1',{bool1 = asn1_DEFAULT, int1, seq1 = asn1_DEFAULT}).
+-record('SeqDef1Imp',{bool1 = asn1_DEFAULT, int1, seq1 = asn1_DEFAULT}).
+-record('SeqDef1Exp',{bool1 = asn1_DEFAULT, int1, seq1 = asn1_DEFAULT}).
+-record('SeqDef2',{seq2 = asn1_DEFAULT, bool2 = asn1_DEFAULT, int2}).
+-record('SeqDef2Imp',{seq2 = asn1_DEFAULT, bool2 = asn1_DEFAULT, int2}).
+-record('SeqDef2Exp',{seq2 = asn1_DEFAULT, bool2, int2}).
+-record('SeqDef3',{bool3 = asn1_DEFAULT, seq3 = asn1_DEFAULT, int3 = asn1_DEFAULT}).
+-record('SeqDef3Imp',{bool3 = asn1_DEFAULT, seq3 = asn1_DEFAULT, int3 = asn1_DEFAULT}).
+-record('SeqDef3Exp',{bool3 = asn1_DEFAULT, seq3 = asn1_DEFAULT, int3 = asn1_DEFAULT}).
+-record('SeqIn',{boolIn, intIn}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqDefault",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqDefault','SeqDef1',#'SeqDef1'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef1',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('SeqDefault','SeqDef1',#'SeqDef1'{int1 = 15}),
+ ?line {ok,{'SeqDef1',true,15,{'SeqIn',asn1_NOVALUE,12}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqDefault','SeqDef2',#'SeqDef2'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef2',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('SeqDefault','SeqDef2',#'SeqDef2'{int2 = 15}),
+ ?line {ok,{'SeqDef2',{'SeqIn',asn1_NOVALUE,12},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqDefault','SeqDef3',#'SeqDef3'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef3',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('SeqDefault','SeqDef3',#'SeqDef3'{int3 = 15}),
+ ?line {ok,{'SeqDef3',true,{'SeqIn',asn1_NOVALUE,12},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3',lists:flatten(Bytes32)),
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqDefault','SeqDef1Imp',#'SeqDef1Imp'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef1Imp',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1Imp',lists:flatten(Bytes41)),
+
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('SeqDefault','SeqDef1Imp',#'SeqDef1Imp'{int1 = 15}),
+ ?line {ok,{'SeqDef1Imp',true,15,{'SeqIn',asn1_NOVALUE,12}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1Imp',lists:flatten(Bytes42)),
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SeqDefault','SeqDef2Imp',#'SeqDef2Imp'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef2Imp',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2Imp',lists:flatten(Bytes51)),
+
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('SeqDefault','SeqDef2Imp',#'SeqDef2Imp'{int2 = 15}),
+ ?line {ok,{'SeqDef2Imp',{'SeqIn',asn1_NOVALUE,12},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2Imp',lists:flatten(Bytes52)),
+
+
+
+ ?line {ok,Bytes61} =
+ asn1_wrapper:encode('SeqDefault','SeqDef3Imp',#'SeqDef3Imp'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef3Imp',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3Imp',lists:flatten(Bytes61)),
+
+
+ ?line {ok,Bytes62} = asn1_wrapper:encode('SeqDefault','SeqDef3Imp',#'SeqDef3Imp'{int3 = 15}),
+ ?line {ok,{'SeqDef3Imp',true,{'SeqIn',asn1_NOVALUE,12},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3Imp',lists:flatten(Bytes62)),
+
+
+
+
+
+
+ ?line {ok,Bytes71} =
+ asn1_wrapper:encode('SeqDefault','SeqDef1Exp',#'SeqDef1Exp'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef1Exp',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1Exp',lists:flatten(Bytes71)),
+
+
+ ?line {ok,Bytes72} = asn1_wrapper:encode('SeqDefault','SeqDef1Exp',#'SeqDef1Exp'{int1 = 15}),
+ ?line {ok,{'SeqDef1Exp',true,15,{'SeqIn',asn1_NOVALUE,12}}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef1Exp',lists:flatten(Bytes72)),
+
+
+ ?line {ok,Bytes81} =
+ asn1_wrapper:encode('SeqDefault','SeqDef2Exp',#'SeqDef2Exp'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef2Exp',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2Exp',lists:flatten(Bytes81)),
+
+
+ ?line {ok,Bytes82} = asn1_wrapper:encode('SeqDefault','SeqDef2Exp',#'SeqDef2Exp'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SeqDef2Exp',{'SeqIn',asn1_NOVALUE,12},true,15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef2Exp',lists:flatten(Bytes82)),
+
+
+
+ ?line {ok,Bytes91} =
+ asn1_wrapper:encode('SeqDefault','SeqDef3Exp',#'SeqDef3Exp'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqDef3Exp',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3Exp',lists:flatten(Bytes91)),
+
+
+ ?line {ok,Bytes92} = asn1_wrapper:encode('SeqDefault','SeqDef3Exp',#'SeqDef3Exp'{int3 = 15}),
+ ?line {ok,{'SeqDef3Exp',true,{'SeqIn',asn1_NOVALUE,12},15}} =
+ asn1_wrapper:decode('SeqDefault','SeqDef3Exp',lists:flatten(Bytes92)),
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqExtension.erl b/lib/asn1/test/testSeqExtension.erl
new file mode 100644
index 0000000000..4ddaddb8f1
--- /dev/null
+++ b/lib/asn1/test/testSeqExtension.erl
@@ -0,0 +1,108 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqExtension).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqExt1',{}).
+-record('SeqExt2',{bool, int}).
+-record('SeqExt3',{bool, int}).
+-record('SeqExt4',{bool, int}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqExtension",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqExtension','SeqExt1',#'SeqExt1'{}),
+ ?line {ok,{'SeqExt1'}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqExtension','SeqExt2',#'SeqExt2'{bool = true,int = 99}),
+ ?line {ok,{'SeqExt2',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqExtension','SeqExt2',#'SeqExt2'{int = 99,bool = true}),
+ ?line {ok,{'SeqExt2',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqExtension','SeqExt3',#'SeqExt3'{bool = true,int = 99}),
+ ?line {ok,{'SeqExt3',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqExtension','SeqExt3',#'SeqExt3'{int = 99,bool = true}),
+ ?line {ok,{'SeqExt3',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqExtension','SeqExt4',#'SeqExt4'{bool = true,int = 99}),
+ ?line {ok,{'SeqExt4',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt4',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SeqExtension','SeqExt4',#'SeqExt4'{int = 99,bool = true}),
+ ?line {ok,{'SeqExt4',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt4',lists:flatten(Bytes42)),
+
+
+ % test of extension , not ready
+
+ ?line {ok,BytesX11} =
+ asn1_wrapper:encode('SeqExtension','SeqExt1',#'SeqExt1'{}),
+ ?line {ok,{'SeqExt1'}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt1',lists:flatten(BytesX11)),
+
+ ?line {ok,BytesX21} =
+ asn1_wrapper:encode('SeqExtension','SeqExt2',#'SeqExt2'{bool = true,int = 99}),
+ ?line {ok,{'SeqExt2',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt2',lists:flatten(BytesX21)),
+
+ ?line {ok,BytesX22} =
+ asn1_wrapper:encode('SeqExtension','SeqExt2',#'SeqExt2'{int = 99,bool = true}),
+ ?line {ok,{'SeqExt2',true,99}} =
+ asn1_wrapper:decode('SeqExtension','SeqExt2',lists:flatten(BytesX22)),
+
+
+
+
+
+ ok.
+
+
+
+
+
diff --git a/lib/asn1/test/testSeqExternal.erl b/lib/asn1/test/testSeqExternal.erl
new file mode 100644
index 0000000000..f148d32b21
--- /dev/null
+++ b/lib/asn1/test/testSeqExternal.erl
@@ -0,0 +1,140 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqExternal).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+-record('SeqXSet1',{set, bool, int}).
+-record('SeqXSet2',{bool, set, int}).
+-record('SeqXSet3',{bool, int, set}).
+%-record('NT',{os, bool}).
+%-record('Imp',{os, bool}).
+%-record('Exp',{os, bool}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqExternal",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqExternal','XNTNT',#'XSeqNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XNTNT',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqExternal','XImpNT',#'XSeqNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XImpNT',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqExternal','XExpNT',#'XSeqNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XExpNT',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqExternal','XNTImp',#'XSeqImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XNTImp',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqExternal','XImpImp',#'XSeqImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XImpImp',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqExternal','XExpImp',#'XSeqImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XExpImp',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqExternal','XNTExp',#'XSeqExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XNTExp',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqExternal','XImpExp',#'XSeqExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XImpExp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SeqExternal','XExpExp',#'XSeqExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSeqExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SeqExternal','XExpExp',lists:flatten(Bytes33)),
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqExternal','SeqXSet1',
+ #'SeqXSet1'{bool = true,
+ int = 66,
+ set = #'XSet1'{bool1 = true,
+ int1 = 77,
+ set1 = #'XSetIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SeqXSet1',{'XSet1',true,77,{'XSetIn',false,88}},true,66}} =
+ asn1_wrapper:decode('SeqExternal','SeqXSet1',lists:flatten(Bytes41)),
+
+
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SeqExternal','SeqXSet2',
+ #'SeqXSet2'{bool = true,
+ int = 66,
+ set = #'XSet1'{bool1 = true,
+ int1 = 77,
+ set1 = #'XSetIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SeqXSet2',true,{'XSet1',true,77,{'XSetIn',false,88}},66}} =
+ asn1_wrapper:decode('SeqExternal','SeqXSet2',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SeqExternal','SeqXSet3',
+ #'SeqXSet3'{bool = true,
+ int = 66,
+ set = #'XSet1'{bool1 = true,
+ int1 = 77,
+ set1 = #'XSetIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SeqXSet3',true,66,{'XSet1',true,77,{'XSetIn',false,88}}}} =
+ asn1_wrapper:decode('SeqExternal','SeqXSet3',lists:flatten(Bytes43)),
+
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSeqIndefinite.erl b/lib/asn1/test/testSeqIndefinite.erl
new file mode 100644
index 0000000000..b1b622bdfa
--- /dev/null
+++ b/lib/asn1/test/testSeqIndefinite.erl
@@ -0,0 +1,63 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqIndefinite).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqSetIndefinite",
+ [Rules,{outdir,OutDir}]++Options).
+
+main(per_bin) -> ok;
+main(per) -> ok;
+main(ber_bin_v2) ->
+ main(ber);
+main(ber_bin) ->
+ main(ber);
+main(ber) ->
+
+ %% normal encoding
+ B = [48,20,1,1,255,48,9,1,1,255,2,4,251,35,238,194,2,4,251,55,236,161],
+ %% indefinite length encoding
+ Bi = [48,22,1,1,255,48,128,1,1,255,2,4,251,35,238,194,0,0,2,4,251,55,236,161],
+ %% the value which is encoded
+ V = {'SeqS3',true,{'SeqS3_seqS3',true,-81531198},-80221023},
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SeqS3',B),
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SeqS3',Bi),
+
+ %% normal encoding but with unknown extension component
+ _Be = [48,23,1,1,255,48,12,1,1,255,2,4,251,35,238,194,1,1,255,2,4,251,55,236,161],
+ %% indefinite length encoding but with unknown extension component
+ _Bei = [48,25,1,1,255,48,128,1,1,255,2,4,251,35,238,194,1,1,255,0,0,2,4,251,55,236,161],
+
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SeqS3',B),
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SeqS3',Bi),
+ ok.
+
+
+
diff --git a/lib/asn1/test/testSeqOf.erl b/lib/asn1/test/testSeqOf.erl
new file mode 100644
index 0000000000..71556ed746
--- /dev/null
+++ b/lib/asn1/test/testSeqOf.erl
@@ -0,0 +1,242 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOf).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Seq1',{bool1, int1, seq1 = asn1_DEFAULT}).
+-record('Seq2',{seq2 = asn1_DEFAULT, bool2, int2}).
+-record('Seq3',{bool3, seq3 = asn1_DEFAULT, int3}).
+-record('Seq4',{seq41 = asn1_DEFAULT, seq42 = asn1_DEFAULT, seq43 = asn1_DEFAULT}).
+-record('SeqIn',{boolIn, intIn}).
+%-record('SeqCho',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('SeqChoInline',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('SeqChoOfInline_SEQOF',{bool1, int1, seq1 = asn1_DEFAULT}).
+-record('SeqEmp',{seq1}).
+-record('Empty',{}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOf",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOfEnum",[Rules,{outdir,OutDir}]++Options),
+ ?line ok = asn1ct:compile(DataDir ++ "XSeqOf",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqOf','Seq1',#'Seq1'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'Seq1',true,17,[]}} =
+ asn1_wrapper:decode('SeqOf','Seq1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqOf','Seq1',#'Seq1'{bool1 = true,
+ int1 = 17,
+ seq1 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq1',true,17,[{'SeqIn',true,25}]}} =
+ asn1_wrapper:decode('SeqOf','Seq1',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqOf','Seq1',#'Seq1'{bool1 = true,
+ int1 = 17,
+ seq1 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq1',true,17,[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}]}} =
+ asn1_wrapper:decode('SeqOf','Seq1',lists:flatten(Bytes13)),
+
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqOf','Seq2',#'Seq2'{bool2 = true,
+ int2 = 17}),
+
+ ?line {ok,{'Seq2',[],true,17}} =
+ asn1_wrapper:decode('SeqOf','Seq2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqOf','Seq2',#'Seq2'{bool2 = true,
+ int2 = 17,
+ seq2 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq2',[{'SeqIn',true,25}],true,17}} =
+ asn1_wrapper:decode('SeqOf','Seq2',lists:flatten(Bytes22)),
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqOf','Seq2',#'Seq2'{bool2 = true,
+ int2 = 17,
+ seq2 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq2',[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}],true,17}} =
+ asn1_wrapper:decode('SeqOf','Seq2',lists:flatten(Bytes23)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqOf','Seq3',#'Seq3'{bool3 = true,
+ int3 = 17}),
+ ?line {ok,{'Seq3',true,[],17}} =
+ asn1_wrapper:decode('SeqOf','Seq3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqOf','Seq3',#'Seq3'{bool3 = true,
+ int3 = 17,
+ seq3 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq3',true,[{'SeqIn',true,25}],17}} =
+ asn1_wrapper:decode('SeqOf','Seq3',lists:flatten(Bytes32)),
+
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SeqOf','Seq3',#'Seq3'{bool3 = true,
+ int3 = 17,
+ seq3 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq3',true,[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}],17}} =
+ asn1_wrapper:decode('SeqOf','Seq3',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} = asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{}),
+ ?line {ok,{'Seq4',[],[],[]}} = asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes41)),
+
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq41 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq4',[{'SeqIn',true,25}],[],[]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes42)),
+
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq41 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq4',[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}],[],[]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes43)),
+
+
+ ?line {ok,Bytes44} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq42 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq4',[],[{'SeqIn',true,25}],[]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes44)),
+
+
+ ?line {ok,Bytes45} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq42 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq4',[],[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}],[]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes45)),
+
+
+ ?line {ok,Bytes46} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq43 = [#'SeqIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Seq4',[],[],[{'SeqIn',true,25}]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes46)),
+
+
+ ?line {ok,Bytes47} =
+ asn1_wrapper:encode('SeqOf','Seq4',#'Seq4'{seq43 = [#'SeqIn'{boolIn = true,
+ intIn = 25},
+ #'SeqIn'{boolIn = false,
+ intIn = 125},
+ #'SeqIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Seq4',[],[],[{'SeqIn',true,25},{'SeqIn',false,125},{'SeqIn',false,225}]}} =
+ asn1_wrapper:decode('SeqOf','Seq4',lists:flatten(Bytes47)),
+
+
+ ?line {ok,Bytes51} = asn1_wrapper:encode('SeqOf','SeqEmp',#'SeqEmp'{seq1 = [#'Empty'{}]}),
+ ?line {ok,{'SeqEmp',[{'Empty'}]}} = asn1_wrapper:decode('SeqOf','SeqEmp',lists:flatten(Bytes51)),
+
+ case Rules of
+ ber ->
+ ?line {ok,Bytes52} = asn1_wrapper:encode('SeqOfEnum','SeqOfEnum',
+ {'SeqOfEnum',[{'Enum',a},{'Enum',b}]}),
+ ?line {ok,[a,b]} = asn1_wrapper:decode('SeqOfEnum','SeqOfEnum',
+ lists:flatten(Bytes52));
+ _ -> ok
+ end,
+
+ %% tests of OTP-4590
+ case Rules of
+ PER when PER == per; PER == per_bin ->
+ DayNames = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
+ ?line {ok,Bytes60} = asn1_wrapper:encode('XSeqOf','DayNames2',DayNames),
+ ?line {ok,Bytes60} = asn1_wrapper:encode('XSeqOf','DayNames4',DayNames),
+ ?line {ok,DayNames} = asn1_wrapper:decode('XSeqOf','DayNames2',Bytes60),
+ ?line {ok,DayNames} = asn1_wrapper:decode('XSeqOf','DayNames4',Bytes60),
+ ?line {ok,Bytes61} = asn1_wrapper:encode('XSeqOf','DayNames1',DayNames),
+ ?line {ok,Bytes61} = asn1_wrapper:encode('XSeqOf','DayNames3',DayNames),
+ ?line {ok,DayNames} = asn1_wrapper:decode('XSeqOf','DayNames1',Bytes61),
+ ?line {ok,DayNames} = asn1_wrapper:decode('XSeqOf','DayNames3',Bytes61);
+ _ ->
+ ok
+ end,
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSeqOfCho.erl b/lib/asn1/test/testSeqOfCho.erl
new file mode 100644
index 0000000000..eefb258346
--- /dev/null
+++ b/lib/asn1/test/testSeqOfCho.erl
@@ -0,0 +1,159 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOfCho).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqChoDef',{bool1, int1, seq1 = asn1_DEFAULT}).
+-record('SeqChoOpt',{bool1, int1, seq1 = asn1_NOVALUE}).
+-record('SeqChoEmbDef',{bool1, int1, seq1 = asn1_DEFAULT}).
+-record('SeqChoEmbOpt',{bool1, int1, seq1 = asn1_NOVALUE}).
+-record('SeqOfChoEmbDef_SEQOF',{bool1, int1, seq1 = asn1_DEFAULT}).
+-record('SeqOfChoEmbOpt_SEQOF',{bool1, int1, seq1 = asn1_NOVALUE}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOfCho",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoDef',#'SeqChoDef'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SeqChoDef',true,17,[]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoDef',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoDef',#'SeqChoDef'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SeqChoDef',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoDef',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes15} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoOpt',#'SeqChoOpt'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SeqChoOpt',true,17,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoOpt',lists:flatten(Bytes15)),
+
+
+ ?line {ok,Bytes16} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoOpt',#'SeqChoOpt'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SeqChoOpt',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoOpt',lists:flatten(Bytes16)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoEmbDef',#'SeqChoEmbDef'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SeqChoEmbDef',true,17,[]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoEmbDef',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoEmbDef',#'SeqChoEmbDef'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SeqChoEmbDef',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoEmbDef',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes25} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoEmbOpt',#'SeqChoEmbOpt'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SeqChoEmbOpt',true,17,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoEmbOpt',lists:flatten(Bytes25)),
+
+
+ ?line {ok,Bytes26} =
+ asn1_wrapper:encode('SeqOfCho','SeqChoEmbOpt',#'SeqChoEmbOpt'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SeqChoEmbOpt',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SeqOfCho','SeqChoEmbOpt',lists:flatten(Bytes26)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqOfCho','SeqOfChoEmbDef',[#'SeqOfChoEmbDef_SEQOF'{bool1 = true,
+ int1 = 17}]),
+ ?line {ok,[{'SeqOfChoEmbDef_SEQOF',true,17,[]}]} =
+ asn1_wrapper:decode('SeqOfCho','SeqOfChoEmbDef',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqOfCho','SeqOfChoEmbDef',
+ [#'SeqOfChoEmbDef_SEQOF'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}]),
+ ?line {ok,[{'SeqOfChoEmbDef_SEQOF',true,17,[{boolIn,true},{intIn,25}]}]} =
+ asn1_wrapper:decode('SeqOfCho','SeqOfChoEmbDef',lists:flatten(Bytes32)),
+
+
+
+ ?line {ok,Bytes35} =
+ asn1_wrapper:encode('SeqOfCho','SeqOfChoEmbOpt',[#'SeqOfChoEmbOpt_SEQOF'{bool1 = true,
+ int1 = 17}]),
+ ?line {ok,[{'SeqOfChoEmbOpt_SEQOF',true,17,asn1_NOVALUE}]} =
+ asn1_wrapper:decode('SeqOfCho','SeqOfChoEmbOpt',lists:flatten(Bytes35)),
+
+
+ ?line {ok,Bytes36} =
+ asn1_wrapper:encode('SeqOfCho','SeqOfChoEmbOpt',
+ [#'SeqOfChoEmbOpt_SEQOF'{bool1 = true,
+ int1 = 17,
+ seq1 = [{boolIn,true},
+ {intIn,25}]}]),
+ ?line {ok,[{'SeqOfChoEmbOpt_SEQOF',true,17,[{boolIn,true},{intIn,25}]}]} =
+ asn1_wrapper:decode('SeqOfCho','SeqOfChoEmbOpt',lists:flatten(Bytes36)),
+
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSeqOfExternal.erl b/lib/asn1/test/testSeqOfExternal.erl
new file mode 100644
index 0000000000..dde36e6949
--- /dev/null
+++ b/lib/asn1/test/testSeqOfExternal.erl
@@ -0,0 +1,171 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOfExternal).
+
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOfExternal",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqOfExternal','NTNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','NTNT',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqOfExternal','ImpNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ImpNT',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqOfExternal','ExpNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ExpNT',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqOfExternal','NTImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','NTImp',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqOfExternal','ImpImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ImpImp',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqOfExternal','ExpImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ExpImp',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqOfExternal','NTExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','NTExp',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqOfExternal','ImpExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ImpExp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SeqOfExternal','ExpExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','ExpExp',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqOfExternal','XNTNT',[#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XNTNT',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SeqOfExternal','XImpNT',[#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XImpNT',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SeqOfExternal','XExpNT',[#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XExpNT',lists:flatten(Bytes43)),
+
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SeqOfExternal','XNTImp',[#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XNTImp',lists:flatten(Bytes51)),
+
+ ?line {ok,Bytes52} =
+ asn1_wrapper:encode('SeqOfExternal','XImpImp',[#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XImpImp',lists:flatten(Bytes52)),
+
+ ?line {ok,Bytes53} =
+ asn1_wrapper:encode('SeqOfExternal','XExpImp',[#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XExpImp',lists:flatten(Bytes53)),
+
+
+
+ ?line {ok,Bytes61} =
+ asn1_wrapper:encode('SeqOfExternal','XNTExp',[#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XNTExp',lists:flatten(Bytes61)),
+
+ ?line {ok,Bytes62} =
+ asn1_wrapper:encode('SeqOfExternal','XImpExp',[#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XImpExp',lists:flatten(Bytes62)),
+
+ ?line {ok,Bytes63} =
+ asn1_wrapper:encode('SeqOfExternal','XExpExp',[#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SeqOfExternal','XExpExp',lists:flatten(Bytes63)),
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqOfIndefinite.erl b/lib/asn1/test/testSeqOfIndefinite.erl
new file mode 100644
index 0000000000..8e8967572a
--- /dev/null
+++ b/lib/asn1/test/testSeqOfIndefinite.erl
@@ -0,0 +1,329 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOfIndefinite).
+
+-export([compile/3]).
+-export([main/0]).
+
+-include("test_server.hrl").
+
+%-record('Seq1',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('Seq2',{seq2 = asn1_DEFAULT, bool2, int2}).
+%-record('Seq3',{bool3, seq3 = asn1_DEFAULT, int3}).
+%-record('Seq4',{seq41 = asn1_DEFAULT, seq42 = asn1_DEFAULT, seq43 = asn1_DEFAULT}).
+%-record('SeqIn',{boolIn, intIn}).
+%-record('SeqCho',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('SeqChoInline',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('SeqChoOfInline_SEQOF',{bool1, int1, seq1 = asn1_DEFAULT}).
+%-record('SeqEmp',{seq1}).
+%-record('Empty',{}).
+
+
+
+compile(Config,Rules,Opts) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line Options = [Rules,{outdir,OutDir}]++Opts,
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-Constants-1",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-DataTypes-1",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-21-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-20-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-19-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-18-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-17-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-15-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-14-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "Mvrasn-11-4",Options),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOf",Options).
+
+main() ->
+ ?line ok = test(isd),
+ ?line ok = test(isd2),
+ ?line ok = test(dsd),
+ ?line ok = test(ul_res),
+ ?line ok = test(prim),
+ ?line ok = test(seqofseq),
+ ?line ok = test('InsertSubscriberDataArg'). % OTP-4232
+
+test(isd)->
+ EncPdu = [48,128,129,7,145,148,113,50,1,0,241,131,1,0,176,128,5,0,161,128,48,22,2,1,1,144,2,241,33,145,4,0,1,2,3,146,3,36,131,16,148,2,1,42,48,35,2,1,2,144,2,241,33,145,4,255,255,255,255,146,3,37,147,18,147,0,148,13,7,67,79,77,80,65,78,89,4,67,79,77,53,48,28,2,1,3,144,2,241,33,146,3,26,98,31,148,14,9,67,79,77,80,65,78,89,49,50,3,67,79,77,0,0,0,0,152,1,2,0,0],
+
+ ?line {ok,_} = asn1_wrapper:decode('Mvrasn-11-4',
+ 'InsertSubscriberDataArg',
+ EncPdu),
+ ok;
+
+%
+% Problems with indefinite length encoding !!!
+%
+test(isd2)->
+ EncPdu = [48, 128, 128, 8, 98, 2, 50, 1, 0, 0, 0, 241, 176, 128, 161, 128, 48, 128, 2, 1, 1, 144, 2, 241, 33, 145, 4, 255, 23, 12, 1, 146, 3, 9, 17, 1, 147, 0, 148, 13, 7, 67, 79, 77, 80, 65, 78, 89, 4, 67, 79, 77, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn-11-4',
+ 'InsertSubscriberDataArg',
+ EncPdu),
+
+ ok;
+
+%
+% Is doing fine, although there is indefinite encoding used... !!!
+%
+test(dsd)->
+ EncPdu = [48, 128, 128, 8, 98, 2, 50, 1, 0, 0, 0, 241, 170, 2, 5, 0, 0, 0, 0, 0],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn-11-4',
+ 'DeleteSubscriberDataArg',
+ EncPdu),
+
+ ok;
+
+%
+% Is doing fine !!!
+%
+test(ul_res)->
+ EncPdu = [48, 9, 4, 7, 145, 148, 113, 66, 16, 17, 241],
+
+ ?line {ok,_DecPdu} = asn1_wrapper:decode('Mvrasn-11-4',
+ 'UpdateGprsLocationRes',
+ EncPdu),
+
+ ok;
+
+test(prim) ->
+ ?line {ok,Bytes} = asn1_wrapper:encode('SeqOf','SeqOfInt',[10,20,30]),
+ ?line [Tag,_Len|Ints] = lists:flatten(Bytes),
+ ?line {ok,[10,20,30]} =
+ asn1_wrapper:decode('SeqOf','SeqOfInt',[Tag,128|Ints] ++ [0,0]),
+ ok;
+
+test(seqofseq) ->
+ {ok,_V} = asn1_wrapper:decode('Mvrasn-DataTypes-1',
+ 'SentParameters',
+ [48,
+ 129,
+ 190,
+ 161,
+ 128,
+ 4,
+ 16,
+ 176,
+ 197,
+ 182,
+ 68,
+ 41,
+ 243,
+ 188,
+ 205,
+ 123,
+ 13,
+ 9,
+ 145,
+ 206,
+ 200,
+ 144,
+ 102,
+ 4,
+ 4,
+ 176,
+ 197,
+ 182,
+ 68,
+ 4,
+ 8,
+ 41,
+ 243,
+ 188,
+ 205,
+ 123,
+ 13,
+ 9,
+ 145,
+ 0,
+ 0,
+ 161,
+ 128,
+ 4,
+ 16,
+ 39,
+ 0,
+ 3,
+ 117,
+ 35,
+ 189,
+ 130,
+ 21,
+ 42,
+ 104,
+ 49,
+ 194,
+ 212,
+ 24,
+ 151,
+ 234,
+ 4,
+ 4,
+ 39,
+ 0,
+ 3,
+ 117,
+ 4,
+ 8,
+ 35,
+ 189,
+ 130,
+ 21,
+ 42,
+ 104,
+ 49,
+ 194,
+ 0,
+ 0,
+ 161,
+ 128,
+ 4,
+ 16,
+ 62,
+ 207,
+ 166,
+ 59,
+ 71,
+ 29,
+ 37,
+ 97,
+ 120,
+ 25,
+ 132,
+ 80,
+ 144,
+ 251,
+ 161,
+ 123,
+ 4,
+ 4,
+ 62,
+ 207,
+ 166,
+ 59,
+ 4,
+ 8,
+ 71,
+ 29,
+ 37,
+ 97,
+ 120,
+ 25,
+ 132,
+ 80,
+ 0,
+ 0,
+ 161,
+ 128,
+ 4,
+ 16,
+ 95,
+ 183,
+ 173,
+ 151,
+ 17,
+ 76,
+ 148,
+ 146,
+ 248,
+ 102,
+ 127,
+ 215,
+ 102,
+ 224,
+ 39,
+ 60,
+ 4,
+ 4,
+ 95,
+ 183,
+ 173,
+ 151,
+ 4,
+ 8,
+ 17,
+ 76,
+ 148,
+ 146,
+ 248,
+ 102,
+ 127,
+ 215,
+ 0,
+ 0,
+ 161,
+ 128,
+ 4,
+ 16,
+ 41,
+ 198,
+ 247,
+ 157,
+ 117,
+ 190,
+ 203,
+ 170,
+ 91,
+ 146,
+ 88,
+ 91,
+ 223,
+ 220,
+ 188,
+ 16,
+ 4,
+ 4,
+ 41,
+ 198,
+ 247,
+ 157,
+ 4,
+ 8,
+ 117,
+ 190,
+ 203,
+ 170,
+ 91,
+ 146,
+ 88,
+ 91,
+ 0,
+ 0]),
+ ok;
+test('InsertSubscriberDataArg') ->
+ {ok,_V} =
+ asn1_wrapper:decode('Mvrasn-11-4','InsertSubscriberDataArg',
+ [16#30,16#80,16#81,16#07,16#91,16#94,
+ 16#71,16#92,16#00,16#35,16#80,16#83,
+ 16#01,16#00,16#A6,16#06,16#04,16#01,
+ 16#21,16#04,16#01,16#22,16#B0,16#80,
+ 16#05,16#00,16#A1,16#80,16#30,16#1A,
+ 16#02,16#01,16#01,16#90,16#02,16#F1,
+ 16#21,16#92,16#03,16#0D,16#92,16#1F,
+ 16#94,16#0C,16#03,16#53,16#49,16#4D,
+ 16#03,16#47,16#53,16#4E,16#03,16#4C,
+ 16#4B,16#50,16#00,16#00,16#00,16#00,
+ 16#98,16#01,16#00,16#00,16#00]),
+ ok.
diff --git a/lib/asn1/test/testSeqOfTag.erl b/lib/asn1/test/testSeqOfTag.erl
new file mode 100644
index 0000000000..0a4e1397a6
--- /dev/null
+++ b/lib/asn1/test/testSeqOfTag.erl
@@ -0,0 +1,201 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOfTag).
+
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+
+-record('SeqTagNt',{nt}).
+-record('SeqTagNtI',{imp}).
+-record('SeqTagNtE',{exp}).
+-record('SeqTagI',{nt}).
+-record('SeqTagII',{imp}).
+-record('SeqTagIE',{exp}).
+-record('SeqTagE',{nt}).
+-record('SeqTagEI',{imp}).
+-record('SeqTagEE',{exp}).
+-record('SeqTagXNt',{xnt}).
+-record('SeqTagXI',{ximp}).
+-record('SeqTagXE',{xexp}).
+-record('SeqTagImpX',{xnt, ximp, xexp}).
+-record('SeqTagExpX',{xnt, ximp, xexp}).
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOfTag",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagNt',
+ #'SeqTagNt'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagNt',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagNt',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagNtI',
+ #'SeqTagNtI'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagNtI',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagNtI',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagNtE',
+ #'SeqTagNtE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagNtE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagNtE',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagI',
+ #'SeqTagI'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagI',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagI',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagII',
+ #'SeqTagII'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagII',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagII',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagIE',
+ #'SeqTagIE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagIE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagIE',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagE',
+ #'SeqTagE'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagE',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagE',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagEI',
+ #'SeqTagEI'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagEI',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagEI',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagEE',
+ #'SeqTagEE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagEE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagEE',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagXNt',
+ #'SeqTagXNt'{xnt = [#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagXNt',
+ [{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagXNt',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagXI',
+ #'SeqTagXI'{ximp = [#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagXI',
+ [{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagXI',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagXE',
+ #'SeqTagXE'{xexp = [#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagXE',
+ [{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagXE',lists:flatten(Bytes43)),
+
+
+
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagImpX',
+ #'SeqTagImpX'{xnt = [#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}],
+ ximp = [#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}],
+ xexp = [#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagImpX',
+ [{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}],
+ [{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}],
+ [{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagImpX',lists:flatten(Bytes51)),
+
+
+
+ ?line {ok,Bytes52} =
+ asn1_wrapper:encode('SeqOfTag','SeqTagExpX',
+ #'SeqTagExpX'{xnt = [#'XSeqNT'{bool = true, os = "kalle"},
+ #'XSeqNT'{bool = true, os = "kalle"}],
+ ximp = [#'XSeqImp'{bool = true, os = "kalle"},
+ #'XSeqImp'{bool = true, os = "kalle"}],
+ xexp = [#'XSeqExp'{bool = true, os = "kalle"},
+ #'XSeqExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SeqTagExpX',
+ [{'XSeqNT',[107,97,108,108,101],true},{'XSeqNT',[107,97,108,108,101],true}],
+ [{'XSeqImp',[107,97,108,108,101],true},{'XSeqImp',[107,97,108,108,101],true}],
+ [{'XSeqExp',[107,97,108,108,101],true},{'XSeqExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SeqOfTag','SeqTagExpX',lists:flatten(Bytes52)),
+
+ok.
diff --git a/lib/asn1/test/testSeqOptional.erl b/lib/asn1/test/testSeqOptional.erl
new file mode 100644
index 0000000000..7177011427
--- /dev/null
+++ b/lib/asn1/test/testSeqOptional.erl
@@ -0,0 +1,206 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqOptional).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqOpt1',{bool1 = asn1_NOVALUE, int1, seq1 = asn1_NOVALUE}).
+-record('SeqOpt1Imp',{bool1 = asn1_NOVALUE, int1, seq1 = asn1_NOVALUE}).
+-record('SeqOpt1Exp',{bool1 = asn1_NOVALUE, int1, seq1 = asn1_NOVALUE}).
+-record('SeqOpt2',{seq2 = asn1_NOVALUE, bool2, int2}).
+-record('SeqOpt2Imp',{seq2 = asn1_NOVALUE, bool2, int2}).
+-record('SeqOpt2Exp',{seq2 = asn1_NOVALUE, bool2, int2}).
+-record('SeqOpt3',{bool3 = asn1_NOVALUE, seq3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SeqOpt3Imp',{bool3 = asn1_NOVALUE, seq3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SeqOpt3Exp',{bool3 = asn1_NOVALUE, seq3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SeqIn',{boolIn, intIn}).
+-record('SeqChoOpt',{int, cho = asn1_NOVALUE}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqOptional",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt1',#'SeqOpt1'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt1',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('SeqOptional','SeqOpt1',#'SeqOpt1'{int1 = 15}),
+ ?line {ok,{'SeqOpt1',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt2',#'SeqOpt2'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt2',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('SeqOptional','SeqOpt2',#'SeqOpt2'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SeqOpt2',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt3',#'SeqOpt3'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt3',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('SeqOptional','SeqOpt3',#'SeqOpt3'{int3 = 15}),
+ ?line {ok,{'SeqOpt3',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3',lists:flatten(Bytes32)),
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt1Imp',#'SeqOpt1Imp'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt1Imp',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1Imp',lists:flatten(Bytes41)),
+
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('SeqOptional','SeqOpt1Imp',#'SeqOpt1Imp'{int1 = 15}),
+ ?line {ok,{'SeqOpt1Imp',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1Imp',lists:flatten(Bytes42)),
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt2Imp',#'SeqOpt2Imp'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt2Imp',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2Imp',lists:flatten(Bytes51)),
+
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('SeqOptional','SeqOpt2Imp',#'SeqOpt2Imp'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SeqOpt2Imp',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2Imp',lists:flatten(Bytes52)),
+
+
+
+ ?line {ok,Bytes61} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt3Imp',#'SeqOpt3Imp'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt3Imp',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3Imp',lists:flatten(Bytes61)),
+
+
+ ?line {ok,Bytes62} = asn1_wrapper:encode('SeqOptional','SeqOpt3Imp',#'SeqOpt3Imp'{int3 = 15}),
+ ?line {ok,{'SeqOpt3Imp',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3Imp',lists:flatten(Bytes62)),
+
+
+
+
+
+
+ ?line {ok,Bytes71} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt1Exp',#'SeqOpt1Exp'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt1Exp',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1Exp',lists:flatten(Bytes71)),
+
+
+ ?line {ok,Bytes72} = asn1_wrapper:encode('SeqOptional','SeqOpt1Exp',#'SeqOpt1Exp'{int1 = 15}),
+ ?line {ok,{'SeqOpt1Exp',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt1Exp',lists:flatten(Bytes72)),
+
+
+ ?line {ok,Bytes81} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt2Exp',#'SeqOpt2Exp'{bool2 = true,
+ int2 = 15,
+ seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt2Exp',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2Exp',lists:flatten(Bytes81)),
+
+
+ ?line {ok,Bytes82} = asn1_wrapper:encode('SeqOptional','SeqOpt2Exp',#'SeqOpt2Exp'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SeqOpt2Exp',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt2Exp',lists:flatten(Bytes82)),
+
+
+
+ ?line {ok,Bytes91} =
+ asn1_wrapper:encode('SeqOptional','SeqOpt3Exp',#'SeqOpt3Exp'{bool3 = true,
+ int3 = 15,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqOpt3Exp',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3Exp',lists:flatten(Bytes91)),
+
+
+ ?line {ok,Bytes92} = asn1_wrapper:encode('SeqOptional','SeqOpt3Exp',#'SeqOpt3Exp'{int3 = 15}),
+ ?line {ok,{'SeqOpt3Exp',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SeqOptional','SeqOpt3Exp',lists:flatten(Bytes92)),
+
+
+
+ ?line {ok,Bytes101} =
+ asn1_wrapper:encode('SeqOptional','SeqChoOpt',#'SeqChoOpt'{int = 15,
+ cho = {boolC,true}}),
+ ?line {ok,{'SeqChoOpt',15,{boolC,true}}} =
+ asn1_wrapper:decode('SeqOptional','SeqChoOpt',lists:flatten(Bytes101)),
+
+
+ ?line {ok,Bytes102} = asn1_wrapper:encode('SeqOptional','SeqChoOpt',#'SeqChoOpt'{int = 15}),
+ ?line {ok,{'SeqChoOpt',15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SeqOptional','SeqChoOpt',lists:flatten(Bytes102)),
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqPrim.erl b/lib/asn1/test/testSeqPrim.erl
new file mode 100644
index 0000000000..7ad1de58a1
--- /dev/null
+++ b/lib/asn1/test/testSeqPrim.erl
@@ -0,0 +1,94 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqPrim).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Seq',{bool, boolCon, boolPri, boolApp, boolExpCon, boolExpPri, boolExpApp}).
+-record('Empty',{}).
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqPrim','Seq',#'Seq'{bool = true,
+ boolCon = true,
+ boolPri = true,
+ boolApp = true,
+ boolExpCon = true,
+ boolExpPri = true,
+ boolExpApp = true}),
+ ?line {ok,{'Seq',true,true,true,true,true,true,true}} =
+ asn1_wrapper:decode('SeqPrim','Seq',lists:flatten(Bytes11)),
+
+
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqPrim','Seq',#'Seq'{bool = false,
+ boolCon = false,
+ boolPri = false,
+ boolApp = false,
+ boolExpCon = false,
+ boolExpPri = false,
+ boolExpApp = false}),
+ ?line {ok,{'Seq',false,false,false,false,false,false,false}} =
+ asn1_wrapper:decode('SeqPrim','Seq',lists:flatten(Bytes12)),
+
+
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqPrim','Seq',#'Seq'{bool = false,
+ boolCon = true,
+ boolPri = false,
+ boolApp = true,
+ boolExpCon = false,
+ boolExpPri = true,
+ boolExpApp = false}),
+ ?line {ok,{'Seq',false,true,false,true,false,true,false}} =
+ asn1_wrapper:decode('SeqPrim','Seq',lists:flatten(Bytes13)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqPrim','Empty',#'Empty'{}),
+ ?line {ok,{'Empty'}} =
+ asn1_wrapper:decode('SeqPrim','Empty',lists:flatten(Bytes21)),
+
+
+
+ ok.
+
diff --git a/lib/asn1/test/testSeqSetDefaultVal.erl b/lib/asn1/test/testSeqSetDefaultVal.erl
new file mode 100644
index 0000000000..1c238fd1b7
--- /dev/null
+++ b/lib/asn1/test/testSeqSetDefaultVal.erl
@@ -0,0 +1,345 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqSetDefaultVal).
+
+-include("External.hrl").
+-export([compile/2]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqInts',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('SetInts',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('SeqBS',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('SetBS',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('SeqOS',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SetOS',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SeqOI',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SetOI',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SeqEnum',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT}).
+-record('SetEnum',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT}).
+-record('SeqIntBool',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SeqIntBool_a',{aa = asn1_DEFAULT,
+ ab = asn1_DEFAULT}).
+-record('SetIntBool',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT}).
+-record('SetIntBool_a',{aa = asn1_DEFAULT,
+ ab = asn1_DEFAULT}).
+-record('SeqStrings',{a = asn1_DEFAULT,
+ b1 = asn1_DEFAULT,
+ b2 = asn1_DEFAULT,
+ b3 = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('SetStrings',{a = asn1_DEFAULT,
+ b1 = asn1_DEFAULT,
+ b2 = asn1_DEFAULT,
+ b3 = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('S1',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT}).
+-record('S1_a',{aa = asn1_DEFAULT,
+ ab = asn1_DEFAULT}).
+-record('S2',{a = asn1_DEFAULT, b=asn1_NOVALUE}).
+-record('S3',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT,
+ c = asn1_DEFAULT,
+ d = asn1_DEFAULT}).
+-record('S3set',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT}).
+-record('S4',{a = asn1_DEFAULT,
+ b = asn1_DEFAULT}).
+-record('S4_b',{ba = asn1_DEFAULT,
+ bb = asn1_DEFAULT}).
+
+
+compile(Config,Rules) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "Default",
+ [Rules,der,{outdir,OutDir}]).
+
+main(_Rules) ->
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqInts',#'SeqInts'{}),
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqInts',#'SeqInts'{a=1,b=-1,c=three,
+ d=1}),
+ ?line {ok,{'SeqInts',1,-1,3,1}} =
+ asn1_wrapper:decode('Default','SeqInts',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetInts',#'SetInts'{}),
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetInts',#'SetInts'{a=1,b=-1,c=three,
+ d=1}),
+ ?line {ok,{'SetInts',1,-1,3,1}} =
+ asn1_wrapper:decode('Default','SetInts',[49,0]),
+
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqBS',
+ #'SeqBS'{a=2#1010110,
+ b=16#A8A,
+ c=[second],
+ d=[1,0,0,1]}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqBS',
+ #'SeqBS'{a=[1,0,1,0,1,1,0],
+ b=[1,0,1,0,1,0,0,0,1,0,1,0],
+ c={5,<<64>>},
+ d=9}),
+
+ ?line {ok,[48,3,131,1,0]} =
+ asn1_wrapper:encode('Default','SeqBS',
+ #'SeqBS'{a=[1,0,1,0,1,1,0],
+ b=[1,0,1,0,1,0,0,0,1,0,1,0],
+ c={5,<<64>>},
+ d=0}),
+
+ ?line {ok,{'SeqBS',[1,0,1,0,1,1,0],2698,[second],[]}} =
+ asn1_wrapper:decode('Default','SeqBS',[48,3,131,1,0]),
+
+ ?line {ok,{'SeqBS',[1,0,1,0,1,1,0],2698,[second],[1,0,0,1]}} =
+ asn1_wrapper:decode('Default','SeqBS',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetBS',
+ #'SetBS'{a=2#1010110,
+ b=16#A8A,
+ c=[second],
+ d=[1,0,0,1]}),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetBS',
+ #'SetBS'{a=[1,0,1,0,1,1,0],
+ b=[1,0,1,0,1,0,0,0,1,0,1,0],
+ c={5,<<64>>},
+ d=9}),
+
+ ?line {ok,[49,3,131,1,0]} =
+ asn1_wrapper:encode('Default','SetBS',
+ #'SetBS'{a=[1,0,1,0,1,1,0],
+ b=[1,0,1,0,1,0,0,0,1,0,1,0],
+ c={5,<<64>>},
+ d=0}),
+
+ ?line {ok,{'SetBS',[1,0,1,0,1,1,0],2698,[second],[]}} =
+ asn1_wrapper:decode('Default','SetBS',[49,3,131,1,0]),
+
+ ?line {ok,{'SetBS',[1,0,1,0,1,1,0],2698,[second],[1,0,0,1]}} =
+ asn1_wrapper:decode('Default','SetBS',[49,0]),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqOS',
+ #'SeqOS'{a=[172],
+ b=[16#A8,16#A0],
+ c='NULL'}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqOS',
+ #'SeqOS'{a=2#10101100,
+ b=16#A8A0,
+ c='NULL'}),
+
+ ?line {ok,{'SeqOS',[172],[16#A8,16#A0],'NULL'}} =
+ asn1_wrapper:decode('Default','SeqOS',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetOS',
+ #'SetOS'{a=[172],
+ b=[16#A8,16#A0],
+ c='NULL'}),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetOS',
+ #'SetOS'{a=2#10101100,
+ b=16#A8A0,
+ c='NULL'}),
+
+ ?line {ok,{'SetOS',[172],[16#A8,16#A0],'NULL'}} =
+ asn1_wrapper:decode('Default','SetOS',[49,0]),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqOI',
+ #'SeqOI'{a={1,2,14,15},
+ b={iso,'member-body',250,3,4},
+ c={iso,standard,8571,2,250,4}}),
+
+ ?line {ok,{'SeqOI',{1,2,14,15},{1,2,250,3,4},{1,0,8571,2,250,4}}} =
+ asn1_wrapper:decode('Default','SeqOI',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetOI',
+ #'SetOI'{a={1,2,14,15},
+ b={iso,'member-body',250,3,4},
+ c={iso,standard,8571,2,250,4}}),
+
+ ?line {ok,{'SetOI',{1,2,14,15},{1,2,250,3,4},{1,0,8571,2,250,4}}} =
+ asn1_wrapper:decode('Default','SetOI',[49,0]),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqEnum',#'SeqEnum'{a=b4,b=b2}),
+
+ ?line {ok,{'SeqEnum',b4,b2}} =
+ asn1_wrapper:decode('Default','SeqEnum',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetEnum',#'SetEnum'{a=b4,b=b2}),
+
+ ?line {ok,{'SetEnum',b4,b2}} =
+ asn1_wrapper:decode('Default','SetEnum',[49,0]),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqIntBool',
+ #'SeqIntBool'{a=#'SeqIntBool_a'{aa=12,ab=13},
+ b=#'S2'{a=14,b=true},
+ c=#'S2'{a=15,b=false}}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqIntBool',
+ #'SeqIntBool'{}),
+
+ ?line {ok,{'SeqIntBool',{'SeqIntBool_a',12,13},
+ {'S2',14,true},{'S2',15,false}}} =
+ asn1_wrapper:decode('Default','SeqIntBool',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetIntBool',
+ #'SetIntBool'{a=#'SetIntBool_a'{aa=12,ab=13},
+ b=#'S2'{a=14,b=true},
+ c=#'S2'{a=15,b=false}}),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetIntBool',
+ #'SetIntBool'{}),
+
+ ?line {ok,{'SetIntBool',{'SetIntBool_a',12,13},
+ {'S2',14,true},{'S2',15,false}}} =
+ asn1_wrapper:decode('Default','SetIntBool',[49,0]),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','SeqStrings',
+ #'SeqStrings'{a="123456789",
+ b1="abcdef",
+ b2={0,13},
+ b3={"First line",{0,13},"Second line"},
+ c="Printable string",
+ d={0,0,1,14}}),
+
+ ?line {ok,{'SeqStrings',"123456789","abcdef",[0,13],
+ ["First line",[0,13],"Second line"],"Printable string",
+ [0,0,1,14]}} =
+ asn1_wrapper:decode('Default','SeqStrings',[48,0]),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','SetStrings',
+ #'SetStrings'{a="123456789",
+ b1="abcdef",
+ b2={0,13},
+ b3={"First line",{0,13},"Second line"},
+ c="Printable string",
+ d={0,0,1,14}}),
+
+ ?line {ok,{'SetStrings',"123456789","abcdef",[0,13],
+ ["First line",[0,13],"Second line"],"Printable string",
+ [0,0,1,14]}} =
+ asn1_wrapper:decode('Default','SetStrings',[49,0]),
+
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','S1',
+ #'S1'{a=#'S1_a'{aa=1,
+ ab=#'S2'{a=2,b=true}},
+ b=#'S4'{a=#'S2'{a=2,b=true},
+ b=#'S4_b'{ba=true,
+ bb=5}}}),
+
+ ?line {ok,{'S1',{'S1_a',1,{'S2',2,true}},
+ {'S4',{'S2',2,true},{'S4_b',true,5}}}} =
+ asn1_wrapper:decode('Default','S1',[48,0]),
+
+ ?line {ok,[48,3,129,1,255]} =
+ asn1_wrapper:encode('Default','S2',
+ #'S2'{a=1,b=true}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','S3',
+ #'S3'{a=[11,12,13],
+ b=[{a,11},{b,true},{c,13}],
+ c=[1,2,3,4],
+ d=[#'S2'{a=20,b=true},#'S2'{a=30,b=false}]}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','S3',
+ #'S3'{a=[11,13,12],
+ b=[{b,true},{a,11},{c,13}],
+ c=[3,4,1,2],
+ d=[#'S2'{a=30,b=false},#'S2'{a=20,b=true}]}),
+
+ ?line {ok,[48,0]} = asn1_wrapper:encode('Default','S3',#'S3'{}),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','S3set',
+ #'S3set'{a=[{c,#'S2'{a=3,b=true}},
+ {b,17},{a,false}],
+ b=[1,2,3,4]}),
+
+ ?line {ok,[49,0]} =
+ asn1_wrapper:encode('Default','S3set',
+ #'S3set'{a=[{b,17},{c,#'S2'{a=3,b=true}},
+ {a,false}],
+ b=[1,3,4,2]}),
+
+ ?line {ok,[49,0]} = asn1_wrapper:encode('Default','S3set',#'S3set'{}),
+
+ ?line {ok,[48,0]} =
+ asn1_wrapper:encode('Default','S4',#'S4'{a={'S2',1,asn1_NOVALUE},
+ b=#'S4_b'{ba=true,bb=0}}),
+ ok.
diff --git a/lib/asn1/test/testSeqTag.erl b/lib/asn1/test/testSeqTag.erl
new file mode 100644
index 0000000000..ff6d1bbe91
--- /dev/null
+++ b/lib/asn1/test/testSeqTag.erl
@@ -0,0 +1,114 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqTag).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('SeqTag',{nt, imp, exp}).
+-record('SeqTagImp',{nt, imp, exp}).
+-record('SeqTagExp',{nt, imp, exp}).
+-record('SeqTagX',{xnt, ximp, xexp}).
+-record('SeqTagImpX',{xnt, ximp, xexp}).
+-record('SeqTagExpX',{xnt, ximp, xexp}).
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTag",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqTag','SeqTag',#'SeqTag'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTag',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTag',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqTag','SeqTagImp',#'SeqTagImp'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTagImp',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTagImp',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqTag','SeqTagExp',#'SeqTagExp'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTagExp',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTagExp',lists:flatten(Bytes13)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqTag','SeqTagX',
+ #'SeqTagX'{xnt = #'XSeqNT'{bool = true, os = "kalle"},
+ ximp = #'XSeqImp'{bool = true, os = "kalle"},
+ xexp = #'XSeqExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTagX',{'XSeqNT',"kalle",true},
+ {'XSeqImp',"kalle",true},
+ {'XSeqExp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTagX',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqTag','SeqTagImpX',
+ #'SeqTagImpX'{xnt = #'XSeqNT'{bool = true, os = "kalle"},
+ ximp = #'XSeqImp'{bool = true, os = "kalle"},
+ xexp = #'XSeqExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTagImpX',{'XSeqNT',"kalle",true},
+ {'XSeqImp',"kalle",true},
+ {'XSeqExp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTagImpX',lists:flatten(Bytes22)),
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqTag','SeqTagExpX',
+ #'SeqTagExpX'{xnt = #'XSeqNT'{bool = true, os = "kalle"},
+ ximp = #'XSeqImp'{bool = true, os = "kalle"},
+ xexp = #'XSeqExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SeqTagExpX',{'XSeqNT',"kalle",true},
+ {'XSeqImp',"kalle",true},
+ {'XSeqExp',"kalle",true}}} =
+ asn1_wrapper:decode('SeqTag','SeqTagExpX',lists:flatten(Bytes23)),
+
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqTypeRefCho.erl b/lib/asn1/test/testSeqTypeRefCho.erl
new file mode 100644
index 0000000000..03933d68ae
--- /dev/null
+++ b/lib/asn1/test/testSeqTypeRefCho.erl
@@ -0,0 +1,54 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqTypeRefCho).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('SeqTRcho',{seqCho, seqChoE, 'seqCho-E', 'seqChoE-E'}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTypeRefCho",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqTypeRefCho','SeqTRcho',
+ #'SeqTRcho'{'seqCho' = {choOs,"A string 1"},
+ 'seqChoE' = {choOs,"A string 3"},
+ 'seqCho-E' = {choOs,"A string 7"},
+ 'seqChoE-E' = {choOs,"A string 9"}}),
+ ?line {ok,{'SeqTRcho',{choOs,"A string 1"},{choOs,"A string 3"},{choOs,"A string 7"},{choOs,"A string 9"}}} =
+ asn1_wrapper:decode('SeqTypeRefCho','SeqTRcho',lists:flatten(Bytes11)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqTypeRefPrim.erl b/lib/asn1/test/testSeqTypeRefPrim.erl
new file mode 100644
index 0000000000..264fc24f85
--- /dev/null
+++ b/lib/asn1/test/testSeqTypeRefPrim.erl
@@ -0,0 +1,57 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqTypeRefPrim).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqTR',{octStr, octStrI, octStrE, 'octStr-I', 'octStrI-I', 'octStrE-I', 'octStr-E', 'octStrI-E', 'octStrE-E'}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTypeRefPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqTypeRefPrim','SeqTR',#'SeqTR'{'octStr' = "A string 1",
+ 'octStrI' = "A string 2",
+ 'octStrE' = "A string 3",
+ 'octStr-I' = "A string 4",
+ 'octStrI-I' = "A string 5",
+ 'octStrE-I' = "A string 6",
+ 'octStr-E' = "A string 7",
+ 'octStrI-E' = "A string 8",
+ 'octStrE-E' = "A string 9"}) ,
+ ?line {ok,{'SeqTR',"A string 1","A string 2","A string 3","A string 4","A string 5","A string 6","A string 7","A string 8","A string 9"}} =
+ asn1_wrapper:decode('SeqTypeRefPrim','SeqTR',lists:flatten(Bytes11)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSeqTypeRefSeq.erl b/lib/asn1/test/testSeqTypeRefSeq.erl
new file mode 100644
index 0000000000..b01c14ee32
--- /dev/null
+++ b/lib/asn1/test/testSeqTypeRefSeq.erl
@@ -0,0 +1,186 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqTypeRefSeq).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Seq1',{bool1, int1, seq1}).
+-record('Seq2',{seq2, bool2, int2}).
+-record('Seq3',{bool3, seq3, int3}).
+-record('Seq4',{seq41, seq42, seq43}).
+-record('SeqIn',{boolIn, intIn}).
+-record('SeqS1',{boolS1, intS1, seqS1}).
+-record('SeqS1_seqS1',{boolIn, intIn}).
+-record('SeqS2',{seqS2, boolS2, intS2}).
+-record('SeqS2_seqS2',{boolIn, intIn}).
+-record('SeqS3',{boolS3, seqS3, intS3}).
+-record('SeqS3_seqS3',{boolIn, intIn}).
+-record('SeqSTag',{seqS1, seqS2, seqS3}).
+-record('SeqSTag_seqS1',{b1, i1}).
+-record('SeqSTag_seqS2',{b2, i2}).
+-record('SeqSTag_seqS3',{b3, i3}).
+-record('SeqTRseq',{seqSeq, seqSeqI, seqSeqE, 'seqSeq-I', 'seqSeqI-I', 'seqSeqE-I', 'seqSeq-E', 'seqSeqI-E', 'seqSeqE-E'}).
+-record('SeqSeq',{seqInt, seqOs}).
+-record('SeqSeqImp',{seqInt, seqOs}).
+-record('SeqSeqExp',{seqInt, seqOs}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTypeRefSeq",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SeqTypeRefSeq','Seq1',#'Seq1'{bool1 = true,
+ int1 = 15,
+ seq1 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'Seq1',true,15,{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','Seq1',lists:flatten(Bytes11)),
+
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SeqTypeRefSeq','Seq2',#'Seq2'{seq2 = #'SeqIn'{boolIn = true,
+ intIn = 66},
+ bool2 = true,
+ int2 = 15}),
+ ?line {ok,{'Seq2',{'SeqIn',true,66},true,15}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','Seq2',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SeqTypeRefSeq','Seq3',#'Seq3'{bool3 = true,
+ seq3 = #'SeqIn'{boolIn = true,
+ intIn = 66},
+ int3 = 15}),
+ ?line {ok,{'Seq3',true,{'SeqIn',true,66},15}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','Seq3',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('SeqTypeRefSeq','Seq4',#'Seq4'{seq41 = #'SeqIn'{boolIn = true,
+ intIn = 66},
+ seq42 = #'SeqIn'{boolIn = true,
+ intIn = 66},
+ seq43 = #'SeqIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'Seq4',{'SeqIn',true,66},{'SeqIn',true,66},{'SeqIn',true,66}}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','Seq4',lists:flatten(Bytes14)),
+
+
+
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SeqTypeRefSeq','SeqS1',#'SeqS1'{boolS1 = true,
+ intS1 = 15,
+ seqS1 = #'SeqS1_seqS1'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SeqS1',true,15,{'SeqS1_seqS1',true,66}}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','SeqS1',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SeqTypeRefSeq','SeqS2',#'SeqS2'{seqS2 = #'SeqS2_seqS2'{boolIn = true,
+ intIn = 66},
+ boolS2 = true,
+ intS2 = 15}),
+ ?line {ok,{'SeqS2',{'SeqS2_seqS2',true,66},true,15}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','SeqS2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SeqTypeRefSeq','SeqS3',#'SeqS3'{boolS3 = true,
+ seqS3 = #'SeqS3_seqS3'{boolIn = true,
+ intIn = 66},
+ intS3 = 15}),
+ ?line {ok,{'SeqS3',true,{'SeqS3_seqS3',true,66},15}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','SeqS3',lists:flatten(Bytes23)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SeqTypeRefSeq','SeqSTag',#'SeqSTag'{seqS1 = #'SeqSTag_seqS1'{b1 = true,
+ i1 = 11},
+ seqS2 = #'SeqSTag_seqS2'{b2 = true,
+ i2 = 22},
+ seqS3 = #'SeqSTag_seqS3'{b3 = true,
+ i3 = 33}}),
+ ?line {ok,{'SeqSTag',{'SeqSTag_seqS1',true,11},
+ {'SeqSTag_seqS2',true,22},
+ {'SeqSTag_seqS3',true,33}}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','SeqSTag',lists:flatten(Bytes31)),
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqTypeRefSeq','SeqTRseq',
+ #'SeqTRseq'{'seqSeq' = #'SeqSeq'{seqOs = "A1",
+ seqInt = 2},
+ 'seqSeqI' = #'SeqSeq'{seqOs = "A2",
+ seqInt = 2},
+ 'seqSeqE' = #'SeqSeq'{seqOs = "A3",
+ seqInt = 2},
+ 'seqSeq-I' = #'SeqSeqImp'{seqOs = "A4",
+ seqInt = 2},
+ 'seqSeqI-I' = #'SeqSeqImp'{seqOs = "A5",
+ seqInt = 2},
+ 'seqSeqE-I' = #'SeqSeqImp'{seqOs = "A6",
+ seqInt = 2},
+ 'seqSeq-E' = #'SeqSeqExp'{seqOs = "A7",
+ seqInt = 2},
+ 'seqSeqI-E' = #'SeqSeqExp'{seqOs = "A8",
+ seqInt = 2},
+ 'seqSeqE-E' = #'SeqSeqExp'{seqOs = "A9",
+ seqInt = 2}}),
+ ?line {ok,{'SeqTRseq',{'SeqSeq',2,"A1"},
+ {'SeqSeq',2,"A2"},
+ {'SeqSeq',2,"A3"},
+ {'SeqSeqImp',2,"A4"},
+ {'SeqSeqImp',2,"A5"},
+ {'SeqSeqImp',2,"A6"},
+ {'SeqSeqExp',2,"A7"},
+ {'SeqSeqExp',2,"A8"},
+ {'SeqSeqExp',2,"A9"}}} =
+ asn1_wrapper:decode('SeqTypeRefSeq','SeqTRseq',lists:flatten(Bytes41)),
+
+ ok.
diff --git a/lib/asn1/test/testSeqTypeRefSet.erl b/lib/asn1/test/testSeqTypeRefSet.erl
new file mode 100644
index 0000000000..92d2cadf28
--- /dev/null
+++ b/lib/asn1/test/testSeqTypeRefSet.erl
@@ -0,0 +1,76 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSeqTypeRefSet).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SeqTRset',{seqSet, seqSetI, seqSetE, 'seqSet-I', 'seqSetI-I', 'seqSetE-I', 'seqSet-E', 'seqSetI-E', 'seqSetE-E'}).
+-record('SeqSet',{setInt, setOs}).
+-record('SeqSetImp',{setInt, setOs}).
+-record('SeqSetExp',{setInt, setOs}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTypeRefSet",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SeqTypeRefSet','SeqTRset',
+ #'SeqTRset'{'seqSet' = #'SeqSet'{setOs = "A1",
+ setInt = 2},
+ 'seqSetI' = #'SeqSet'{setOs = "A2",
+ setInt = 2},
+ 'seqSetE' = #'SeqSet'{setOs = "A3",
+ setInt = 2},
+ 'seqSet-I' = #'SeqSetImp'{setOs = "A4",
+ setInt = 2},
+ 'seqSetI-I' = #'SeqSetImp'{setOs = "A5",
+ setInt = 2},
+ 'seqSetE-I' = #'SeqSetImp'{setOs = "A6",
+ setInt = 2},
+ 'seqSet-E' = #'SeqSetExp'{setOs = "A7",
+ setInt = 2},
+ 'seqSetI-E' = #'SeqSetExp'{setOs = "A8",
+ setInt = 2},
+ 'seqSetE-E' = #'SeqSetExp'{setOs = "A9",
+ setInt = 2}}),
+ ?line {ok,{'SeqTRset',{'SeqSet',2,"A1"},
+ {'SeqSet',2,"A2"},
+ {'SeqSet',2,"A3"},
+ {'SeqSetImp',2,"A4"},
+ {'SeqSetImp',2,"A5"},
+ {'SeqSetImp',2,"A6"},
+ {'SeqSetExp',2,"A7"},
+ {'SeqSetExp',2,"A8"},
+ {'SeqSetExp',2,"A9"}}} =
+ asn1_wrapper:decode('SeqTypeRefSet','SeqTRset',lists:flatten(Bytes41)),
+
+ ok.
diff --git a/lib/asn1/test/testSetDefault.erl b/lib/asn1/test/testSetDefault.erl
new file mode 100644
index 0000000000..e4b6a0ab82
--- /dev/null
+++ b/lib/asn1/test/testSetDefault.erl
@@ -0,0 +1,94 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetDefault).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SetDef1',{bool1 = asn1_DEFAULT, int1, set1 = asn1_DEFAULT}).
+-record('SetDef2',{set2 = asn1_DEFAULT, bool2, int2}).
+-record('SetDef3',{bool3 = asn1_DEFAULT, set3 = asn1_DEFAULT, int3 = asn1_DEFAULT}).
+-record('SetIn',{boolIn, intIn}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetDefault",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetDefault','SetDef1',#'SetDef1'{bool1 = true,
+ int1 = 15,
+ set1 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetDef1',true,15,{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetDefault','SetDef1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('SetDefault','SetDef1',#'SetDef1'{int1 = 15}),
+ ?line {ok,{'SetDef1',true,15,{'SetIn',asn1_NOVALUE,12}}} =
+ asn1_wrapper:decode('SetDefault','SetDef1',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetDefault','SetDef2',#'SetDef2'{bool2 = true,
+ int2 = 15,
+ set2 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetDef2',{'SetIn',true,66},true,15}} =
+ asn1_wrapper:decode('SetDefault','SetDef2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('SetDefault','SetDef2',#'SetDef2'{bool2 = true,
+ int2 = 15}),
+ ?line {ok,{'SetDef2',{'SetIn',asn1_NOVALUE,12},true,15}} =
+ asn1_wrapper:decode('SetDefault','SetDef2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetDefault','SetDef3',#'SetDef3'{bool3 = true,
+ int3 = 15,
+ set3 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetDef3',true,{'SetIn',true,66},15}} =
+ asn1_wrapper:decode('SetDefault','SetDef3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('SetDefault','SetDef3',#'SetDef3'{int3 = 15}),
+ ?line {ok,{'SetDef3',true,{'SetIn',asn1_NOVALUE,12},15}} =
+ asn1_wrapper:decode('SetDefault','SetDef3',lists:flatten(Bytes32)),
+
+
+
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSetExtension.erl b/lib/asn1/test/testSetExtension.erl
new file mode 100644
index 0000000000..85a84e020a
--- /dev/null
+++ b/lib/asn1/test/testSetExtension.erl
@@ -0,0 +1,106 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetExtension).
+
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SetExt1',{}).
+-record('SetExt2',{bool, int}).
+-record('SetExt3',{bool, int}).
+-record('SetExt4',{bool, int}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetExtension",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetExtension','SetExt1',#'SetExt1'{}),
+ ?line {ok,{'SetExt1'}} =
+ asn1_wrapper:decode('SetExtension','SetExt1',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetExtension','SetExt2',#'SetExt2'{bool = true,int = 99}),
+ ?line {ok,{'SetExt2',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt2',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetExtension','SetExt2',#'SetExt2'{int = 99,bool = true}),
+ ?line {ok,{'SetExt2',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt2',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetExtension','SetExt3',#'SetExt3'{bool = true,int = 99}),
+ ?line {ok,{'SetExt3',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt3',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetExtension','SetExt3',#'SetExt3'{int = 99,bool = true}),
+ ?line {ok,{'SetExt3',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt3',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetExtension','SetExt4',#'SetExt4'{bool = true,int = 99}),
+ ?line {ok,{'SetExt4',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt4',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SetExtension','SetExt4',#'SetExt4'{int = 99,bool = true}),
+ ?line {ok,{'SetExt4',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt4',lists:flatten(Bytes42)),
+
+
+ %% Test of extension , needs to be improved and extended
+
+ ?line {ok,BytesX11} =
+ asn1_wrapper:encode('SetExtension','SetExt1',#'SetExt1'{}),
+ ?line {ok,{'SetExt1'}} =
+ asn1_wrapper:decode('SetExtension','SetExt1',lists:flatten(BytesX11)),
+
+ ?line {ok,BytesX21} =
+ asn1_wrapper:encode('SetExtension','SetExt2',#'SetExt2'{bool = true,int = 99}),
+ ?line {ok,{'SetExt2',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt2',lists:flatten(BytesX21)),
+
+ ?line {ok,BytesX22} =
+ asn1_wrapper:encode('SetExtension','SetExt2',#'SetExt2'{int = 99,bool = true}),
+ ?line {ok,{'SetExt2',true,99}} =
+ asn1_wrapper:decode('SetExtension','SetExt2',lists:flatten(BytesX22)),
+
+
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSetExternal.erl b/lib/asn1/test/testSetExternal.erl
new file mode 100644
index 0000000000..83974a5499
--- /dev/null
+++ b/lib/asn1/test/testSetExternal.erl
@@ -0,0 +1,140 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetExternal).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+-record('SetXSeq1',{seq, bool, int}).
+-record('SetXSeq2',{bool, seq, int}).
+-record('SetXSeq3',{bool, int, seq}).
+%-record('NT',{os, bool}).
+%-record('Imp',{os, bool}).
+%-record('Exp',{os, bool}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetExternal",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetExternal','XNTNT',#'XSetNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XNTNT',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetExternal','XImpNT',#'XSetNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XImpNT',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetExternal','XExpNT',#'XSetNT'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetNT',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XExpNT',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetExternal','XNTImp',#'XSetImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XNTImp',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetExternal','XImpImp',#'XSetImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XImpImp',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetExternal','XExpImp',#'XSetImp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetImp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XExpImp',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetExternal','XNTExp',#'XSetExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XNTExp',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetExternal','XImpExp',#'XSetExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XImpExp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SetExternal','XExpExp',#'XSetExp'{bool = true, os = "kalle"}),
+ ?line {ok,{'XSetExp',[107,97,108,108,101],true}} =
+ asn1_wrapper:decode('SetExternal','XExpExp',lists:flatten(Bytes33)),
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetExternal','SetXSeq1',
+ #'SetXSeq1'{bool = true,
+ int = 66,
+ seq = #'XSeq1'{bool1 = true,
+ int1 = 77,
+ seq1 = #'XSeqIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SetXSeq1',{'XSeq1',true,77,{'XSeqIn',false,88}},true,66}} =
+ asn1_wrapper:decode('SetExternal','SetXSeq1',lists:flatten(Bytes41)),
+
+
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SetExternal','SetXSeq2',
+ #'SetXSeq2'{bool = true,
+ int = 66,
+ seq = #'XSeq1'{bool1 = true,
+ int1 = 77,
+ seq1 = #'XSeqIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SetXSeq2',true,{'XSeq1',true,77,{'XSeqIn',false,88}},66}} =
+ asn1_wrapper:decode('SetExternal','SetXSeq2',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SetExternal','SetXSeq3',
+ #'SetXSeq3'{bool = true,
+ int = 66,
+ seq = #'XSeq1'{bool1 = true,
+ int1 = 77,
+ seq1 = #'XSeqIn'{boolIn = false,
+ intIn = 88}}}),
+ ?line {ok,{'SetXSeq3',true,66,{'XSeq1',true,77,{'XSeqIn',false,88}}}} =
+ asn1_wrapper:decode('SetExternal','SetXSeq3',lists:flatten(Bytes43)),
+
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSetIndefinite.erl b/lib/asn1/test/testSetIndefinite.erl
new file mode 100644
index 0000000000..0e6a86bac4
--- /dev/null
+++ b/lib/asn1/test/testSetIndefinite.erl
@@ -0,0 +1,55 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetIndefinite).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqSetIndefinite",
+ [Rules,{outdir,OutDir}]++Options).
+
+main(per_bin) -> ok;
+main(per) -> ok;
+main(ber_bin_v2) ->
+ main(ber);
+main(ber_bin) ->
+ main(ber);
+main(ber) ->
+
+ %% normal encoding
+ B = [49,20,1,1,255,49,9,1,1,255,2,4,251,35,238,194,2,4,251,55,236,161],
+ %% indefinite length encoding
+ Bi = [49,22,1,1,255,49,128,1,1,255,2,4,251,35,238,194,0,0,2,4,251,55,236,161],
+ %% the value which is encoded
+ V = {'SetS3',true,{'SetS3_setS3',true,-81531198},-80221023},
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SetS3',B),
+ ?line {ok,V} = asn1_wrapper:decode('SeqSetIndefinite','SetS3',Bi),
+ ok.
+
+
+
diff --git a/lib/asn1/test/testSetOf.erl b/lib/asn1/test/testSetOf.erl
new file mode 100644
index 0000000000..fe68a0705a
--- /dev/null
+++ b/lib/asn1/test/testSetOf.erl
@@ -0,0 +1,235 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetOf).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Set1',{bool1, int1, set1 = asn1_DEFAULT}).
+-record('Set2',{set2 = asn1_DEFAULT, bool2, int2}).
+-record('Set3',{bool3, set3 = asn1_DEFAULT, int3}).
+-record('Set4',{set41 = asn1_DEFAULT, set42 = asn1_DEFAULT, set43 = asn1_DEFAULT}).
+-record('SetIn',{boolIn, intIn}).
+%-record('SetCho',{bool1, int1, set1 = asn1_DEFAULT}).
+%-record('SetChoInline',{bool1, int1, set1 = asn1_DEFAULT}).
+%-record('SetChoOfInline_SETOF',{bool1, int1, set1 = asn1_DEFAULT}).
+-record('SetEmp',{set1}).
+-record('Empty',{}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetOf",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetOf','Set1',#'Set1'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'Set1',true,17,[]}} =
+ asn1_wrapper:decode('SetOf','Set1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetOf','Set1',#'Set1'{bool1 = true,
+ int1 = 17,
+ set1 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set1',true,17,[{'SetIn',true,25}]}} =
+ asn1_wrapper:decode('SetOf','Set1',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetOf','Set1',#'Set1'{bool1 = true,
+ int1 = 17,
+ set1 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set1',true,17,[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}]}} =
+ asn1_wrapper:decode('SetOf','Set1',lists:flatten(Bytes13)),
+
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetOf','Set2',#'Set2'{bool2 = true,
+ int2 = 17}),
+
+ ?line {ok,{'Set2',[],true,17}} =
+ asn1_wrapper:decode('SetOf','Set2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetOf','Set2',#'Set2'{bool2 = true,
+ int2 = 17,
+ set2 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set2',[{'SetIn',true,25}],true,17}} =
+ asn1_wrapper:decode('SetOf','Set2',lists:flatten(Bytes22)),
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetOf','Set2',#'Set2'{bool2 = true,
+ int2 = 17,
+ set2 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set2',[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}],true,17}} =
+ asn1_wrapper:decode('SetOf','Set2',lists:flatten(Bytes23)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetOf','Set3',#'Set3'{bool3 = true,
+ int3 = 17}),
+ ?line {ok,{'Set3',true,[],17}} =
+ asn1_wrapper:decode('SetOf','Set3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetOf','Set3',#'Set3'{bool3 = true,
+ int3 = 17,
+ set3 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set3',true,[{'SetIn',true,25}],17}} =
+ asn1_wrapper:decode('SetOf','Set3',lists:flatten(Bytes32)),
+
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SetOf','Set3',#'Set3'{bool3 = true,
+ int3 = 17,
+ set3 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set3',true,[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}],17}} =
+ asn1_wrapper:decode('SetOf','Set3',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} = asn1_wrapper:encode('SetOf','Set4',#'Set4'{}),
+ ?line {ok,{'Set4',[],[],[]}} = asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes41)),
+
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set41 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set4',[{'SetIn',true,25}],[],[]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes42)),
+
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set41 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set4',[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}],[],[]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes43)),
+
+
+ ?line {ok,Bytes44} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set42 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set4',[],[{'SetIn',true,25}],[]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes44)),
+
+
+ ?line {ok,Bytes45} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set42 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set4',[],[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}],[]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes45)),
+
+
+ ?line {ok,Bytes46} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set43 = [#'SetIn'{boolIn = true,
+ intIn = 25}]}),
+ ?line {ok,{'Set4',[],[],[{'SetIn',true,25}]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes46)),
+
+
+ ?line {ok,Bytes47} =
+ asn1_wrapper:encode('SetOf','Set4',#'Set4'{set43 = [#'SetIn'{boolIn = true,
+ intIn = 25},
+ #'SetIn'{boolIn = false,
+ intIn = 125},
+ #'SetIn'{boolIn = false,
+ intIn = 225}]}),
+ ?line {ok,{'Set4',[],[],[{'SetIn',true,25},{'SetIn',false,125},{'SetIn',false,225}]}} =
+ asn1_wrapper:decode('SetOf','Set4',lists:flatten(Bytes47)),
+
+
+
+
+ ?line {ok,Bytes51} = asn1_wrapper:encode('SetOf','SetOs',["First","Second","Third"]),
+ ?line {ok,["First","Second","Third"]} =
+ asn1_wrapper:decode('SetOf','SetOs',lists:flatten(Bytes51)),
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('SetOf','SetOsImp',["First","Second","Third"]),
+ ?line {ok,["First","Second","Third"]} =
+ asn1_wrapper:decode('SetOf','SetOsImp',lists:flatten(Bytes52)),
+
+ ?line {ok,Bytes53} = asn1_wrapper:encode('SetOf','SetOsExp',["First","Second","Third"]),
+ ?line {ok,["First","Second","Third"]} =
+ asn1_wrapper:decode('SetOf','SetOsExp',lists:flatten(Bytes53)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes71} = asn1_wrapper:encode('SetOf','SetEmp',#'SetEmp'{set1 = [#'Empty'{}]}),
+ ?line {ok,{'SetEmp',[{'Empty'}]}} = asn1_wrapper:decode('SetOf','SetEmp',lists:flatten(Bytes71)),
+
+ ok.
+
diff --git a/lib/asn1/test/testSetOfCho.erl b/lib/asn1/test/testSetOfCho.erl
new file mode 100644
index 0000000000..f3164273f6
--- /dev/null
+++ b/lib/asn1/test/testSetOfCho.erl
@@ -0,0 +1,159 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetOfCho).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SetChoDef',{bool1, int1, set1 = asn1_DEFAULT}).
+-record('SetChoOpt',{bool1, int1, set1 = asn1_NOVALUE}).
+-record('SetChoEmbDef',{bool1, int1, set1 = asn1_DEFAULT}).
+-record('SetChoEmbOpt',{bool1, int1, set1 = asn1_NOVALUE}).
+-record('SetOfChoEmbDef_SETOF',{bool1, int1, set1 = asn1_DEFAULT}).
+-record('SetOfChoEmbOpt_SETOF',{bool1, int1, set1 = asn1_NOVALUE}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetOfCho",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetOfCho','SetChoDef',#'SetChoDef'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SetChoDef',true,17,[]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoDef',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetOfCho','SetChoDef',#'SetChoDef'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SetChoDef',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoDef',lists:flatten(Bytes12)),
+
+
+
+ ?line {ok,Bytes15} =
+ asn1_wrapper:encode('SetOfCho','SetChoOpt',#'SetChoOpt'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SetChoOpt',true,17,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SetOfCho','SetChoOpt',lists:flatten(Bytes15)),
+
+
+ ?line {ok,Bytes16} =
+ asn1_wrapper:encode('SetOfCho','SetChoOpt',#'SetChoOpt'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SetChoOpt',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoOpt',lists:flatten(Bytes16)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetOfCho','SetChoEmbDef',#'SetChoEmbDef'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SetChoEmbDef',true,17,[]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoEmbDef',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetOfCho','SetChoEmbDef',#'SetChoEmbDef'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SetChoEmbDef',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoEmbDef',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes25} =
+ asn1_wrapper:encode('SetOfCho','SetChoEmbOpt',#'SetChoEmbOpt'{bool1 = true,
+ int1 = 17}),
+ ?line {ok,{'SetChoEmbOpt',true,17,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SetOfCho','SetChoEmbOpt',lists:flatten(Bytes25)),
+
+
+ ?line {ok,Bytes26} =
+ asn1_wrapper:encode('SetOfCho','SetChoEmbOpt',#'SetChoEmbOpt'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}),
+ ?line {ok,{'SetChoEmbOpt',true,17,[{boolIn,true},{intIn,25}]}} =
+ asn1_wrapper:decode('SetOfCho','SetChoEmbOpt',lists:flatten(Bytes26)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetOfCho','SetOfChoEmbDef',[#'SetOfChoEmbDef_SETOF'{bool1 = true,
+ int1 = 17}]),
+ ?line {ok,[{'SetOfChoEmbDef_SETOF',true,17,[]}]} =
+ asn1_wrapper:decode('SetOfCho','SetOfChoEmbDef',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetOfCho','SetOfChoEmbDef',
+ [#'SetOfChoEmbDef_SETOF'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}]),
+ ?line {ok,[{'SetOfChoEmbDef_SETOF',true,17,[{boolIn,true},{intIn,25}]}]} =
+ asn1_wrapper:decode('SetOfCho','SetOfChoEmbDef',lists:flatten(Bytes32)),
+
+
+
+ ?line {ok,Bytes35} =
+ asn1_wrapper:encode('SetOfCho','SetOfChoEmbOpt',[#'SetOfChoEmbOpt_SETOF'{bool1 = true,
+ int1 = 17}]),
+ ?line {ok,[{'SetOfChoEmbOpt_SETOF',true,17,asn1_NOVALUE}]} =
+ asn1_wrapper:decode('SetOfCho','SetOfChoEmbOpt',lists:flatten(Bytes35)),
+
+
+ ?line {ok,Bytes36} =
+ asn1_wrapper:encode('SetOfCho','SetOfChoEmbOpt',
+ [#'SetOfChoEmbOpt_SETOF'{bool1 = true,
+ int1 = 17,
+ set1 = [{boolIn,true},
+ {intIn,25}]}]),
+ ?line {ok,[{'SetOfChoEmbOpt_SETOF',true,17,[{boolIn,true},{intIn,25}]}]} =
+ asn1_wrapper:decode('SetOfCho','SetOfChoEmbOpt',lists:flatten(Bytes36)),
+
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSetOfExternal.erl b/lib/asn1/test/testSetOfExternal.erl
new file mode 100644
index 0000000000..1c59ad0a74
--- /dev/null
+++ b/lib/asn1/test/testSetOfExternal.erl
@@ -0,0 +1,171 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetOfExternal).
+
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetOfExternal",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetOfExternal','NTNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','NTNT',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetOfExternal','ImpNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ImpNT',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetOfExternal','ExpNT',[#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ExpNT',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetOfExternal','NTImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','NTImp',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetOfExternal','ImpImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ImpImp',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetOfExternal','ExpImp',[#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ExpImp',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetOfExternal','NTExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','NTExp',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetOfExternal','ImpExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ImpExp',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SetOfExternal','ExpExp',[#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','ExpExp',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetOfExternal','XNTNT',[#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XNTNT',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SetOfExternal','XImpNT',[#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XImpNT',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SetOfExternal','XExpNT',[#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XExpNT',lists:flatten(Bytes43)),
+
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SetOfExternal','XNTImp',[#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XNTImp',lists:flatten(Bytes51)),
+
+ ?line {ok,Bytes52} =
+ asn1_wrapper:encode('SetOfExternal','XImpImp',[#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XImpImp',lists:flatten(Bytes52)),
+
+ ?line {ok,Bytes53} =
+ asn1_wrapper:encode('SetOfExternal','XExpImp',[#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XExpImp',lists:flatten(Bytes53)),
+
+
+
+ ?line {ok,Bytes61} =
+ asn1_wrapper:encode('SetOfExternal','XNTExp',[#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XNTExp',lists:flatten(Bytes61)),
+
+ ?line {ok,Bytes62} =
+ asn1_wrapper:encode('SetOfExternal','XImpExp',[#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XImpExp',lists:flatten(Bytes62)),
+
+ ?line {ok,Bytes63} =
+ asn1_wrapper:encode('SetOfExternal','XExpExp',[#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]),
+ ?line {ok,[{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]} =
+ asn1_wrapper:decode('SetOfExternal','XExpExp',lists:flatten(Bytes63)),
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSetOfTag.erl b/lib/asn1/test/testSetOfTag.erl
new file mode 100644
index 0000000000..ff59a329e3
--- /dev/null
+++ b/lib/asn1/test/testSetOfTag.erl
@@ -0,0 +1,201 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetOfTag).
+
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+
+-record('SetTagNt',{nt}).
+-record('SetTagNtI',{imp}).
+-record('SetTagNtE',{exp}).
+-record('SetTagI',{nt}).
+-record('SetTagII',{imp}).
+-record('SetTagIE',{exp}).
+-record('SetTagE',{nt}).
+-record('SetTagEI',{imp}).
+-record('SetTagEE',{exp}).
+-record('SetTagXNt',{xnt}).
+-record('SetTagXI',{ximp}).
+-record('SetTagXE',{xexp}).
+-record('SetTagImpX',{xnt, ximp, xexp}).
+-record('SetTagExpX',{xnt, ximp, xexp}).
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetOfTag",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetOfTag','SetTagNt',
+ #'SetTagNt'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagNt',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagNt',lists:flatten(Bytes11)),
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetOfTag','SetTagNtI',
+ #'SetTagNtI'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagNtI',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagNtI',lists:flatten(Bytes12)),
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetOfTag','SetTagNtE',
+ #'SetTagNtE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagNtE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagNtE',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetOfTag','SetTagI',
+ #'SetTagI'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagI',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagI',lists:flatten(Bytes21)),
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetOfTag','SetTagII',
+ #'SetTagII'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagII',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagII',lists:flatten(Bytes22)),
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetOfTag','SetTagIE',
+ #'SetTagIE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagIE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagIE',lists:flatten(Bytes23)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetOfTag','SetTagE',
+ #'SetTagE'{nt = [#'NT'{bool = true, os = "kalle"},
+ #'NT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagE',
+ [{'NT',[107,97,108,108,101],true},{'NT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagE',lists:flatten(Bytes31)),
+
+ ?line {ok,Bytes32} =
+ asn1_wrapper:encode('SetOfTag','SetTagEI',
+ #'SetTagEI'{imp = [#'Imp'{bool = true, os = "kalle"},
+ #'Imp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagEI',
+ [{'Imp',[107,97,108,108,101],true},{'Imp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagEI',lists:flatten(Bytes32)),
+
+ ?line {ok,Bytes33} =
+ asn1_wrapper:encode('SetOfTag','SetTagEE',
+ #'SetTagEE'{exp = [#'Exp'{bool = true, os = "kalle"},
+ #'Exp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagEE',
+ [{'Exp',[107,97,108,108,101],true},{'Exp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagEE',lists:flatten(Bytes33)),
+
+
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetOfTag','SetTagXNt',
+ #'SetTagXNt'{xnt = [#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagXNt',
+ [{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagXNt',lists:flatten(Bytes41)),
+
+ ?line {ok,Bytes42} =
+ asn1_wrapper:encode('SetOfTag','SetTagXI',
+ #'SetTagXI'{ximp = [#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagXI',
+ [{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagXI',lists:flatten(Bytes42)),
+
+ ?line {ok,Bytes43} =
+ asn1_wrapper:encode('SetOfTag','SetTagXE',
+ #'SetTagXE'{xexp = [#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagXE',
+ [{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagXE',lists:flatten(Bytes43)),
+
+
+
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SetOfTag','SetTagImpX',
+ #'SetTagImpX'{xnt = [#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}],
+ ximp = [#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}],
+ xexp = [#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagImpX',
+ [{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}],
+ [{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}],
+ [{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagImpX',lists:flatten(Bytes51)),
+
+
+
+ ?line {ok,Bytes52} =
+ asn1_wrapper:encode('SetOfTag','SetTagExpX',
+ #'SetTagExpX'{xnt = [#'XSetNT'{bool = true, os = "kalle"},
+ #'XSetNT'{bool = true, os = "kalle"}],
+ ximp = [#'XSetImp'{bool = true, os = "kalle"},
+ #'XSetImp'{bool = true, os = "kalle"}],
+ xexp = [#'XSetExp'{bool = true, os = "kalle"},
+ #'XSetExp'{bool = true, os = "kalle"}]}),
+ ?line {ok,{'SetTagExpX',
+ [{'XSetNT',[107,97,108,108,101],true},{'XSetNT',[107,97,108,108,101],true}],
+ [{'XSetImp',[107,97,108,108,101],true},{'XSetImp',[107,97,108,108,101],true}],
+ [{'XSetExp',[107,97,108,108,101],true},{'XSetExp',[107,97,108,108,101],true}]}} =
+ asn1_wrapper:decode('SetOfTag','SetTagExpX',lists:flatten(Bytes52)),
+
+ ok.
diff --git a/lib/asn1/test/testSetOptional.erl b/lib/asn1/test/testSetOptional.erl
new file mode 100644
index 0000000000..3df1ed58bb
--- /dev/null
+++ b/lib/asn1/test/testSetOptional.erl
@@ -0,0 +1,218 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetOptional).
+
+-include("External.hrl").
+-export([compile/3]).
+-export([main/1]).
+-export([ticket_7533/1,decoder/4]).
+-include("test_server.hrl").
+
+-record('SetOpt1',{bool1 = asn1_NOVALUE, int1, set1 = asn1_NOVALUE}).
+-record('SetOpt1Imp',{bool1 = asn1_NOVALUE, int1, set1 = asn1_NOVALUE}).
+-record('SetOpt1Exp',{bool1 = asn1_NOVALUE, int1, set1 = asn1_NOVALUE}).
+-record('SetOpt2',{set2 = asn1_NOVALUE, bool2, int2}).
+-record('SetOpt2Imp',{set2 = asn1_NOVALUE, bool2, int2}).
+-record('SetOpt2Exp',{set2 = asn1_NOVALUE, bool2, int2}).
+-record('SetOpt3',{bool3 = asn1_NOVALUE, set3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SetOpt3Imp',{bool3 = asn1_NOVALUE, set3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SetOpt3Exp',{bool3 = asn1_NOVALUE, set3 = asn1_NOVALUE, int3 = asn1_NOVALUE}).
+-record('SetIn',{boolIn, intIn}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetOptional",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetOptional','SetOpt1',#'SetOpt1'{bool1 = true,
+ int1 = 15,
+ set1 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt1',true,15,{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} = asn1_wrapper:encode('SetOptional','SetOpt1',#'SetOpt1'{int1 = 15}),
+ ?line {ok,{'SetOpt1',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetOptional','SetOpt2',#'SetOpt2'{bool2 = true,
+ int2 = 15,
+ set2 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt2',{'SetIn',true,66},true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} = asn1_wrapper:encode('SetOptional','SetOpt2',#'SetOpt2'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SetOpt2',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetOptional','SetOpt3',#'SetOpt3'{bool3 = true,
+ int3 = 15,
+ set3 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt3',true,{'SetIn',true,66},15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3',lists:flatten(Bytes31)),
+
+
+ ?line {ok,Bytes32} = asn1_wrapper:encode('SetOptional','SetOpt3',#'SetOpt3'{int3 = 15}),
+ ?line {ok,{'SetOpt3',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3',lists:flatten(Bytes32)),
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetOptional','SetOpt1Imp',#'SetOpt1Imp'{bool1 = true,
+ int1 = 15,
+ set1 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt1Imp',true,15,{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1Imp',lists:flatten(Bytes41)),
+
+
+ ?line {ok,Bytes42} = asn1_wrapper:encode('SetOptional','SetOpt1Imp',#'SetOpt1Imp'{int1 = 15}),
+ ?line {ok,{'SetOpt1Imp',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1Imp',lists:flatten(Bytes42)),
+
+
+ ?line {ok,Bytes51} =
+ asn1_wrapper:encode('SetOptional','SetOpt2Imp',#'SetOpt2Imp'{bool2 = true,
+ int2 = 15,
+ set2 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt2Imp',{'SetIn',true,66},true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2Imp',lists:flatten(Bytes51)),
+
+
+ ?line {ok,Bytes52} = asn1_wrapper:encode('SetOptional','SetOpt2Imp',#'SetOpt2Imp'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SetOpt2Imp',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2Imp',lists:flatten(Bytes52)),
+
+
+
+ ?line {ok,Bytes61} =
+ asn1_wrapper:encode('SetOptional','SetOpt3Imp',#'SetOpt3Imp'{bool3 = true,
+ int3 = 15,
+ set3 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt3Imp',true,{'SetIn',true,66},15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3Imp',lists:flatten(Bytes61)),
+
+
+ ?line {ok,Bytes62} = asn1_wrapper:encode('SetOptional','SetOpt3Imp',#'SetOpt3Imp'{int3 = 15}),
+ ?line {ok,{'SetOpt3Imp',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3Imp',lists:flatten(Bytes62)),
+
+
+
+
+
+
+ ?line {ok,Bytes71} =
+ asn1_wrapper:encode('SetOptional','SetOpt1Exp',#'SetOpt1Exp'{bool1 = true,
+ int1 = 15,
+ set1 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt1Exp',true,15,{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1Exp',lists:flatten(Bytes71)),
+
+
+ ?line {ok,Bytes72} = asn1_wrapper:encode('SetOptional','SetOpt1Exp',#'SetOpt1Exp'{int1 = 15}),
+ ?line {ok,{'SetOpt1Exp',asn1_NOVALUE,15,asn1_NOVALUE}} =
+ asn1_wrapper:decode('SetOptional','SetOpt1Exp',lists:flatten(Bytes72)),
+
+
+ ?line {ok,Bytes81} =
+ asn1_wrapper:encode('SetOptional','SetOpt2Exp',#'SetOpt2Exp'{bool2 = true,
+ int2 = 15,
+ set2 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt2Exp',{'SetIn',true,66},true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2Exp',lists:flatten(Bytes81)),
+
+
+ ?line {ok,Bytes82} = asn1_wrapper:encode('SetOptional','SetOpt2Exp',#'SetOpt2Exp'{int2 = 15,
+ bool2 = true}),
+ ?line {ok,{'SetOpt2Exp',asn1_NOVALUE,true,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt2Exp',lists:flatten(Bytes82)),
+
+
+
+ ?line {ok,Bytes91} =
+ asn1_wrapper:encode('SetOptional','SetOpt3Exp',#'SetOpt3Exp'{bool3 = true,
+ int3 = 15,
+ set3 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetOpt3Exp',true,{'SetIn',true,66},15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3Exp',lists:flatten(Bytes91)),
+
+
+ ?line {ok,Bytes92} = asn1_wrapper:encode('SetOptional','SetOpt3Exp',#'SetOpt3Exp'{int3 = 15}),
+ ?line {ok,{'SetOpt3Exp',asn1_NOVALUE,asn1_NOVALUE,15}} =
+ asn1_wrapper:decode('SetOptional','SetOpt3Exp',lists:flatten(Bytes92)),
+
+
+
+
+ ok.
+
+
+ticket_7533(Ber) when Ber == ber; Ber == ber_bin ->
+ Val = #'SetOpt1'{bool1 = true,int1=12,set1=#'SetIn'{boolIn=false,intIn=13}},
+ ?line {ok,B} = asn1_wrapper:encode('SetOptional','SetOpt1',Val),
+ ?line {ok,Val} = asn1_wrapper:decode('SetOptional','SetOpt1',B),
+
+ CorruptVal = [49,14,1,1,255,2,1,12] ++ lists:duplicate(8,0),
+ Pid = spawn(?MODULE,decoder,[self(),'SetOptional','SetOpt1',CorruptVal]),
+ receive
+ {ok,Pid,Result} ->
+ io:format("Decode result: ~p~n",[Result]),
+ ok
+ after 10000 ->
+ exit(Pid,normal),
+ io:format("Decode timeout~n",[]),
+ error
+ end;
+ticket_7533(_) ->
+ ok.
+
+decoder(Parent,Module,Type,Val) ->
+ io:format("Decoding~n",[]),
+ ?line {ok,Res} = asn1_wrapper:decode(Module,Type,Val),
+ io:format("Decode res: ~p~n",[Res]),
+ Parent ! {ok,self(),Res}.
diff --git a/lib/asn1/test/testSetPrim.erl b/lib/asn1/test/testSetPrim.erl
new file mode 100644
index 0000000000..cb64011dcc
--- /dev/null
+++ b/lib/asn1/test/testSetPrim.erl
@@ -0,0 +1,95 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetPrim).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Set',{bool, boolCon, boolPri, boolApp, boolExpCon, boolExpPri, boolExpApp}).
+-record('Empty',{}).
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetPrim','Set',#'Set'{bool = true,
+ boolCon = true,
+ boolPri = true,
+ boolApp = true,
+ boolExpCon = true,
+ boolExpPri = true,
+ boolExpApp = true}),
+ ?line {ok,{'Set',true,true,true,true,true,true,true}} =
+ asn1_wrapper:decode('SetPrim','Set',lists:flatten(Bytes11)),
+
+
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetPrim','Set',#'Set'{bool = false,
+ boolCon = false,
+ boolPri = false,
+ boolApp = false,
+ boolExpCon = false,
+ boolExpPri = false,
+ boolExpApp = false}),
+ ?line {ok,{'Set',false,false,false,false,false,false,false}} =
+ asn1_wrapper:decode('SetPrim','Set',lists:flatten(Bytes12)),
+
+
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetPrim','Set',#'Set'{bool = false,
+ boolCon = true,
+ boolPri = false,
+ boolApp = true,
+ boolExpCon = false,
+ boolExpPri = true,
+ boolExpApp = false}),
+ ?line {ok,{'Set',false,true,false,true,false,true,false}} =
+ asn1_wrapper:decode('SetPrim','Set',lists:flatten(Bytes13)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetPrim','Empty',#'Empty'{}),
+ ?line {ok,{'Empty'}} =
+ asn1_wrapper:decode('SetPrim','Empty',lists:flatten(Bytes21)),
+
+
+
+ ok.
+
+
diff --git a/lib/asn1/test/testSetTag.erl b/lib/asn1/test/testSetTag.erl
new file mode 100644
index 0000000000..fcf15dc0f0
--- /dev/null
+++ b/lib/asn1/test/testSetTag.erl
@@ -0,0 +1,114 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetTag).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('SetTag',{nt, imp, exp}).
+-record('SetTagImp',{nt, imp, exp}).
+-record('SetTagExp',{nt, imp, exp}).
+-record('SetTagX',{xnt, ximp, xexp}).
+-record('SetTagImpX',{xnt, ximp, xexp}).
+-record('SetTagExpX',{xnt, ximp, xexp}).
+-record('NT',{os, bool}).
+-record('Imp',{os, bool}).
+-record('Exp',{os, bool}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetTag",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetTag','SetTag',#'SetTag'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTag',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTag',lists:flatten(Bytes11)),
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetTag','SetTagImp',#'SetTagImp'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTagImp',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTagImp',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetTag','SetTagExp',#'SetTagExp'{nt = #'NT'{bool = true, os = "kalle"},
+ imp = #'Imp'{bool = true, os = "kalle"},
+ exp = #'Exp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTagExp',{'NT',"kalle",true},{'Imp',"kalle",true},{'Exp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTagExp',lists:flatten(Bytes13)),
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetTag','SetTagX',
+ #'SetTagX'{xnt = #'XSetNT'{bool = true, os = "kalle"},
+ ximp = #'XSetImp'{bool = true, os = "kalle"},
+ xexp = #'XSetExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTagX',{'XSetNT',"kalle",true},
+ {'XSetImp',"kalle",true},
+ {'XSetExp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTagX',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetTag','SetTagImpX',
+ #'SetTagImpX'{xnt = #'XSetNT'{bool = true, os = "kalle"},
+ ximp = #'XSetImp'{bool = true, os = "kalle"},
+ xexp = #'XSetExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTagImpX',{'XSetNT',"kalle",true},
+ {'XSetImp',"kalle",true},
+ {'XSetExp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTagImpX',lists:flatten(Bytes22)),
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetTag','SetTagExpX',
+ #'SetTagExpX'{xnt = #'XSetNT'{bool = true, os = "kalle"},
+ ximp = #'XSetImp'{bool = true, os = "kalle"},
+ xexp = #'XSetExp'{bool = true, os = "kalle"}}),
+ ?line {ok,{'SetTagExpX',{'XSetNT',"kalle",true},
+ {'XSetImp',"kalle",true},
+ {'XSetExp',"kalle",true}}} =
+ asn1_wrapper:decode('SetTag','SetTagExpX',lists:flatten(Bytes23)),
+
+
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSetTypeRefCho.erl b/lib/asn1/test/testSetTypeRefCho.erl
new file mode 100644
index 0000000000..c2dbf076bd
--- /dev/null
+++ b/lib/asn1/test/testSetTypeRefCho.erl
@@ -0,0 +1,54 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetTypeRefCho).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+-include("External.hrl").
+
+-record('SetTRcho',{setCho, setChoE, 'setCho-E', 'setChoE-E'}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetTypeRefCho",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetTypeRefCho','SetTRcho',
+ #'SetTRcho'{'setCho' = {choOs,"A string 1"},
+ 'setChoE' = {choOs,"A string 3"},
+ 'setCho-E' = {choOs,"A string 7"},
+ 'setChoE-E' = {choOs,"A string 9"}}),
+ ?line {ok,{'SetTRcho',{choOs,"A string 1"},{choOs,"A string 3"},{choOs,"A string 7"},{choOs,"A string 9"}}} =
+ asn1_wrapper:decode('SetTypeRefCho','SetTRcho',lists:flatten(Bytes11)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSetTypeRefPrim.erl b/lib/asn1/test/testSetTypeRefPrim.erl
new file mode 100644
index 0000000000..1f95947168
--- /dev/null
+++ b/lib/asn1/test/testSetTypeRefPrim.erl
@@ -0,0 +1,57 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetTypeRefPrim).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SetTR',{octStr, octStrI, octStrE, 'octStr-I', 'octStrI-I', 'octStrE-I', 'octStr-E', 'octStrI-E', 'octStrE-E'}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetTypeRefPrim",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetTypeRefPrim','SetTR',#'SetTR'{'octStr' = "A string 1",
+ 'octStrI' = "A string 2",
+ 'octStrE' = "A string 3",
+ 'octStr-I' = "A string 4",
+ 'octStrI-I' = "A string 5",
+ 'octStrE-I' = "A string 6",
+ 'octStr-E' = "A string 7",
+ 'octStrI-E' = "A string 8",
+ 'octStrE-E' = "A string 9"}),
+ ?line {ok,{'SetTR',"A string 1","A string 2","A string 3","A string 4","A string 5","A string 6","A string 7","A string 8","A string 9"}} =
+ asn1_wrapper:decode('SetTypeRefPrim','SetTR',lists:flatten(Bytes11)),
+
+
+
+ ok.
diff --git a/lib/asn1/test/testSetTypeRefSeq.erl b/lib/asn1/test/testSetTypeRefSeq.erl
new file mode 100644
index 0000000000..2f6dfec9c6
--- /dev/null
+++ b/lib/asn1/test/testSetTypeRefSeq.erl
@@ -0,0 +1,76 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetTypeRefSeq).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('SetTRseq',{setSeq, setSeqI, setSeqE, 'setSeq-I', 'setSeqI-I', 'setSeqE-I', 'setSeq-E', 'setSeqI-E', 'setSeqE-E'}).
+-record('SetSeq',{seqInt, seqOs}).
+-record('SetSeqImp',{seqInt, seqOs}).
+-record('SetSeqExp',{seqInt, seqOs}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetTypeRefSeq",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetTypeRefSeq','SetTRseq',
+ #'SetTRseq'{'setSeq' = #'SetSeq'{seqOs = "A1",
+ seqInt = 2},
+ 'setSeqI' = #'SetSeq'{seqOs = "A2",
+ seqInt = 2},
+ 'setSeqE' = #'SetSeq'{seqOs = "A3",
+ seqInt = 2},
+ 'setSeq-I' = #'SetSeqImp'{seqOs = "A4",
+ seqInt = 2},
+ 'setSeqI-I' = #'SetSeqImp'{seqOs = "A5",
+ seqInt = 2},
+ 'setSeqE-I' = #'SetSeqImp'{seqOs = "A6",
+ seqInt = 2},
+ 'setSeq-E' = #'SetSeqExp'{seqOs = "A7",
+ seqInt = 2},
+ 'setSeqI-E' = #'SetSeqExp'{seqOs = "A8",
+ seqInt = 2},
+ 'setSeqE-E' = #'SetSeqExp'{seqOs = "A9",
+ seqInt = 2}}),
+ ?line {ok,{'SetTRseq',{'SetSeq',2,"A1"},
+ {'SetSeq',2,"A2"},
+ {'SetSeq',2,"A3"},
+ {'SetSeqImp',2,"A4"},
+ {'SetSeqImp',2,"A5"},
+ {'SetSeqImp',2,"A6"},
+ {'SetSeqExp',2,"A7"},
+ {'SetSeqExp',2,"A8"},
+ {'SetSeqExp',2,"A9"}}} =
+ asn1_wrapper:decode('SetTypeRefSeq','SetTRseq',lists:flatten(Bytes41)),
+
+ ok.
diff --git a/lib/asn1/test/testSetTypeRefSet.erl b/lib/asn1/test/testSetTypeRefSet.erl
new file mode 100644
index 0000000000..132e5fb3f5
--- /dev/null
+++ b/lib/asn1/test/testSetTypeRefSet.erl
@@ -0,0 +1,186 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testSetTypeRefSet).
+
+-export([compile/3]).
+-export([main/1]).
+
+-include("test_server.hrl").
+
+-record('Set1',{bool1, int1, set1}).
+-record('Set2',{set2, bool2, int2}).
+-record('Set3',{bool3, set3, int3}).
+-record('Set4',{set41, set42, set43}).
+-record('SetIn',{boolIn, intIn}).
+-record('SetS1',{boolS1, intS1, setS1}).
+-record('SetS1_setS1',{boolIn, intIn}).
+-record('SetS2',{setS2, boolS2, intS2}).
+-record('SetS2_setS2',{boolIn, intIn}).
+-record('SetS3',{boolS3, setS3, intS3}).
+-record('SetS3_setS3',{boolIn, intIn}).
+-record('SetSTag',{setS1, setS2, setS3}).
+-record('SetSTag_setS1',{b1, i1}).
+-record('SetSTag_setS2',{b2, i2}).
+-record('SetSTag_setS3',{b3, i3}).
+-record('SetTRset',{setSet, setSetI, setSetE, 'setSet-I', 'setSetI-I', 'setSetE-I', 'setSet-E', 'setSetI-E', 'setSetE-E'}).
+-record('SetSet',{setInt, setOs}).
+-record('SetSetImp',{setInt, setOs}).
+-record('SetSetExp',{setInt, setOs}).
+
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SetTypeRefSet",[Rules,{outdir,OutDir}]++Options).
+
+
+
+main(_Rules) ->
+
+
+ ?line {ok,Bytes11} =
+ asn1_wrapper:encode('SetTypeRefSet','Set1',#'Set1'{bool1 = true,
+ int1 = 15,
+ set1 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'Set1',true,15,{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetTypeRefSet','Set1',lists:flatten(Bytes11)),
+
+
+
+ ?line {ok,Bytes12} =
+ asn1_wrapper:encode('SetTypeRefSet','Set2',#'Set2'{set2 = #'SetIn'{boolIn = true,
+ intIn = 66},
+ bool2 = true,
+ int2 = 15}),
+ ?line {ok,{'Set2',{'SetIn',true,66},true,15}} =
+ asn1_wrapper:decode('SetTypeRefSet','Set2',lists:flatten(Bytes12)),
+
+
+ ?line {ok,Bytes13} =
+ asn1_wrapper:encode('SetTypeRefSet','Set3',#'Set3'{bool3 = true,
+ set3 = #'SetIn'{boolIn = true,
+ intIn = 66},
+ int3 = 15}),
+ ?line {ok,{'Set3',true,{'SetIn',true,66},15}} =
+ asn1_wrapper:decode('SetTypeRefSet','Set3',lists:flatten(Bytes13)),
+
+
+
+ ?line {ok,Bytes14} =
+ asn1_wrapper:encode('SetTypeRefSet','Set4',#'Set4'{set41 = #'SetIn'{boolIn = true,
+ intIn = 66},
+ set42 = #'SetIn'{boolIn = true,
+ intIn = 66},
+ set43 = #'SetIn'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'Set4',{'SetIn',true,66},{'SetIn',true,66},{'SetIn',true,66}}} =
+ asn1_wrapper:decode('SetTypeRefSet','Set4',lists:flatten(Bytes14)),
+
+
+
+
+
+
+
+
+ ?line {ok,Bytes21} =
+ asn1_wrapper:encode('SetTypeRefSet','SetS1',#'SetS1'{boolS1 = true,
+ intS1 = 15,
+ setS1 = #'SetS1_setS1'{boolIn = true,
+ intIn = 66}}),
+ ?line {ok,{'SetS1',true,15,{'SetS1_setS1',true,66}}} =
+ asn1_wrapper:decode('SetTypeRefSet','SetS1',lists:flatten(Bytes21)),
+
+
+ ?line {ok,Bytes22} =
+ asn1_wrapper:encode('SetTypeRefSet','SetS2',#'SetS2'{setS2 = #'SetS2_setS2'{boolIn = true,
+ intIn = 66},
+ boolS2 = true,
+ intS2 = 15}),
+ ?line {ok,{'SetS2',{'SetS2_setS2',true,66},true,15}} =
+ asn1_wrapper:decode('SetTypeRefSet','SetS2',lists:flatten(Bytes22)),
+
+
+
+ ?line {ok,Bytes23} =
+ asn1_wrapper:encode('SetTypeRefSet','SetS3',#'SetS3'{boolS3 = true,
+ setS3 = #'SetS3_setS3'{boolIn = true,
+ intIn = 66},
+ intS3 = 15}),
+ ?line {ok,{'SetS3',true,{'SetS3_setS3',true,66},15}} =
+ asn1_wrapper:decode('SetTypeRefSet','SetS3',lists:flatten(Bytes23)),
+
+
+
+
+
+
+ ?line {ok,Bytes31} =
+ asn1_wrapper:encode('SetTypeRefSet','SetSTag',#'SetSTag'{setS1 = #'SetSTag_setS1'{b1 = true,
+ i1 = 11},
+ setS2 = #'SetSTag_setS2'{b2 = true,
+ i2 = 22},
+ setS3 = #'SetSTag_setS3'{b3 = true,
+ i3 = 33}}),
+ ?line {ok,{'SetSTag',{'SetSTag_setS1',true,11},
+ {'SetSTag_setS2',true,22},
+ {'SetSTag_setS3',true,33}}} =
+ asn1_wrapper:decode('SetTypeRefSet','SetSTag',lists:flatten(Bytes31)),
+
+
+
+
+
+ ?line {ok,Bytes41} =
+ asn1_wrapper:encode('SetTypeRefSet','SetTRset',
+ #'SetTRset'{'setSet' = #'SetSet'{setOs = "A1",
+ setInt = 2},
+ 'setSetI' = #'SetSet'{setOs = "A2",
+ setInt = 2},
+ 'setSetE' = #'SetSet'{setOs = "A3",
+ setInt = 2},
+ 'setSet-I' = #'SetSetImp'{setOs = "A4",
+ setInt = 2},
+ 'setSetI-I' = #'SetSetImp'{setOs = "A5",
+ setInt = 2},
+ 'setSetE-I' = #'SetSetImp'{setOs = "A6",
+ setInt = 2},
+ 'setSet-E' = #'SetSetExp'{setOs = "A7",
+ setInt = 2},
+ 'setSetI-E' = #'SetSetExp'{setOs = "A8",
+ setInt = 2},
+ 'setSetE-E' = #'SetSetExp'{setOs = "A9",
+ setInt = 2}}),
+ ?line {ok,{'SetTRset',{'SetSet',2,"A1"},
+ {'SetSet',2,"A2"},
+ {'SetSet',2,"A3"},
+ {'SetSetImp',2,"A4"},
+ {'SetSetImp',2,"A5"},
+ {'SetSetImp',2,"A6"},
+ {'SetSetExp',2,"A7"},
+ {'SetSetExp',2,"A8"},
+ {'SetSetExp',2,"A9"}}} =
+ asn1_wrapper:decode('SetTypeRefSet','SetTRset',lists:flatten(Bytes41)),
+
+ ok.
diff --git a/lib/asn1/test/testTCAP.erl b/lib/asn1/test/testTCAP.erl
new file mode 100644
index 0000000000..3e2c2de371
--- /dev/null
+++ b/lib/asn1/test/testTCAP.erl
@@ -0,0 +1,103 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testTCAP).
+
+-export([compile/3,test/2,compile_asn1config/3,test_asn1config/0]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "Remote-Operations-Information-Objects",[Rules,{outdir,OutDir}]++Opt),
+% ?line ok = asn1ct:compile(DataDir ++ "Remote-Operations-Generic-ROS-PDUs",[Rules,{outdir,OutDir}]++Opt),
+% ?line ok = asn1ct:compile(DataDir ++ "Remote-Operations-Useful-Definitions",[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "TCAPMessages",[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "TCAPMessages-simple",[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "TCAPPackage",[Rules,{outdir,OutDir}]++Opt),
+ ?line compile:file(filename:join([DataDir,"TCAPPackage_msg"]),[{i,OutDir},{outdir,OutDir}]).
+
+compile_asn1config(Config,Rules,Opt) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "TCAPPackage",
+ [Rules,{outdir,OutDir},{i,DataDir}]++Opt).
+
+test(Erule,_Config) when Erule==ber;Erule==ber_bin;Erule==ber_bin_v2 ->
+% ?line OutDir = ?config(priv_dir,Config),
+ %% testing OTP-4798, open type encoded with indefinite length
+ ?line {ok,_Res} = asn1_wrapper:decode('TCAPMessages-simple','MessageType', val_OTP_4798(Erule)),
+ %% testing OTP-4799, absent optional open type
+ ?line {ok,_Res2} = asn1_wrapper:decode('TCAPMessages-simple','MessageType',val_OTP_4799(Erule)),
+ %% testing vance shipley's problems. Parameterized object sets.
+ ?line Val3 = 'TCAPPackage_msg':val('PackageType',unidirectional),
+ ?line {ok,Bytes3} = asn1_wrapper:encode('TCAPPackage','PackageType',Val3),
+ ?line {ok,Res3} = asn1_wrapper:decode('TCAPPackage','PackageType',Bytes3),
+ ?line ok = 'TCAPPackage_msg':check_result('PackageType',unidirectional,Res3),
+%% ?line io:format("Res3:~n~p~n~n",[Res3]),
+
+ ?line Val4 = 'TCAPPackage_msg':val('PackageType',abort),
+ ?line {ok,Bytes4} = asn1_wrapper:encode('TCAPPackage','PackageType',Val4),
+ ?line {ok,Res4} = asn1_wrapper:decode('TCAPPackage','PackageType',Bytes4),
+ ?line ok = 'TCAPPackage_msg':check_result('PackageType',abort,Res4),
+%% ?line io:format("Res4:~n~p~n~n",[Res4]),
+
+ ?line Val5 = 'TCAPPackage_msg':val('PackageType',response),
+ ?line {ok,Bytes5} = asn1_wrapper:encode('TCAPPackage','PackageType',Val5),
+ ?line {ok,Res5} = asn1_wrapper:decode('TCAPPackage','PackageType',Bytes5),
+ ?line ok = 'TCAPPackage_msg':check_result('PackageType',response,Res5).
+%% ?line io:format("Res5:~n~p~n~n",[Res5]).
+
+val_OTP_4798(ber) ->
+ [100,129,176,73,4,57,3,17,80,107,42,40,40,6,7,0,17,134,5,1,1,1,160,29,97,27,128,2,7,128,161,9,6,7,4,0,0,1,0,14,2,162,3,2,1,0,163,5,161,3,2,1,0,108,128,162,120,2,1,0,48,115,2,1,56,48,128,48,34,4,16,203,87,215,196,217,93,235,90,64,131,106,145,39,26,25,236,4,4,197,241,81,112,4,8,78,225,34,196,215,212,200,0,48,34,4,16,145,125,27,67,42,144,6,161,207,112,55,75,200,191,191,28,4,4,226,219,242,123,4,8,72,46,130,28,206,178,168,0,48,34,4,16,1,8,20,29,70,160,218,160,125,188,244,174,113,115,253,245,4,4,26,5,90,160,4,8,252,75,149,98,153,224,140,0,0,0,0,0];
+val_OTP_4798(_) ->
+ <<100,129,176,73,4,57,3,17,80,107,42,40,40,6,7,0,17,134,5,1,1,1,160,29,97,27,128,2,7,128,161,9,6,7,4,0,0,1,0,14,2,162,3,2,1,0,163,5,161,3,2,1,0,108,128,162,120,2,1,0,48,115,2,1,56,48,128,48,34,4,16,203,87,215,196,217,93,235,90,64,131,106,145,39,26,25,236,4,4,197,241,81,112,4,8,78,225,34,196,215,212,200,0,48,34,4,16,145,125,27,67,42,144,6,161,207,112,55,75,200,191,191,28,4,4,226,219,242,123,4,8,72,46,130,28,206,178,168,0,48,34,4,16,1,8,20,29,70,160,218,160,125,188,244,174,113,115,253,245,4,4,26,5,90,160,4,8,252,75,149,98,153,224,140,0,0,0,0,0>>.
+
+val_OTP_4799(ber) ->
+ [100,16,73,4,41,182,36,0,108,8,163,6,2,1,29,2,1,27];
+val_OTP_4799(_) ->
+ <<100,16,73,4,41,182,36,0,108,8,163,6,2,1,29,2,1,27>>.
+
+test_asn1config() ->
+ ?line Val = 'TCAPPackage_msg':val('PackageType',queryWithPerm),
+ ?line {ok,B} = asn1_wrapper:encode('TCAPPackage','PackageType',Val),
+ ?line {ok,ExMsg}='TCAPPackage':decode_PackageType(list_to_binary(B)),
+ ?line {_,{_,_,_,{Key,ExVal}}}=ExMsg,
+ ?line {ok,_Parts}='TCAPPackage':decode_part(Key,ExVal),
+
+ ?line Val2 = 'TCAPPackage_msg':val('TransactionPDU'),
+ ?line {ok,B2} = 'TCAPPackage':encode('TransactionPDU',Val2),
+ ?line {ok,ExMsg2}='TCAPPackage':decode_TransactionPDU(list_to_binary(B2)),
+ ?line {_,_,_,{Key2,ExVal2}}=ExMsg2,
+ ?line {ok,_Parts2}='TCAPPackage':decode_part(Key2,ExVal2),
+
+ ?line Val3 = 'TCAPPackage_msg':val('PackageType',response),
+ ?line {ok,B3} = asn1_wrapper:encode('TCAPPackage','PackageType',Val3),
+ ?line {ok,ExMsg3}='TCAPPackage':decode_PackageType(list_to_binary(B3)),
+ ?line {_,{_,_,_,{Key3,ExVal3}}}=ExMsg3,
+ ?line {ok,_Parts3}='TCAPPackage':decode_part(Key3,ExVal3).
+
diff --git a/lib/asn1/test/testTcapsystem.erl b/lib/asn1/test/testTcapsystem.erl
new file mode 100644
index 0000000000..c48b1b835d
--- /dev/null
+++ b/lib/asn1/test/testTcapsystem.erl
@@ -0,0 +1,72 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testTcapsystem).
+
+-export([compile/3]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line DataDir2 = filename:join([DataDir,tcapsystem]),
+
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"DialoguePDUs.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-ApplicationContexts.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-BS-Code.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-CallHandlingOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-CH-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-CommonDataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-DialogueInformation.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-ER-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-Errors.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-ExtensionDataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-GR-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-Group-Call-Operations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-LCS-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-LocationServiceOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-MobileServiceOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-MS-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-OM-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-OperationAndMaintenanceOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-Protocol.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-SecureTransportOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-ShortMessageServiceOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-SM-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-SS-Code.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-SS-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-ST-DataTypes.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-SupplementaryServiceOperations.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MAP-TS-Code.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"MobileDomainDefinitions.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"Remote-Operations-Generic-ROS-PDUs.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"Remote-Operations-Information-Objects.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"Remote-Operations-Useful-Definitions.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"TCAP-Examples.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"TCAPMessages.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"TCAP-Tools.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"TC-Notation-Extensions.asn"]),[Rules,{outdir,OutDir}]++Opt),
+ ?line ok = asn1ct:compile(filename:join([DataDir2,"UnidialoguePDUs.asn"]),[Rules,{outdir,OutDir}]++Opt).
+
+
diff --git a/lib/asn1/test/testTimer.erl b/lib/asn1/test/testTimer.erl
new file mode 100644
index 0000000000..0fade7ebca
--- /dev/null
+++ b/lib/asn1/test/testTimer.erl
@@ -0,0 +1,222 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testTimer).
+
+-compile(export_all).
+%%-export([Function/Arity, ...]).
+
+-include("test_server.hrl").
+
+-define(times, 5000).
+
+compile(Config,Enc,Options) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ok = asn1ct:compile(DataDir++"H235-SECURITY-MESSAGES",[Enc,{outdir,OutDir}]++Options),
+ ok = asn1ct:compile(DataDir++"H323-MESSAGES",[Enc,{outdir,OutDir}]++Options).
+
+val() ->
+ _Value = {'H323-UserInformation',{'H323-UU-PDU',
+ {callProceeding,
+ {'CallProceeding-UUIE',
+ {0,8,222},
+ {'EndpointType',
+ {'NonStandardParameter',
+ {object,{0,9,237}},
+ "O"},
+ {'VendorIdentifier',
+ {'H221NonStandard',62,63,16282},
+ "OC",
+ "OC"},
+ {'GatekeeperInfo',
+ {'NonStandardParameter',
+ {object,{0,10,260}},
+ "O"}},
+ {'GatewayInfo',
+ [{h320,
+ {'H320Caps',
+ {'NonStandardParameter',
+ {object,{0,11,282}},
+ "O"},
+ [{'DataRate',
+ {'NonStandardParameter',
+ {object,
+ {0,11,295}},
+ "O"},
+ 1290470518,
+ 78}],
+ [{'SupportedPrefix',
+ {'NonStandardParameter',
+ {object,
+ {0,12,312}},
+ "O"},
+ {'h323-ID',"BM"}}]}}],
+ {'NonStandardParameter',
+ {object,{0,13,326}},
+ "O"}},
+ {'McuInfo',
+ {'NonStandardParameter',
+ {object,{1,13,340,340}},
+ "OC"}},
+ {'TerminalInfo',
+ {'NonStandardParameter',
+ {object,{1,14,353,354}},
+ "OC"}},
+ true,
+ true},
+ {ipxAddress,
+ {'TransportAddress_ipxAddress',
+ "OCTET ",
+ "OCTE",
+ "OC"}},
+ {'CallIdentifier',"OCTET STRINGOCTE"},
+ {noSecurity,'NULL'},
+ [{'ClearToken',
+ 1667517741,
+ "BM",
+ {'DHset',[1],[1],[1]},
+ "OCTET STR",
+ -26430296,
+ {'TypedCertificate',
+ {1,16,405,406},
+ "OC"},
+ "BMP",
+ {'NonStandardParameter',
+ {1,16,414,415},
+ "OC"}},
+ {'ClearToken',
+ 1817656756,
+ "BMP",
+ {'DHset',[1],[1],[1]},
+ "OCTET STRI",
+ -16356110,
+ {'TypedCertificate',
+ {1,17,442,443},
+ "OC"},
+ "BMP",
+ {'NonStandardParameter',
+ {1,18,452,452},
+ "OC"}}],
+ [{cryptoGKPwdEncr,
+ {'CryptoH323Token_cryptoGKPwdEncr',
+ {1,18,467,467},
+ {'Params',-7477016,"OCTET ST"},
+ "OC"}},
+ {cryptoGKPwdEncr,
+ {'CryptoH323Token_cryptoGKPwdEncr',
+ {1,19,486,486},
+ {'Params',-2404513,"OCTET ST"},
+ []}}],
+ []}},
+ {'NonStandardParameter',{object,{0,3,84}},[]},
+ [],
+ true,
+ [],
+ []},
+ {'H323-UserInformation_user-data',24,"O"}}.
+
+
+go(Config,Enc) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ Module = 'H323-MESSAGES',
+ Type = 'H323-UserInformation',
+ Value = val(),
+%% ok = asn1ct:compile(HelpModule,[Enc]),
+
+%% ok = asn1ct:compile(Module,[Enc]),
+ ?line {ok,B} = asn1rt:encode(Module,Type,Value),
+ Bytes = case Enc of
+ ber_bin ->
+ list_to_binary(B);
+ per_bin when list(B) ->
+ list_to_binary(B);
+ per_bin ->
+ B;
+ uper_bin ->
+ B;
+ _ ->
+ %%lists:flatten(B)
+ list_to_binary(B)
+ end,
+
+ CompileOptions = compile_options(),
+
+ ?line {ValWr, done} = timer:tc(?MODULE, encode, [?times, Module, Type, Value]),
+ ?line io:format("ASN1 encode ~p: ~p micro~n", [CompileOptions, ValWr / ?times]),
+
+ ?line done = decode(2,Module,Type,Bytes,Enc),
+
+ ?line {ValRead, done} = timer:tc(?MODULE, decode, [?times, Module,
+ Type, Bytes,Enc]),
+ ?line io:format("ASN1 decode ~p: ~p micro~n", [CompileOptions, ValRead /?times]),
+
+
+ ?line Comment = "encode: "++integer_to_list(round(ValWr/?times))++
+ " micro, decode: "++integer_to_list(round(ValRead /?times))++
+ " micro. " ++ CompileOptions,
+ {comment,Comment}.
+
+encode(0, _Module,_Type,_Value) ->
+ done;
+encode(N, Module,Type,Value) ->
+ ?line {ok,B} = asn1rt:encode(Module,Type,Value),
+ _B2 = if
+ list(B) -> list_to_binary(B);
+ true -> B
+ end,
+ encode(N-1, Module,Type,Value).
+
+decode(0, _Module,_Type,_Value,_Erule) ->
+ done;
+decode(N, Module,Type,Value,Erule) ->
+ case Erule of
+ ber ->
+ ?line {ok,_B} = asn1rt:decode(Module,Type,binary_to_list(Value));
+ per ->
+ ?line {ok,_B} = asn1rt:decode(Module,Type,binary_to_list(Value));
+ _ ->
+ ?line {ok,_B} = asn1rt:decode(Module,Type,Value)
+ end,
+ decode(N-1, Module,Type,Value,Erule).
+
+compile_options() ->
+ ?line {ok,Info} = asn1rt:info('H323-MESSAGES'),
+ case lists:keysearch(options,1,Info) of
+ {_,{_,Opts}} ->
+ Opts2 =
+ case lists:member(ber_bin_v2,Opts) of
+ true ->
+ [ber_bin,optimize] ++ lists:delete(optimize,Opts);
+ _ ->
+ Opts
+ end,
+ Opts3 = [X||X <- Opts2,
+ (X == ber orelse
+ X == ber_bin orelse
+ X == per orelse
+ X == per_bin orelse
+ X == optimize orelse
+ X == driver)],
+ lists:flatten(io_lib:format("~p",[Opts3]));
+ _ ->
+ "[]"
+ end.
+
diff --git a/lib/asn1/test/testTypeValueNotation.erl b/lib/asn1/test/testTypeValueNotation.erl
new file mode 100644
index 0000000000..0fc3dc3197
--- /dev/null
+++ b/lib/asn1/test/testTypeValueNotation.erl
@@ -0,0 +1,78 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2002-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testTypeValueNotation).
+
+-export([compile/3]).
+-export([main/2]).
+
+-include("test_server.hrl").
+
+-record('Seq',{octstr, int, bool, enum, bitstr, null, oid, vstr}).
+
+
+compile(Config,Rules,Options) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "SeqTypeRefPrim",
+ [Rules,{outdir,OutDir}]++Options),
+ %% OTP-6695
+ ?line ok = asn1ct:compile(DataDir ++ "ValueTest",
+ [Rules,{outdir,OutDir}]++Options).
+
+
+main(Rules,Option) ->
+
+ io:format("testTypeValueNotation:main/2 with arguments:~nRules: ~w, Option: ~w~n",[Rules,Option]),
+ Value1 = #'Seq'{octstr = [1,2,3,4],
+ int = 12,
+ bool = true,
+ enum = a,
+ bitstr = [1,0,1,0],
+ null = 'NULL',
+ oid = {1,2,55},
+ vstr = "Hello World"},
+ Value2 = #'Seq'{octstr = {'OctStr',[1,2,3,4]},
+ int = {'Int',12},
+ bool = {'Bool',true},
+ enum = {'Enum',a},
+ bitstr = {'BitStr',[1,0,1,0]},
+ null = {'Null','NULL'},
+ oid = {'OId',{1,2,55}},
+ vstr = {'VStr',"Hello World"}},
+ case Option of
+ optimize when Rules == per_bin; Rules == ber_bin ; Rules == uper_bin; Rules == ber_bin_v2 ->
+ ?line {ok,Bytes} =
+ asn1_wrapper:encode('SeqTypeRefPrim','Seq',Value1),
+ ?line {error,_Reason} =
+ asn1_wrapper:encode('SeqTypeRefPrim','Seq',Value2),
+ ?line {ok,Value1} =
+ asn1_wrapper:decode('SeqTypeRefPrim','Seq',Bytes);
+ _ ->
+ ?line {ok,Bytes} =
+ asn1_wrapper:encode('SeqTypeRefPrim','Seq',Value1),
+ ?line {ok,Bytes} =
+ asn1_wrapper:encode('SeqTypeRefPrim','Seq',Value2),
+ ?line {ok,Value1} =
+ asn1_wrapper:decode('SeqTypeRefPrim','Seq',Bytes)
+ end,
+
+ ok.
diff --git a/lib/asn1/test/testX420.erl b/lib/asn1/test/testX420.erl
new file mode 100644
index 0000000000..0fa3e6fb13
--- /dev/null
+++ b/lib/asn1/test/testX420.erl
@@ -0,0 +1,114 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%%-------------------------------------------------------------------
+
+-module(testX420).
+
+-export([compile/3, ticket7759/2]).
+
+-include("test_server.hrl").
+
+
+compile(Erule,Options,Config) ->
+
+ Specs = specs(),
+ ?line 99 = length(Specs),
+ ?line ok = compile_loop(Erule,Specs,Options,Config).
+
+
+
+compile_loop(_Erule,[],_Options,_Config) ->
+ ok;
+compile_loop(Erule,[Spec|Specs],Options,Config)
+ when Erule == ber; Erule == ber_bin; Erule == ber_bin_v2;
+ Erule == per ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ case asn1ct:compile(DataDir ++ "/x420/" ++ Spec,[Erule,{outdir,OutDir},
+ {i,OutDir}]++Options) of
+ ok ->
+ compile_loop(Erule,Specs,Options,Config);
+ Error ->
+ Error
+ end;
+compile_loop(Erule,_Specs,_Options,_Config) ->
+ ok.%%{skip,io_lib:format("Not tested for ~p",[Erule])}.
+
+
+specs() ->
+ ["ACSE-1", "AuthenticationFramework", "BasicAccessControl",
+ "CertificateExtensions", "Character-Coding-Attributes",
+ "Character-Presentation-Attributes", "Character-Profile-Attributes",
+ "Colour-Attributes", "DOR-definition", "DSAOperationalAttributeTypes",
+ "Default-Value-Lists", "DirectoryAbstractService",
+ "DirectoryAccessProtocol", "DirectoryInformationShadowProtocol",
+ "DirectoryOperationalBindingManagementProtocol",
+ "DirectoryOperationalBindingTypes", "DirectoryProtectionMappings",
+ "DirectoryShadowAbstractService", "DirectorySystemProtocol",
+ "DistributedOperations", "Document-Profile-Descriptor",
+ "EnhancedSecurity", "External-References", "GULSProtectionMappings",
+ "GenericProtectingTransferSyntax", "Geo-Gr-Coding-Attributes",
+ "Geo-Gr-Presentation-Attributes", "Geo-Gr-Profile-Attributes",
+ "GulsSecurityExchanges", "GulsSecurityTransformations",
+ "HierarchicalOperationalBindings", "IPMSAbstractService",
+ "IPMSAutoActionTypes", "IPMSExtendedBodyPartTypes",
+ "IPMSExtendedBodyPartTypes2", "IPMSExtendedVoiceBodyPartType",
+ "IPMSFileTransferBodyPartType", "IPMSForwardedContentBodyPartType",
+ "IPMSForwardedReportBodyPartType", "IPMSFunctionalObjects",
+ "IPMSHeadingExtensions", "IPMSInformationObjects",
+ "IPMSMessageStoreAttributes", "IPMSObjectIdentifiers",
+ "IPMSObjectIdentifiers2", "IPMSSecurityExtensions", "IPMSUpperBounds",
+ "ISO-STANDARD-9541-FONT-ATTRIBUTE-SET", "ISO8571-FTAM", "ISO9541-SN",
+ "Identifiers-and-Expressions", "InformationFramework",
+ "Interchange-Data-Elements", "Layout-Descriptors", "Link-Descriptors",
+ "Location-Expressions", "Logical-Descriptors", "MHSObjectIdentifiers",
+ "MHSProtocolObjectIdentifiers", "MSAbstractService",
+ "MSAccessProtocol", "MSGeneralAttributeTypes",
+ "MSGeneralAutoActionTypes", "MSMatchingRules", "MSObjectIdentifiers",
+ "MSUpperBounds", "MTAAbstractService", "MTSAbstractService",
+ "MTSAbstractService88", "MTSAccessProtocol", "MTSObjectIdentifiers",
+ "MTSUpperBounds", "Notation", "ObjectIdentifiers",
+ "OperationalBindingManagement", "PKCS7", "PKCS7BodyPartType",
+ "Protected-Part-Descriptors", "ProtocolObjectIdentifiers",
+ "Raster-Gr-Coding-Attributes", "Raster-Gr-Presentation-Attributes",
+ "Raster-Gr-Profile-Attributes", "Reliable-Transfer-APDU",
+ "Remote-Operations-Abstract-Syntaxes",
+ "Remote-Operations-Generic-ROS-PDUs",
+ "Remote-Operations-Information-Objects-extensions",
+ "Remote-Operations-Information-Objects",
+ "Remote-Operations-Realizations",
+ "Remote-Operations-Useful-Definitions", "SelectedAttributeTypes",
+ "SeseAPDUs", "SpkmGssTokens", "Style-Descriptors", "Subprofiles",
+ "Temporal-Relationships", "Text-Units", "UpperBounds",
+ "UsefulDefinitions", "Videotex-Coding-Attributes"].
+
+ticket7759(_Erule,_Config) ->
+ Encoded = encoded_msg(),
+ io:format("Testing ticket7759 ...~n",[]),
+ ?line {ok, ContentInfo} = asn1_wrapper:decode('PKCS7','ContentInfo',Encoded),
+ ?line {'ContentInfo',_Id,PKCS7_content} = ContentInfo,
+ ?line {ok,_} = asn1_wrapper:decode('PKCS7','SignedData',PKCS7_content),
+ ok.
+
+
+encoded_msg() ->
+ <<48,128,6,9,42,134,72,134,247,13,1,7,2,160,128,48,128,2,1,1,49,11,48,9,6,5,43,14,3,2,26,5,0,48,128,6,9,42,134,72,134,247,13,1,7,1,160,128,36,128,0,0,0,0,0,0, 49,130,1,192,48,130,1,188,2,1,1,48,50,48,38,49,17,48,15,6,3,85,4,3,12,8,65,100,109,105,110,67,65,49,49,17,48,15,6,3,85,4,10,12,8,69,82,73,67,83,83,79,78,2,8,15,151,245,186,21,23,240,96,48,9,6,5,43,14,3,2,26,5,0,160,129,229,48,17,6,10,96,134,72,1,134,248,69,1,9,2,49,3,19,1,51,48,17,6,10,96,134,72,1,134,248,69,1,9,3,49,3,19,1,51,48,24,6,9,42,134,72,134,247,13,1,9,3,49,11,6,9,42,134,72,134,247,13,1,7,1,48,28,6,9,42,134,72,134,247,13,1,9,5,49,15,23,13,48,56,49,50,49,48,48,57,53,52,50,51,90,48,28,6,10,96,134,72,1,134,248,69,1,9,7,49,14,19,12,49,53,50,56,49,52,50,52,48,57,53,53,48,32,6,10,96,134,72,1,134,248,69,1,9,5,49,18,4,16,165,115,177,71,78,88,239,113,78,56,98,98,18,202,217,235,48,32,6,10,96,134,72,1,134,248,69,1,9,6,49,18,4,16,227,174,230,251,43,153,252,65,11,93,231,83,34,18,55,46,48,35,6,9,42,134,72,134,247,13,1,9,4,49,22,4,20,218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,4,129,128,106,233,116,125,140,51,133,173,63,41,54,138,214,211,89,215,169,125,98,77,16,222,216,240,211,79,125,111,87,186,73,63,253,204,107,102,177,63,174,197,224,212,231,172,149,246,33,68,223,67,102,93,64,152,152,5,216,102,247,134,36,197,150,236,57,77,56,138,95,71,204,31,23,149,241,213,78,172,165,249,100,187,12,45,19,57,67,120,54,63,15,239,41,217,127,61,254,60,201,104,68,3,135,214,206,93,253,255,192,94,56,107,68,210,57,61,41,249,47,156,130,244,52,12,163,216,236,69,0,0,0,0,0,0>>.
diff --git a/lib/asn1/test/test_bad_values.erl b/lib/asn1/test/test_bad_values.erl
new file mode 100644
index 0000000000..0190b6ee9a
--- /dev/null
+++ b/lib/asn1/test/test_bad_values.erl
@@ -0,0 +1,29 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_bad_values).
+
+-export([tests/1]).
+-include("test_server.hrl").
+
+tests(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line {error,_R} = asn1ct:compile(DataDir ++ "BadEnumValue1",[{outdir,OutDir}]),
+ ok.
diff --git a/lib/asn1/test/test_compile_options.erl b/lib/asn1/test/test_compile_options.erl
new file mode 100644
index 0000000000..a6e0caa0f1
--- /dev/null
+++ b/lib/asn1/test/test_compile_options.erl
@@ -0,0 +1,169 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(test_compile_options).
+
+-include("test_server.hrl").
+
+
+-export([wrong_path/1,comp/2,path/1,ticket_6143/1,noobj/1,
+ record_name_prefix/1]).
+
+%% OTP-5689
+wrong_path(Config) ->
+ Pid=spawn(?MODULE,comp,[self(),Config]),
+ receive
+ _Err ->
+ ok
+ after 10000 ->
+ exit(Pid,failure),
+ error
+ end.
+
+comp(Parent,Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ %%?line true = code:add_patha(?config(priv_dir,Config)),
+ io:format("DataDir: ~p~n",[DataDir]),
+ ?line Err=asn1ct:compile(DataDir++"NoImport",[{i,OutDir},{i,filename:join([DataDir,"subdir"])},{outdir,OutDir}]),
+ io:format("compiling process terminated with value: ~p~n",[Err]),
+ Parent!Err.
+
+%% OTP-5701
+
+path(Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ {ok,CWD} = file:get_cwd(),
+ ?line file:set_cwd(filename:join([DataDir,subdir])),
+
+ %%?line ok=asn1ct:compile(filename:join([DataDir,"../MyMerge.set.asn"]),[{inline,mymerge},{outdir,OutDir}]),
+ ?line ok=asn1ct:compile("../MyMerge.set.asn",[{inline,mymerge},{outdir,OutDir}]),
+
+ ?line ok=outfiles_check(OutDir),
+ ?line outfiles_remove(OutDir),
+
+ file:set_cwd(filename:join([DataDir,subdir,subsubdir])),
+ ?line ok = asn1ct:compile('../../MyMerge.set.asn',[{inline,mymerge},{i,'..'},{outdir,OutDir}]),
+
+ ?line ok=outfiles_check(OutDir,outfiles2()),
+ file:set_cwd(CWD),
+ ok.
+
+ticket_6143(Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ io:format("DataDir: ~p~n",[DataDir]),
+
+ ?line ok=asn1ct:compile(filename:join([DataDir,"AA1"]),[{i,DataDir},{outdir,OutDir}]),
+ ok.
+
+noobj(Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+
+ code:purge('P-Record'),
+ file:delete(filename:join([OutDir,'P-Record.erl'])),
+ file:delete(filename:join([OutDir,'P-Record.beam'])),
+ ?line ok=asn1ct:compile(filename:join([DataDir,"P-Record"]),
+ [noobj,{outdir,OutDir}]),
+% ?line false = code:is_loaded('P-Record'),
+ ?line {ok,_} = file:read_file_info(filename:join([OutDir,
+ "P-Record.erl"])),
+ ?line {error,enoent} =
+ file:read_file_info(filename:join([OutDir,"P-Record.beam"])),
+ ?line {ok,_} = c:c(filename:join([OutDir,'P-Record']),
+ [{i,OutDir},{outdir,OutDir}]),
+ ?line {file,_} = code:is_loaded('P-Record'),
+
+ code:purge('P-Record'),
+ code:delete('P-Record'),
+ code:purge('p_record'),
+ code:delete('p_record'),
+ file:delete(filename:join([OutDir,'P-Record.erl'])),
+ file:delete(filename:join([OutDir,'P-Record.beam'])),
+ file:delete(filename:join([OutDir,'p_record.erl'])),
+ file:delete(filename:join([OutDir,'p_record.beam'])),
+ ?line ok=asn1ct:compile(filename:join([DataDir,"p_record.set.asn"]),[asn1config,ber_bin,optimize,noobj,{outdir,OutDir}]),
+%% ?line false = code:is_loaded('P-Record'),
+%% ?line false = code:is_loaded('p_record'),
+ ?line {error,enoent} =
+ file:read_file_info(filename:join([OutDir,"P-Record.beam"])),
+ ?line {error,enoent} =
+ file:read_file_info(filename:join([OutDir,"P-Record.erl"])),
+ ?line {error,enoent} =
+ file:read_file_info(filename:join([OutDir,"p_record.beam"])),
+ io:format("read_file_info: p_record.erl~n",[]),
+ ?line {ok,_} =
+ file:read_file_info(filename:join([OutDir,"p_record.erl"])),
+ io:format("c:c: p_record.erl~n",[]),
+ ?line {ok,_} = c:c(filename:join([OutDir,'p_record']),
+ [{i,OutDir},{outdir,OutDir}]),
+ io:format("code:is_loaded: p_record.erl~n",[]),
+ ?line {file,_} = code:is_loaded('p_record'),
+ io:format("file:delete: p_record.erl~n",[]),
+ file:delete(filename:join([OutDir,'p_record.erl'])),
+ file:delete(filename:join([OutDir,'p_record.beam'])).
+
+outfiles_check(OutDir) ->
+ outfiles_check(OutDir,outfiles1()).
+
+
+outfiles_check(_OutDir,[])->
+ ok;
+outfiles_check(OutDir,[H|T]) ->
+ io:format("File: ~p~n",[filename:join([OutDir,H])]),
+ ?line {ok,_}=file:read_file_info(filename:join([OutDir,H])),
+ outfiles_check(OutDir,T).
+
+outfiles1() ->
+ ["mymerge.erl","mymerge.beam","MyMerge.asn1db","MyMerge.beam",
+ "MyMerge.erl","MyMerge.hrl"].
+outfiles2() ->
+ ["MyMerge.beam","mymerge.erl","MyMerge.asn1db","MyMerge.erl",
+ "mymerge.beam"].
+
+outfiles_remove(OutDir) ->
+ lists:foreach(fun(F)-> file:delete(filename:join([OutDir,F])) end,
+ outfiles1()).
+
+record_name_prefix(Config) ->
+ DataDir = ?config(data_dir,Config),
+ OutDir = ?config(priv_dir,Config),
+ ok = b_SeqIn(DataDir,OutDir),
+ ok = a_SeqIn(DataDir,OutDir).
+
+b_SeqIn(DataDir,OutDir) ->
+ asn1ct:compile(filename:join([DataDir,'Seq']),
+ [{record_name_prefix,"b_"},{outdir,OutDir}]),
+ io:format("FileName: ~p~nOutDir:~p~n",
+ [filename:join([DataDir,'b_SeqIn']),OutDir]),
+ ?line {ok,_} = compile:file(filename:join([DataDir,'b_SeqIn']),
+ [{i,OutDir}]),
+ ?line 'b_SeqIn' = b_SeqIn:record_name(),
+ ok.
+
+a_SeqIn(DataDir,OutDir) ->
+ asn1ct:compile(filename:join([DataDir,'Seq']),
+ [{record_name_prefix,"a_"},{outdir,OutDir}]),
+ ?line {ok,_} = compile:file(filename:join([DataDir,'a_SeqIn']),
+ [{i,OutDir}]),
+ ?line 'a_SeqIn' = a_SeqIn:record_name(),
+ ok.
diff --git a/lib/asn1/test/test_driver_load.erl b/lib/asn1/test/test_driver_load.erl
new file mode 100644
index 0000000000..37a7e36a45
--- /dev/null
+++ b/lib/asn1/test/test_driver_load.erl
@@ -0,0 +1,58 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_driver_load).
+
+-export([compile/2,test/2,encode/0]).
+
+-include("test_server.hrl").
+
+
+test(per_bin,0) ->
+ ok;
+test(per_bin,N) ->
+ spawn(?MODULE,encode,[]),
+ test(per_bin,N-1);
+test(_,_) ->
+ ok.
+
+compile(Config,per_bin) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "P-Record",
+ [per_bin,optimize,{outdir,OutDir}]);
+compile(_,Erule) ->
+ {skip,lists:concat(["not implemented for version: ",Erule])}.
+
+
+encode() ->
+ ?line Msg = msg(),
+ ?line {ok,_}=asn1_wrapper:encode('P-Record','PersonnelRecord',Msg),
+ ok.
+
+msg() ->
+ {'PersonnelRecord',{'Name',"John","P","Smith"},
+ "Director",
+ 51,
+ "19710917",
+ {'Name',"Mary","T","Smith"},
+ [{'ChildInformation',{'Name',"Ralph","T","Smith"},"19571111"},{'ChildInformation',{'Name',"Susan","B","Jones"},"19590717"}]}.
+
diff --git a/lib/asn1/test/test_inline.erl b/lib/asn1/test/test_inline.erl
new file mode 100644
index 0000000000..aac003baf6
--- /dev/null
+++ b/lib/asn1/test/test_inline.erl
@@ -0,0 +1,285 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_inline).
+
+-export([compile/3,main/1,inline1/3,performance/1,performance2/0]).
+-export([mvrasn_inlined_encdec/2,mvrasn_encdec/2,
+ mi_encdec/2,m_encdec/2]).
+
+-include("test_server.hrl").
+-define(times, 5000).
+-define(times2, 50000).
+
+compile(Config,_Rules,Opt) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line true = code:add_patha(DataDir),
+
+ ?line ok=asn1ct:compile(DataDir++"Mvrasn.set.asn",[{inline,mvrasn_inlined},{outdir,OutDir}]++Opt),
+ ?line ok=asn1ct:compile(DataDir++"Mvrasn-11-6.asn",[{outdir,OutDir}]++Opt),
+
+ ?line ok=asn1ct:compile(DataDir++"Mod.set.asn",[{inline,m},{outdir,OutDir}]++Opt),
+ ?line ok=remove_inlined_files(OutDir,[filename:join([OutDir,X])||X<-["m.erl","m.beam"]]),
+ ?line ok=asn1ct:compile(DataDir++"Mod.set.asn",[inline,{outdir,OutDir}]++Opt),
+ ?line ok=remove_inlined_files(OutDir,[]).
+
+inline1(Config,Rule,Opt) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ?line ok=asn1ct:compile(DataDir++"P-Record",
+ [{inline,'inlined_P_Record'},
+ {outdir,OutDir}]++Opt),
+ ?line test_inline1(),
+
+ ?line ok=remove_inlined_files2(OutDir,ber_bin_v2),
+
+ case Rule of
+ ber_bin_v2 ->
+ ?line ok=asn1ct:compile(DataDir++"P-Record",
+ [inline,asn1config,ber_bin,optimize,
+ {outdir,OutDir}]++Opt),
+ ?line test_inline2(Rule,'P-Record'),
+ ?line remove_inlined_files3(OutDir,Rule),
+ io:format("compiling ~p~nwith ~p~n",
+ [DataDir ++ "p_record.set.asn",
+ [inline,asn1config,ber_bin,optimize,{outdir,OutDir}]++Opt]),
+ ?line ok = asn1ct:compile(DataDir ++ "p_record.set.asn",
+ [inline,asn1config,ber_bin,optimize,
+ {outdir,OutDir}]++Opt),
+ ?line test_inline2(Rule,'p_record'),
+ ?line remove_inlined_files4(OutDir,Rule);
+ _ ->
+ ok
+ end.
+
+main(_Erule) ->
+ ?line Val = val(),
+ ?line {ok,Bytes}=asn1_wrapper:encode(mvrasn_inlined,'InsertSubscriberDataArg',Val),
+ ?line {ok,_Val2}=asn1_wrapper:decode(mvrasn_inlined,'InsertSubscriberDataArg',Bytes).
+
+test_inline1() ->
+ PRecMsg = {'PersonnelRecord',{'Name',"Sven","S","Svensson"},
+ "manager",123,"20000202",{'Name',"Inga","K","Svensson"},
+ asn1_DEFAULT},
+ ?line {ok,Bytes}=asn1_wrapper:encode('inlined_P_Record','PersonnelRecord',
+ PRecMsg),
+ ?line {ok,_}=asn1_wrapper:decode('inlined_P_Record',
+ 'PersonnelRecord',Bytes).
+
+test_inline2(ber_bin_v2,Mod) ->
+ PRecMsg = {'PersonnelRecord',{'Name',"Sven","S","Svensson"},
+ "manager",123,"20000202",{'Name',"Inga","K","Svensson"},
+ asn1_DEFAULT},
+ ?line {ok,Bytes} = Mod:encode('PersonnelRecord',PRecMsg),
+ ?line {ok,_} = Mod:sel_dec(list_to_binary(Bytes));
+test_inline2(_,_) ->
+ ok.
+
+val() ->
+ ?line {ok,Val} = asn1ct:value('Mvrasn-11-6','InsertSubscriberDataArg'),
+ Val.
+
+performance(Config) ->
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line true = code:add_patha(?config(data_dir,Config)),
+ ?line Val = val(),
+ %% warm up
+ timer:tc(?MODULE,mvrasn_inlined_encdec,[2,Val]),
+ %% performance test
+ ?line {Time1,ok}=timer:tc(?MODULE,mvrasn_inlined_encdec,[?times,Val]),
+ %% warm up
+ timer:tc(?MODULE,mvrasn_encdec,[2,Val]),
+ %% performance test
+ ?line {Time2,ok}=timer:tc(?MODULE,mvrasn_encdec,[?times,Val]),
+
+ ?line Comment = "inlined_code: "++
+ integer_to_list(round(Time1/?times))++
+ " micro,<br>original_code: "++
+ integer_to_list(round(Time2/?times))++
+% " micro,~ninlined_code[inline]: "++
+% integer_to_list(round(Time3/?times))++
+ " micro",
+ {comment,Comment}.
+
+
+mvrasn_inlined_encdec(0,_) ->
+ ok;
+mvrasn_inlined_encdec(N,V) ->
+ ?line {ok,B}=mvrasn_inlined:encode('InsertSubscriberDataArg',V),
+ ?line {ok,_R}=mvrasn_inlined:decode('InsertSubscriberDataArg',B),
+ mvrasn_inlined_encdec(N-1,V).
+
+mvrasn_encdec(0,_) ->
+ ok;
+mvrasn_encdec(N,V) ->
+ ?line {ok,B}='Mvrasn-11-6':encode('InsertSubscriberDataArg',V),
+ ?line {ok,_R}='Mvrasn-11-6':decode('InsertSubscriberDataArg',B),
+ mvrasn_encdec(N-1,V).
+
+%% mvrasn_inlined_i_encdec(0,_) ->
+%% ok;
+%% mvrasn_inlined_i_encdec(N,V) ->
+%% {ok,B}=mvrasn_inlined_i:encode('InsertSubscriberDataArg',V),
+%% {ok,_R}=mvrasn_inlined_i:decode('InsertSubscriberDataArg',B),
+%% mvrasn_inlined_i_encdec(N-1,V).
+
+performance2() ->
+ Val = mval(),
+ %% warm up
+ timer:tc(?MODULE,mi_encdec,[?times,Val]),
+ %% performance test
+ {Time1,_R1}=timer:tc(?MODULE,mi_encdec,[?times2,Val]),
+ %% warm up
+ timer:tc(?MODULE,m_encdec,[?times,Val]),
+ %% performance test
+ {Time2,_R2}=timer:tc(?MODULE,m_encdec,[?times2,Val]),
+ ?line Comment = "inlined_code: "++
+ integer_to_list(round(Time1/?times2))++
+ " micro,<br>original_code: "++
+ integer_to_list(round(Time2/?times2))++
+ " micro<br>"++
+ "The inlined code was "++
+ integer_to_list(round(((Time2-Time1)/Time2)*100))++
+ " % faster than the original code.",
+ {comment,Comment}.
+
+mi_encdec(0,_) ->
+ ok;
+mi_encdec(N,Val) ->
+ {ok,B}=m:encode('L',Val),
+ {ok,_R}=m:decode('L',B),
+% io:format("a"),
+ mi_encdec(N-1,Val).
+
+m_encdec(0,_) ->
+ ok;
+m_encdec(N,Val) ->
+ {ok,B}='Mod1':encode('L',Val),
+ {ok,_R}='Mod1':decode('L',B),
+ m_encdec(N-1,Val).
+
+
+-record('L', {country, region, name}).
+-record('OtherName', {locationName, thingName}).
+-record('FamilyName', {prefix, secondname}).
+-record('Lang', {l}).
+-record('Inhabitant', {name, country}).
+-record('Country', {name, language}).
+-record('PersonName', {name1, name2}).
+-record('LocName', {region, name}).
+-record('Reg', {name, inhabitants}).
+
+
+mval() ->
+ 'L'().
+'L'() ->
+ #'L'{
+ country='Co'(),
+ region='Reg'(),
+ name='Name'(othername)}.
+'Co'() ->
+ 'Country'().
+'Country'()->
+ #'Country'{name='Name'(othername),
+ language='Lang'()}.
+'Lang'()->
+ #'Lang'{l="englsh"}.
+'Reg'() ->
+ #'Reg'{
+ name='Name'(othername),
+ inhabitants='Inhabitants'()}.
+'Inhabitants'()->
+ lists:duplicate(5,'Inhabitant'()).
+'Inhabitant'()->
+ #'Inhabitant'{name='Name'(person),
+ country='Country'()}.
+'Name'(person) ->
+ {person,'PersonName'()};
+'Name'(othername) ->
+ {othername,'OtherName'()}.
+'PersonName'()->
+ #'PersonName'{name1='FirstName'(firstname),
+ name2='FamilyName'()}.
+'OtherName'()->
+ #'OtherName'{locationName='LocName'(),
+ thingName='ThingName'()}.
+'FirstName'(firstname)->
+ {firstname,"Henry"};
+'FirstName'(nickname) ->
+ {nickname,"nick"}.
+'FamilyName'() ->
+ #'FamilyName'{prefix=none,
+ secondname="Lloyd"}.
+'ThingName'()->
+ "Enkoping".
+'LocName'()->
+ #'LocName'{
+ region=svealand,
+ name="Enkoping"}.
+
+remove_inlined_files(Dir,Files) ->
+ ModList=[filename:join([Dir,X])||X<-["Mod"]],
+ FileList=Files++ mods2files(ModList,".asn1db")++
+ mods2files(ModList,".beam")++
+ mods2files(ModList,".erl")++mods2files(ModList,".hrl"),
+ lists:foreach(fun(X) ->
+ io:format("X: ~p~n",[X]),
+ ?line ok=file:delete(X)
+ end,FileList),
+ ok.
+mods2files(ModList,Extension) ->
+ [X++Extension||X<-ModList].
+
+
+remove_inlined_files2(Dir,Rule) ->
+ ?line ok=remove_inlined_files3(Dir,Rule),
+ TargetErl=filename:join([Dir,"inlined_P_Record.erl"]),
+ TargetBeam=filename:join([Dir,"inlined_P_Record.beam"]),
+ lists:foreach(fun(X) ->
+ ?line ok=file:delete(X)
+ end,[TargetErl,TargetBeam]),
+ ok.
+remove_inlined_files3(Dir,ber_bin_v2) ->
+ Erl=filename:join([Dir,"P-Record.erl"]),
+ Beam=filename:join([Dir,"P-Record.beam"]),
+ Asn1DB=filename:join([Dir,"P-Record.asn1db"]),
+ Hrl=filename:join([Dir,"P-Record.hrl"]),
+ lists:foreach(fun(X) ->
+ ?line ok=file:delete(X)
+ end,[Erl,Beam,Asn1DB,Hrl]),
+ ok;
+remove_inlined_files3(_,_) ->
+ ok.
+
+remove_inlined_files4(Dir,ber_bin_v2) ->
+ Erl=filename:join([Dir,"p_record.erl"]),
+ Beam=filename:join([Dir,"p_record.beam"]),
+ Asn1DB=filename:join([Dir,"p_record.asn1db"]),
+ Hrl=filename:join([Dir,"p_record.hrl"]),
+ ErlBak=filename:join([Dir,"p_record.erl.bak"]),
+ file:delete(ErlBak),
+ lists:foreach(fun(X) ->
+ ?line ok=file:delete(X)
+ end,[Erl,Beam,Asn1DB,Hrl]),
+ ok;
+remove_inlined_files4(_,_) ->
+ ok.
diff --git a/lib/asn1/test/test_modified_x420.erl b/lib/asn1/test/test_modified_x420.erl
new file mode 100644
index 0000000000..93fcd73eaf
--- /dev/null
+++ b/lib/asn1/test/test_modified_x420.erl
@@ -0,0 +1,67 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_modified_x420).
+
+%-compile(export_all).
+-export([compile/1, test_io/1]).
+
+-include("test_server.hrl").
+
+compile(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+
+ ok = asn1ct:compile(filename:join([DataDir,modified_x420,"PKCS7"]),[der,{outdir,OutDir}]),
+ ok = asn1ct:compile(filename:join([DataDir,modified_x420,"InformationFramework"]),[der,{outdir,OutDir}]),
+ ok = asn1ct:compile(filename:join([DataDir,modified_x420,"AuthenticationFramework"]),[der,{outdir,OutDir}]).
+
+test_io(Config) ->
+ io:format("~p~n~n", [catch test(Config)]).
+
+test(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+% ?line OutDir = ?config(priv_dir,Config),
+
+ ?line Der = read_pem(filename:join([DataDir,modified_x420,"p7_signed_data.pem"])),
+ ?line {ok, {_,_,SignedData}} = 'PKCS7':decode('ContentInfo', Der),
+ ?line {ok,_} = 'PKCS7':decode('SignedData', SignedData).
+
+read_pem(File) ->
+ ?line {ok, Bin} = file:read_file(File),
+ ?line ssl_base64:join_decode(lists:flatten(extract_base64(Bin))).
+
+
+
+extract_base64(Binary) ->
+ extract_base64_lines(string:tokens(binary_to_list(Binary), "\n")).
+
+extract_base64_lines(["-----BEGIN"++_ | Lines]) ->
+ take_base64_lines(Lines, _Acc = []);
+extract_base64_lines([_|Lines]) ->
+ extract_base64_lines(Lines);
+extract_base64_lines([]) ->
+ [].
+
+take_base64_lines(["-----END"++_|_], Acc) ->
+ lists:reverse(Acc);
+take_base64_lines([L|Lines], Acc) ->
+ take_base64_lines(Lines, [L|Acc]);
+take_base64_lines([], Acc) ->
+ lists:reverse(Acc).
diff --git a/lib/asn1/test/test_partial_incomplete_decode.erl b/lib/asn1/test/test_partial_incomplete_decode.erl
new file mode 100644
index 0000000000..9fd078e952
--- /dev/null
+++ b/lib/asn1/test/test_partial_incomplete_decode.erl
@@ -0,0 +1,253 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_partial_incomplete_decode).
+
+-export([compile/3,test/2]).
+
+-include("test_server.hrl").
+
+
+
+compile(Config,Rule,Opt) when Rule == ber_bin_v2 ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "PartialDecSeq.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "PartialDecSeq2.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "PartialDecSeq3.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "PartialDecMyHTTP.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "MEDIA-GATEWAY-CONTROL.asn",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt),
+ ?line ok = asn1ct:compile(DataDir ++ "P-Record",
+ [Rule,{outdir,OutDir},{i,DataDir},
+ asn1config]++Opt);
+compile(_,Rule,_) ->
+ {skip,lists:concat(["not implemented yet for version: ",Rule])}.
+
+test(ber_bin_v2,Config) ->
+ FMsg = msg('F'),
+ ?line {ok,Bytes} = asn1_wrapper:encode('PartialDecSeq','F',FMsg),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecSeq','F',Bytes),
+ ?line {ok,IncFMsg} =
+ 'PartialDecSeq':decode_F_fb_incomplete(list_to_binary(Bytes)),
+ ?line decode_parts('F',IncFMsg),
+
+ DMsg = msg('D'),
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PartialDecSeq','D',DMsg),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecSeq','D',Bytes2),
+ ?line {ok,IncDMsg} =
+ 'PartialDecSeq':decode_D_incomplete(list_to_binary(Bytes2)),
+ ?line decode_parts('D',IncDMsg),
+
+ ?line {ok,IncF2Msg} =
+ 'PartialDecSeq':decode_F_fb_exclusive2(list_to_binary(Bytes)),
+ ?line decode_parts('F2',IncF2Msg),
+
+ F3Msg = msg('F3'),
+ ?line {ok,BytesF3} = asn1_wrapper:encode('PartialDecSeq','F',F3Msg),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecSeq','F',BytesF3),
+ ?line {ok,IncF3Msg} =
+ 'PartialDecSeq':decode_F_fb_exclusive3(list_to_binary(BytesF3)),
+ ?line decode_parts('F3',IncF3Msg),
+
+
+ AMsg =msg('A'),
+ ?line {ok,Bytes3} = asn1_wrapper:encode('PartialDecSeq2','A',AMsg),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecSeq2','A',Bytes3),
+ ?line {ok,IncFMsg3} =
+ 'PartialDecSeq2':decode_A_c_b_incomplete(list_to_binary(Bytes3)),
+ ?line decode_parts('A',IncFMsg3),
+
+ MyHTTPMsg = msg('GetRequest'),
+ ?line {ok,Bytes4} = asn1_wrapper:encode('PartialDecMyHTTP',
+ 'GetRequest',MyHTTPMsg),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecMyHTTP','GetRequest',
+ Bytes4),
+ ?line {ok,IncFMsg4} =
+ 'PartialDecMyHTTP':decode_GetRequest_incomplete(list_to_binary(Bytes4)),
+ ?line decode_parts('GetRequest',IncFMsg4),
+
+ MsgS1_1 = msg('S1_1'),
+ ?line {ok,Bytes5} = asn1_wrapper:encode('PartialDecSeq3','S1',MsgS1_1),
+ ?line {ok,_} = asn1_wrapper:decode('PartialDecSeq3','S1',Bytes5),
+ ?line {ok,IncFMsg5} =
+ 'PartialDecSeq3':decode_S1_incomplete(list_to_binary(Bytes5)),
+ ?line decode_parts('S1_1',IncFMsg5),
+
+ MsgS1_2 = msg('S1_2'),
+ ?line {ok,Bytes6} = asn1_wrapper:encode('PartialDecSeq3','S1',MsgS1_2),
+ ?line {ok,IncFMsg6} =
+ 'PartialDecSeq3':decode_S1_incomplete(list_to_binary(Bytes6)),
+ ?line ok = decode_parts('S1_2',IncFMsg6),
+
+ %% test of MEDIA-GATEWAY-CONTROL
+ test_megaco(Config),
+ ok;
+test(Erule,_) ->
+ {skip,lists:concat(["not implemented yet for version: ",Erule])}.
+
+test_megaco(Config) ->
+ ?line DataDir = ?config(data_dir,Config),
+ Mod='MEDIA-GATEWAY-CONTROL',
+ ?line {ok,FilenameList} = file:list_dir(filename:join([DataDir,
+ megacomessages])),
+ %% remove any junk files that may be in the megacomessage directory
+ Pred = fun(X) ->
+ case lists:reverse(X) of
+ [$l,$a,$v,$.|_R] ->true;
+ _ -> false
+ end
+ end,
+ MegacoMsgFilenameList = lists:filter(Pred,FilenameList),
+ Fun = fun(F) ->
+ M = read_msg(filename:join([DataDir,megacomessages,F])),
+ ?line {ok,B} = asn1_wrapper:encode(Mod,element(1,M),M),
+ ?line exclusive_decode(list_to_binary(B),F)
+ end,
+ ?line lists:foreach(Fun,MegacoMsgFilenameList),
+ ok.
+
+exclusive_decode(Bin,F) ->
+ Mod='MEDIA-GATEWAY-CONTROL',
+ io:format("Encoding message: ~p~n",[F]),
+ ?line {ok,{_,_,{_,_VsnNo,{MsgMidKey,MsgMid},{MsgMBodyKey,MsgMBody}}}}=
+ Mod:decode_MegacoMessage_exclusive(Bin),
+ ?line {ok,_} = Mod:decode_part(MsgMidKey,MsgMid),
+ ?line {ok,_} = Mod:decode_part(MsgMBodyKey,MsgMBody),
+ ok.
+
+
+read_msg(File) ->
+ case file:read_file(File) of
+ {ok,Bin} ->
+ binary_to_term(Bin);
+ _ ->
+ io:format("couldn't read file ~p~n",[File])
+ end.
+
+decode_parts('F',PartDecMsg) ->
+ ?line {fb,{'E',35,{NameE_b,ListBinE_b},false,{NameE_d,BinE_d}}} = PartDecMsg,
+ ?line {ok,[{'D',3,true}|_]} = 'PartialDecSeq':decode_part(NameE_b,ListBinE_b),
+ ?line {ok,{'D',3,true}} = 'PartialDecSeq':decode_part(NameE_b,
+ hd(ListBinE_b)),
+ ?line {ok,{da,[{'A',16,{'D',17,true}}]}} =
+ 'PartialDecSeq':decode_part(NameE_d,BinE_d),
+ ok;
+decode_parts('F2',PartDecMsg) ->
+ ?line {fb,{'E',35,{E_bkey,E_b},false,{da,{E_d_akey,E_d_a}}}} = PartDecMsg,
+ ?line {ok,[{'D',3,true},{'D',4,false},{'D',5,true},{'D',6,true},{'D',7,false},{'D',8,true},{'D',9,true},{'D',10,false},{'D',11,true},{'D',12,true},{'D',13,false},{'D',14,true}]} = 'PartialDecSeq':decode_part(E_bkey,E_b),
+ ?line {ok,[{'A',16,{'D',17,true}}]} = 'PartialDecSeq':decode_part(E_d_akey,E_d_a);
+
+decode_parts('F3',PartDecMsg) ->
+ ?line {fb,{'E',10,{E_bkey,E_b},false,{dc,{'E_d_dc',13,true,{E_d_dc_dcckey,E_d_dc_dcc}}}}} = PartDecMsg,
+ ?line {ok,[{'D',11,true},{'D',12,false}]} = 'PartialDecSeq':decode_part(E_bkey,E_b),
+ ?line {ok,{'E_d_dc_dcc',14,15}} = 'PartialDecSeq':decode_part(E_d_dc_dcckey,E_d_dc_dcc);
+
+
+decode_parts('D',PartDecMsg) ->
+ ?line {'D',{NameD_a,BinD_a},true} = PartDecMsg,
+ ?line {ok,123} = 'PartialDecSeq':decode_part(NameD_a,BinD_a),
+ ok;
+decode_parts('A',PartDecMsg) ->
+ ?line {'A',12,{c,{'S',true,false}},{b,{NameA_c_b,BinA_c_b}}} = PartDecMsg,
+ ?line {ok,{'A_c_b',false,false}} =
+ 'PartialDecSeq2':decode_part(NameA_c_b,BinA_c_b),
+ ok;
+decode_parts('GetRequest',PartDecMsg) ->
+ ?line {'GetRequest',true,false,
+ {'AcceptTypes',[html,'plain-text',gif,jpeg],
+ {NameAcceptTypes_others,ListBinAcceptTypes_others}},
+ "IamfineThankYOu"} = PartDecMsg,
+ ?line {ok,["hell","othe","reho","peyo","uare","fine"]} =
+ 'PartialDecMyHTTP':decode_part(NameAcceptTypes_others,
+ ListBinAcceptTypes_others),
+ ?line {ok,"hell"} =
+ 'PartialDecMyHTTP':decode_part(NameAcceptTypes_others,
+ hd(ListBinAcceptTypes_others)),
+ ok;
+decode_parts('S1_1',PartDecMsg) ->
+ ?line {'S1',14,{'S2',false,12,{NameS2c,BinS2c}},
+ {_,{NameS1c_a,ListBinS1c_a}},{NameS1d,BinS1d}} = PartDecMsg,
+ ?line {ok,[{'S3',10,"PrintableString","OCTETSTRING",
+ [one,two,three,four]}|_Rest1]} =
+ 'PartialDecSeq3':decode_part(NameS2c,BinS2c),
+ ?line {ok,[{'S3',10,"PrintableString","OCTETSTRING",
+ [one,two,three,four]}|_Rest2]} =
+ 'PartialDecSeq3':decode_part(NameS1c_a,ListBinS1c_a),
+ ?line {ok,{'S3',10,"PrintableString","OCTETSTRING",
+ [one,two,three,four]}} =
+ 'PartialDecSeq3':decode_part(NameS1c_a,hd(ListBinS1c_a)),
+ ?line {ok,[{'Name',"Hans","HCA","Andersen"}|_Rest3]} =
+ 'PartialDecSeq3':decode_part(NameS1d,BinS1d),
+ ok;
+decode_parts('S1_2',PartDecMsg) ->
+ ?line {'S1',14,{'S2',false,12,_S2c},S1c_b,{NameS1d,BinS1d}} = PartDecMsg,
+ ?line {b,{'C1_b',11,true,
+ {'S4',{'Name',"Hans","HCA","Andersen"},"MSc"}}}=S1c_b,
+ ?line {ok,[{'Name',"Hans","HCA","Andersen"}|_Rest3]} =
+ 'PartialDecSeq3':decode_part(NameS1d,BinS1d),
+ ok.
+
+
+
+msg('F') ->
+ {'F',{fb,{'E',35,[{'D',3,true},{'D',4,false},{'D',5,true},{'D',6,true},{'D',7,false},{'D',8,true},{'D',9,true},{'D',10,false},{'D',11,true},{'D',12,true},{'D',13,false},{'D',14,true}],false,{da,[{'A',16,{'D',17,true}}]}}}};
+
+msg('F3') ->
+ {fb,{'E',10,[{'D',11,true},{'D',12,false}],false,{dc,{'E_d_dc',13,true,{'E_d_dc_dcc',14,15}}}}};
+
+msg('D') ->
+ {'D',123,true};
+
+msg('A') ->
+ {'A',12,{c,{'S',true,false}},{b,{'A_c_b',false,false}}};
+
+msg('GetRequest') ->
+ {'GetRequest',true,false,{'AcceptTypes',[1,1,1,1],["hell","othe","reho","peyo","uare","fine"]},"IamfineThankYOu"};
+
+msg('S1_1') ->
+ {'S1',14,msg('S2'),msg('C1_a'),msg('SO1')};
+msg('S1_2') ->
+ {'S1',14,msg('S2'),msg('C1_b'),msg('SO1')};
+msg('S2') ->
+ {'S2',false,12,[msg('S3'),msg('S3'),msg('S3')]};
+msg('C1_a') ->
+ {a,[msg('S3'),msg('S3'),msg('S3')]};
+msg('C1_b') ->
+ {b,{'C1_b',11,true,msg('S4')}};
+msg('S3') ->
+ {'S3',10,"PrintableString","OCTETSTRING",[1,1,1,1]};
+msg('S4') ->
+ {'S4',msg('Name'),"MSc"};
+msg('SO1') ->
+ [msg('Name'),msg('Name'),msg('Name')];
+msg('Name') ->
+ {'Name',"Hans","HCA","Andersen"}.
diff --git a/lib/asn1/test/test_selective_decode.erl b/lib/asn1/test/test_selective_decode.erl
new file mode 100644
index 0000000000..94d3d5f34a
--- /dev/null
+++ b/lib/asn1/test/test_selective_decode.erl
@@ -0,0 +1,65 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_selective_decode).
+
+-export([test/2]).
+
+-include("test_server.hrl").
+
+
+test(ber_bin_v2,_Config) ->
+ FMsg = msg('F'),
+ ?line {ok,Bytes} = asn1_wrapper:encode('PartialDecSeq','F',FMsg),
+ ?line {ok,3} =
+ 'PartialDecSeq':selected_decode_F1(list_to_binary(Bytes)),
+ ?line {ok,[{'D',3,true},{'D',4,false},{'D',5,true},{'D',6,true},{'D',7,false},{'D',8,true},{'D',9,true},{'D',10,false},{'D',11,true},{'D',12,true},{'D',13,false},{'D',14,true}]} = 'PartialDecSeq':selected_decode_F2(list_to_binary(Bytes)),
+ ?line {ok,{'D',3,true}} = 'PartialDecSeq':selected_decode_F3(list_to_binary(Bytes)),
+
+ ?line {ok,17} = 'PartialDecSeq':selected_decode_F4(list_to_binary(Bytes)),
+
+ EMsg = msg('E'),
+ ?line {ok,Bytes2} = asn1_wrapper:encode('PartialDecSeq','E',EMsg),
+ ?line {ok,14} = 'PartialDecSeq':selected_decode_E1(list_to_binary(Bytes2)),
+ MGCMsg = msg('M-G-C'),
+ ?line {ok,Bytes3} = asn1_wrapper:encode('MEDIA-GATEWAY-CONTROL',
+ 'MegacoMessage',MGCMsg),
+ ?line {ok,1} = 'MEDIA-GATEWAY-CONTROL':decode_MegacoMessage_selective(list_to_binary(Bytes3)),
+
+ PRecMsg = {'PersonnelRecord',{'Name',"Sven","S","Svensson"},
+ "manager",123,"20000202",{'Name',"Inga","K","Svensson"},
+ asn1_DEFAULT},
+ ?line {ok,Bytes4} = asn1_wrapper:encode('P-Record','PersonnelRecord',
+ PRecMsg),
+ ?line {ok,_} = 'P-Record':sel_dec(list_to_binary(Bytes4)),
+
+ ok;
+test(Erule,_) ->
+ {skip,lists:concat(["not implemented yet for version: ",Erule])}.
+
+
+
+msg('F') ->
+ {'F',{fb,{'E',35,[{'D',3,true},{'D',4,false},{'D',5,true},{'D',6,true},{'D',7,false},{'D',8,true},{'D',9,true},{'D',10,false},{'D',11,true},{'D',12,true},{'D',13,false},{'D',14,true}],false,{da,[{'A',16,{'D',17,true}}]}}}};
+
+msg('E') ->
+ {'E',10,[{'D',11,true},{'D',12,false}],false,{dc,{'E_d_dc',13,true,{'E_d_dc_dcc',14,15}}}};
+
+msg('M-G-C') ->
+ {'MegacoMessage',asn1_NOVALUE,{'Message',1,{ip4Address,{'IP4Address',[125,125,125,111],55555}},{transactions,[{transactionReply,{'TransactionReply',50007,asn1_NOVALUE,{actionReplies,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,[{auditValueReply,{auditResult,{'AuditResult',{'TerminationID',[],[255,255,255]},[{mediaDescriptor,{'MediaDescriptor',asn1_NOVALUE,{multiStream,[{'StreamDescriptor',1,{'StreamParms',{'LocalControlDescriptor',sendRecv,asn1_NOVALUE,asn1_NOVALUE,[{'PropertyParm',[0,11,0,7],[[52,48]],asn1_NOVALUE}]},{'LocalRemoteDescriptor',[[{'PropertyParm',[0,0,176,1],[[48]],asn1_NOVALUE},{'PropertyParm',[0,0,176,8],[[73,78,32,73,80,52,32,49,50,53,46,49,50,53,46,49,50,53,46,49,49,49]],asn1_NOVALUE},{'PropertyParm',[0,0,176,15],[[97,117,100,105,111,32,49,49,49,49,32,82,84,80,47,65,86,80,32,32,52]],asn1_NOVALUE},{'PropertyParm',[0,0,176,12],[[112,116,105,109,101,58,51,48]],asn1_NOVALUE}]]},{'LocalRemoteDescriptor',[[{'PropertyParm',[0,0,176,1],[[48]],asn1_NOVALUE},{'PropertyParm',[0,0,176,8],[[73,78,32,73,80,52,32,49,50,52,46,49,50,52,46,49,50,52,46,50,50,50]],asn1_NOVALUE},{'PropertyParm',[0,0,176,15],[[97,117,100,105,111,32,50,50,50,50,32,82,84,80,47,65,86,80,32,32,52]],asn1_NOVALUE},{'PropertyParm',[0,0,176,12],[[112,116,105,109,101,58,51,48]],asn1_NOVALUE}]]}}}]}}},{packagesDescriptor,[{'PackagesItem',[0,11],1},{'PackagesItem',[0,11],1}]},{statisticsDescriptor,[{'StatisticsParameter',[0,12,0,4],[[49,50,48,48]]},{'StatisticsParameter',[0,11,0,2],[[54,50,51,48,48]]},{'StatisticsParameter',[0,12,0,5],[[55,48,48]]},{'StatisticsParameter',[0,11,0,3],[[52,53,49,48,48]]},{'StatisticsParameter',[0,12,0,6],[[48,46,50]]},{'StatisticsParameter',[0,12,0,7],[[50,48]]},{'StatisticsParameter',[0,12,0,8],[[52,48]]}]}]}}}]}]}}}]}}}.
diff --git a/lib/asn1/test/test_special_decode_performance.erl b/lib/asn1/test/test_special_decode_performance.erl
new file mode 100644
index 0000000000..c451d65172
--- /dev/null
+++ b/lib/asn1/test/test_special_decode_performance.erl
@@ -0,0 +1,165 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_special_decode_performance).
+
+-export([compile/2,go/1,loop2/4,loop1/5]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rule) when Rule==ber_bin_v2 ->
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line asn1ct:compile(DataDir++"MEDIA-GATEWAY-CONTROL",
+ [ber_bin,optimize,asn1config,{outdir,OutDir},
+ {i,DataDir}]),
+ ?line asn1ct:compile(DataDir++"PartialDecSeq",
+ [ber_bin,optimize,asn1config,{outdir,OutDir},
+ {i,DataDir}]);
+compile(_,Rule) ->
+ {skip,lists:concat(["not implemented yet for version: ",Rule])}.
+
+go(all) ->
+ {Time_S_s,Time_S_e,Time_S_c}=go(10000,'PartialDecSeq'),
+ {Time_MGC_s,Time_MGC_e,Time_MGC_c}=go(10000,'MEDIA-GATEWAY-CONTROL'),
+ ?line do_comment({Time_S_s,Time_MGC_s},
+ {Time_S_e,Time_MGC_e},
+ {Time_S_c,Time_MGC_c}).
+
+go(N,Mod) ->
+ ?line Val = val(Mod),
+ ?line {ok,B} = Mod:encode(element(1,Val),Val),
+ ?line go(Mod,list_to_binary(B),N).
+
+go(Mod,Bin,N) ->
+ ?line FsS = get_selective_funcs(Mod),
+ ?line FsE = get_exclusive_funcs(Mod),
+ ?line io:format("~nSize of value for module ~p: ~p bytes.~n~n",[Mod,size(Bin)]),
+ ?line Time_s=go1(selective,Mod,FsS,Bin,N,0),
+ ?line Time_e=go1(exclusive,Mod,FsE,Bin,N,0),
+ ?line Time_c=go1(common,Mod,[decode],Bin,N,0),
+ ?line {Time_s/length(FsS),Time_e/length(FsE),Time_c}.
+
+go1(_,_,[],_,_,AccTime) ->
+ ?line AccTime;
+%% go1 for common decode
+go1(common,Mod,_,Bin,N,_) ->
+ ?line TT=get_top_type(Mod),
+ ?line {Time,Result}=timer:tc(?MODULE,loop1,[Mod,decode,TT,Bin,N]),
+ case Result of
+ {ok,_R1} ->
+ io:format("common Decode ~p:decode, ~p times on time ~p~n",
+ [Mod,N,Time]);
+ Err ->
+ io:format("common Decode ~p:decode failed: ~w~n~n",[Mod,Err])
+ end,
+ Time;
+go1(Dec,Mod,[F|Fs],Bin,N,AccTime) ->
+ ?line {Time,Result}=timer:tc(?MODULE,loop2,[Mod,F,Bin,N]),
+ case Result of
+ {ok,_R1} ->
+ io:format("~p Decode ~p:~p, ~p times on time ~p~n",[Dec,Mod,F,N,Time]);
+ Err ->
+ io:format("~p Decode ~p:~p failed: ~w~n~n",[Dec,Mod,F,Err])
+ end,
+ go1(Dec,Mod,Fs,Bin,N,AccTime+Time).
+
+do_comment({Time_S_s,Time_MGC_s},
+ {Time_S_e,Time_MGC_e},
+ {Time_S_c,Time_MGC_c}) ->
+% io:format("Time_s: ~w, Time_e: ~w, Time_c: ~w~n",[Time_s,Time_e,Time_c]),
+ Time_sofc1 = Time_S_s/Time_S_c,
+ Time_sofc2 = Time_MGC_s/Time_MGC_c,
+ Time_eofc1 = Time_S_e/Time_S_c,
+ Time_eofc2 = Time_MGC_e/Time_MGC_c,
+ Av_proc_sofc =
+ integer_to_list(round(((100*Time_sofc1) + (100*Time_sofc2))/2)),
+ Av_proc_eofc =
+ integer_to_list(round(((100*Time_eofc1) + (100*Time_eofc2))/2)),
+ io:format("Av_proc_sofc = ~w, Av_proc_eofc = ~w~n",
+ [Av_proc_sofc,Av_proc_eofc]),
+ Comment = ["selective decode takes "++
+ Av_proc_sofc ++" % of common decode time",
+ "exclusive decode takes "++ Av_proc_eofc++
+ " % of common decode time"],
+ {comment,Comment}.
+
+val('PartialDecSeq') ->
+ {'F',{fb,{'E',12,[{'D',13,true},{'D',14,false},{'D',15,true},{'D',16,false},{'D',13,true},{'D',14,false},{'D',15,true},{'D',16,false},{'D',13,true},{'D',14,false},{'D',15,true},{'D',16,false}],true,{da,[{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}},{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}},{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}},{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}},{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}},{'A',17,{'D',18,false}},{'A',19,{'D',20,true}},{'A',21,{'D',22,false}}]}}}};
+
+val('MEDIA-GATEWAY-CONTROL') ->
+ {'MegacoMessage',asn1_NOVALUE,{'Message',1,{ip4Address,{'IP4Address',[125,125,125,111],55555}},{transactions,[{transactionReply,{'TransactionReply',50007,asn1_NOVALUE,{actionReplies,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE,[{auditValueReply,{auditResult,{'AuditResult',{'TerminationID',[],[255,255,255]},[{mediaDescriptor,{'MediaDescriptor',asn1_NOVALUE,{multiStream,[{'StreamDescriptor',1,{'StreamParms',{'LocalControlDescriptor',sendRecv,asn1_NOVALUE,asn1_NOVALUE,[{'PropertyParm',[0,11,0,7],[[52,48]],asn1_NOVALUE}]},{'LocalRemoteDescriptor',[[{'PropertyParm',[0,0,176,1],[[48]],asn1_NOVALUE},{'PropertyParm',[0,0,176,8],[[73,78,32,73,80,52,32,49,50,53,46,49,50,53,46,49,50,53,46,49,49,49]],asn1_NOVALUE},{'PropertyParm',[0,0,176,15],[[97,117,100,105,111,32,49,49,49,49,32,82,84,80,47,65,86,80,32,32,52]],asn1_NOVALUE},{'PropertyParm',[0,0,176,12],[[112,116,105,109,101,58,51,48]],asn1_NOVALUE}]]},{'LocalRemoteDescriptor',[[{'PropertyParm',[0,0,176,1],[[48]],asn1_NOVALUE},{'PropertyParm',[0,0,176,8],[[73,78,32,73,80,52,32,49,50,52,46,49,50,52,46,49,50,52,46,50,50,50]],asn1_NOVALUE},{'PropertyParm',[0,0,176,15],[[97,117,100,105,111,32,50,50,50,50,32,82,84,80,47,65,86,80,32,32,52]],asn1_NOVALUE},{'PropertyParm',[0,0,176,12],[[112,116,105,109,101,58,51,48]],asn1_NOVALUE}]]}}}]}}},{packagesDescriptor,[{'PackagesItem',[0,11],1},{'PackagesItem',[0,11],1}]},{statisticsDescriptor,[{'StatisticsParameter',[0,12,0,4],[[49,50,48,48]]},{'StatisticsParameter',[0,11,0,2],[[54,50,51,48,48]]},{'StatisticsParameter',[0,12,0,5],[[55,48,48]]},{'StatisticsParameter',[0,11,0,3],[[52,53,49,48,48]]},{'StatisticsParameter',[0,12,0,6],[[48,46,50]]},{'StatisticsParameter',[0,12,0,7],[[50,48]]},{'StatisticsParameter',[0,12,0,8],[[52,48]]}]}]}}}]}]}}}]}}}.
+
+%% val('PartialDecSeq') ->
+%% {'F',{fb,{'E',35,[{'D',3,true},{'D',4,false},{'D',5,true},{'D',6,true},{'D',7,false},{'D',8,true},{'D',9,true},{'D',10,false},{'D',11,true},{'D',12,true},{'D',13,false},{'D',14,true}],false,{dc,{'E_d_dc',15,true,{'E_d_dc_dcc',17,4711}}}}}}.
+
+loop1(Mod,decode,TT,Bin,1) ->
+ {ok,_Msg}=Mod:decode(TT,Bin);
+loop1(Mod,decode,TT,Bin,N) ->
+ {ok,_Msg}=Mod:decode(TT,Bin),
+ loop1(Mod,decode,TT,Bin,N-1).
+
+loop2(Mod,FS,Bin,1) ->
+ {ok,_Msg}=Mod:FS(Bin);
+loop2(Mod,FS,Bin,N) ->
+ {ok,_Msg}=Mod:FS(Bin),
+ loop2(Mod,FS,Bin,N-1).
+
+%% loop3(Mod,F,Bin,1) ->
+%% {ok,Msg}=Mod:F(Bin),
+%% decode_parts(Mod,F,Msg);
+%% loop3(Mod,F,Bin,N) ->
+%% {ok,Msg}=Mod:F(Bin),
+%% decode_parts(Mod,F,Msg),
+%% loop3(Mod,F,Bin,N-1).
+
+get_selective_funcs('PartialDecSeq') ->
+% [selected_decode_F1,selected_decode_F2,selected_decode_F3,selected_decode_F4];
+ [selected_decode_F1,selected_decode_F3,selected_decode_F4];
+get_selective_funcs('MEDIA-GATEWAY-CONTROL') ->
+ [decode_MegacoMessage_selective].
+
+get_exclusive_funcs('PartialDecSeq') ->
+ [decode_F_fb_incomplete,decode_F_fb_exclusive2,decode_F_fb_exclusive3];
+get_exclusive_funcs('MEDIA-GATEWAY-CONTROL') ->
+ [decode_MegacoMessage_exclusive].
+
+get_top_type('PartialDecSeq') ->
+ 'F';
+get_top_type('MEDIA-GATEWAY-CONTROL') ->
+ 'MegacoMessage'.
+
+%% decode_parts('PartialDecSeq',decode_F_fb_incomplete,Msg) ->
+%% {fb,{'E',12,{E_bKey,E_bMsg},true,{E_dKey,E_dMsg}}}=Msg,
+%% {ok,_}='Seq':decode_part(E_bKey,E_bMsg),
+%% {ok,_}='Seq':decode_part(E_dKey,E_dMsg);
+%% decode_parts('PartialDecSeq',decode_F_fb_exclusive2,Msg) ->
+%% {fb,{'E',12,{E_bKey,E_bMsg},true,{d,{E_dKey,E_dMsg}}}} = Msg,
+%% {ok,_}='Seq':decode_part(E_bKey,E_bMsg),
+%% {ok,_}='Seq':decode_part(E_dKey,E_dMsg);
+%% decode_parts('MEDIA-GATEWAY-CONTROL',decode_MegacoMessage_exclusive,Msg) ->
+%% {'MegacoMessage',asn1_NOVALUE,{'Message',1,{M_MidKey,M_MidMsg},
+%% {M_mBKey,M_mBMsg}}} = Msg,
+%% {ok,_}='MEDIA-GATEWAY-CONTROL':decode_part(M_MidKey,M_MidMsg),
+%% {ok,_}='MEDIA-GATEWAY-CONTROL':decode_part(M_mBKey,M_mBMsg).
+
+
diff --git a/lib/asn1/test/test_undecoded_rest.erl b/lib/asn1/test/test_undecoded_rest.erl
new file mode 100644
index 0000000000..c7762d28f7
--- /dev/null
+++ b/lib/asn1/test/test_undecoded_rest.erl
@@ -0,0 +1,65 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_undecoded_rest).
+
+-export([compile/3,test/1]).
+
+-include("test_server.hrl").
+
+
+%% testing OTP-5104
+
+compile(Config,Rules,Opt) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+
+ ?line ok = asn1ct:compile(DataDir ++ "P-Record",[Rules,{outdir,OutDir}]++Opt).
+
+
+test(Opt) ->
+ ?line {ok,Msg} = asn1ct:value('P-Record','PersonnelRecord'),
+ ?line {ok,Bytes} = asn1_wrapper:encode('P-Record','PersonnelRecord',Msg),
+ Bytes2 =
+ fun(B) when list(B) ->
+ B ++ [55,55,55];
+ (B) when binary(B) ->
+ concat_binary([B,<<55,55,55>>])
+ end (Bytes),
+
+ case Opt of
+ undec_rest ->
+ ?line {ok,Msg,R}=asn1_wrapper:decode('P-Record','PersonnelRecord',
+ Bytes2),
+ ?line case R of
+ <<55,55,55>> ->ok;
+ [55,55,55] -> ok;
+ BStr when is_bitstring(BStr) ->
+ PadLen = (8 - (bit_size(BStr) rem 8)) rem 8,
+ case <<0:PadLen,BStr/bitstring>> of
+ <<0,55,55,55>> -> ok
+ end
+ end;
+ _ ->
+ ?line {ok,Msg} = asn1_wrapper:decode('P-Record','PersonnelRecord',
+ Bytes2)
+ end,
+ ok.
diff --git a/lib/asn1/test/test_x691.erl b/lib/asn1/test/test_x691.erl
new file mode 100644
index 0000000000..5bf3a4a077
--- /dev/null
+++ b/lib/asn1/test/test_x691.erl
@@ -0,0 +1,227 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2008-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(test_x691).
+
+-export([compile/3]).
+-export([cases/2]).
+
+-include("test_server.hrl").
+
+
+compile(Config,Rules,Option) ->
+
+ ?line DataDir = ?config(data_dir,Config),
+ ?line OutDir = ?config(priv_dir,Config),
+ ?line true = code:add_patha(?config(priv_dir,Config)),
+ ?line ok = asn1ct:compile(DataDir ++ "P-RecordA1",
+ [Rules, {outdir,OutDir}]++Option),
+ ?line ok = asn1ct:compile(DataDir ++ "P-RecordA2",
+ [Rules, {outdir,OutDir}]++Option),
+ ?line ok = asn1ct:compile(DataDir ++ "P-RecordA3",
+ [Rules, {outdir,OutDir}]++Option).
+
+
+cases(Erule,Variant) ->
+ MsgA1 = a1(),
+ ?line {ok,B1} = asn1_wrapper:encode('P-RecordA1','PersonnelRecord',MsgA1),
+ ?line {ok,MsgA1} = asn1_wrapper:decode('P-RecordA1','PersonnelRecord',B1),
+ io:format("compare_format(~p,B1) ->~p~nencval(a1,~p,binary) ->~p~n",
+ [Erule,
+ compare_format(Erule,B1),
+ Variant,
+ encval(a1,Variant,binary)]),
+ ?line true = (compare_format(Erule,B1) == encval(a1,Variant,binary)),
+
+ MsgA2 = a2(),
+ ?line {ok,B2} = asn1_wrapper:encode('P-RecordA2','PersonnelRecord',MsgA2),
+ ?line {ok,MsgA2} = asn1_wrapper:decode('P-RecordA2','PersonnelRecord',B2),
+ io:format("compare_format(~p,B2) ->~p~nencval(a2,~p,binary) ->~p~n",
+ [Erule,
+ compare_format(Erule,B2),
+ Variant,
+ encval(a2,Variant,binary)]),
+ ?line true = (compare_format(Erule,B2) == encval(a2,Variant,binary)),
+
+ MsgA3 = a3(),
+ ?line {ok,B3} = asn1_wrapper:encode('P-RecordA3','PersonnelRecord',MsgA3),
+ ?line {ok,MsgA3} = asn1_wrapper:decode('P-RecordA3','PersonnelRecord',B3),
+ io:format("compare_format(~p,B3) ->~p~nencval(a3,~p,binary) ->~p~n",
+ [Erule,
+ compare_format(Erule,B3),
+ Variant,
+ encval(a3,Variant,binary)]),
+ ?line true = (compare_format(Erule,B3) == encval(a3,Variant,binary)).
+
+compare_format(Erule,Val) when is_list(Val) ->
+ compare_format(Erule,list_to_binary(Val));
+%% compare_format(per,Val) ->
+%% binary_to_list(Val);
+compare_format(_,Val) ->
+ Val.
+
+a1() ->
+ {'PersonnelRecord',
+ {'Name',"John", "P", "Smith"},
+ "Director",
+ 51,
+ "19710917",
+ {'Name', "Mary", "T", "Smith"},
+ [{'ChildInformation',
+ {'Name', "Ralph", "T", "Smith"},
+ "19571111"},
+ {'ChildInformation',
+ {'Name', "Susan", "B", "Jones"},
+ "19590717"}]}.
+
+a2() ->
+ a1().
+
+a3() ->
+ {'PersonnelRecord',
+ {'Name',"John", "P", "Smith"},
+ "Director",
+ 51,
+ "19710917",
+ {'Name', "Mary", "T", "Smith"},
+ [{'ChildInformation',
+ {'Name', "Ralph", "T", "Smith"},
+ "19571111",
+ asn1_NOVALUE},
+ {'ChildInformation',
+ {'Name', "Susan", "B", "Jones"},
+ "19590717",
+ female}]}.
+
+encval(An,Variant,Encoding) when Encoding == hex; Encoding == binary ->
+ Msg = encval(An,Variant),
+ encoding(Encoding,Msg).
+
+encval(a1,aligned) ->
+ "80044A6F 686E0150 05536D69 74680133 08446972 6563746F 72083139 37313039 3137044D 61727901 5405536D 69746802 0552616C 70680154 05536D69 74680831 39353731 31313105 53757361 6E014205 4A6F6E65 73083139 35393037 3137";
+encval(a1,unaligned) ->
+ "824ADFA3 700D005A 7B74F4D0 02661113 4F2CB8FA 6FE410C5 CB762C1C B16E0937 0F2F2035 0169EDD3 D340102D 2C3B3868 01A80B4F 6E9E9A02 18B96ADD 8B162C41 69F5E787 700C2059 5BF765E6 10C5CB57 2C1BB16E";
+encval(a2,aligned) ->
+ "864A6F68 6E501053 6D697468 01330844 69726563 746F7219 7109170C 4D617279 5410536D 69746802 1052616C 70685410 536D6974 68195711 11105375 73616E42 104A6F6E 65731959 0717";
+encval(a2,unaligned) ->
+ "865D51D2 888A5125 F1809984 44D3CB2E 3E9BF90C B8848B86 7396E8A8 8A5125F1 81089B93 D71AA229 4497C632 AE222222 985CE521 885D54C1 70CAC838 B8";
+encval(a3,aligned) ->
+ "40C04A6F 686E5008 536D6974 68000033 08446972 6563746F 72001971 0917034D 61727954 08536D69 74680100 52616C70 68540853 6D697468 00195711 11820053 7573616E 42084A6F 6E657300 19590717 010140";
+encval(a3,unaligned) ->
+ "40CBAA3A 5108A512 5F180330 889A7965 C7D37F20 CB8848B8 19CE5BA2 A114A24B E3011372 7AE35422 94497C61 95711118 22985CE5 21842EAA 60B832B2 0E2E0202 80".
+
+encoding(binary,Msg) ->
+ list_to_binary(bin(Msg));
+encoding(hex,Msg) ->
+ hex(Msg).
+
+bin(Msg) ->
+ HexList = hex(Msg),
+ Fun = fun([H1,H2|Rest],F) -> [(H1 bsl 4) + H2|F(Rest,F)];([],_) -> [] end,
+ Fun(HexList,Fun).
+
+hex(Msg) ->
+ [to_hex(X)||X <- Msg,X /= $ ].
+
+to_hex(I) when I >= $0, I =< $9 ->
+ I-48;
+to_hex(C) when C >= $A,C =< $F ->
+ C - 55.
+
+%% ex('EUTRA','BCCH-DL-SCH-Message',1) ->
+%% {'BCCH-DL-SCH-Message',
+%% {c1,
+%% {systemInformation1,
+%% {'SystemInformationBlockType1',
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation',
+%% [{'SystemInformationBlockType1_cellAccessRelatedInformation_SOF',
+%% {'PLMN-Identity'},
+%% true},
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation_SOF',
+%% {'PLMN-Identity'},
+%% false},
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation_SOF',
+%% {'PLMN-Identity'},
+%% true}],
+%% {'TrackingAreaCode'},
+%% {'CellIdentity'},
+%% false,
+%% true,
+%% true,
+%% true},
+%% {'SystemInformationBlockType1_cellSelectionInfo',
+%% -50},
+%% 24,
+%% [{'SystemInformationBlockType1_schedulinInformation_SOF',
+%% {'SystemInformationBlockType1_schedulinInformation_SOF_si-MessageType'},
+%% ms320,
+%% {'SystemInformationBlockType1_schedulinInformation_SOF_sib-MappingInfo'}
+%% }],
+%% 0
+%% }
+%% }
+%% }
+%% }.
+
+%% eutra1(msg) ->
+%% {'BCCH-BCH-Message',{'MasterInformationBlock',[0,1,0,1],[1,0,1,0],{'PHICH-Configuration',short,ffs},[1,0,1,0,0,0,0,0]}};
+%% eutra1(result) ->
+%% <<90,80,0>>.
+
+%% eutra2(msg) ->
+%% {'BCCH-DL-SCH-Message',
+%% {c1,
+%% {systemInformation1,
+%% {'SystemInformationBlockType1',
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation',
+%% [{'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},true},
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},false},
+%% {'SystemInformationBlockType1_cellAccessRelatedInformation_plmn-IdentityList_SEQOF',{'PLMN-Identity'},true}],
+%% {'TrackingAreaCode'},
+%% {'CellIdentity'},
+%% false,
+%% true,
+%% true,
+%% true
+%% },
+%% {'SystemInformationBlockType1_cellSelectionInfo',-50},
+%% 24,
+%% [{'SystemInformationBlockType1_schedulinInformation_SEQOF',
+%% {'SystemInformationBlockType1_schedulinInformation_SEQOF_si-MessageType'},
+%% ms320,
+%% {'SystemInformationBlockType1_schedulinInformation_SEQOF_sib-MappingInfo'}}],
+%% 0
+%% }
+%% }
+%% }
+%% };
+%% eutra2(result) ->
+%% %% 55 5C A5 E0
+%% <<85,92,165,224>>.
+
+
+
+%% compare([H|T1],[H|T2],Acc) ->
+%% compare(T1,T2,[H|Acc]);
+%% compare([],[],_Acc) ->
+%% ok;
+%% compare(L1,L2,Acc) ->
+%% {miss_match,L1,L2,lists:reverse(Acc)}.
+
+
diff --git a/lib/asn1/vsn.mk b/lib/asn1/vsn.mk
index c79d833320..8d2f1d7b2b 100644
--- a/lib/asn1/vsn.mk
+++ b/lib/asn1/vsn.mk
@@ -1,7 +1,10 @@
-#next version number to use is 1.6.13 | 1.7 | 2.0
-ASN1_VSN = 1.6.12
+#next version number to use is 1.6.14 | 1.7 | 2.0
+ASN1_VSN = 1.6.13
-TICKETS = OTP-8256
+TICKETS = OTP-8410
+
+TICKETS_1.6.13 = \
+ OTP-8410
TICKETS_1.6.12 = \
OTP-8256